From d5e48ae2362e02c2bf4ceee7719072edc3cbe3ab Mon Sep 17 00:00:00 2001 From: Jorge Gil Date: Thu, 16 Mar 2023 23:22:40 +0000 Subject: [PATCH] Delegate window decor view binding / updating to *ViewHolders Moves view binding and updates from the new task data in relayout to a *ViewHolder class made for each "type" of window decoration UI. This allows caching of findViewById calls and isolated view binding logic for different UI variants of the caption window decoration. Bug: 269618335 Test: use proto1/proto2 and switch between modes, no UI/behavior changes observed Change-Id: Ib2f1d194af72883653ac93bbd98ae4e9e7b4376a --- .../DesktopModeWindowDecoration.java | 116 ++++-------------- ...deAppControlsWindowDecorationViewHolder.kt | 94 ++++++++++++++ ...opModeFocusedWindowDecorationViewHolder.kt | 44 +++++++ .../DesktopModeWindowDecorationViewHolder.kt | 28 +++++ 4 files changed, 187 insertions(+), 95 deletions(-) create mode 100644 libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt create mode 100644 libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeFocusedWindowDecorationViewHolder.kt create mode 100644 libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeWindowDecorationViewHolder.kt diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java index 73bd521fd2f27..01187ed94de5b 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java @@ -22,13 +22,10 @@ import android.app.ActivityManager; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; -import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; -import android.graphics.Color; import android.graphics.Point; import android.graphics.PointF; -import android.graphics.drawable.GradientDrawable; import android.os.Handler; import android.util.Log; import android.view.Choreographer; @@ -36,7 +33,6 @@ import android.view.MotionEvent; import android.view.SurfaceControl; import android.view.View; import android.view.ViewConfiguration; -import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import android.window.WindowContainerTransaction; @@ -47,6 +43,9 @@ import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.desktopmode.DesktopModeStatus; import com.android.wm.shell.desktopmode.DesktopTasksController; +import com.android.wm.shell.windowdecor.viewholder.DesktopModeAppControlsWindowDecorationViewHolder; +import com.android.wm.shell.windowdecor.viewholder.DesktopModeFocusedWindowDecorationViewHolder; +import com.android.wm.shell.windowdecor.viewholder.DesktopModeWindowDecorationViewHolder; /** * Defines visuals and behaviors of a window decoration of a caption bar and shadows. It works with @@ -61,6 +60,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration