diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java | 1 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java | 49 |
2 files changed, 29 insertions, 21 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java b/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java index ebac4b293522..1b7524521d76 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NavigationBarController.java @@ -165,6 +165,7 @@ public class NavigationBarController implements Callbacks { private void removeNavigationBar(int displayId) { NavigationBarFragment navBar = mNavigationBars.get(displayId); if (navBar != null) { + navBar.setAutoHideController(/* autoHideController */ null); View navigationWindow = navBar.getView().getRootView(); WindowManagerGlobal.getInstance() .removeView(navigationWindow, true /* immediate */); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java index 02cf8ccbef8b..b119f0b1f1e2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java @@ -205,6 +205,28 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback private final Handler mHandler; + private final AutoHideUiElement mAutoHideUiElement = new AutoHideUiElement() { + @Override + public void synchronizeState() { + checkNavBarModes(); + } + + @Override + public boolean shouldHideOnTouch() { + return !mNotificationRemoteInputManager.getController().isRemoteInputActive(); + } + + @Override + public boolean isVisible() { + return isTransientShown(); + } + + @Override + public void hide() { + clearTransient(); + } + }; + private final OverviewProxyListener mOverviewProxyListener = new OverviewProxyListener() { @Override public void onConnectionChanged(boolean isConnected) { @@ -1052,28 +1074,13 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback /** Sets {@link AutoHideController} to the navigation bar. */ public void setAutoHideController(AutoHideController autoHideController) { + if (mAutoHideController != null) { + mAutoHideController.removeAutoHideUiElement(mAutoHideUiElement); + } mAutoHideController = autoHideController; - mAutoHideController.addAutoHideUiElement(new AutoHideUiElement() { - @Override - public void synchronizeState() { - checkNavBarModes(); - } - - @Override - public boolean shouldHideOnTouch() { - return !mNotificationRemoteInputManager.getController().isRemoteInputActive(); - } - - @Override - public boolean isVisible() { - return isTransientShown(); - } - - @Override - public void hide() { - clearTransient(); - } - }); + if (mAutoHideController != null) { + mAutoHideController.addAutoHideUiElement(mAutoHideUiElement); + } } private boolean isTransientShown() { |