From e5d3053a44ebb3ced9d2b65d6e4bf2ff05e8c0c6 Mon Sep 17 00:00:00 2001 From: Christopher Eby Date: Tue, 23 Aug 2011 21:07:17 -0500 Subject: [PATCH] Remove programming-created media button receiver This was an optimization (since manifest-defined receivers have to be constructed again for each broadcast) that doesn't seem to help all that much. I mainly removed it because it makes using the Froyo registerMediaButton API harder (impossible?) to use. Also change receiver priority to 999, since apparently >=1000 should only be used by the system. --- AndroidManifest.xml | 2 +- src/org/kreed/vanilla/PlaybackService.java | 26 +--------------------- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 949e49fa..53282d6e 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -88,7 +88,7 @@ THE SOFTWARE. android:resource="@xml/four_square_widget" /> - + diff --git a/src/org/kreed/vanilla/PlaybackService.java b/src/org/kreed/vanilla/PlaybackService.java index aec00732..a81db72e 100644 --- a/src/org/kreed/vanilla/PlaybackService.java +++ b/src/org/kreed/vanilla/PlaybackService.java @@ -36,7 +36,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; -import android.content.pm.PackageManager; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Build; @@ -299,10 +298,6 @@ public final class PlaybackService extends Service implements Handler.Callback, // we haven't registered the receiver yet } - // Re-enable the external receiver - PackageManager manager = getPackageManager(); - manager.setComponentEnabledSetting(new ComponentName(this, MediaButtonReceiver.class), PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP); - if (mWakeLock != null && mWakeLock.isHeld()) mWakeLock.release(); } @@ -419,7 +414,6 @@ public final class PlaybackService extends Service implements Handler.Callback, } } else if ("media_button".equals(key)) { MediaButtonHandler.getInstance().setUseHeadsetControls(settings.getBoolean("media_button", true)); - setupReceiver(); } else if ("use_idle_timeout".equals(key) || "idle_timeout".equals(key)) { mIdleTimeout = settings.getBoolean("use_idle_timeout", false) ? settings.getInt("idle_timeout", 3600) : 0; userActionTriggered(); @@ -663,9 +657,6 @@ public final class PlaybackService extends Service implements Handler.Callback, if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(action)) { if (mHeadsetPause) unsetFlag(FLAG_PLAYING); - } else if (Intent.ACTION_MEDIA_BUTTON.equals(action)) { - if (MediaButtonHandler.getInstance().process(intent)) - abortBroadcast(); } } }; @@ -713,20 +704,10 @@ public final class PlaybackService extends Service implements Handler.Callback, private void setupReceiver() { - if (mReceiver == null) { + if (mReceiver == null) mReceiver = new Receiver(); - } else { - try { - unregisterReceiver(mReceiver); - } catch (IllegalArgumentException e) { - } - } - IntentFilter filter = new IntentFilter(); filter.addAction(AudioManager.ACTION_AUDIO_BECOMING_NOISY); - if (MediaButtonHandler.getInstance().useHeadsetControls()) - filter.addAction(Intent.ACTION_MEDIA_BUTTON); - filter.setPriority(2000); registerReceiver(mReceiver, filter); } @@ -808,11 +789,6 @@ public final class PlaybackService extends Service implements Handler.Callback, mHeadsetPause = mSettings.getBoolean("headset_pause", true); setupReceiver(); - // Don't receive broadcasts through the external receiver now that - // we get them in the Service's receiver - PackageManager manager = getPackageManager(); - manager.setComponentEnabledSetting(new ComponentName(this, MediaButtonReceiver.class), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); - mCallListener = new InCallListener(); TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); telephonyManager.listen(mCallListener, PhoneStateListener.LISTEN_CALL_STATE);