summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java45
1 files changed, 25 insertions, 20 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
index abc261e6bbf6..f737a8cec4f0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java
@@ -172,27 +172,28 @@ public class NotificationMediaManager implements Dumpable {
}
}
- if (mediaNotification != null) {
- mMediaNotificationKey = mediaNotification.notification.getKey();
- if (DEBUG_MEDIA) {
- Log.v(TAG, "DEBUG_MEDIA: Found new media notification: key="
- + mMediaNotificationKey + " controller=" + mMediaController);
- }
- }
-
if (controller != null && !sameSessions(mMediaController, controller)) {
// We have a new media session
- clearCurrentMediaNotification();
+ clearCurrentMediaNotificationSession();
mMediaController = controller;
mMediaController.registerCallback(mMediaListener);
mMediaMetadata = mMediaController.getMetadata();
if (DEBUG_MEDIA) {
- Log.v(TAG, "DEBUG_MEDIA: insert listener, receive metadata: "
- + mMediaMetadata);
+ Log.v(TAG, "DEBUG_MEDIA: insert listener, found new controller: "
+ + mMediaController + ", receive metadata: " + mMediaMetadata);
}
metaDataChanged = true;
}
+
+ if (mediaNotification != null
+ && !mediaNotification.notification.getKey().equals(mMediaNotificationKey)) {
+ mMediaNotificationKey = mediaNotification.notification.getKey();
+ if (DEBUG_MEDIA) {
+ Log.v(TAG, "DEBUG_MEDIA: Found new media notification: key="
+ + mMediaNotificationKey);
+ }
+ }
}
if (metaDataChanged) {
@@ -203,15 +204,7 @@ public class NotificationMediaManager implements Dumpable {
public void clearCurrentMediaNotification() {
mMediaNotificationKey = null;
- mMediaMetadata = null;
- if (mMediaController != null) {
- if (DEBUG_MEDIA) {
- Log.v(TAG, "DEBUG_MEDIA: Disconnecting from old controller: "
- + mMediaController.getPackageName());
- }
- mMediaController.unregisterCallback(mMediaListener);
- }
- mMediaController = null;
+ clearCurrentMediaNotificationSession();
}
@Override
@@ -265,4 +258,16 @@ public class NotificationMediaManager implements Dumpable {
entry.getExpandedContentView()
.findViewById(com.android.internal.R.id.media_actions) != null;
}
+
+ private void clearCurrentMediaNotificationSession() {
+ mMediaMetadata = null;
+ if (mMediaController != null) {
+ if (DEBUG_MEDIA) {
+ Log.v(TAG, "DEBUG_MEDIA: Disconnecting from old controller: "
+ + mMediaController.getPackageName());
+ }
+ mMediaController.unregisterCallback(mMediaListener);
+ }
+ mMediaController = null;
+ }
}