diff options
10 files changed, 131 insertions, 34 deletions
diff --git a/libs/WindowManager/Shell/res/drawable/desktop_mode_ic_handle_menu_change_aspect_ratio.xml b/libs/WindowManager/Shell/res/drawable/desktop_mode_ic_handle_menu_change_aspect_ratio.xml new file mode 100644 index 000000000000..4442e9df7688 --- /dev/null +++ b/libs/WindowManager/Shell/res/drawable/desktop_mode_ic_handle_menu_change_aspect_ratio.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2024 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="20dp" + android:height="20dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="@color/compat_controls_text" + android:pathData="M19,12h-2v3h-3v2h5v-5zM7,9h3L10,7L5,7v5h2L7,9zM21,3L3,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM21,19.01L3,19.01L3,4.99h18v14.02z"/> +</vector> diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu.xml index 5609663c01a0..f90e165ffc74 100644 --- a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu.xml +++ b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu.xml @@ -157,6 +157,14 @@ android:drawableStart="@drawable/desktop_mode_ic_handle_menu_manage_windows" android:drawableTint="?androidprv:attr/materialColorOnSurface" style="@style/DesktopModeHandleMenuActionButton" /> + + <Button + android:id="@+id/change_aspect_ratio_button" + android:contentDescription="@string/change_aspect_ratio_text" + android:text="@string/change_aspect_ratio_text" + android:drawableStart="@drawable/desktop_mode_ic_handle_menu_change_aspect_ratio" + android:drawableTint="?androidprv:attr/materialColorOnSurface" + style="@style/DesktopModeHandleMenuActionButton" /> </LinearLayout> <LinearLayout diff --git a/libs/WindowManager/Shell/res/values/dimen.xml b/libs/WindowManager/Shell/res/values/dimen.xml index fa1aa193e1e3..c172d74311ed 100644 --- a/libs/WindowManager/Shell/res/values/dimen.xml +++ b/libs/WindowManager/Shell/res/values/dimen.xml @@ -523,8 +523,9 @@ <dimen name="desktop_mode_handle_menu_width">216dp</dimen> <!-- The maximum height of the handle menu in desktop mode. Three pills at 52dp each, - additional actions pill 156dp, plus 2dp spacing between them plus 4dp top padding. --> - <dimen name="desktop_mode_handle_menu_height">322dp</dimen> + additional actions pill 208dp, plus 2dp spacing between them plus 4dp top padding. + 52*3 + 52*4 + (4-1)*2 + 4 = 374 --> + <dimen name="desktop_mode_handle_menu_height">374dp</dimen> <!-- The elevation set on the handle menu pills. --> <dimen name="desktop_mode_handle_menu_pill_elevation">1dp</dimen> @@ -547,6 +548,9 @@ <!-- The height of the handle menu's "Open in browser" pill in desktop mode. --> <dimen name="desktop_mode_handle_menu_open_in_browser_pill_height">52dp</dimen> + <!-- The height of the handle menu's "Change aspect ratio" pill in desktop mode. --> + <dimen name="desktop_mode_handle_menu_change_aspect_ratio_height">52dp</dimen> + <!-- The margin between pills of the handle menu in desktop mode. --> <dimen name="desktop_mode_handle_menu_pill_spacing_margin">2dp</dimen> diff --git a/libs/WindowManager/Shell/res/values/strings.xml b/libs/WindowManager/Shell/res/values/strings.xml index ef0386a1b4dd..c6963f76594c 100644 --- a/libs/WindowManager/Shell/res/values/strings.xml +++ b/libs/WindowManager/Shell/res/values/strings.xml @@ -305,6 +305,8 @@ <string name="new_window_text">New Window</string> <!-- Accessibility text for the handle menu new window button [CHAR LIMIT=NONE] --> <string name="manage_windows_text">Manage Windows</string> + <!-- Accessibility text for the handle menu change aspect ratio button [CHAR LIMIT=NONE] --> + <string name="change_aspect_ratio_text">Change aspect ratio</string> <!-- Accessibility text for the handle menu close button [CHAR LIMIT=NONE] --> <string name="close_text">Close</string> <!-- Accessibility text for the handle menu close menu button [CHAR LIMIT=NONE] --> diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java index 6146ecd9ade6..886330f3264a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java @@ -688,6 +688,12 @@ public class CompatUIController implements OnDisplaysChangedListener, private void launchUserAspectRatioSettings( @NonNull TaskInfo taskInfo, @NonNull ShellTaskOrganizer.TaskListener taskListener) { + launchUserAspectRatioSettings(mContext, taskInfo); + } + + /** Launch the user aspect ratio settings for the package of the given task. */ + public static void launchUserAspectRatioSettings( + @NonNull Context context, @NonNull TaskInfo taskInfo) { final Intent intent = new Intent(Settings.ACTION_MANAGE_USER_ASPECT_RATIO_SETTINGS); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); @@ -697,7 +703,7 @@ public class CompatUIController implements OnDisplaysChangedListener, intent.setData(packageUri); } final UserHandle userHandle = UserHandle.of(taskInfo.userId); - mContext.startActivityAsUser(intent, userHandle); + context.startActivityAsUser(intent, userHandle); } @VisibleForTesting diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java index a3324cc6f286..d8088a601540 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java @@ -103,6 +103,7 @@ import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.MultiInstanceHelper; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.SyncTransactionQueue; +import com.android.wm.shell.compatui.CompatUIController; import com.android.wm.shell.desktopmode.DesktopActivityOrientationChangeHandler; import com.android.wm.shell.desktopmode.DesktopModeEventLogger; import com.android.wm.shell.desktopmode.DesktopModeVisualIndicator; @@ -1574,6 +1575,10 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, onManageWindows(windowDecoration); return Unit.INSTANCE; }); + windowDecoration.setOnChangeAspectRatioClickListener(() -> { + CompatUIController.launchUserAspectRatioSettings(mContext, taskInfo); + return Unit.INSTANCE; + }); windowDecoration.setCaptionListeners( touchEventListener, touchEventListener, touchEventListener, touchEventListener); windowDecoration.setExclusionRegionListener(mExclusionRegionListener); 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 9f37358b6044..833004798b6e 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 @@ -155,6 +155,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin private Function0<Unit> mOnToSplitscreenClickListener; private Function0<Unit> mOnNewWindowClickListener; private Function0<Unit> mOnManageWindowsClickListener; + private Function0<Unit> mOnChangeAspectRatioClickListener; private DragPositioningCallback mDragPositioningCallback; private DragResizeInputListener mDragResizeListener; private Runnable mCurrentViewHostRunnable = null; @@ -366,6 +367,11 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mOnManageWindowsClickListener = listener; } + /** Registers a listener to be called when the aspect ratio action is triggered. */ + void setOnChangeAspectRatioClickListener(Function0<Unit> listener) { + mOnChangeAspectRatioClickListener = listener; + } + void setCaptionListeners( View.OnClickListener onCaptionButtonClickListener, View.OnTouchListener onCaptionTouchListener, @@ -1352,6 +1358,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin && Flags.enableDesktopWindowingMultiInstanceFeatures(); final boolean shouldShowManageWindowsButton = supportsMultiInstance && mMinimumInstancesFound; + final boolean shouldShowChangeAspectRatioButton = HandleMenu.Companion + .shouldShowChangeAspectRatioButton(mTaskInfo); final boolean inDesktopImmersive = mDesktopRepository .isTaskInFullImmersiveState(mTaskInfo.taskId); mHandleMenu = mHandleMenuFactory.create( @@ -1364,6 +1372,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin canEnterDesktopMode(mContext), supportsMultiInstance, shouldShowManageWindowsButton, + shouldShowChangeAspectRatioButton, getBrowserLink(), mResult.mCaptionWidth, mResult.mCaptionHeight, @@ -1384,6 +1393,7 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin /* onToSplitScreenClickListener= */ mOnToSplitscreenClickListener, /* onNewWindowClickListener= */ mOnNewWindowClickListener, /* onManageWindowsClickListener= */ mOnManageWindowsClickListener, + /* onAspectRatioSettingsClickListener= */ mOnChangeAspectRatioClickListener, /* openInBrowserClickListener= */ (intent) -> { mOpenInBrowserClickListener.accept(intent); onCapturedLinkExpired(); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt index 93bd9290dfeb..2edc380756ac 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt @@ -19,6 +19,7 @@ import android.annotation.ColorInt import android.annotation.DimenRes import android.annotation.SuppressLint import android.app.ActivityManager.RunningTaskInfo +import android.app.WindowConfiguration import android.content.Context import android.content.Intent import android.content.res.ColorStateList @@ -71,6 +72,7 @@ class HandleMenu( private val shouldShowWindowingPill: Boolean, private val shouldShowNewWindowButton: Boolean, private val shouldShowManageWindowsButton: Boolean, + private val shouldShowChangeAspectRatioButton: Boolean, private val openInBrowserIntent: Intent?, private val captionWidth: Int, private val captionHeight: Int, @@ -111,6 +113,10 @@ class HandleMenu( private val shouldShowBrowserPill: Boolean get() = openInBrowserIntent != null + private val shouldShowMoreActionsPill: Boolean + get() = SHOULD_SHOW_SCREENSHOT_BUTTON || shouldShowNewWindowButton || + shouldShowManageWindowsButton || shouldShowChangeAspectRatioButton + init { updateHandleMenuPillPositions(captionX, captionY) } @@ -121,6 +127,7 @@ class HandleMenu( onToSplitScreenClickListener: () -> Unit, onNewWindowClickListener: () -> Unit, onManageWindowsClickListener: () -> Unit, + onChangeAspectRatioClickListener: () -> Unit, openInBrowserClickListener: (Intent) -> Unit, onOpenByDefaultClickListener: () -> Unit, onCloseMenuClickListener: () -> Unit, @@ -138,6 +145,7 @@ class HandleMenu( onToSplitScreenClickListener = onToSplitScreenClickListener, onNewWindowClickListener = onNewWindowClickListener, onManageWindowsClickListener = onManageWindowsClickListener, + onChangeAspectRatioClickListener = onChangeAspectRatioClickListener, openInBrowserClickListener = openInBrowserClickListener, onOpenByDefaultClickListener = onOpenByDefaultClickListener, onCloseMenuClickListener = onCloseMenuClickListener, @@ -158,6 +166,7 @@ class HandleMenu( onToSplitScreenClickListener: () -> Unit, onNewWindowClickListener: () -> Unit, onManageWindowsClickListener: () -> Unit, + onChangeAspectRatioClickListener: () -> Unit, openInBrowserClickListener: (Intent) -> Unit, onOpenByDefaultClickListener: () -> Unit, onCloseMenuClickListener: () -> Unit, @@ -171,14 +180,16 @@ class HandleMenu( shouldShowWindowingPill = shouldShowWindowingPill, shouldShowBrowserPill = shouldShowBrowserPill, shouldShowNewWindowButton = shouldShowNewWindowButton, - shouldShowManageWindowsButton = shouldShowManageWindowsButton + shouldShowManageWindowsButton = shouldShowManageWindowsButton, + shouldShowChangeAspectRatioButton = shouldShowChangeAspectRatioButton ).apply { - bind(taskInfo, appIconBitmap, appName) + bind(taskInfo, appIconBitmap, appName, shouldShowMoreActionsPill) this.onToDesktopClickListener = onToDesktopClickListener this.onToFullscreenClickListener = onToFullscreenClickListener this.onToSplitScreenClickListener = onToSplitScreenClickListener this.onNewWindowClickListener = onNewWindowClickListener this.onManageWindowsClickListener = onManageWindowsClickListener + this.onChangeAspectRatioClickListener = onChangeAspectRatioClickListener this.onOpenInBrowserClickListener = { openInBrowserClickListener.invoke(openInBrowserIntent!!) } @@ -392,8 +403,11 @@ class HandleMenu( R.dimen.desktop_mode_handle_menu_manage_windows_height ) } - if (!SHOULD_SHOW_SCREENSHOT_BUTTON && !shouldShowNewWindowButton - && !shouldShowManageWindowsButton) { + if (!shouldShowChangeAspectRatioButton) { + menuHeight -= loadDimensionPixelSize( + R.dimen.desktop_mode_handle_menu_change_aspect_ratio_height) + } + if (!shouldShowMoreActionsPill) { menuHeight -= pillTopMargin } if (!shouldShowBrowserPill) { @@ -427,7 +441,8 @@ class HandleMenu( private val shouldShowWindowingPill: Boolean, private val shouldShowBrowserPill: Boolean, private val shouldShowNewWindowButton: Boolean, - private val shouldShowManageWindowsButton: Boolean + private val shouldShowManageWindowsButton: Boolean, + private val shouldShowChangeAspectRatioButton: Boolean ) { val rootView = LayoutInflater.from(context) .inflate(R.layout.desktop_mode_window_decor_handle_menu, null /* root */) as View @@ -454,6 +469,8 @@ class HandleMenu( private val newWindowBtn = moreActionsPill.requireViewById<Button>(R.id.new_window_button) private val manageWindowBtn = moreActionsPill .requireViewById<Button>(R.id.manage_windows_button) + private val changeAspectRatioBtn = moreActionsPill + .requireViewById<Button>(R.id.change_aspect_ratio_button) // Open in Browser Pill. private val openInBrowserPill = rootView.requireViewById<View>(R.id.open_in_browser_pill) @@ -472,6 +489,7 @@ class HandleMenu( var onToSplitScreenClickListener: (() -> Unit)? = null var onNewWindowClickListener: (() -> Unit)? = null var onManageWindowsClickListener: (() -> Unit)? = null + var onChangeAspectRatioClickListener: (() -> Unit)? = null var onOpenInBrowserClickListener: (() -> Unit)? = null var onOpenByDefaultClickListener: (() -> Unit)? = null var onCloseMenuClickListener: (() -> Unit)? = null @@ -488,6 +506,7 @@ class HandleMenu( collapseMenuButton.setOnClickListener { onCloseMenuClickListener?.invoke() } newWindowBtn.setOnClickListener { onNewWindowClickListener?.invoke() } manageWindowBtn.setOnClickListener { onManageWindowsClickListener?.invoke() } + changeAspectRatioBtn.setOnClickListener { onChangeAspectRatioClickListener?.invoke() } rootView.setOnTouchListener { _, event -> if (event.actionMasked == ACTION_OUTSIDE) { @@ -499,7 +518,12 @@ class HandleMenu( } /** Binds the menu views to the new data. */ - fun bind(taskInfo: RunningTaskInfo, appIconBitmap: Bitmap?, appName: CharSequence?) { + fun bind( + taskInfo: RunningTaskInfo, + appIconBitmap: Bitmap?, + appName: CharSequence?, + shouldShowMoreActionsPill: Boolean + ) { this.taskInfo = taskInfo this.style = calculateMenuStyle(taskInfo) @@ -507,7 +531,10 @@ class HandleMenu( if (shouldShowWindowingPill) { bindWindowingPill(style) } - bindMoreActionsPill(style) + moreActionsPill.isGone = !shouldShowMoreActionsPill + if (shouldShowMoreActionsPill) { + bindMoreActionsPill(style) + } bindOpenInBrowserPill(style) } @@ -616,27 +643,20 @@ class HandleMenu( } private fun bindMoreActionsPill(style: MenuStyle) { - moreActionsPill.apply { - isGone = !shouldShowNewWindowButton && !SHOULD_SHOW_SCREENSHOT_BUTTON - && !shouldShowManageWindowsButton - } - screenshotBtn.apply { - isGone = !SHOULD_SHOW_SCREENSHOT_BUTTON - background.setTint(style.backgroundColor) - setTextColor(style.textColor) - compoundDrawableTintList = ColorStateList.valueOf(style.textColor) - } - newWindowBtn.apply { - isGone = !shouldShowNewWindowButton - background.setTint(style.backgroundColor) - setTextColor(style.textColor) - compoundDrawableTintList = ColorStateList.valueOf(style.textColor) - } - manageWindowBtn.apply { - isGone = !shouldShowManageWindowsButton - background.setTint(style.backgroundColor) - setTextColor(style.textColor) - compoundDrawableTintList = ColorStateList.valueOf(style.textColor) + arrayOf( + screenshotBtn to SHOULD_SHOW_SCREENSHOT_BUTTON, + newWindowBtn to shouldShowNewWindowButton, + manageWindowBtn to shouldShowManageWindowsButton, + changeAspectRatioBtn to shouldShowChangeAspectRatioButton, + ).forEach { + val button = it.first + val shouldShow = it.second + button.apply { + isGone = !shouldShow + background.setTint(style.backgroundColor) + setTextColor(style.textColor) + compoundDrawableTintList = ColorStateList.valueOf(style.textColor) + } } } @@ -664,6 +684,14 @@ class HandleMenu( companion object { private const val TAG = "HandleMenu" private const val SHOULD_SHOW_SCREENSHOT_BUTTON = false + + /** + * Returns whether the aspect ratio button should be shown for the task. It usually means + * that the task is on a large screen with ignore-orientation-request. + */ + fun shouldShowChangeAspectRatioButton(taskInfo: RunningTaskInfo): Boolean = + taskInfo.appCompatTaskInfo.eligibleForUserAspectRatioButton() && + taskInfo.windowingMode == WindowConfiguration.WINDOWING_MODE_FULLSCREEN } } @@ -679,6 +707,7 @@ interface HandleMenuFactory { shouldShowWindowingPill: Boolean, shouldShowNewWindowButton: Boolean, shouldShowManageWindowsButton: Boolean, + shouldShowChangeAspectRatioButton: Boolean, openInBrowserIntent: Intent?, captionWidth: Int, captionHeight: Int, @@ -699,6 +728,7 @@ object DefaultHandleMenuFactory : HandleMenuFactory { shouldShowWindowingPill: Boolean, shouldShowNewWindowButton: Boolean, shouldShowManageWindowsButton: Boolean, + shouldShowChangeAspectRatioButton: Boolean, openInBrowserIntent: Intent?, captionWidth: Int, captionHeight: Int, @@ -715,6 +745,7 @@ object DefaultHandleMenuFactory : HandleMenuFactory { shouldShowWindowingPill, shouldShowNewWindowButton, shouldShowManageWindowsButton, + shouldShowChangeAspectRatioButton, openInBrowserIntent, captionWidth, captionHeight, diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java index 8a2c7782906d..4f172c1f3335 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorationTests.java @@ -261,8 +261,8 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { doReturn(defaultDisplay).when(mMockDisplayController).getDisplay(Display.DEFAULT_DISPLAY); doReturn(mInsetsState).when(mMockDisplayController).getInsetsState(anyInt()); when(mMockHandleMenuFactory.create(any(), any(), anyInt(), any(), any(), any(), - anyBoolean(), anyBoolean(), anyBoolean(), any(), anyInt(), anyInt(), anyInt(), - anyInt())) + anyBoolean(), anyBoolean(), anyBoolean(), anyBoolean(), any(), anyInt(), anyInt(), + anyInt(), anyInt())) .thenReturn(mMockHandleMenu); when(mMockMultiInstanceHelper.supportsMultiInstanceSplit(any())).thenReturn(false); when(mMockAppHeaderViewHolderFactory.create(any(), any(), any(), any(), any(), any(), any(), @@ -1174,6 +1174,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { any(), any(), any(), + any(), openInBrowserCaptor.capture(), any(), any(), @@ -1204,6 +1205,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { any(), any(), any(), + any(), openInBrowserCaptor.capture(), any(), any(), @@ -1259,6 +1261,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { any(), any(), any(), + any(), closeClickListener.capture(), any(), anyBoolean() @@ -1290,6 +1293,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { any(), any(), any(), + any(), /* forceShowSystemBars= */ eq(true) ); } @@ -1433,7 +1437,7 @@ public class DesktopModeWindowDecorationTests extends ShellTestCase { private void verifyHandleMenuCreated(@Nullable Uri uri) { verify(mMockHandleMenuFactory).create(any(), any(), anyInt(), any(), any(), - any(), anyBoolean(), anyBoolean(), anyBoolean(), + any(), anyBoolean(), anyBoolean(), anyBoolean(), anyBoolean(), argThat(intent -> (uri == null && intent == null) || intent.getData().equals(uri)), anyInt(), anyInt(), anyInt(), anyInt()); } diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/HandleMenuTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/HandleMenuTest.kt index 9544fa823b5a..ade17c61eda1 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/HandleMenuTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/HandleMenuTest.kt @@ -266,6 +266,7 @@ class HandleMenuTest : ShellTestCase() { WindowManagerWrapper(mockWindowManager), layoutId, appIcon, appName, splitScreenController, shouldShowWindowingPill = true, shouldShowNewWindowButton = true, shouldShowManageWindowsButton = false, + shouldShowChangeAspectRatioButton = false, null /* openInBrowserLink */, captionWidth = HANDLE_WIDTH, captionHeight = 50, captionX = captionX, captionY = 0, @@ -276,6 +277,7 @@ class HandleMenuTest : ShellTestCase() { onToSplitScreenClickListener = mock(), onNewWindowClickListener = mock(), onManageWindowsClickListener = mock(), + onChangeAspectRatioClickListener = mock(), openInBrowserClickListener = mock(), onOpenByDefaultClickListener = mock(), onCloseMenuClickListener = mock(), |