From 3a1e43b322e4a092454ff0cff9c14ff385c4220b Mon Sep 17 00:00:00 2001 From: str4d <str4d@mail.i2p> Date: Mon, 25 Nov 2013 11:33:39 +0000 Subject: [PATCH] Use NotificationCompat.Builder --- .../i2p/android/router/service/StatusBar.java | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/src/net/i2p/android/router/service/StatusBar.java b/src/net/i2p/android/router/service/StatusBar.java index f6191e7bf..6a3da1380 100644 --- a/src/net/i2p/android/router/service/StatusBar.java +++ b/src/net/i2p/android/router/service/StatusBar.java @@ -5,15 +5,16 @@ import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; +import android.support.v4.app.NotificationCompat; import net.i2p.android.router.R; import net.i2p.android.router.activity.MainActivity; class StatusBar { private final Context ctx; - private final Intent intent; - private final Notification notif; - private final NotificationManager mgr; + private final NotificationManager mNotificationManager; + private final NotificationCompat.Builder mNotifyBuilder; + private Notification mNotif; private static final int ID = 1337; @@ -26,28 +27,31 @@ class StatusBar { StatusBar(Context cx) { ctx = cx; - String ns = Context.NOTIFICATION_SERVICE; - mgr = (NotificationManager)ctx.getSystemService(ns); - Thread.currentThread().setUncaughtExceptionHandler(new CrashHandler(mgr)); + mNotificationManager = (NotificationManager) ctx.getSystemService( + Context.NOTIFICATION_SERVICE); + Thread.currentThread().setUncaughtExceptionHandler( + new CrashHandler(mNotificationManager)); int icon = ICON_STARTING; // won't be shown if replace() is called String text = "Starting I2P"; - long now = System.currentTimeMillis(); - notif = new Notification(icon, text, now); - notif.flags |= Notification.FLAG_ONLY_ALERT_ONCE; - // notif.flags |= Notification.FLAG_ONGOING_EVENT; - notif.flags |= Notification.FLAG_NO_CLEAR; - intent = new Intent(ctx, MainActivity.class); + + mNotifyBuilder = new NotificationCompat.Builder(ctx) + .setContentText(text) + .setSmallIcon(icon) + .setOngoing(true) + .setOnlyAlertOnce(true); + + Intent intent = new Intent(ctx, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + PendingIntent pi = PendingIntent.getActivity(ctx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); + mNotifyBuilder.setContentIntent(pi); } - /** remove and re-add */ - public void replace(int icon, String tickerText) { - off(); - notif.icon = icon; - notif.tickerText= tickerText; - update(tickerText); + public void replace(int icon, String details) { + mNotifyBuilder.setSmallIcon(icon) + .setTicker(details); + update(details); } public void update(String details) { @@ -56,17 +60,14 @@ class StatusBar { } public void update(String title, String details) { - PendingIntent pi = PendingIntent.getActivity(ctx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); - notif.setLatestEventInfo(ctx, title, details, pi); - mgr.notify(ID, notif); - } - - public void off() { - //mgr.cancel(ID); + mNotifyBuilder.setContentTitle(title) + .setContentText(details); + mNotif = mNotifyBuilder.build(); + mNotificationManager.notify(ID, mNotif); } public void remove() { - mgr.cancel(ID); + mNotificationManager.cancel(ID); } /** @@ -95,6 +96,6 @@ class StatusBar { } public Notification getNote() { - return notif; + return mNotif; } } -- GitLab