diff options
author | YuutaW <17158086+Trumeet@users.noreply.github.com> | 2019-03-01 18:42:08 -0800 |
---|---|---|
committer | YuutaW <17158086+Trumeet@users.noreply.github.com> | 2019-03-01 18:42:08 -0800 |
commit | e6cc81e32a44dde2a73f045bd27e72bcb911fbdd (patch) | |
tree | 69e1c9ba6d27cea6f3c82c317049c41039d9f9cf /app/src/main/java/moe/yuuta | |
parent | b80854975d951cd45ec3e75ae062012a15f6aa3e (diff) | |
download | WorkMode-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>
Diffstat (limited to 'app/src/main/java/moe/yuuta')
-rw-r--r-- | app/src/main/java/moe/yuuta/workmode/MainActivity.kt | 31 |
1 files changed, 18 insertions, 13 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()) } } |