From 3e5ba30a66839d472bb891599ab9ae8e1edef1ae Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Mon, 20 Mar 2017 20:56:32 +0100 Subject: [PATCH] Cleaned up media button handling --- .../service/MediaButtonIntentReceiver.java | 14 +++++++++----- .../kabouzeid/gramophone/service/MusicService.java | 5 +---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java b/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java index 7b6b4b12..607aea4f 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MediaButtonIntentReceiver.java @@ -83,11 +83,17 @@ public class MediaButtonIntentReceiver extends WakefulBroadcastReceiver { @Override public void onReceive(final Context context, final Intent intent) { if (DEBUG) Log.v(TAG, "Received intent: " + intent); + if (handleIntent(context, intent) && isOrderedBroadcast()) { + abortBroadcast(); + } + } + + public static boolean handleIntent(final Context context, final Intent intent) { final String intentAction = intent.getAction(); if (Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { final KeyEvent event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (event == null) { - return; + return false; } final int keycode = event.getKeyCode(); @@ -147,14 +153,12 @@ public class MediaButtonIntentReceiver extends WakefulBroadcastReceiver { } else { startService(context, command); } + return true; } } - if (isOrderedBroadcast()) { - abortBroadcast(); - } - releaseWakeLockIfHandlerIdle(); } } + return false; } private static void startService(Context context, String command) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java index 28db5203..4cdbc318 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java @@ -136,7 +136,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP private AudioManager audioManager; @SuppressWarnings("deprecation") private MediaSessionCompat mediaSession; - private MediaButtonIntentReceiver mediaButtonIntentReceiver = new MediaButtonIntentReceiver(); private PowerManager.WakeLock wakeLock; private PlaybackHandler playerHandler; private final AudioManager.OnAudioFocusChangeListener audioFocusListener = new AudioManager.OnAudioFocusChangeListener() { @@ -268,8 +267,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP @Override public boolean onMediaButtonEvent(Intent mediaButtonEvent) { - mediaButtonIntentReceiver.onReceive(MusicService.this, mediaButtonEvent); - return true; + return MediaButtonIntentReceiver.handleIntent(MusicService.this, mediaButtonEvent); } }); @@ -281,7 +279,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP @Override public int onStartCommand(@Nullable Intent intent, int flags, int startId) { - MediaButtonReceiver.handleIntent(mediaSession, intent); if (intent != null) { if (intent.getAction() != null) { restoreQueuesAndPositionIfNecessary();