summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Beth Thibodeau <ethibodeau@google.com> 2020-04-30 19:43:37 -0400
committer Beth Thibodeau <ethibodeau@google.com> 2020-04-30 19:43:37 -0400
commit4b5ec838a6d78da0c996e9f07bec8feaf8ff236c (patch)
treea3031e8468fc48fd5c9ef5d8f31aa43291f411ab
parentfccec793d381e3983531654d990205cc4387e4f3 (diff)
Clear fields that do not have metadata
Returning early when there is no metadata available means that fields could potentially contain stale info, especially apparent in QQS. We should be clearing those fields instead. Fixes: 153606598 Test: manual - play from app with metadata, then switch to app without (e.g. Recorder), observe QQS does not have first app's title showing Change-Id: Ie280c10f67550ab0b3c680f72eeaef3f723ecb12
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java41
1 files changed, 23 insertions, 18 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java
index 9509e6d479e3..f87605382913 100644
--- a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java
@@ -315,11 +315,8 @@ public class MediaControlPanel {
appName.setTextColor(mForegroundColor);
}
+ // Can be null!
MediaMetadata mediaMetadata = mController.getMetadata();
- if (mediaMetadata == null) {
- Log.e(TAG, "Media metadata was null");
- return;
- }
ImageView albumView = mMediaNotifView.findViewById(R.id.album_art);
if (albumView != null) {
@@ -329,14 +326,20 @@ public class MediaControlPanel {
// Song name
TextView titleText = mMediaNotifView.findViewById(R.id.header_title);
- String songName = mediaMetadata.getString(MediaMetadata.METADATA_KEY_TITLE);
+ String songName = "";
+ if (mediaMetadata != null) {
+ songName = mediaMetadata.getString(MediaMetadata.METADATA_KEY_TITLE);
+ }
titleText.setText(songName);
titleText.setTextColor(mForegroundColor);
// Artist name (not in mini player)
TextView artistText = mMediaNotifView.findViewById(R.id.header_artist);
if (artistText != null) {
- String artistName = mediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST);
+ String artistName = "";
+ if (mediaMetadata != null) {
+ artistName = mediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST);
+ }
artistText.setText(artistName);
artistText.setTextColor(mForegroundColor);
}
@@ -439,21 +442,23 @@ public class MediaControlPanel {
private void processAlbumArt(MediaMetadata metadata, Icon largeIcon, ImageView albumView) {
Bitmap albumArt = null;
- // First look in URI fields
- for (String field : ART_URIS) {
- String uriString = metadata.getString(field);
- if (!TextUtils.isEmpty(uriString)) {
- albumArt = loadBitmapFromUri(Uri.parse(uriString));
- if (albumArt != null) {
- Log.d(TAG, "loaded art from " + field);
- break;
+ if (metadata != null) {
+ // First look in URI fields
+ for (String field : ART_URIS) {
+ String uriString = metadata.getString(field);
+ if (!TextUtils.isEmpty(uriString)) {
+ albumArt = loadBitmapFromUri(Uri.parse(uriString));
+ if (albumArt != null) {
+ Log.d(TAG, "loaded art from " + field);
+ break;
+ }
}
}
- }
- // Then check bitmap field
- if (albumArt == null) {
- albumArt = metadata.getBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART);
+ // Then check bitmap field
+ if (albumArt == null) {
+ albumArt = metadata.getBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART);
+ }
}
// Finally try the notification's largeIcon