From dae439af0a620477d474011432bc6b0e3c0d8b70 Mon Sep 17 00:00:00 2001 From: Maurus Cuelenaere Date: Sun, 30 Jan 2011 20:42:35 +0100 Subject: [PATCH 07/10] Android: refactor intent handling + use use constants for internal intents --- android/src/org/rockbox/RockboxService.java | 50 ++++++++++--------- .../org/rockbox/widgets/RockboxWidgetProvider.java | 8 ++-- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/android/src/org/rockbox/RockboxService.java b/android/src/org/rockbox/RockboxService.java index 38c50c5..c0c6703 100644 --- a/android/src/org/rockbox/RockboxService.java +++ b/android/src/org/rockbox/RockboxService.java @@ -77,6 +77,11 @@ public class RockboxService extends Service public static final int RESULT_FB_INITIALIZED = 2; public static final int RESULT_ERROR_OCCURED = 3; + public static final String ACTION_PLAYPAUSE = "org.rockbox.PlayPause"; + public static final String ACTION_PREV = "org.rockbox.Prev"; + public static final String ACTION_NEXT = "org.rockbox.Next"; + public static final String ACTION_STOP = "org.rockbox.Stop"; + @Override public void onCreate() { @@ -114,36 +119,33 @@ public class RockboxService extends Service { LOG("Start Service"); - if (intent != null && intent.hasExtra("callback")) - resultReceiver = (ResultReceiver) intent.getParcelableExtra("callback"); - if (!rbLibLoaded) - startservice(); - - if (intent != null && intent.getAction() != null) + if (intent != null) { - Log.d("RockboxService", intent.getAction()); - if (intent.getAction().equals("org.rockbox.PlayPause")) - { - if (fb != null) - fb.onKeyUp(KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, null); - } - else if (intent.getAction().equals("org.rockbox.Prev")) - { - if (fb != null) - fb.onKeyUp(KeyEvent.KEYCODE_MEDIA_PREVIOUS, null); - } - else if (intent.getAction().equals("org.rockbox.Next")) - { - if (fb != null) - fb.onKeyUp(KeyEvent.KEYCODE_MEDIA_NEXT, null); - } - else if (intent.getAction().equals("org.rockbox.Stop")) + if (intent.hasExtra("callback")) + resultReceiver = (ResultReceiver) intent.getParcelableExtra("callback"); + + if (intent.getAction() != null) { + String intentAction = intent.getAction(); + LOG("Intent received: " + intentAction); + if (fb != null) - fb.onKeyUp(KeyEvent.KEYCODE_MEDIA_STOP, null); + { + if (intentAction.equals(ACTION_PLAYPAUSE)) + fb.onKeyUp(KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, null); + else if (intentAction.equals(ACTION_PREV)) + fb.onKeyUp(KeyEvent.KEYCODE_MEDIA_PREVIOUS, null); + else if (intentAction.equals(ACTION_NEXT)) + fb.onKeyUp(KeyEvent.KEYCODE_MEDIA_NEXT, null); + else if (intentAction.equals(ACTION_STOP)) + fb.onKeyUp(KeyEvent.KEYCODE_MEDIA_STOP, null); + } } } + if (!rbLibLoaded) + startservice(); + /* Display a notification about us starting. * We put an icon in the status bar. */ if (fg_runner == null) diff --git a/android/src/org/rockbox/widgets/RockboxWidgetProvider.java b/android/src/org/rockbox/widgets/RockboxWidgetProvider.java index 756d9f9..4fdaca1 100644 --- a/android/src/org/rockbox/widgets/RockboxWidgetProvider.java +++ b/android/src/org/rockbox/widgets/RockboxWidgetProvider.java @@ -106,7 +106,7 @@ public class RockboxWidgetProvider extends AppWidgetProvider if (state.enablePrev) { - intent = new Intent("org.rockbox.Prev", Uri.EMPTY, context, RockboxService.class); + intent = new Intent(RockboxService.ACTION_PREV, Uri.EMPTY, context, RockboxService.class); pendingIntent = PendingIntent.getService(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.prev, pendingIntent); } @@ -115,7 +115,7 @@ public class RockboxWidgetProvider extends AppWidgetProvider if (state.enablePlayPause) { - intent = new Intent("org.rockbox.PlayPause", Uri.EMPTY, context, RockboxService.class); + intent = new Intent(RockboxService.ACTION_PLAYPAUSE, Uri.EMPTY, context, RockboxService.class); pendingIntent = PendingIntent.getService(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.playPause, pendingIntent); } @@ -124,7 +124,7 @@ public class RockboxWidgetProvider extends AppWidgetProvider if (state.enableNext) { - intent = new Intent("org.rockbox.Next", Uri.EMPTY, context, RockboxService.class); + intent = new Intent(RockboxService.ACTION_NEXT, Uri.EMPTY, context, RockboxService.class); pendingIntent = PendingIntent.getService(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.next, pendingIntent); } @@ -133,7 +133,7 @@ public class RockboxWidgetProvider extends AppWidgetProvider if (state.enableStop) { - intent = new Intent("org.rockbox.Stop", Uri.EMPTY, context, RockboxService.class); + intent = new Intent(RockboxService.ACTION_STOP, Uri.EMPTY, context, RockboxService.class); pendingIntent = PendingIntent.getService(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.stop, pendingIntent); } -- 1.7.1