diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java index 006cedfe36b4d..a233cdc156f82 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java @@ -164,6 +164,8 @@ 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; @@ -173,8 +175,6 @@ import java.util.function.Consumer; import javax.inject.Inject; -import dagger.Lazy; - /** * Contains logic for a navigation bar view. */ @@ -251,12 +251,6 @@ 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; @@ -670,8 +664,7 @@ public class NavigationBar extends ViewController implements mView.setTouchHandler(mTouchHandler); setNavBarMode(mNavBarMode); mEdgeBackGestureHandler.setStateChangeCallback(mView::updateStates); - mEdgeBackGestureHandler.setButtonForceVisibleChangeCallback((forceVisible) -> { - mIsButtonForceVisible = forceVisible; + mEdgeBackGestureHandler.setButtonForcedVisibleChangeCallback((forceVisible) -> { repositionNavigationBar(mCurrentRotation); }); mNavigationBarTransitions.addListener(this::onBarTransition); @@ -1710,7 +1703,7 @@ public class NavigationBar extends ViewController implements private InsetsFrameProvider[] getInsetsFrameProvider(int insetsHeight, Context userContext) { final InsetsFrameProvider navBarProvider; - if (insetsHeight != -1 && !mIsButtonForceVisible) { + if (insetsHeight != -1 && !mEdgeBackGestureHandler.isButtonForcedVisible()) { 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 f28c275158b98..163b6fa816aa0 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java @@ -178,7 +178,7 @@ public class EdgeBackGestureHandler implements PluginListener mButtonForceVisibleCallback; + private Consumer mButtonForcedVisibleCallback; private final PluginManager mPluginManager; private final ProtoTracer mProtoTracer; @@ -246,7 +246,7 @@ public class EdgeBackGestureHandler implements PluginListener callback) { - mButtonForceVisibleCallback = callback; + public void setButtonForcedVisibleChangeCallback(Consumer callback) { + mButtonForcedVisibleCallback = callback; } public int getEdgeWidthLeft() { @@ -429,13 +429,14 @@ public class EdgeBackGestureHandler implements PluginListener