diff options
Diffstat (limited to 'android/src/org/rockbox/Helper/MediaButtonReceiver.java')
-rw-r--r-- | android/src/org/rockbox/Helper/MediaButtonReceiver.java | 17 |
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 @@ | |||
22 | package org.rockbox.Helper; | 22 | package org.rockbox.Helper; |
23 | 23 | ||
24 | import java.lang.reflect.Method; | 24 | import java.lang.reflect.Method; |
25 | 25 | import org.rockbox.RockboxFramebuffer; | |
26 | import org.rockbox.RockboxService; | 26 | import org.rockbox.RockboxService; |
27 | |||
28 | import android.content.BroadcastReceiver; | 27 | import android.content.BroadcastReceiver; |
29 | import android.content.ComponentName; | 28 | import android.content.ComponentName; |
30 | import android.content.Context; | 29 | import 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 | } |