summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2013-10-15 19:15:39 -0700
committerAdam Powell <adamp@google.com>2013-10-15 19:18:04 -0700
commit3b435fb2f0c868c468f3fb2cb2e3ea8314a1755a (patch)
tree9b731344cce69ee401ff3865bdada3229b99a87c
parent49b6d38fe7308d4641046af4a2d062cdc6033c30 (diff)
downloadframeworks_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.java1
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java19
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);