diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java index 37c2233809170..4db1da3f1c956 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java @@ -164,8 +164,6 @@ import com.android.systemui.util.ViewController; import com.android.wm.shell.back.BackAnimation; import com.android.wm.shell.pip.Pip; -import dagger.Lazy; - import java.io.PrintWriter; import java.util.Locale; import java.util.Map; @@ -175,6 +173,8 @@ import java.util.function.Consumer; import javax.inject.Inject; +import dagger.Lazy; + /** * Contains logic for a navigation bar view. */ @@ -251,6 +251,12 @@ public class NavigationBar extends ViewController implements private boolean mTransientShown; private boolean mTransientShownFromGestureOnSystemBar; + /** + * This is to indicate whether the navigation bar button is forced visible. This is true + * when the setup wizard is on display. When that happens, the window frame should be provided + * as insets size directly. + */ + private boolean mIsButtonForceVisible; private int mNavBarMode = NAV_BAR_MODE_3BUTTON; private LightBarController mLightBarController; private final LightBarController mMainLightBarController; @@ -664,7 +670,8 @@ public class NavigationBar extends ViewController implements mView.setTouchHandler(mTouchHandler); setNavBarMode(mNavBarMode); mEdgeBackGestureHandler.setStateChangeCallback(mView::updateStates); - mEdgeBackGestureHandler.setButtonForcedVisibleChangeCallback((forceVisible) -> { + mEdgeBackGestureHandler.setButtonForceVisibleChangeCallback((forceVisible) -> { + mIsButtonForceVisible = forceVisible; repositionNavigationBar(mCurrentRotation); }); mNavigationBarTransitions.addListener(this::onBarTransition); @@ -1699,7 +1706,7 @@ public class NavigationBar extends ViewController implements private InsetsFrameProvider[] getInsetsFrameProvider(int insetsHeight, Context userContext) { final InsetsFrameProvider navBarProvider; - if (insetsHeight != -1 && !mEdgeBackGestureHandler.isButtonForcedVisible()) { + if (insetsHeight != -1 && !mIsButtonForceVisible) { navBarProvider = new InsetsFrameProvider( ITYPE_NAVIGATION_BAR, Insets.of(0, 0, 0, insetsHeight)); // Use window frame for IME. diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java index ebb3a3a75c4e9..f3d60145a0578 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java @@ -176,7 +176,7 @@ public class EdgeBackGestureHandler implements PluginListener mButtonForcedVisibleCallback; + private Consumer mButtonForceVisibleCallback; private final PluginManager mPluginManager; private final ProtoTracer mProtoTracer; @@ -243,7 +243,7 @@ public class EdgeBackGestureHandler implements PluginListener callback) { - mButtonForcedVisibleCallback = callback; + public void setButtonForceVisibleChangeCallback(Consumer callback) { + mButtonForceVisibleCallback = callback; } public int getEdgeWidthLeft() { @@ -426,14 +426,13 @@ public class EdgeBackGestureHandler implements PluginListener