diff options
2 files changed, 17 insertions, 22 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java index d8dba71c0a4f..d18088ecaad8 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java @@ -26,7 +26,6 @@ import static android.view.WindowManager.TRANSIT_CHANGE; import android.app.ActivityManager.RunningTaskInfo; import android.content.ContentResolver; import android.content.Context; -import android.graphics.Color; import android.graphics.Point; import android.graphics.Rect; import android.graphics.Region; @@ -175,7 +174,6 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { if (decoration == null) return; decoration.relayout(taskInfo); - setupCaptionColor(taskInfo, decoration); } @Override @@ -237,15 +235,6 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { decoration.close(); } - private void setupCaptionColor(RunningTaskInfo taskInfo, CaptionWindowDecoration decoration) { - if (TaskInfoKt.isTransparentCaptionBarAppearance(taskInfo)) { - decoration.setCaptionColor(Color.TRANSPARENT); - } else { - final int statusBarColor = taskInfo.taskDescription.getStatusBarColor(); - decoration.setCaptionColor(statusBarColor); - } - } - private boolean shouldShowWindowDecor(RunningTaskInfo taskInfo) { if (taskInfo.getWindowingMode() == WINDOWING_MODE_FREEFORM) { return true; @@ -311,7 +300,6 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel { windowDecoration.setTaskDragResizer(taskPositioner); windowDecoration.relayout(taskInfo, startT, finishT, false /* applyStartTransactionOnDraw */, false /* setTaskCropAndPosition */); - setupCaptionColor(taskInfo, windowDecoration); } private class CaptionTouchEventListener implements diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java index 231570f5d90e..349ee0b1fcda 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java @@ -35,7 +35,6 @@ import android.graphics.Insets; import android.graphics.Point; import android.graphics.Rect; import android.graphics.drawable.GradientDrawable; -import android.graphics.drawable.VectorDrawable; import android.os.Handler; import android.util.Size; import android.view.Choreographer; @@ -310,6 +309,9 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL } private void bindData(View rootView, RunningTaskInfo taskInfo) { + // Set up the tint first so that the drawable can be stylized when loaded. + setupCaptionColor(taskInfo); + final boolean isFullscreen = taskInfo.getWindowingMode() == WindowConfiguration.WINDOWING_MODE_FULLSCREEN; rootView.findViewById(R.id.maximize_window) @@ -317,7 +319,16 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL : R.drawable.decor_maximize_button_dark); } - void setCaptionColor(int captionColor) { + private void setupCaptionColor(RunningTaskInfo taskInfo) { + if (TaskInfoKt.isTransparentCaptionBarAppearance(taskInfo)) { + setCaptionColor(Color.TRANSPARENT); + } else { + final int statusBarColor = taskInfo.taskDescription.getStatusBarColor(); + setCaptionColor(statusBarColor); + } + } + + private void setCaptionColor(int captionColor) { if (mResult.mRootView == null) { return; } @@ -334,20 +345,16 @@ public class CaptionWindowDecoration extends WindowDecoration<WindowDecorLinearL caption.getResources().getColorStateList(buttonTintColorRes, null /* theme */); final View back = caption.findViewById(R.id.back_button); - final VectorDrawable backBackground = (VectorDrawable) back.getBackground(); - backBackground.setTintList(buttonTintColor); + back.setBackgroundTintList(buttonTintColor); final View minimize = caption.findViewById(R.id.minimize_window); - final VectorDrawable minimizeBackground = (VectorDrawable) minimize.getBackground(); - minimizeBackground.setTintList(buttonTintColor); + minimize.setBackgroundTintList(buttonTintColor); final View maximize = caption.findViewById(R.id.maximize_window); - final VectorDrawable maximizeBackground = (VectorDrawable) maximize.getBackground(); - maximizeBackground.setTintList(buttonTintColor); + maximize.setBackgroundTintList(buttonTintColor); final View close = caption.findViewById(R.id.close_window); - final VectorDrawable closeBackground = (VectorDrawable) close.getBackground(); - closeBackground.setTintList(buttonTintColor); + close.setBackgroundTintList(buttonTintColor); } boolean isHandlingDragResize() { |