From 896bb40d40894189d527ad36a77b091921381b87 Mon Sep 17 00:00:00 2001 From: Yunfan Chen Date: Mon, 20 Feb 2023 03:36:51 +0000 Subject: [PATCH] Reland "Fix missing gesture insets for 3-button navigation" This reverts commit 554c2cfc39f7b2853a321f1e3f358c6d683a5290. Reason for revert: Try to reland with fix Bug: 263234979 Test: NexusLauncherOutOfProcTests Change-Id: Iabc80cc45a8c93375f83170d89815429ea6088f4 --- .../systemui/navigationbar/NavigationBar.java | 55 +++++++------------ 1 file changed, 20 insertions(+), 35 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java index 4db1da3f1c956..b8085244e9353 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java @@ -1729,41 +1729,26 @@ public class NavigationBar extends ViewController implements bottomTappableProvider = new InsetsFrameProvider(ITYPE_BOTTOM_TAPPABLE_ELEMENT); } - if (!mEdgeBackGestureHandler.isHandlingGestures()) { - // 2/3 button navigation is on. Do not provide any gesture insets here. But need to keep - // the provider to support runtime update. - return new InsetsFrameProvider[] { - navBarProvider, - new InsetsFrameProvider( - ITYPE_BOTTOM_MANDATORY_GESTURES, Insets.NONE), - new InsetsFrameProvider(ITYPE_LEFT_GESTURES, InsetsFrameProvider.SOURCE_DISPLAY, - Insets.NONE, null), - new InsetsFrameProvider(ITYPE_RIGHT_GESTURES, - InsetsFrameProvider.SOURCE_DISPLAY, - Insets.NONE, null), - bottomTappableProvider - }; - } else { - // Gesture navigation - final int gestureHeight = userContext.getResources().getDimensionPixelSize( - com.android.internal.R.dimen.navigation_bar_gesture_height); - final DisplayCutout cutout = userContext.getDisplay().getCutout(); - final int safeInsetsLeft = cutout != null ? cutout.getSafeInsetLeft() : 0; - final int safeInsetsRight = cutout != null ? cutout.getSafeInsetRight() : 0; - return new InsetsFrameProvider[] { - navBarProvider, - new InsetsFrameProvider( - ITYPE_BOTTOM_MANDATORY_GESTURES, Insets.of(0, 0, 0, gestureHeight)), - new InsetsFrameProvider(ITYPE_LEFT_GESTURES, InsetsFrameProvider.SOURCE_DISPLAY, - Insets.of(safeInsetsLeft - + mEdgeBackGestureHandler.getEdgeWidthLeft(), 0, 0, 0), null), - new InsetsFrameProvider(ITYPE_RIGHT_GESTURES, - InsetsFrameProvider.SOURCE_DISPLAY, - Insets.of(0, 0, safeInsetsRight - + mEdgeBackGestureHandler.getEdgeWidthRight(), 0), null), - bottomTappableProvider - }; - } + final DisplayCutout cutout = userContext.getDisplay().getCutout(); + final int safeInsetsLeft = cutout != null ? cutout.getSafeInsetLeft() : 0; + final int safeInsetsRight = cutout != null ? cutout.getSafeInsetRight() : 0; + final int gestureHeight = userContext.getResources().getDimensionPixelSize( + com.android.internal.R.dimen.navigation_bar_gesture_height); + final boolean handlingGesture = mEdgeBackGestureHandler.isHandlingGestures(); + final int gestureInsetsLeft = handlingGesture + ? mEdgeBackGestureHandler.getEdgeWidthLeft() + safeInsetsLeft : 0; + final int gestureInsetsRight = handlingGesture + ? mEdgeBackGestureHandler.getEdgeWidthRight() + safeInsetsRight : 0; + return new InsetsFrameProvider[] { + navBarProvider, + new InsetsFrameProvider( + ITYPE_BOTTOM_MANDATORY_GESTURES, Insets.of(0, 0, 0, gestureHeight)), + new InsetsFrameProvider(ITYPE_LEFT_GESTURES, InsetsFrameProvider.SOURCE_DISPLAY, + Insets.of(gestureInsetsLeft, 0, 0, 0), null), + new InsetsFrameProvider(ITYPE_RIGHT_GESTURES, InsetsFrameProvider.SOURCE_DISPLAY, + Insets.of(0, 0, gestureInsetsRight, 0), null), + bottomTappableProvider + }; } private boolean canShowSecondaryHandle() {