Merge "Fixing a couple nav bar crashes" into sc-qpr1-dev
This commit is contained in:
@@ -410,6 +410,12 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
|||||||
new Handler(Looper.getMainLooper())) {
|
new Handler(Looper.getMainLooper())) {
|
||||||
@Override
|
@Override
|
||||||
public void onChange(boolean selfChange, Uri uri) {
|
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();
|
updateAssistantEntrypoints();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -651,7 +657,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
|||||||
if (mIsOnDefaultDisplay) {
|
if (mIsOnDefaultDisplay) {
|
||||||
final RotationButtonController rotationButtonController =
|
final RotationButtonController rotationButtonController =
|
||||||
mNavigationBarView.getRotationButtonController();
|
mNavigationBarView.getRotationButtonController();
|
||||||
rotationButtonController.addRotationCallback(mRotationWatcher);
|
rotationButtonController.setRotationCallback(mRotationWatcher);
|
||||||
|
|
||||||
// Reset user rotation pref to match that of the WindowManager if starting in locked
|
// 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.
|
// mode. This will automatically happen when switching from auto-rotate to locked mode.
|
||||||
@@ -690,6 +696,9 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewDetachedFromWindow(View v) {
|
public void onViewDetachedFromWindow(View v) {
|
||||||
|
final RotationButtonController rotationButtonController =
|
||||||
|
mNavigationBarView.getRotationButtonController();
|
||||||
|
rotationButtonController.setRotationCallback(null);
|
||||||
mNavigationBarView.getBarTransitions().destroy();
|
mNavigationBarView.getBarTransitions().destroy();
|
||||||
mNavigationBarView.getLightTransitionsController().destroy(mContext);
|
mNavigationBarView.getLightTransitionsController().destroy(mContext);
|
||||||
mOverviewProxyService.removeCallback(mOverviewProxyListener);
|
mOverviewProxyService.removeCallback(mOverviewProxyListener);
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ public class NavigationBarView extends FrameLayout implements
|
|||||||
};
|
};
|
||||||
|
|
||||||
private final Consumer<Boolean> mRotationButtonListener = (visible) -> {
|
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,
|
// If the button will actually become visible and the navbar is about to hide,
|
||||||
// tell the statusbar to keep it around for longer
|
// tell the statusbar to keep it around for longer
|
||||||
mAutoHideController.touchAutoHide();
|
mAutoHideController.touchAutoHide();
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ public class RotationButtonController {
|
|||||||
TaskStackChangeListeners.getInstance().unregisterTaskStackListener(mTaskStackListener);
|
TaskStackChangeListeners.getInstance().unregisterTaskStackListener(mTaskStackListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addRotationCallback(Consumer<Integer> watcher) {
|
void setRotationCallback(Consumer<Integer> watcher) {
|
||||||
mRotWatcherListener = watcher;
|
mRotWatcherListener = watcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user