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
(cherry picked from commit 17d674584b)
This commit is contained in:
committed by
Shaowei Shen
parent
36d1daefdd
commit
5bfc067e2a
@@ -314,19 +314,19 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements
|
||||
mHeaderIcon.setImageResource(iconRes);
|
||||
} else if (iconCompat != null) {
|
||||
Icon icon = iconCompat.toIcon(mContext);
|
||||
Configuration config = mContext.getResources().getConfiguration();
|
||||
int currentNightMode = config.uiMode & Configuration.UI_MODE_NIGHT_MASK;
|
||||
boolean isDarkThemeOn = currentNightMode == Configuration.UI_MODE_NIGHT_YES;
|
||||
WallpaperColors wallpaperColors = WallpaperColors.fromBitmap(icon.getBitmap());
|
||||
colorSetUpdated = !wallpaperColors.equals(mWallpaperColors);
|
||||
if (colorSetUpdated) {
|
||||
mAdapter.updateColorScheme(wallpaperColors, isDarkThemeOn);
|
||||
ColorFilter buttonColorFilter = new PorterDuffColorFilter(
|
||||
mAdapter.getController().getColorButtonBackground(),
|
||||
PorterDuff.Mode.SRC_IN);
|
||||
mDoneButton.getBackground().setColorFilter(buttonColorFilter);
|
||||
mStopButton.getBackground().setColorFilter(buttonColorFilter);
|
||||
mDoneButton.setTextColor(mAdapter.getController().getColorPositiveButtonText());
|
||||
if (icon.getType() != Icon.TYPE_BITMAP && icon.getType() != Icon.TYPE_ADAPTIVE_BITMAP) {
|
||||
// icon doesn't support getBitmap, use default value for color scheme
|
||||
updateButtonBackgroundColorFilter();
|
||||
} else {
|
||||
Configuration config = mContext.getResources().getConfiguration();
|
||||
int currentNightMode = config.uiMode & Configuration.UI_MODE_NIGHT_MASK;
|
||||
boolean isDarkThemeOn = currentNightMode == Configuration.UI_MODE_NIGHT_YES;
|
||||
WallpaperColors wallpaperColors = WallpaperColors.fromBitmap(icon.getBitmap());
|
||||
colorSetUpdated = !wallpaperColors.equals(mWallpaperColors);
|
||||
if (colorSetUpdated) {
|
||||
mAdapter.updateColorScheme(wallpaperColors, isDarkThemeOn);
|
||||
updateButtonBackgroundColorFilter();
|
||||
}
|
||||
}
|
||||
mHeaderIcon.setVisibility(View.VISIBLE);
|
||||
mHeaderIcon.setImageIcon(icon);
|
||||
@@ -368,6 +368,15 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements
|
||||
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) {
|
||||
if (drawable == null) {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user