Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Snippets Groups Projects
Commit e2907ad2 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Ignore rotations while the view is not yet attached" into sc-v2-dev

parents bb262d6b 08fcb4dc
Branches
No related tags found
No related merge requests found
...@@ -597,6 +597,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, ...@@ -597,6 +597,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
} }
public void destroyView() { public void destroyView() {
setAutoHideController(/* autoHideController */ null);
mCommandQueue.removeCallback(this); mCommandQueue.removeCallback(this);
mContext.getSystemService(WindowManager.class).removeViewImmediate( mContext.getSystemService(WindowManager.class).removeViewImmediate(
mNavigationBarView.getRootView()); mNavigationBarView.getRootView());
...@@ -919,6 +920,11 @@ public class NavigationBar implements View.OnAttachStateChangeListener, ...@@ -919,6 +920,11 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
@Override @Override
public void onRotationProposal(final int rotation, boolean isValid) { public void onRotationProposal(final int rotation, boolean isValid) {
// The CommandQueue callbacks are added when the view is created to ensure we track other
// states, but until the view is attached (at the next traversal), the view's display is
// not valid. Just ignore the rotation in this case.
if (!mNavigationBarView.isAttachedToWindow()) return;
final int winRotation = mNavigationBarView.getDisplay().getRotation(); final int winRotation = mNavigationBarView.getDisplay().getRotation();
final boolean rotateSuggestionsDisabled = RotationButtonController final boolean rotateSuggestionsDisabled = RotationButtonController
.hasDisable2RotateSuggestionFlag(mDisabledFlags2); .hasDisable2RotateSuggestionFlag(mDisabledFlags2);
...@@ -1484,7 +1490,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, ...@@ -1484,7 +1490,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
} }
/** Sets {@link AutoHideController} to the navigation bar. */ /** Sets {@link AutoHideController} to the navigation bar. */
public void setAutoHideController(AutoHideController autoHideController) { private void setAutoHideController(AutoHideController autoHideController) {
mAutoHideController = autoHideController; mAutoHideController = autoHideController;
if (mAutoHideController != null) { if (mAutoHideController != null) {
mAutoHideController.setNavigationBar(mAutoHideUiElement); mAutoHideController.setNavigationBar(mAutoHideUiElement);
......
...@@ -402,7 +402,6 @@ public class NavigationBarController implements Callbacks, ...@@ -402,7 +402,6 @@ public class NavigationBarController implements Callbacks,
void removeNavigationBar(int displayId) { void removeNavigationBar(int displayId) {
NavigationBar navBar = mNavigationBars.get(displayId); NavigationBar navBar = mNavigationBars.get(displayId);
if (navBar != null) { if (navBar != null) {
navBar.setAutoHideController(/* autoHideController */ null);
navBar.destroyView(); navBar.destroyView();
mNavigationBars.remove(displayId); mNavigationBars.remove(displayId);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment