diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaManager.java | 45 |
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; + } } |