diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index 1a1c64dd7d..9b8ab33a91 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -30,6 +30,7 @@ import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_BA import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_HOME; import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_IME_SWITCH; import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_RECENTS; +import static com.android.launcher3.taskbar.TaskbarNavButtonController.BUTTON_SPACE; import static com.android.launcher3.taskbar.TaskbarViewController.ALPHA_INDEX_KEYGUARD; import static com.android.launcher3.taskbar.TaskbarViewController.ALPHA_INDEX_SMALL_SCREEN; import static com.android.launcher3.util.FlagDebugUtils.appendFlag; @@ -79,6 +80,7 @@ import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.Space; import androidx.annotation.Nullable; @@ -207,6 +209,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT this::onComputeInsetsForSeparateWindow; private final RecentsHitboxExtender mHitboxExtender = new RecentsHitboxExtender(); private ImageView mRecentsButton; + private Space mSpace; public NavbarButtonsViewController(TaskbarActivityContext context, @Nullable Context navigationBarPanelContext, NearestTouchFrame navButtonsView) { @@ -432,6 +435,11 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT mPropertyHolders.add(new StatePropertyHolder(mA11yButton, flags -> (flags & FLAG_A11Y_VISIBLE) != 0 && (flags & FLAG_ROTATION_BUTTON_VISIBLE) == 0)); + + mSpace = new Space(mNavButtonsView.getContext()); + mSpace.setOnClickListener(view -> navButtonController.onButtonClick(BUTTON_SPACE, view)); + mSpace.setOnLongClickListener(view -> + navButtonController.onButtonLongClick(BUTTON_SPACE, view)); } private void parseSystemUiFlags(int sysUiStateFlags) { @@ -760,7 +768,7 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT NavButtonLayoutFactory.Companion.getUiLayoutter( dp, mNavButtonsView, mImeSwitcherButton, mControllers.rotationButtonController.getRotationButton(), - mA11yButton, res, isInKidsMode, isInSetup, isThreeButtonNav, + mA11yButton, mSpace, res, isInKidsMode, isInSetup, isThreeButtonNav, mContext.isPhoneMode(), mWindowManagerProxy.getRotation(mContext)); navButtonLayoutter.layoutButtons(mContext, isA11yButtonPersistent()); updateButtonsBackground(); diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java index 3f72e5d9d3..19293b59ee 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarNavButtonController.java @@ -102,6 +102,7 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa static final int BUTTON_A11Y = BUTTON_IME_SWITCH << 1; static final int BUTTON_QUICK_SETTINGS = BUTTON_A11Y << 1; static final int BUTTON_NOTIFICATIONS = BUTTON_QUICK_SETTINGS << 1; + static final int BUTTON_SPACE = BUTTON_NOTIFICATIONS << 1; private static final int SCREEN_UNPIN_COMBO = BUTTON_BACK | BUTTON_RECENTS; private int mLongPressedButtons = 0; @@ -123,6 +124,9 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa } public void onButtonClick(@TaskbarButton int buttonType, View view) { + if (buttonType == BUTTON_SPACE) { + return; + } // Provide the same haptic feedback that the system offers for virtual keys. view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); switch (buttonType) { @@ -156,6 +160,9 @@ public class TaskbarNavButtonController implements TaskbarControllers.LoggableTa } public boolean onButtonLongClick(@TaskbarButton int buttonType, View view) { + if (buttonType == BUTTON_SPACE) { + return false; + } // Provide the same haptic feedback that the system offers for virtual keys. view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); switch (buttonType) { diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/AbstractNavButtonLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/AbstractNavButtonLayoutter.kt index 23e3310e70..ac47c60283 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/AbstractNavButtonLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/AbstractNavButtonLayoutter.kt @@ -23,6 +23,7 @@ import android.view.ViewGroup import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout +import android.widget.Space import com.android.launcher3.R import com.android.launcher3.Utilities import com.android.launcher3.taskbar.navbutton.NavButtonLayoutFactory.NavButtonLayoutter @@ -46,7 +47,8 @@ abstract class AbstractNavButtonLayoutter( protected val startContextualContainer: ViewGroup, protected val imeSwitcher: ImageView?, protected val rotationButton: RotationButton?, - protected val a11yButton: ImageView? + protected val a11yButton: ImageView?, + protected val space: Space ) : NavButtonLayoutter { protected val homeButton: ImageView? = navButtonContainer.findViewById(R.id.home) protected val recentsButton: ImageView? = navButtonContainer.findViewById(R.id.recent_apps) diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/KidsNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/KidsNavLayoutter.kt index f31af09ab7..26344b8c37 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/KidsNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/KidsNavLayoutter.kt @@ -25,6 +25,7 @@ import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout +import android.widget.Space import com.android.launcher3.R import com.android.launcher3.taskbar.TaskbarActivityContext import com.android.launcher3.taskbar.navbutton.LayoutResourceHelper.* @@ -37,7 +38,8 @@ class KidsNavLayoutter( startContextualContainer: ViewGroup, imeSwitcher: ImageView?, rotationButton: RotationButton?, - a11yButton: ImageView? + a11yButton: ImageView?, + space: Space, ) : AbstractNavButtonLayoutter( resources, @@ -46,7 +48,8 @@ class KidsNavLayoutter( startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) { override fun layoutButtons(context: TaskbarActivityContext, isA11yButtonPersistent: Boolean) { diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/NavButtonLayoutFactory.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/NavButtonLayoutFactory.kt index 672bc0d597..1d4ae7b15a 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/NavButtonLayoutFactory.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/NavButtonLayoutFactory.kt @@ -23,6 +23,7 @@ import android.view.ViewGroup import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout +import android.widget.Space import com.android.launcher3.DeviceProfile import com.android.launcher3.taskbar.TaskbarActivityContext import com.android.launcher3.taskbar.navbutton.LayoutResourceHelper.* @@ -60,6 +61,7 @@ class NavButtonLayoutFactory { imeSwitcher: ImageView?, rotationButton: RotationButton?, a11yButton: ImageView?, + space: Space, resources: Resources, isKidsMode: Boolean, isInSetup: Boolean, @@ -86,7 +88,8 @@ class NavButtonLayoutFactory { startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) } else if (surfaceRotation == ROTATION_90) { navButtonsView.setIsVertical(true) @@ -97,7 +100,8 @@ class NavButtonLayoutFactory { startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) } else { navButtonsView.setIsVertical(true) @@ -108,7 +112,8 @@ class NavButtonLayoutFactory { startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) } } @@ -120,7 +125,8 @@ class NavButtonLayoutFactory { startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) } deviceProfile.isTaskbarPresent -> { @@ -133,7 +139,8 @@ class NavButtonLayoutFactory { startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) } isKidsMode -> { @@ -144,7 +151,8 @@ class NavButtonLayoutFactory { startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) } else -> @@ -155,7 +163,8 @@ class NavButtonLayoutFactory { startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) } } diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/NearestTouchFrame.java b/quickstep/src/com/android/launcher3/taskbar/navbutton/NearestTouchFrame.java index a477303c25..bbf08bf903 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/NearestTouchFrame.java +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/NearestTouchFrame.java @@ -27,6 +27,7 @@ import android.widget.FrameLayout; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.List; @@ -42,7 +43,10 @@ public class NearestTouchFrame extends FrameLayout { private final List mClickableChildren = new ArrayList<>(); private final List mAttachedChildren = new ArrayList<>(); private final boolean mIsActive; + private final int[] mTmpInt = new int[2]; + // Offset (as the base) to translate window cords to view cords. + private final int[] mWindowOffset = new int[2]; private boolean mIsVertical; private View mTouchingChild; private final Map mTouchableRegions = new HashMap<>(); @@ -52,8 +56,11 @@ public class NearestTouchFrame extends FrameLayout { */ private final Comparator mChildRegionComparator = (view1, view2) -> { - int startingCoordView1 = mIsVertical ? view1.getTop() : view1.getLeft(); - int startingCoordView2 = mIsVertical ? view2.getTop() : view2.getLeft(); + int leftTopIndex = mIsVertical ? 1 : 0; + view1.getLocationInWindow(mTmpInt); + int startingCoordView1 = mTmpInt[leftTopIndex] - mWindowOffset[leftTopIndex]; + view2.getLocationInWindow(mTmpInt); + int startingCoordView2 = mTmpInt[leftTopIndex] - mWindowOffset[leftTopIndex]; return startingCoordView1 - startingCoordView2; }; @@ -74,6 +81,7 @@ public class NearestTouchFrame extends FrameLayout { mAttachedChildren.clear(); mTouchableRegions.clear(); addClickableChildren(this); + getLocationInWindow(mWindowOffset); cacheClosestChildLocations(); } @@ -147,8 +155,9 @@ public class NearestTouchFrame extends FrameLayout { } private Rect getChildsBounds(View child) { - int left = child.getLeft(); - int top = child.getTop(); + child.getLocationInWindow(mTmpInt); + int left = mTmpInt[0] - mWindowOffset[0]; + int top = mTmpInt[1] - mWindowOffset[1]; int right = left + child.getWidth(); int bottom = top + child.getHeight(); return new Rect(left, top, right, bottom); @@ -194,6 +203,7 @@ public class NearestTouchFrame extends FrameLayout { public void dumpLogs(String prefix, PrintWriter pw) { pw.println(prefix + "NearestTouchFrame:"); + pw.println(String.format("%s\tmWindowOffset=%s", prefix, Arrays.toString(mWindowOffset))); pw.println(String.format("%s\tmIsVertical=%s", prefix, mIsVertical)); pw.println(String.format("%s\tmTouchingChild=%s", prefix, mTouchingChild)); pw.println(String.format("%s\tmTouchableRegions=%s", prefix, diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneGestureLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneGestureLayoutter.kt index 3817f91ec1..6d86f1b63b 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneGestureLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneGestureLayoutter.kt @@ -20,6 +20,7 @@ import android.content.res.Resources import android.view.ViewGroup import android.widget.ImageView import android.widget.LinearLayout +import android.widget.Space import com.android.launcher3.taskbar.TaskbarActivityContext import com.android.systemui.shared.rotation.RotationButton @@ -31,7 +32,8 @@ class PhoneGestureLayoutter( startContextualContainer: ViewGroup, imeSwitcher: ImageView?, rotationButton: RotationButton?, - a11yButton: ImageView? + a11yButton: ImageView?, + space: Space, ) : AbstractNavButtonLayoutter( resources, @@ -40,7 +42,8 @@ class PhoneGestureLayoutter( startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) { override fun layoutButtons(context: TaskbarActivityContext, isA11yButtonPersistent: Boolean) { diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneLandscapeNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneLandscapeNavLayoutter.kt index b1b50d6d7f..9314f81ac4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneLandscapeNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneLandscapeNavLayoutter.kt @@ -19,9 +19,11 @@ package com.android.launcher3.taskbar.navbutton import android.content.res.Resources import android.view.Gravity import android.view.ViewGroup +import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout +import android.widget.Space import com.android.launcher3.R import com.android.launcher3.taskbar.TaskbarActivityContext import com.android.systemui.shared.rotation.RotationButton @@ -34,6 +36,7 @@ open class PhoneLandscapeNavLayoutter( imeSwitcher: ImageView?, rotationButton: RotationButton?, a11yButton: ImageView?, + space: Space, ) : AbstractNavButtonLayoutter( resources, @@ -42,7 +45,8 @@ open class PhoneLandscapeNavLayoutter( startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) { override fun layoutButtons(context: TaskbarActivityContext, isA11yButtonPersistent: Boolean) { @@ -60,7 +64,7 @@ open class PhoneLandscapeNavLayoutter( val navButtonContainerHeight = contentWidth - contextualButtonHeight * 2 val navContainerParams = FrameLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, navButtonContainerHeight.toInt()) + MATCH_PARENT, navButtonContainerHeight.toInt()) navContainerParams.apply { topMargin = (contextualButtonHeight + contentPadding + roundedCornerContentMargin).toInt() @@ -125,6 +129,8 @@ open class PhoneLandscapeNavLayoutter( val contentPadding = resources.getDimensionPixelSize(R.dimen.taskbar_phone_content_padding) repositionContextualContainer(startContextualContainer, buttonSize, roundedCornerContentMargin + contentPadding, 0, Gravity.TOP) + repositionContextualContainer(endContextualContainer, buttonSize, + 0, roundedCornerContentMargin + contentPadding, Gravity.BOTTOM) if (imeSwitcher != null) { startContextualContainer.addView(imeSwitcher) @@ -137,13 +143,13 @@ open class PhoneLandscapeNavLayoutter( startContextualContainer.addView(rotationButton.currentView) rotationButton.currentView.layoutParams = getParamsToCenterView() } + endContextualContainer.addView(space, MATCH_PARENT, MATCH_PARENT) } override fun repositionContextualContainer(contextualContainer: ViewGroup, buttonSize: Int, barAxisMarginTop: Int, barAxisMarginBottom: Int, gravity: Int) { - val contextualContainerParams = FrameLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, buttonSize) + val contextualContainerParams = FrameLayout.LayoutParams(MATCH_PARENT, buttonSize) contextualContainerParams.apply { marginStart = 0 marginEnd = 0 diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhonePortraitNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhonePortraitNavLayoutter.kt index 05183b8411..13e085a887 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhonePortraitNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhonePortraitNavLayoutter.kt @@ -19,9 +19,11 @@ package com.android.launcher3.taskbar.navbutton import android.content.res.Resources import android.view.Gravity import android.view.ViewGroup +import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout +import android.widget.Space import com.android.launcher3.R import com.android.launcher3.taskbar.TaskbarActivityContext import com.android.systemui.shared.rotation.RotationButton @@ -34,6 +36,7 @@ class PhonePortraitNavLayoutter( imeSwitcher: ImageView?, rotationButton: RotationButton?, a11yButton: ImageView?, + space: Space ) : AbstractNavButtonLayoutter( resources, @@ -42,7 +45,8 @@ class PhonePortraitNavLayoutter( startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) { override fun layoutButtons(context: TaskbarActivityContext, isA11yButtonPersistent: Boolean) { @@ -110,9 +114,12 @@ class PhonePortraitNavLayoutter( endContextualContainer.removeAllViews() startContextualContainer.removeAllViews() + repositionContextualContainer(startContextualContainer, contextualButtonWidth.toInt(), + roundedCornerContentMargin + contentPadding, 0, Gravity.START) repositionContextualContainer(endContextualContainer, contextualButtonWidth.toInt(), 0, roundedCornerContentMargin + contentPadding, Gravity.END) + startContextualContainer.addView(space, MATCH_PARENT, MATCH_PARENT) if (imeSwitcher != null) { endContextualContainer.addView(imeSwitcher) imeSwitcher.layoutParams = getParamsToCenterView() diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneSeascapeNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneSeascapeNavLayoutter.kt index 0f52552c8b..a21f5ce4b3 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneSeascapeNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/PhoneSeascapeNavLayoutter.kt @@ -19,8 +19,10 @@ package com.android.launcher3.taskbar.navbutton import android.content.res.Resources import android.view.Gravity import android.view.ViewGroup +import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.widget.ImageView import android.widget.LinearLayout +import android.widget.Space import com.android.launcher3.R import com.android.systemui.shared.rotation.RotationButton @@ -31,7 +33,8 @@ class PhoneSeascapeNavLayoutter( startContextualContainer: ViewGroup, imeSwitcher: ImageView?, rotationButton: RotationButton?, - a11yButton: ImageView? + a11yButton: ImageView?, + space: Space, ) : PhoneLandscapeNavLayoutter( resources, @@ -40,7 +43,8 @@ class PhoneSeascapeNavLayoutter( startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) { override fun addThreeButtons() { @@ -57,9 +61,12 @@ class PhoneSeascapeNavLayoutter( val roundedCornerContentMargin = resources.getDimensionPixelSize( R.dimen.taskbar_phone_rounded_corner_content_margin) val contentPadding = resources.getDimensionPixelSize(R.dimen.taskbar_phone_content_padding) + repositionContextualContainer(startContextualContainer, buttonSize, + roundedCornerContentMargin + contentPadding, 0, Gravity.TOP) repositionContextualContainer(endContextualContainer, buttonSize, 0, roundedCornerContentMargin + contentPadding, Gravity.BOTTOM) + startContextualContainer.addView(space, MATCH_PARENT, MATCH_PARENT) if (imeSwitcher != null) { endContextualContainer.addView(imeSwitcher) imeSwitcher.layoutParams = getParamsToCenterView() diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/SetupNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/SetupNavLayoutter.kt index 5111bba53d..6eb7b93dc4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/SetupNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/SetupNavLayoutter.kt @@ -23,6 +23,7 @@ import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout +import android.widget.Space import com.android.launcher3.R import com.android.launcher3.taskbar.TaskbarActivityContext import com.android.systemui.shared.rotation.RotationButton @@ -34,7 +35,8 @@ class SetupNavLayoutter( startContextualContainer: ViewGroup, imeSwitcher: ImageView?, rotationButton: RotationButton?, - a11yButton: ImageView? + a11yButton: ImageView?, + space: Space, ) : AbstractNavButtonLayoutter( resources, @@ -43,7 +45,8 @@ class SetupNavLayoutter( startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) { override fun layoutButtons(context: TaskbarActivityContext, isA11yButtonPersistent: Boolean) { diff --git a/quickstep/src/com/android/launcher3/taskbar/navbutton/TaskbarNavLayoutter.kt b/quickstep/src/com/android/launcher3/taskbar/navbutton/TaskbarNavLayoutter.kt index 45dbebbbdb..89c67b9947 100644 --- a/quickstep/src/com/android/launcher3/taskbar/navbutton/TaskbarNavLayoutter.kt +++ b/quickstep/src/com/android/launcher3/taskbar/navbutton/TaskbarNavLayoutter.kt @@ -23,6 +23,7 @@ import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout +import android.widget.Space import com.android.launcher3.R import com.android.launcher3.taskbar.TaskbarActivityContext import com.android.systemui.shared.rotation.RotationButton @@ -37,7 +38,8 @@ class TaskbarNavLayoutter( startContextualContainer: ViewGroup, imeSwitcher: ImageView?, rotationButton: RotationButton?, - a11yButton: ImageView? + a11yButton: ImageView?, + space: Space ) : AbstractNavButtonLayoutter( resources, @@ -46,7 +48,8 @@ class TaskbarNavLayoutter( startContextualContainer, imeSwitcher, rotationButton, - a11yButton + a11yButton, + space ) { override fun layoutButtons(context: TaskbarActivityContext, isA11yButtonPersistent: Boolean) { diff --git a/quickstep/tests/src/com/android/launcher3/taskbar/navbutton/NavButtonLayoutFactoryTest.kt b/quickstep/tests/src/com/android/launcher3/taskbar/navbutton/NavButtonLayoutFactoryTest.kt index 9c7fdc6707..87cbdd1b94 100644 --- a/quickstep/tests/src/com/android/launcher3/taskbar/navbutton/NavButtonLayoutFactoryTest.kt +++ b/quickstep/tests/src/com/android/launcher3/taskbar/navbutton/NavButtonLayoutFactoryTest.kt @@ -9,6 +9,7 @@ import android.view.ViewGroup import android.widget.FrameLayout import android.widget.ImageView import android.widget.LinearLayout +import android.widget.Space import androidx.test.runner.AndroidJUnit4 import com.android.launcher3.DeviceProfile import com.android.launcher3.R @@ -38,6 +39,7 @@ class NavButtonLayoutFactoryTest { private val mockImeSwitcher: ImageView = mock() private val mockRotationButton: RotationButton = mock() private val mockA11yButton: ImageView = mock() + private val mockSpace: Space = mock() private var surfaceRotation = Surface.ROTATION_0 @@ -201,7 +203,8 @@ class NavButtonLayoutFactoryTest { surfaceRotation = surfaceRotation, imeSwitcher = mockImeSwitcher, rotationButton = mockRotationButton, - a11yButton = mockA11yButton + a11yButton = mockA11yButton, + space = mockSpace, ) } } diff --git a/res/values/id.xml b/res/values/id.xml index 6156c91888..198496f741 100644 --- a/res/values/id.xml +++ b/res/values/id.xml @@ -32,6 +32,7 @@ +