From e6cc81e32a44dde2a73f045bd27e72bcb911fbdd Mon Sep 17 00:00:00 2001 From: YuutaW <17158086+Trumeet@users.noreply.github.com> Date: Fri, 1 Mar 2019 18:42:08 -0800 Subject: feat(app): display update using notification instead of snack bar Signed-off-by: YuutaW <17158086+Trumeet@users.noreply.github.com> --- .../main/java/moe/yuuta/workmode/MainActivity.kt | 31 +++++++++++++--------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'app/src/main/java') 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()) } } -- cgit v1.2.3