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.
This commit is contained in:
Christopher Eby 2011-08-23 21:07:17 -05:00
parent 7715ec7dde
commit e5d3053a44
2 changed files with 2 additions and 26 deletions

View File

@ -88,7 +88,7 @@ THE SOFTWARE.
android:resource="@xml/four_square_widget" />
</receiver>
<receiver android:name="MediaButtonReceiver" >
<intent-filter android:priority="1000">
<intent-filter android:priority="999">
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>

View File

@ -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);