am 5514aff4: am c3c7b92a: Merge "Clean up role of component name in media button event receiver" into jb-mr2-dev
* commit '5514aff44d506ce23cd14d73962de335224db707':
Clean up role of component name in media button event receiver
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 6f284f8..0f160ce 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -2127,7 +2127,7 @@
mediaButtonIntent.setComponent(eventReceiver);
PendingIntent pi = PendingIntent.getBroadcast(mContext,
0/*requestCode, ignored*/, mediaButtonIntent, 0/*flags*/);
- unregisterMediaButtonIntent(pi, eventReceiver);
+ unregisterMediaButtonIntent(pi);
}
/**
@@ -2139,16 +2139,16 @@
if (eventReceiver == null) {
return;
}
- unregisterMediaButtonIntent(eventReceiver, null);
+ unregisterMediaButtonIntent(eventReceiver);
}
/**
* @hide
*/
- public void unregisterMediaButtonIntent(PendingIntent pi, ComponentName eventReceiver) {
+ public void unregisterMediaButtonIntent(PendingIntent pi) {
IAudioService service = getService();
try {
- service.unregisterMediaButtonIntent(pi, eventReceiver);
+ service.unregisterMediaButtonIntent(pi);
} catch (RemoteException e) {
Log.e(TAG, "Dead object in unregisterMediaButtonIntent"+e);
}
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index e35f47b..23f6e47 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -4889,7 +4889,7 @@
mRemoteVolumeObs = null;
}
- /** precondition: mediaIntent != null, eventReceiver != null */
+ /** precondition: mediaIntent != null */
public RemoteControlStackEntry(PendingIntent mediaIntent, ComponentName eventReceiver) {
mMediaIntent = mediaIntent;
mReceiverComponent = eventReceiver;
@@ -5062,6 +5062,10 @@
Settings.System.MEDIA_BUTTON_RECEIVER, UserHandle.USER_CURRENT);
if ((null != receiverName) && !receiverName.isEmpty()) {
ComponentName eventReceiver = ComponentName.unflattenFromString(receiverName);
+ if (eventReceiver == null) {
+ // an invalid name was persisted
+ return;
+ }
// construct a PendingIntent targeted to the restored component name
// for the media button and register it
Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
@@ -5077,7 +5081,7 @@
* Helper function:
* Set the new remote control receiver at the top of the RC focus stack.
* Called synchronized on mAudioFocusLock, then mRCStack
- * precondition: mediaIntent != null, target != null
+ * precondition: mediaIntent != null
*/
private void pushMediaButtonReceiver_syncAfRcs(PendingIntent mediaIntent, ComponentName target) {
// already at top of stack?
@@ -5106,8 +5110,10 @@
mRCStack.push(rcse); // rcse is never null
// post message to persist the default media button receiver
- mAudioHandler.sendMessage( mAudioHandler.obtainMessage(
- MSG_PERSIST_MEDIABUTTONRECEIVER, 0, 0, target/*obj*/) );
+ if (target != null) {
+ mAudioHandler.sendMessage( mAudioHandler.obtainMessage(
+ MSG_PERSIST_MEDIABUTTONRECEIVER, 0, 0, target/*obj*/) );
+ }
}
/**
@@ -5407,7 +5413,7 @@
/**
* see AudioManager.registerMediaButtonIntent(PendingIntent pi, ComponentName c)
- * precondition: mediaIntent != null, target != null
+ * precondition: mediaIntent != null
*/
public void registerMediaButtonIntent(PendingIntent mediaIntent, ComponentName eventReceiver) {
Log.i(TAG, " Remote Control registerMediaButtonIntent() for " + mediaIntent);
@@ -5425,7 +5431,7 @@
* see AudioManager.unregisterMediaButtonIntent(PendingIntent mediaIntent)
* precondition: mediaIntent != null, eventReceiver != null
*/
- public void unregisterMediaButtonIntent(PendingIntent mediaIntent, ComponentName eventReceiver)
+ public void unregisterMediaButtonIntent(PendingIntent mediaIntent)
{
Log.i(TAG, " Remote Control unregisterMediaButtonIntent() for " + mediaIntent);
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index e21b26b..270c26d 100644
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -121,7 +121,7 @@
void dispatchMediaKeyEventUnderWakelock(in KeyEvent keyEvent);
void registerMediaButtonIntent(in PendingIntent pi, in ComponentName c);
- oneway void unregisterMediaButtonIntent(in PendingIntent pi, in ComponentName c);
+ oneway void unregisterMediaButtonIntent(in PendingIntent pi);
oneway void registerMediaButtonEventReceiverForCalls(in ComponentName c);
oneway void unregisterMediaButtonEventReceiverForCalls();