aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuutaW <17158086+Trumeet@users.noreply.github.com>2019-03-01 18:42:08 -0800
committerYuutaW <17158086+Trumeet@users.noreply.github.com>2019-03-01 18:42:08 -0800
commite6cc81e32a44dde2a73f045bd27e72bcb911fbdd (patch)
tree69e1c9ba6d27cea6f3c82c317049c41039d9f9cf
parentb80854975d951cd45ec3e75ae062012a15f6aa3e (diff)
downloadWorkMode-e6cc81e32a44dde2a73f045bd27e72bcb911fbdd.tar
WorkMode-e6cc81e32a44dde2a73f045bd27e72bcb911fbdd.tar.gz
WorkMode-e6cc81e32a44dde2a73f045bd27e72bcb911fbdd.tar.bz2
WorkMode-e6cc81e32a44dde2a73f045bd27e72bcb911fbdd.zip
feat(app): display update using notification instead of snack bar
Signed-off-by: YuutaW <17158086+Trumeet@users.noreply.github.com>
-rw-r--r--app/src/main/java/moe/yuuta/workmode/MainActivity.kt31
-rw-r--r--app/src/main/res/values/strings.xml6
2 files changed, 22 insertions, 15 deletions
diff --git a/app/src/main/java/moe/yuuta/workmode/MainActivity.kt b/app/src/main/java/moe/yuuta/workmode/MainActivity.kt
index ed93f38..544a6fb 100644
--- a/app/src/main/java/moe/yuuta/workmode/MainActivity.kt
+++ b/app/src/main/java/moe/yuuta/workmode/MainActivity.kt
@@ -1,7 +1,6 @@
package moe.yuuta.workmode
-import android.app.Activity
-import android.content.ActivityNotFoundException
+import android.app.*
import android.content.ComponentName
import android.content.Context
import android.content.Intent
@@ -26,7 +25,6 @@ import com.elvishew.xlog.Logger
import com.elvishew.xlog.XLog
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
import com.google.android.material.floatingactionbutton.FloatingActionButton
-import com.google.android.material.snackbar.Snackbar
import com.google.android.material.tabs.TabLayout
import moe.yuuta.gplicense.LicenseCheckerCallback
import moe.yuuta.gplicense.Policy
@@ -336,16 +334,23 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
}
override fun showToast(name: String, url: String) {
- Snackbar.make(findViewById(android.R.id.content),
- getString(R.string.update_available,
- name),
- Snackbar.LENGTH_LONG)
- .setAction(R.string.view) {
- try {
- startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
- } catch (ignored: ActivityNotFoundException) {}
- }
- .show()
+ logger.d("Update available: $name ($url)")
+ val manager = getSystemService(NotificationManager::class.java)
+ manager.createNotificationChannel(NotificationChannel("update",
+ getString(R.string.notification_channel_update), NotificationManager.IMPORTANCE_HIGH))
+ manager.notify(0, Notification.Builder(this, "update")
+ .setContentTitle(getString(R.string.notification_title_update, name))
+ .setContentText(getString(R.string.notification_text_update_summary))
+ .setContentIntent(PendingIntent.getActivity(this, 1,
+ Intent(Intent.ACTION_VIEW, Uri.parse(url))
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK),
+ PendingIntent.FLAG_UPDATE_CURRENT))
+ .setAutoCancel(true)
+ .setSmallIcon(R.drawable.ic_work_24dp)
+ .setShowWhen(true)
+ .setStyle(Notification.BigTextStyle()
+ .bigText(getString(R.string.notification_text_update)))
+ .build())
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dbcec87..82dae90 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -22,8 +22,10 @@
<string name="check_update">Check update</string>
<string name="about">About</string>
<string name="feedback_subject">Work Mode feedback</string>
- <string name="update_available">%1$s is available</string>
- <string name="view">View</string>
+ <string name="notification_channel_update">Updates</string>
+ <string name="notification_title_update">%1$s is available for download</string>
+ <string name="notification_text_update_summary">Tap here to update to the latest version</string>
+ <string name="notification_text_update">Tap here to update to the latest version and get more features</string>
<!-- #Anti-Crack -->
<string name="sys_id" translatable="false">Y29tLmFuZHJvaWQudmVuZGluZw==</string>