From 3b0ce7d10fdb257455ab0387bfdb4675c11c997f Mon Sep 17 00:00:00 2001 From: Konsta Date: Tue, 16 Jul 2013 19:15:42 +0300 Subject: FM2: Update notification to use notification builder Make FM notifications look like something from this decade. :P Change-Id: Ib0e310a320c49e92224d8d4fc2fab530ff28d974 --- fmapp2/res/layout/statusbar.xml | 56 ---------------------- fmapp2/res/values/strings.xml | 5 +- fmapp2/src/com/caf/fmradio/FMRadioService.java | 44 +++++++++-------- .../src/com/caf/fmradio/FMTransmitterService.java | 43 +++++++++-------- 4 files changed, 51 insertions(+), 97 deletions(-) delete mode 100644 fmapp2/res/layout/statusbar.xml diff --git a/fmapp2/res/layout/statusbar.xml b/fmapp2/res/layout/statusbar.xml deleted file mode 100644 index 47e1a91..0000000 --- a/fmapp2/res/layout/statusbar.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - diff --git a/fmapp2/res/values/strings.xml b/fmapp2/res/values/strings.xml index 3d490d0..6c4afd6 100644 --- a/fmapp2/res/values/strings.xml +++ b/fmapp2/res/values/strings.xml @@ -84,9 +84,8 @@ Search for "%1$s" - FM Radio Station "%1$s" MHz - FM Transmitting at: "%1$s" - + "%1$s" MHz + Transmitting at: "%1$s" Select Regional Band Select Test diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java index 54654fa..f3fb535 100644 --- a/fmapp2/src/com/caf/fmradio/FMRadioService.java +++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java @@ -34,6 +34,7 @@ import java.io.IOException; import java.lang.ref.WeakReference; import android.app.AlarmManager; +import android.app.Notification.Builder; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; @@ -222,6 +223,10 @@ public class FMRadioService extends Service private static Object mNotchFilterLock = new Object(); + private Notification.Builder mRadioNotification; + private Notification mNotificationInstance; + private NotificationManager mNotificationManager; + public FMRadioService() { } @@ -1690,27 +1695,28 @@ public class FMRadioService extends Service /* Show the FM Notification */ public void startNotification() { - RemoteViews views = new RemoteViews(getPackageName(), R.layout.statusbar); - views.setImageViewResource(R.id.icon, R.drawable.stat_notify_fm); - if (isFmOn()) - { - views.setTextViewText(R.id.frequency, getTunedFrequencyString()); - } else - { - views.setTextViewText(R.id.frequency, ""); + mRadioNotification = new Notification.Builder(this) + .setSmallIcon(R.drawable.stat_notify_fm) + .setOngoing(true) + .setWhen(0); + + PendingIntent resultIntent = PendingIntent.getActivity(this, 0, + new Intent("com.caf.fmradio.FMRADIO_ACTIVITY"), 0); + mRadioNotification.setContentIntent(resultIntent); + + mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); + if (isFmOn()) { + mRadioNotification.setContentTitle(getString(R.string.app_name)) + .setContentText(getTunedFrequencyString()); + } else { + mRadioNotification.setContentTitle("") + .setContentText(""); } + mNotificationInstance = mRadioNotification.getNotification(); + mNotificationManager.notify(FMRADIOSERVICE_STATUS, mNotificationInstance); + + startForeground(FMRADIOSERVICE_STATUS, mNotificationInstance); - Notification status = new Notification(); - status.contentView = views; - status.flags |= Notification.FLAG_ONGOING_EVENT; - status.icon = R.drawable.stat_notify_fm; - status.contentIntent = PendingIntent.getActivity(this, 0, - new Intent("com.caf.fmradio.FMRADIO_ACTIVITY"), 0); - startForeground(FMRADIOSERVICE_STATUS, status); - //NotificationManager nm = (NotificationManager) - // getSystemService(Context.NOTIFICATION_SERVICE); - //nm.notify(FMRADIOSERVICE_STATUS, status); - //setForeground(true); mFMOn = true; } diff --git a/fmapp2/src/com/caf/fmradio/FMTransmitterService.java b/fmapp2/src/com/caf/fmradio/FMTransmitterService.java index e3cf3d6..07362a0 100644 --- a/fmapp2/src/com/caf/fmradio/FMTransmitterService.java +++ b/fmapp2/src/com/caf/fmradio/FMTransmitterService.java @@ -30,6 +30,7 @@ package com.caf.fmradio; import java.lang.ref.WeakReference; +import android.app.Notification.Builder; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; @@ -108,6 +109,9 @@ public class FMTransmitterService extends Service // interval after which we stop the service when idle private static final int IDLE_DELAY = 60000; + private Notification.Builder mRadioNotification; + private Notification mNotificationInstance; + private NotificationManager mNotificationManager; private static String RText = " "; private IAudioService mAudioService; private AudioManager mAudioManager; @@ -278,27 +282,28 @@ public class FMTransmitterService extends Service /* Show the FM Notification */ public void startNotification() { - RemoteViews views = new RemoteViews(getPackageName(), R.layout.statusbar); - views.setImageViewResource(R.id.icon, R.drawable.ic_status_fm_tx); - if (isFmOn()) - { - views.setTextViewText(R.id.frequency, getTunedFrequencyString()); - } else - { - views.setTextViewText(R.id.frequency, ""); + mRadioNotification = new Notification.Builder(this) + .setSmallIcon(R.drawable.ic_status_fm_tx) + .setOngoing(true) + .setWhen(0); + + PendingIntent resultIntent = PendingIntent.getActivity(this, 0, + new Intent("com.caf.fmradio.FMTRANSMITTER_ACTIVITY"), 0); + mRadioNotification.setContentIntent(resultIntent); + + mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); + if (isFmOn()) { + mRadioNotification.setContentTitle(getString(R.string.app_name)) + .setContentText(getTunedFrequencyString()); + } else { + mRadioNotification.setContentTitle("") + .setContentText(""); } + mNotificationInstance = mRadioNotification.getNotification(); + mNotificationManager.notify(FMTRANSMITTERSERVICE_STATUS, mNotificationInstance); + + startForeground(FMTRANSMITTERSERVICE_STATUS, mNotificationInstance); - Notification status = new Notification(); - status.contentView = views; - status.flags |= Notification.FLAG_ONGOING_EVENT; - status.icon = R.drawable.ic_status_fm_tx; - status.contentIntent = PendingIntent.getActivity(this, 0, - new Intent("com.caf.fmradio.FMTRANSMITTER_ACTIVITY"), 0); - startForeground(FMTRANSMITTERSERVICE_STATUS, status); - //NotificationManager nm = (NotificationManager) - // getSystemService(Context.NOTIFICATION_SERVICE); - //nm.notify(FMTRANSMITTERSERVICE_STATUS, status); - //setForeground(true); mFMOn = true; } -- cgit v1.2.3