From 3b435fb2f0c868c468f3fb2cb2e3ea8314a1755a Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Tue, 15 Oct 2013 19:15:39 -0700 Subject: 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 --- .../keyguard/KeyguardTransportControlView.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'packages/Keyguard') 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); -- cgit v1.1