summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoine Cellerier <dionoea@videolan.org>2011-03-09 18:46:55 +0000
committerAntoine Cellerier <dionoea@videolan.org>2011-03-09 18:46:55 +0000
commitfd7375c307a2bf99847b5de180efe98e829f2439 (patch)
treed35aaf32387efe6e78fbb3dd7a81ca9d1b2564f1
parent64cf0dd765dc11058a02024032784a9f2eb494b5 (diff)
downloadrockbox-fd7375c307a2bf99847b5de180efe98e829f2439.tar.gz
rockbox-fd7375c307a2bf99847b5de180efe98e829f2439.zip
Ask for track information to be resent after creating a new widget.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29553 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--android/AndroidManifest.xml1
-rw-r--r--android/src/org/rockbox/Helper/RunForegroundManager.java22
-rw-r--r--android/src/org/rockbox/RockboxService.java8
-rw-r--r--android/src/org/rockbox/widgets/RockboxWidgetConfigure.java8
-rw-r--r--android/src/org/rockbox/widgets/RockboxWidgetProvider.java1
5 files changed, 33 insertions, 7 deletions
diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml
index faf404fb14..c32f76c0d0 100644
--- a/android/AndroidManifest.xml
+++ b/android/AndroidManifest.xml
@@ -23,6 +23,7 @@
23 <intent-filter> 23 <intent-filter>
24 <action android:name="android.intent.action.MAIN" /> 24 <action android:name="android.intent.action.MAIN" />
25 <action android:name="android.intent.action.MEDIA_BUTTON" /> 25 <action android:name="android.intent.action.MEDIA_BUTTON" />
26 <action android:name="org.rockbox.ResendTrackUpdateInfo" />
26 </intent-filter> 27 </intent-filter>
27 </service> 28 </service>
28 29
diff --git a/android/src/org/rockbox/Helper/RunForegroundManager.java b/android/src/org/rockbox/Helper/RunForegroundManager.java
index c08e742aba..6ecb16a408 100644
--- a/android/src/org/rockbox/Helper/RunForegroundManager.java
+++ b/android/src/org/rockbox/Helper/RunForegroundManager.java
@@ -23,6 +23,7 @@ public class RunForegroundManager
23 private NotificationManager mNM; 23 private NotificationManager mNM;
24 private IRunForeground api; 24 private IRunForeground api;
25 private Service mCurrentService; 25 private Service mCurrentService;
26 private Intent mWidgetUpdate;
26 27
27 public RunForegroundManager(Service service) 28 public RunForegroundManager(Service service)
28 { 29 {
@@ -48,10 +49,12 @@ public class RunForegroundManager
48 api = new oldForegroundApi(); 49 api = new oldForegroundApi();
49 } 50 }
50 } 51 }
52
51 private void LOG(CharSequence text) 53 private void LOG(CharSequence text)
52 { 54 {
53 Log.d("Rockbox", (String)text); 55 Log.d("Rockbox", (String)text);
54 } 56 }
57
55 private void LOG(CharSequence text, Throwable tr) 58 private void LOG(CharSequence text, Throwable tr)
56 { 59 {
57 Log.d("Rockbox", (String)text, tr); 60 Log.d("Rockbox", (String)text, tr);
@@ -80,6 +83,7 @@ public class RunForegroundManager
80 */ 83 */
81 mNM.cancel(R.string.notification); 84 mNM.cancel(R.string.notification);
82 api.stopForeground(); 85 api.stopForeground();
86 mWidgetUpdate = null;
83 } 87 }
84 88
85 public void updateNotification(String title, String artist, String album, String albumart) 89 public void updateNotification(String title, String artist, String album, String albumart)
@@ -93,12 +97,18 @@ public class RunForegroundManager
93 mNotification.tickerText = title+" - "+artist; 97 mNotification.tickerText = title+" - "+artist;
94 mNM.notify(R.string.notification, mNotification); 98 mNM.notify(R.string.notification, mNotification);
95 99
96 Intent widgetUpdate = new Intent("org.rockbox.TrackUpdateInfo"); 100 mWidgetUpdate = new Intent("org.rockbox.TrackUpdateInfo");
97 widgetUpdate.putExtra("title", title); 101 mWidgetUpdate.putExtra("title", title);
98 widgetUpdate.putExtra("artist", artist); 102 mWidgetUpdate.putExtra("artist", artist);
99 widgetUpdate.putExtra("album", album); 103 mWidgetUpdate.putExtra("album", album);
100 widgetUpdate.putExtra("albumart", albumart); 104 mWidgetUpdate.putExtra("albumart", albumart);
101 mCurrentService.sendBroadcast(widgetUpdate); 105 mCurrentService.sendBroadcast(mWidgetUpdate);
106 }
107
108 public void resendUpdateNotification()
109 {
110 if (mWidgetUpdate != null)
111 mCurrentService.sendBroadcast(mWidgetUpdate);
102 } 112 }
103 113
104 public void finishNotification() 114 public void finishNotification()
diff --git a/android/src/org/rockbox/RockboxService.java b/android/src/org/rockbox/RockboxService.java
index d198cb37b7..fb7c0437fc 100644
--- a/android/src/org/rockbox/RockboxService.java
+++ b/android/src/org/rockbox/RockboxService.java
@@ -106,6 +106,14 @@ public class RockboxService extends Service
106 private void do_start(Intent intent) 106 private void do_start(Intent intent)
107 { 107 {
108 LOG("Start RockboxService (Intent: " + intent.getAction() + ")"); 108 LOG("Start RockboxService (Intent: " + intent.getAction() + ")");
109
110 if (intent.getAction().equals("org.rockbox.ResendTrackUpdateInfo"))
111 {
112 if (rockbox_running)
113 fg_runner.resendUpdateNotification();
114 return;
115 }
116
109 if (intent.hasExtra("callback")) 117 if (intent.hasExtra("callback"))
110 resultReceiver = (ResultReceiver) intent.getParcelableExtra("callback"); 118 resultReceiver = (ResultReceiver) intent.getParcelableExtra("callback");
111 119
diff --git a/android/src/org/rockbox/widgets/RockboxWidgetConfigure.java b/android/src/org/rockbox/widgets/RockboxWidgetConfigure.java
index 700fc2fa1a..82cfc1553f 100644
--- a/android/src/org/rockbox/widgets/RockboxWidgetConfigure.java
+++ b/android/src/org/rockbox/widgets/RockboxWidgetConfigure.java
@@ -22,17 +22,18 @@
22package org.rockbox.widgets; 22package org.rockbox.widgets;
23 23
24import org.rockbox.R; 24import org.rockbox.R;
25import org.rockbox.RockboxService;
25 26
26import android.app.Activity; 27import android.app.Activity;
27import android.appwidget.AppWidgetManager; 28import android.appwidget.AppWidgetManager;
28import android.content.Context; 29import android.content.Context;
29import android.content.Intent; 30import android.content.Intent;
30import android.content.SharedPreferences; 31import android.content.SharedPreferences;
32import android.net.Uri;
31import android.os.Bundle; 33import android.os.Bundle;
32import android.view.View; 34import android.view.View;
33import android.widget.CheckBox; 35import android.widget.CheckBox;
34 36
35
36public class RockboxWidgetConfigure extends Activity 37public class RockboxWidgetConfigure extends Activity
37{ 38{
38 int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; 39 int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
@@ -84,6 +85,11 @@ public class RockboxWidgetConfigure extends Activity
84 AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); 85 AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
85 RockboxWidgetProvider.getInstance().updateAppWidget(context, appWidgetManager, mAppWidgetId, null); 86 RockboxWidgetProvider.getInstance().updateAppWidget(context, appWidgetManager, mAppWidgetId, null);
86 87
88 /* Ask for track information so that new widgets display properly
89 * if rockbox was already playing */
90 context.startService(new Intent("org.rockbox.ResendTrackUpdateInfo",
91 Uri.EMPTY, context, RockboxService.class));
92
87 Intent result = new Intent(); 93 Intent result = new Intent();
88 result.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId); 94 result.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
89 setResult(RESULT_OK, result); 95 setResult(RESULT_OK, result);
diff --git a/android/src/org/rockbox/widgets/RockboxWidgetProvider.java b/android/src/org/rockbox/widgets/RockboxWidgetProvider.java
index 4a012c7124..beeb81c13b 100644
--- a/android/src/org/rockbox/widgets/RockboxWidgetProvider.java
+++ b/android/src/org/rockbox/widgets/RockboxWidgetProvider.java
@@ -45,6 +45,7 @@ public class RockboxWidgetProvider extends AppWidgetProvider
45 super(); 45 super();
46 mInstance = this; 46 mInstance = this;
47 } 47 }
48
48 @Override 49 @Override
49 public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) 50 public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
50 { 51 {