Merge "@hide ConnectionService APIs." into lmp-dev
diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java
index be86741..cfbf3af 100644
--- a/media/java/android/media/session/MediaController.java
+++ b/media/java/android/media/session/MediaController.java
@@ -434,6 +434,14 @@
return mSessionBinder;
}
+ /**
+ * @hide
+ */
+ public boolean controlsSameSession(MediaController other) {
+ if (other == null) return false;
+ return mSessionBinder.asBinder() == other.getSessionBinder().asBinder();
+ }
+
private void addCallbackLocked(Callback cb, Handler handler) {
if (getHandlerForCallbackLocked(cb) != null) {
Log.w(TAG, "Callback is already added, ignoring");
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 90f9cdd..dd947f0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -1758,7 +1758,7 @@
}
}
- if (controller != mMediaController) {
+ if (!sameSessions(mMediaController, controller)) {
// We have a new media session
if (mMediaController != null) {
@@ -1807,6 +1807,12 @@
updateMediaMetaData(metaDataChanged);
}
+ private boolean sameSessions(MediaController a, MediaController b) {
+ if (a == b) return true;
+ if (a == null) return false;
+ return a.controlsSameSession(b);
+ }
+
/**
* Hide the album artwork that is fading out and release its bitmap.
*/