Merge "Fixing a couple nav bar crashes" into sc-qpr1-dev

This commit is contained in:
Winson Chung
2021-09-13 21:21:29 +00:00
committed by Android (Google) Code Review
3 changed files with 12 additions and 3 deletions

View File

@@ -410,6 +410,12 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
new Handler(Looper.getMainLooper())) {
@Override
public void onChange(boolean selfChange, Uri uri) {
// TODO(b/198002034): Content observers currently can still be called back after being
// unregistered, and in this case we can ignore the change if the nav bar has been
// destroyed already
if (mNavigationBarView == null) {
return;
}
updateAssistantEntrypoints();
}
};
@@ -651,7 +657,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
if (mIsOnDefaultDisplay) {
final RotationButtonController rotationButtonController =
mNavigationBarView.getRotationButtonController();
rotationButtonController.addRotationCallback(mRotationWatcher);
rotationButtonController.setRotationCallback(mRotationWatcher);
// Reset user rotation pref to match that of the WindowManager if starting in locked
// mode. This will automatically happen when switching from auto-rotate to locked mode.
@@ -690,6 +696,9 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
@Override
public void onViewDetachedFromWindow(View v) {
final RotationButtonController rotationButtonController =
mNavigationBarView.getRotationButtonController();
rotationButtonController.setRotationCallback(null);
mNavigationBarView.getBarTransitions().destroy();
mNavigationBarView.getLightTransitionsController().destroy(mContext);
mOverviewProxyService.removeCallback(mOverviewProxyListener);

View File

@@ -274,7 +274,7 @@ public class NavigationBarView extends FrameLayout implements
};
private final Consumer<Boolean> mRotationButtonListener = (visible) -> {
if (visible) {
if (visible && mAutoHideController != null) {
// If the button will actually become visible and the navbar is about to hide,
// tell the statusbar to keep it around for longer
mAutoHideController.touchAutoHide();

View File

@@ -180,7 +180,7 @@ public class RotationButtonController {
TaskStackChangeListeners.getInstance().unregisterTaskStackListener(mTaskStackListener);
}
void addRotationCallback(Consumer<Integer> watcher) {
void setRotationCallback(Consumer<Integer> watcher) {
mRotWatcherListener = watcher;
}