Merge "Fix MediaSessionManager.Callback to be called with the media button session" into oc-dev
diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java
index 2cb9cdd4..e0017b5 100644
--- a/services/core/java/com/android/server/media/MediaSessionService.java
+++ b/services/core/java/com/android/server/media/MediaSessionService.java
@@ -673,7 +673,7 @@
public void onMediaButtonSessionChanged(MediaSessionRecord oldMediaButtonSession,
MediaSessionRecord newMediaButtonSession) {
if (DEBUG_KEY_EVENT) {
- Log.d(TAG, "Media button session will be changed to " + newMediaButtonSession);
+ Log.d(TAG, "Media button session is changed to " + newMediaButtonSession);
}
synchronized (mLock) {
if (oldMediaButtonSession != null) {
diff --git a/services/core/java/com/android/server/media/MediaSessionStack.java b/services/core/java/com/android/server/media/MediaSessionStack.java
index cd0da79..f474769 100644
--- a/services/core/java/com/android/server/media/MediaSessionStack.java
+++ b/services/core/java/com/android/server/media/MediaSessionStack.java
@@ -124,9 +124,7 @@
// When the media button session is removed, nullify the media button session and do not
// search for the alternative media session within the app. It's because the alternative
// media session might be a dummy which isn't able to handle the media key events.
- mOnMediaButtonSessionChangedListener.onMediaButtonSessionChanged(
- mMediaButtonSession, null);
- mMediaButtonSession = null;
+ updateMediaButtonSession(null);
}
clearCache(record.getUserId());
}
@@ -163,9 +161,7 @@
MediaSessionRecord newMediaButtonSession =
findMediaButtonSession(mMediaButtonSession.getUid());
if (newMediaButtonSession != mMediaButtonSession) {
- mOnMediaButtonSessionChangedListener.onMediaButtonSessionChanged(
- mMediaButtonSession, newMediaButtonSession);
- mMediaButtonSession = newMediaButtonSession;
+ updateMediaButtonSession(newMediaButtonSession);
}
}
}
@@ -199,9 +195,7 @@
// Found the media button session.
mAudioPlaybackMonitor.cleanUpAudioPlaybackUids(mediaButtonSession.getUid());
if (mMediaButtonSession != mediaButtonSession) {
- mOnMediaButtonSessionChangedListener.onMediaButtonSessionChanged(
- mMediaButtonSession, mediaButtonSession);
- mMediaButtonSession = mediaButtonSession;
+ updateMediaButtonSession(mediaButtonSession);
}
return;
}
@@ -262,6 +256,13 @@
return mMediaButtonSession;
}
+ private void updateMediaButtonSession(MediaSessionRecord newMediaButtonSession) {
+ MediaSessionRecord oldMediaButtonSession = mMediaButtonSession;
+ mMediaButtonSession = newMediaButtonSession;
+ mOnMediaButtonSessionChangedListener.onMediaButtonSessionChanged(
+ oldMediaButtonSession, newMediaButtonSession);
+ }
+
public MediaSessionRecord getDefaultVolumeSession() {
if (mCachedVolumeDefault != null) {
return mCachedVolumeDefault;