Merge "Fix crash when loading album art by resource" into tm-qpr-dev am: 531b63c1a6 am: ce0c43434b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19353989

Change-Id: I53ba256878d46f22390689de5eadc17864049d53
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Beth Thibodeau
2022-07-20 18:25:37 +00:00
committed by Automerger Merge Worker
2 changed files with 28 additions and 2 deletions

View File

@@ -682,9 +682,22 @@ public class MediaControlPanel {
Drawable artwork;
boolean isArtworkBound;
Icon artworkIcon = data.getArtwork();
WallpaperColors wallpaperColors = null;
if (artworkIcon != null) {
WallpaperColors wallpaperColors = WallpaperColors
.fromBitmap(artworkIcon.getBitmap());
if (artworkIcon.getType() == Icon.TYPE_BITMAP
|| artworkIcon.getType() == Icon.TYPE_ADAPTIVE_BITMAP) {
// Avoids extra processing if this is already a valid bitmap
wallpaperColors = WallpaperColors
.fromBitmap(artworkIcon.getBitmap());
} else {
Drawable artworkDrawable = artworkIcon.loadDrawable(mContext);
if (artworkDrawable != null) {
wallpaperColors = WallpaperColors
.fromDrawable(artworkIcon.loadDrawable(mContext));
}
}
}
if (wallpaperColors != null) {
mutableColorScheme = new ColorScheme(wallpaperColors, true, Style.CONTENT);
Drawable albumArt = getScaledBackground(artworkIcon, width, height);
GradientDrawable gradient = (GradientDrawable) mContext

View File

@@ -560,6 +560,19 @@ public class MediaControlPanelTest : SysuiTestCase() {
verify(albumView).setLayerType(View.LAYER_TYPE_HARDWARE, null)
}
@Test
fun bindAlbumView_artUsesResource() {
val albumArt = Icon.createWithResource(context, R.drawable.ic_android)
val state = mediaData.copy(artwork = albumArt)
player.attachPlayer(viewHolder)
player.bindPlayer(state, PACKAGE)
bgExecutor.runAllReady()
mainExecutor.runAllReady()
verify(albumView).setImageDrawable(any(Drawable::class.java))
}
@Test
fun bindAlbumView_setAfterExecutors() {
val bmp = Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_8888)