summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Cellerier <dionoea@videolan.org>2011-01-24 17:10:56 +0000
committerAntoine Cellerier <dionoea@videolan.org>2011-01-24 17:10:56 +0000
commitef980355c89787699b0ee43f448839d6753b7256 (patch)
treee8d04411b62d75d9caccf4e2ebc9b922659e5bcf
parenta448d8bac7c97c008afcc0c435c7e9777c069b26 (diff)
downloadrockbox-ef980355c89787699b0ee43f448839d6753b7256.tar.gz
rockbox-ef980355c89787699b0ee43f448839d6753b7256.tar.bz2
rockbox-ef980355c89787699b0ee43f448839d6753b7256.zip
Move android notification display format logic to java code (no functional change, this is used by FS #11902).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29132 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--android/src/org/rockbox/Helper/RunForegroundManager.java10
-rw-r--r--apps/hosted/notification.c36
2 files changed, 19 insertions, 27 deletions
diff --git a/android/src/org/rockbox/Helper/RunForegroundManager.java b/android/src/org/rockbox/Helper/RunForegroundManager.java
index 513089ff9f..197c51a567 100644
--- a/android/src/org/rockbox/Helper/RunForegroundManager.java
+++ b/android/src/org/rockbox/Helper/RunForegroundManager.java
@@ -5,6 +5,7 @@ import java.lang.reflect.Method;
import org.rockbox.R;
import org.rockbox.RockboxActivity;
+import org.rockbox.RockboxWidgetProvider;
import android.app.Notification;
import android.app.NotificationManager;
@@ -82,12 +83,15 @@ public class RunForegroundManager
api.stopForeground();
}
- public void updateNotification(String title, String content, String ticker)
+ public void updateNotification(String title, String artist, String album)
{
RemoteViews views = mNotification.contentView;
views.setTextViewText(R.id.title, title);
- views.setTextViewText(R.id.content, content);
- mNotification.tickerText = ticker;
+ views.setTextViewText(R.id.content, artist+"\n"+album);
+ if (artist.equals(""))
+ mNotification.tickerText = title;
+ else
+ mNotification.tickerText = title+" - "+artist;
mNM.notify(R.string.notification, mNotification);
}
diff --git a/apps/hosted/notification.c b/apps/hosted/notification.c
index 13c88eca4b..3c623aad1d 100644
--- a/apps/hosted/notification.c
+++ b/apps/hosted/notification.c
@@ -32,7 +32,7 @@ extern jobject RockboxService_instance;
static jmethodID updateNotification;
static jobject NotificationManager_instance;
-static jstring headline, content, ticker;
+static jstring title, artist, album;
#define NZV(a) (a && a[0])
@@ -45,37 +45,24 @@ static void track_changed_callback(void *param)
if (id3)
{
/* passing NULL to DeleteLocalRef() is OK */
- e->DeleteLocalRef(env_ptr, headline);
- e->DeleteLocalRef(env_ptr, content);
- e->DeleteLocalRef(env_ptr, ticker);
+ e->DeleteLocalRef(env_ptr, title);
+ e->DeleteLocalRef(env_ptr, artist);
+ e->DeleteLocalRef(env_ptr, album);
char buf[200];
- const char * title = id3->title;
- if (!title)
+ const char * ptitle = id3->title;
+ if (!ptitle)
{ /* pass the filename as title if id3 info isn't available */
- title =
+ ptitle =
strip_extension(buf, sizeof(buf), strrchr(id3->path,'/') + 1);
}
- /* do text for the notification area in the scrolled-down statusbar */
- headline = e->NewStringUTF(env_ptr, title);
+ title = e->NewStringUTF(env_ptr, ptitle);
+ artist = e->NewStringUTF(env_ptr, id3->artist ?: "");
+ album = e->NewStringUTF(env_ptr, id3->album ?: "");
- /* add a \n so that android does split into two lines */
- snprintf(buf, sizeof(buf), "%s\n%s", id3->artist ?: "", id3->album ?: "");
- content = e->NewStringUTF(env_ptr, buf);
-
- /* now do the text for the notification in the statusbar itself */
- if (NZV(id3->artist))
- { /* title - artist */
- snprintf(buf, sizeof(buf), "%s - %s", title, id3->artist);
- ticker = e->NewStringUTF(env_ptr, buf);
- }
- else
- { /* title */
- ticker = e->NewStringUTF(env_ptr, title);
- }
e->CallVoidMethod(env_ptr, NotificationManager_instance,
- updateNotification, headline, content, ticker);
+ updateNotification, title, artist, album);
}
}
@@ -92,5 +79,6 @@ void notification_init(void)
"(Ljava/lang/String;"
"Ljava/lang/String;"
"Ljava/lang/String;)V");
+
add_event(PLAYBACK_EVENT_TRACK_CHANGE, false, track_changed_callback);
}