DO NOT MERGE: Downbranch merge conflict [Output Switcher] Fix situation when icon is not available for getBitmap
if icon we get from app metadata is not available for getBitmap, use default colorscheme as color filter. Bug: 232702573 Test: Verified on device Change-Id: Ibd4f2644500c87b4ebb731f6f8fee64188bb7e8f
This commit is contained in:
@@ -314,19 +314,19 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements
|
|||||||
mHeaderIcon.setImageResource(iconRes);
|
mHeaderIcon.setImageResource(iconRes);
|
||||||
} else if (iconCompat != null) {
|
} else if (iconCompat != null) {
|
||||||
Icon icon = iconCompat.toIcon(mContext);
|
Icon icon = iconCompat.toIcon(mContext);
|
||||||
Configuration config = mContext.getResources().getConfiguration();
|
if (icon.getType() != Icon.TYPE_BITMAP && icon.getType() != Icon.TYPE_ADAPTIVE_BITMAP) {
|
||||||
int currentNightMode = config.uiMode & Configuration.UI_MODE_NIGHT_MASK;
|
// icon doesn't support getBitmap, use default value for color scheme
|
||||||
boolean isDarkThemeOn = currentNightMode == Configuration.UI_MODE_NIGHT_YES;
|
updateButtonBackgroundColorFilter();
|
||||||
WallpaperColors wallpaperColors = WallpaperColors.fromBitmap(icon.getBitmap());
|
} else {
|
||||||
colorSetUpdated = !wallpaperColors.equals(mWallpaperColors);
|
Configuration config = mContext.getResources().getConfiguration();
|
||||||
if (colorSetUpdated) {
|
int currentNightMode = config.uiMode & Configuration.UI_MODE_NIGHT_MASK;
|
||||||
mAdapter.updateColorScheme(wallpaperColors, isDarkThemeOn);
|
boolean isDarkThemeOn = currentNightMode == Configuration.UI_MODE_NIGHT_YES;
|
||||||
ColorFilter buttonColorFilter = new PorterDuffColorFilter(
|
WallpaperColors wallpaperColors = WallpaperColors.fromBitmap(icon.getBitmap());
|
||||||
mAdapter.getController().getColorButtonBackground(),
|
colorSetUpdated = !wallpaperColors.equals(mWallpaperColors);
|
||||||
PorterDuff.Mode.SRC_IN);
|
if (colorSetUpdated) {
|
||||||
mDoneButton.getBackground().setColorFilter(buttonColorFilter);
|
mAdapter.updateColorScheme(wallpaperColors, isDarkThemeOn);
|
||||||
mStopButton.getBackground().setColorFilter(buttonColorFilter);
|
updateButtonBackgroundColorFilter();
|
||||||
mDoneButton.setTextColor(mAdapter.getController().getColorPositiveButtonText());
|
}
|
||||||
}
|
}
|
||||||
mHeaderIcon.setVisibility(View.VISIBLE);
|
mHeaderIcon.setVisibility(View.VISIBLE);
|
||||||
mHeaderIcon.setImageIcon(icon);
|
mHeaderIcon.setImageIcon(icon);
|
||||||
@@ -368,6 +368,15 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements
|
|||||||
mStopButton.setOnClickListener(v -> onStopButtonClick());
|
mStopButton.setOnClickListener(v -> onStopButtonClick());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateButtonBackgroundColorFilter() {
|
||||||
|
ColorFilter buttonColorFilter = new PorterDuffColorFilter(
|
||||||
|
mAdapter.getController().getColorButtonBackground(),
|
||||||
|
PorterDuff.Mode.SRC_IN);
|
||||||
|
mDoneButton.getBackground().setColorFilter(buttonColorFilter);
|
||||||
|
mStopButton.getBackground().setColorFilter(buttonColorFilter);
|
||||||
|
mDoneButton.setTextColor(mAdapter.getController().getColorPositiveButtonText());
|
||||||
|
}
|
||||||
|
|
||||||
private Drawable resizeDrawable(Drawable drawable, int size) {
|
private Drawable resizeDrawable(Drawable drawable, int size) {
|
||||||
if (drawable == null) {
|
if (drawable == null) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user