diff options
Diffstat (limited to 'android')
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 @@ | |||
22 | package org.rockbox.widgets; | 22 | package org.rockbox.widgets; |
23 | 23 | ||
24 | import org.rockbox.R; | 24 | import org.rockbox.R; |
25 | import org.rockbox.RockboxService; | ||
25 | 26 | ||
26 | import android.app.Activity; | 27 | import android.app.Activity; |
27 | import android.appwidget.AppWidgetManager; | 28 | import android.appwidget.AppWidgetManager; |
28 | import android.content.Context; | 29 | import android.content.Context; |
29 | import android.content.Intent; | 30 | import android.content.Intent; |
30 | import android.content.SharedPreferences; | 31 | import android.content.SharedPreferences; |
32 | import android.net.Uri; | ||
31 | import android.os.Bundle; | 33 | import android.os.Bundle; |
32 | import android.view.View; | 34 | import android.view.View; |
33 | import android.widget.CheckBox; | 35 | import android.widget.CheckBox; |
34 | 36 | ||
35 | |||
36 | public class RockboxWidgetConfigure extends Activity | 37 | public 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 | { |