From dde7e758e87056b4a556856872ea435b8270ecaf Mon Sep 17 00:00:00 2001 From: mattsziklay Date: Thu, 6 Oct 2022 13:24:33 -0700 Subject: Add handle menu to bar type window caption. Adds a menu on clicking handle that will enable windowing changes. Still to implement for this prototype: More button, Split Screen button, Overtop/Float button. Bug: 239960071 Test: Launch various tasks, confirm handle menu appears, drag functionality is unaffected. Change-Id: I0aeeffb44e6bfd580c70270e562d8c04031892de --- .../Shell/res/drawable/caption_desktop_button.xml | 31 +++++ .../Shell/res/drawable/caption_floating_button.xml | 31 +++++ .../res/drawable/caption_fullscreen_button.xml | 31 +++++ .../Shell/res/drawable/caption_more_button.xml | 31 +++++ .../res/drawable/caption_split_screen_button.xml | 28 +++++ .../Shell/res/drawable/handle_menu_background.xml | 30 +++++ .../Shell/res/layout/caption_handle_menu.xml | 49 ++++++++ .../Shell/res/layout/caption_window_decoration.xml | 11 +- libs/WindowManager/Shell/res/values/strings.xml | 10 ++ libs/WindowManager/Shell/res/values/styles.xml | 7 ++ .../windowdecor/CaptionWindowDecorViewModel.java | 64 +++++++++- .../shell/windowdecor/CaptionWindowDecoration.java | 105 ++++++++++++++++- .../wm/shell/windowdecor/TaskPositioner.java | 14 ++- .../wm/shell/windowdecor/WindowDecoration.java | 130 +++++++++++++++++---- .../shell/windowdecor/WindowDecorationTests.java | 90 +++++++++++++- 15 files changed, 623 insertions(+), 39 deletions(-) create mode 100644 libs/WindowManager/Shell/res/drawable/caption_desktop_button.xml create mode 100644 libs/WindowManager/Shell/res/drawable/caption_floating_button.xml create mode 100644 libs/WindowManager/Shell/res/drawable/caption_fullscreen_button.xml create mode 100644 libs/WindowManager/Shell/res/drawable/caption_more_button.xml create mode 100644 libs/WindowManager/Shell/res/drawable/caption_split_screen_button.xml create mode 100644 libs/WindowManager/Shell/res/drawable/handle_menu_background.xml create mode 100644 libs/WindowManager/Shell/res/layout/caption_handle_menu.xml diff --git a/libs/WindowManager/Shell/res/drawable/caption_desktop_button.xml b/libs/WindowManager/Shell/res/drawable/caption_desktop_button.xml new file mode 100644 index 000000000000..8779cc09715b --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/caption_desktop_button.xml @@ -0,0 +1,31 @@ + + + + + + + diff --git a/libs/WindowManager/Shell/res/drawable/caption_floating_button.xml b/libs/WindowManager/Shell/res/drawable/caption_floating_button.xml new file mode 100644 index 000000000000..ea0fbb0e5d33 --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/caption_floating_button.xml @@ -0,0 +1,31 @@ + + + + + + + diff --git a/libs/WindowManager/Shell/res/drawable/caption_fullscreen_button.xml b/libs/WindowManager/Shell/res/drawable/caption_fullscreen_button.xml new file mode 100644 index 000000000000..c55cbe2d054c --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/caption_fullscreen_button.xml @@ -0,0 +1,31 @@ + + + + + + + diff --git a/libs/WindowManager/Shell/res/drawable/caption_more_button.xml b/libs/WindowManager/Shell/res/drawable/caption_more_button.xml new file mode 100644 index 000000000000..447df43dfddd --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/caption_more_button.xml @@ -0,0 +1,31 @@ + + + + + + + diff --git a/libs/WindowManager/Shell/res/drawable/caption_split_screen_button.xml b/libs/WindowManager/Shell/res/drawable/caption_split_screen_button.xml new file mode 100644 index 000000000000..c334a543a86a --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/caption_split_screen_button.xml @@ -0,0 +1,28 @@ + + + + + + diff --git a/libs/WindowManager/Shell/res/drawable/handle_menu_background.xml b/libs/WindowManager/Shell/res/drawable/handle_menu_background.xml new file mode 100644 index 000000000000..e307f007e4a4 --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/handle_menu_background.xml @@ -0,0 +1,30 @@ + + + + + + + diff --git a/libs/WindowManager/Shell/res/layout/caption_handle_menu.xml b/libs/WindowManager/Shell/res/layout/caption_handle_menu.xml new file mode 100644 index 000000000000..d9a140b810f8 --- /dev/null +++ b/libs/WindowManager/Shell/res/layout/caption_handle_menu.xml @@ -0,0 +1,49 @@ + + + +