summaryrefslogtreecommitdiff
path: root/android/src/org/rockbox/Helper/MediaButtonReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/src/org/rockbox/Helper/MediaButtonReceiver.java')
-rw-r--r--android/src/org/rockbox/Helper/MediaButtonReceiver.java17
1 files changed, 12 insertions, 5 deletions
diff --git a/android/src/org/rockbox/Helper/MediaButtonReceiver.java b/android/src/org/rockbox/Helper/MediaButtonReceiver.java
index 3749cec32a..a57bdd4831 100644
--- a/android/src/org/rockbox/Helper/MediaButtonReceiver.java
+++ b/android/src/org/rockbox/Helper/MediaButtonReceiver.java
@@ -22,9 +22,8 @@
22package org.rockbox.Helper; 22package org.rockbox.Helper;
23 23
24import java.lang.reflect.Method; 24import java.lang.reflect.Method;
25 25import org.rockbox.RockboxFramebuffer;
26import org.rockbox.RockboxService; 26import org.rockbox.RockboxService;
27
28import android.content.BroadcastReceiver; 27import android.content.BroadcastReceiver;
29import android.content.ComponentName; 28import android.content.ComponentName;
30import android.content.Context; 29import android.content.Context;
@@ -73,7 +72,12 @@ public class MediaButtonReceiver
73 72
74 /* helper class for the manifest */ 73 /* helper class for the manifest */
75 public static class MediaReceiver extends BroadcastReceiver 74 public static class MediaReceiver extends BroadcastReceiver
76 { 75 {
76 private void startService(Context c, Intent baseIntent)
77 {
78 baseIntent.setClass(c, RockboxService.class);
79 c.startService(baseIntent);
80 }
77 @Override 81 @Override
78 public void onReceive(Context context, Intent intent) 82 public void onReceive(Context context, Intent intent)
79 { 83 {
@@ -81,8 +85,11 @@ public class MediaButtonReceiver
81 { 85 {
82 KeyEvent key = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); 86 KeyEvent key = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
83 if (key.getAction() == KeyEvent.ACTION_UP) 87 if (key.getAction() == KeyEvent.ACTION_UP)
84 { /* pass the pressed key to Rockbox */ 88 { /* pass the pressed key to Rockbox, starting it if needed */
85 if (RockboxService.get_instance().get_fb().dispatchKeyEvent(key)) 89 RockboxService s = RockboxService.get_instance();
90 if (s == null || !s.isRockboxRunning())
91 startService(context, intent);
92 else if (RockboxFramebuffer.buttonHandler(key.getKeyCode(), false))
86 abortBroadcast(); 93 abortBroadcast();
87 } 94 }
88 } 95 }