Loading packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java +7 −4 Original line number Diff line number Diff line Loading @@ -928,13 +928,16 @@ public class MediaControlPanel { if (artworkIcon.getType() == Icon.TYPE_BITMAP || artworkIcon.getType() == Icon.TYPE_ADAPTIVE_BITMAP) { // Avoids extra processing if this is already a valid bitmap return WallpaperColors .fromBitmap(artworkIcon.getBitmap()); Bitmap artworkBitmap = artworkIcon.getBitmap(); if (artworkBitmap.isRecycled()) { Log.d(TAG, "Cannot load wallpaper color from a recycled bitmap"); return null; } return WallpaperColors.fromBitmap(artworkBitmap); } else { Drawable artworkDrawable = artworkIcon.loadDrawable(mContext); if (artworkDrawable != null) { return WallpaperColors .fromDrawable(artworkIcon.loadDrawable(mContext)); return WallpaperColors.fromDrawable(artworkDrawable); } } } Loading packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaControlPanelTest.kt +13 −0 Original line number Diff line number Diff line Loading @@ -730,6 +730,19 @@ public class MediaControlPanelTest : SysuiTestCase() { .isNotEqualTo(greenArtwork.getDrawable(1).constantState) } @Test fun getWallpaperColor_recycledBitmap_notCrashing() { // Setup redArt icon. val redBmp = Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_8888) val redArt = Icon.createWithBitmap(redBmp) // Recycle bitmap of redArt icon. redArt.bitmap.recycle() // get wallpaperColor without illegal exception. player.getWallpaperColor(redArt) } @Test fun bind_seekBarDisabled_hasActions_seekBarVisibilityIsSetToInvisible() { useRealConstraintSets() Loading Loading
packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java +7 −4 Original line number Diff line number Diff line Loading @@ -928,13 +928,16 @@ public class MediaControlPanel { if (artworkIcon.getType() == Icon.TYPE_BITMAP || artworkIcon.getType() == Icon.TYPE_ADAPTIVE_BITMAP) { // Avoids extra processing if this is already a valid bitmap return WallpaperColors .fromBitmap(artworkIcon.getBitmap()); Bitmap artworkBitmap = artworkIcon.getBitmap(); if (artworkBitmap.isRecycled()) { Log.d(TAG, "Cannot load wallpaper color from a recycled bitmap"); return null; } return WallpaperColors.fromBitmap(artworkBitmap); } else { Drawable artworkDrawable = artworkIcon.loadDrawable(mContext); if (artworkDrawable != null) { return WallpaperColors .fromDrawable(artworkIcon.loadDrawable(mContext)); return WallpaperColors.fromDrawable(artworkDrawable); } } } Loading
packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaControlPanelTest.kt +13 −0 Original line number Diff line number Diff line Loading @@ -730,6 +730,19 @@ public class MediaControlPanelTest : SysuiTestCase() { .isNotEqualTo(greenArtwork.getDrawable(1).constantState) } @Test fun getWallpaperColor_recycledBitmap_notCrashing() { // Setup redArt icon. val redBmp = Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_8888) val redArt = Icon.createWithBitmap(redBmp) // Recycle bitmap of redArt icon. redArt.bitmap.recycle() // get wallpaperColor without illegal exception. player.getWallpaperColor(redArt) } @Test fun bind_seekBarDisabled_hasActions_seekBarVisibilityIsSetToInvisible() { useRealConstraintSets() Loading