diff options
author | Adam Powell <adamp@google.com> | 2013-10-15 19:15:39 -0700 |
---|---|---|
committer | Adam Powell <adamp@google.com> | 2013-10-15 19:18:04 -0700 |
commit | 3b435fb2f0c868c468f3fb2cb2e3ea8314a1755a (patch) | |
tree | 9b731344cce69ee401ff3865bdada3229b99a87c | |
parent | 49b6d38fe7308d4641046af4a2d062cdc6033c30 (diff) | |
download | frameworks_base-3b435fb2f0c868c468f3fb2cb2e3ea8314a1755a.zip frameworks_base-3b435fb2f0c868c468f3fb2cb2e3ea8314a1755a.tar.gz frameworks_base-3b435fb2f0c868c468f3fb2cb2e3ea8314a1755a.tar.bz2 |
Fix stale data in keyguard transport control display
Make sure that caches are cleared at the right times and views have
their data populated correctly. Also fix a caching issue in
RemoteController.
Bug 11218218
Change-Id: Ieb833b5dc440ccd1b82050f12eb7059a4e0a412f
-rw-r--r-- | media/java/android/media/RemoteController.java | 1 | ||||
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java | 19 |
2 files changed, 12 insertions, 8 deletions
diff --git a/media/java/android/media/RemoteController.java b/media/java/android/media/RemoteController.java index 7865ec8..6dbb3cd 100644 --- a/media/java/android/media/RemoteController.java +++ b/media/java/android/media/RemoteController.java @@ -812,6 +812,7 @@ public final class RemoteController final OnClientUpdateListener l; synchronized(mInfoLock) { l = mOnClientUpdateListener; + mMetadataEditor = null; } if (l != null) { l.onClientChange(clearing); diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java index b7720ef..ce89275 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java @@ -101,9 +101,7 @@ public class KeyguardTransportControlView extends FrameLayout { new RemoteController.OnClientUpdateListener() { @Override public void onClientChange(boolean clearing) { - if (clearing) { - clearMetadata(); - } + clearMetadata(); } @Override @@ -302,6 +300,7 @@ public class KeyguardTransportControlView extends FrameLayout { mPopulateMetadataWhenAttached = null; } if (DEBUG) Log.v(TAG, "Registering TCV " + this); + mMetadata.clear(); mAudioManager.registerRemoteController(mRemoteController); KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mUpdateMonitor); } @@ -321,6 +320,7 @@ public class KeyguardTransportControlView extends FrameLayout { if (DEBUG) Log.v(TAG, "Unregistering TCV " + this); mAudioManager.unregisterRemoteController(mRemoteController); KeyguardUpdateMonitor.getInstance(mContext).removeCallback(mUpdateMonitor); + mMetadata.clear(); mUserSeeking = false; } @@ -394,10 +394,10 @@ public class KeyguardTransportControlView extends FrameLayout { Log.e(TAG, "Couldn't get remote control client package icon", e); } setBadgeIcon(badgeIcon); - if (!TextUtils.isEmpty(mMetadata.trackTitle)) { - mTrackTitle.setText(mMetadata.trackTitle); - } - StringBuilder sb = new StringBuilder(); + mTrackTitle.setText(!TextUtils.isEmpty(mMetadata.trackTitle) + ? mMetadata.trackTitle : null); + + final StringBuilder sb = new StringBuilder(); if (!TextUtils.isEmpty(mMetadata.artist)) { if (sb.length() != 0) { sb.append(" - "); @@ -410,7 +410,10 @@ public class KeyguardTransportControlView extends FrameLayout { } sb.append(mMetadata.albumTitle); } - mTrackArtistAlbum.setText(sb.toString()); + + final String trackArtistAlbum = sb.toString(); + mTrackArtistAlbum.setText(!TextUtils.isEmpty(trackArtistAlbum) ? + trackArtistAlbum : null); if (mMetadata.duration >= 0) { setSeekBarsEnabled(true); |