Merge "Clean up navbar for autohide" into rvc-dev

This commit is contained in:
Heemin Seog
2020-03-07 01:19:53 +00:00
committed by Android (Google) Code Review
2 changed files with 29 additions and 21 deletions

View File

@@ -165,6 +165,7 @@ public class NavigationBarController implements Callbacks {
private void removeNavigationBar(int displayId) { private void removeNavigationBar(int displayId) {
NavigationBarFragment navBar = mNavigationBars.get(displayId); NavigationBarFragment navBar = mNavigationBars.get(displayId);
if (navBar != null) { if (navBar != null) {
navBar.setAutoHideController(/* autoHideController */ null);
View navigationWindow = navBar.getView().getRootView(); View navigationWindow = navBar.getView().getRootView();
WindowManagerGlobal.getInstance() WindowManagerGlobal.getInstance()
.removeView(navigationWindow, true /* immediate */); .removeView(navigationWindow, true /* immediate */);

View File

@@ -205,6 +205,28 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
private final Handler mHandler; 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() { private final OverviewProxyListener mOverviewProxyListener = new OverviewProxyListener() {
@Override @Override
public void onConnectionChanged(boolean isConnected) { public void onConnectionChanged(boolean isConnected) {
@@ -1052,28 +1074,13 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
/** Sets {@link AutoHideController} to the navigation bar. */ /** Sets {@link AutoHideController} to the navigation bar. */
public void setAutoHideController(AutoHideController autoHideController) { public void setAutoHideController(AutoHideController autoHideController) {
if (mAutoHideController != null) {
mAutoHideController.removeAutoHideUiElement(mAutoHideUiElement);
}
mAutoHideController = autoHideController; mAutoHideController = autoHideController;
mAutoHideController.addAutoHideUiElement(new AutoHideUiElement() { if (mAutoHideController != null) {
@Override mAutoHideController.addAutoHideUiElement(mAutoHideUiElement);
public void synchronizeState() {
checkNavBarModes();
} }
@Override
public boolean shouldHideOnTouch() {
return !mNotificationRemoteInputManager.getController().isRemoteInputActive();
}
@Override
public boolean isVisible() {
return isTransientShown();
}
@Override
public void hide() {
clearTransient();
}
});
} }
private boolean isTransientShown() { private boolean isTransientShown() {