Merge "[Misc] Only create KeyguardStatusBarViewController once inside NotificationPanelViewController." into sc-v2-dev am: 9175a4b7f3

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15440752

Change-Id: I2b8734330d4f02bf3b2bc2d6ae62a49fa0f6c45e
This commit is contained in:
TreeHugger Robot
2021-08-13 23:20:19 +00:00
committed by Automerger Merge Worker
4 changed files with 6 additions and 40 deletions

View File

@@ -107,12 +107,6 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
@Override
protected void onViewDetached() {
destroy();
}
@Override
public void destroy() {
super.destroy();
mConfigurationController.removeCallback(mConfigurationListener);
unsubscribeFromTunerUpdates();
mCurrentUserTracker.stopTracking();

View File

@@ -159,17 +159,6 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
@Override
protected void onViewDetached() {
destroy();
}
@Override
public void destroy() {
// Don't receive future #onViewAttached calls so that we don't accidentally have two
// controllers registered for the same view.
// TODO(b/194181195): This shouldn't be necessary.
super.destroy();
mBatteryMeterViewController.destroy();
mConfigurationController.removeCallback(mConfigurationListener);
mAnimationScheduler.removeCallback(mAnimationCallback);
mUserInfoController.removeCallback(mOnUserInfoChangedListener);

View File

@@ -881,10 +881,14 @@ public class NotificationPanelViewController extends PanelViewController {
}
}
mKeyguardStatusBarViewController =
mKeyguardStatusBarViewComponentFactory.build(mKeyguardStatusBar)
.getKeyguardStatusBarViewController();
mKeyguardStatusBarViewController.init();
updateViewControllers(
mView.findViewById(R.id.keyguard_status_view),
userAvatarView,
mKeyguardStatusBar,
keyguardUserSwitcherView);
mNotificationContainerParent = mView.findViewById(R.id.notification_container_parent);
NotificationStackScrollLayout stackScrollLayout = mView.findViewById(
@@ -976,7 +980,6 @@ public class NotificationPanelViewController extends PanelViewController {
private void updateViewControllers(KeyguardStatusView keyguardStatusView,
UserAvatarView userAvatarView,
KeyguardStatusBarView keyguardStatusBarView,
KeyguardUserSwitcherView keyguardUserSwitcherView) {
// Re-associate the KeyguardStatusViewController
KeyguardStatusViewComponent statusViewComponent =
@@ -984,16 +987,6 @@ public class NotificationPanelViewController extends PanelViewController {
mKeyguardStatusViewController = statusViewComponent.getKeyguardStatusViewController();
mKeyguardStatusViewController.init();
KeyguardStatusBarViewComponent statusBarViewComponent =
mKeyguardStatusBarViewComponentFactory.build(keyguardStatusBarView);
if (mKeyguardStatusBarViewController != null) {
// TODO(b/194181195): This shouldn't be necessary.
mKeyguardStatusBarViewController.destroy();
}
mKeyguardStatusBarViewController =
statusBarViewComponent.getKeyguardStatusBarViewController();
mKeyguardStatusBarViewController.init();
if (mKeyguardUserSwitcherController != null) {
// Try to close the switcher so that callbacks are triggered if necessary.
// Otherwise, NPV can get into a state where some of the views are still hidden
@@ -1153,7 +1146,7 @@ public class NotificationPanelViewController extends PanelViewController {
mBigClockContainer.removeAllViews();
updateViewControllers(mView.findViewById(R.id.keyguard_status_view), userAvatarView,
mKeyguardStatusBar, keyguardUserSwitcherView);
keyguardUserSwitcherView);
// Update keyguard bottom area
int index = mView.indexOfChild(mKeyguardBottomArea);

View File

@@ -109,16 +109,6 @@ public abstract class ViewController<T extends View> {
}
}
/**
* Destroys this controller so that it never receives view attach and detach events again.
* Does nothing if the view is null.
*/
public void destroy() {
if (mView != null) {
mView.removeOnAttachStateChangeListener(mOnAttachStateListener);
}
}
/**
* Called when the view is attached and a call to {@link #init()} has been made in either order.
*/