[Misc] Only create KeyguardStatusBarViewController once inside
NotificationPanelViewController. The KeyguardStatusBarView never changes, so we don't need to re-create its controller in NPVController#updateViewControllers. Fixes: 194181195 Test: atest and manual Change-Id: If955a8d6167a08bec6e7a7e9e66a2c6a55f68966
This commit is contained in:
@@ -47,12 +47,6 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
||||
|
||||
@Override
|
||||
protected void onViewDetached() {
|
||||
destroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
super.destroy();
|
||||
mConfigurationController.removeCallback(mConfigurationListener);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -928,10 +928,14 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
}
|
||||
}
|
||||
|
||||
mKeyguardStatusBarViewController =
|
||||
mKeyguardStatusBarViewComponentFactory.build(mKeyguardStatusBar)
|
||||
.getKeyguardStatusBarViewController();
|
||||
mKeyguardStatusBarViewController.init();
|
||||
|
||||
updateViewControllers(
|
||||
mView.findViewById(R.id.keyguard_status_view),
|
||||
userAvatarView,
|
||||
mKeyguardStatusBar,
|
||||
keyguardUserSwitcherView,
|
||||
mCommunalView,
|
||||
mView.findViewById(R.id.idle_host_view));
|
||||
@@ -1025,7 +1029,6 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
|
||||
private void updateViewControllers(KeyguardStatusView keyguardStatusView,
|
||||
UserAvatarView userAvatarView,
|
||||
KeyguardStatusBarView keyguardStatusBarView,
|
||||
KeyguardUserSwitcherView keyguardUserSwitcherView,
|
||||
CommunalHostView communalView,
|
||||
IdleHostView idleHostView) {
|
||||
@@ -1039,16 +1042,6 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
mIdleHostViewController = idleViewComponent.getIdleHostViewController();
|
||||
mIdleHostViewController.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 (communalView != null) {
|
||||
CommunalViewComponent communalViewComponent =
|
||||
mCommunalViewComponentFactory.build(communalView);
|
||||
@@ -1217,7 +1210,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
|
||||
mBigClockContainer.removeAllViews();
|
||||
updateViewControllers(mView.findViewById(R.id.keyguard_status_view), userAvatarView,
|
||||
mKeyguardStatusBar, keyguardUserSwitcherView, mCommunalView,
|
||||
keyguardUserSwitcherView, mCommunalView,
|
||||
mView.findViewById(R.id.idle_host_view));
|
||||
|
||||
// Update keyguard bottom area
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user