diff options
4 files changed, 12 insertions, 1 deletions
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 30e5c2ae0914..2a5315739396 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 @@ -1702,6 +1702,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mExclusionRegionListener.onExclusionRegionDismissed(mTaskInfo.taskId); disposeResizeVeil(); disposeStatusBarInputLayer(); + mWindowDecorViewHolder.close(); mWindowDecorViewHolder = null; if (canEnterDesktopMode(mContext) && isEducationEnabled()) { notifyNoCaptionHandle(); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt index 2948fdaf16af..d9df899f8b40 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHandleViewHolder.kt @@ -274,4 +274,6 @@ internal class AppHandleViewHolder( } animator.start() } + + override fun close() {} } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt index eb8b617df4ce..8b054335d11c 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/AppHeaderViewHolder.kt @@ -725,6 +725,11 @@ class AppHeaderViewHolder( Configuration.UI_MODE_NIGHT_YES } + override fun close() { + // Should not fire long press events after closing the window decoration. + maximizeWindowButton.cancelLongPress() + } + companion object { private const val TAG = "DesktopModeAppControlsWindowDecorationViewHolder" diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt index 1fe743da966a..cd202bfbd29e 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/WindowDecorationViewHolder.kt @@ -24,7 +24,7 @@ import com.android.wm.shell.windowdecor.viewholder.WindowDecorationViewHolder.Da * Encapsulates the root [View] of a window decoration and its children to facilitate looking up * children (via findViewById) and updating to the latest data from [RunningTaskInfo]. */ -abstract class WindowDecorationViewHolder<T : Data>(rootView: View) { +abstract class WindowDecorationViewHolder<T : Data>(rootView: View) : AutoCloseable { val context: Context = rootView.context /** @@ -39,6 +39,9 @@ abstract class WindowDecorationViewHolder<T : Data>(rootView: View) { /** Callback when the handle menu is closed. */ abstract fun onHandleMenuClosed() + /** Callback when the window decoration is destroyed. */ + abstract override fun close() + /** Data clas that contains the information needed to update the view holder. */ abstract class Data } |