Move fold state listener registration from constructor to start()

If the callback gets called before start() has run, it can NPE

Fixes: 265027517, 264982191
Bug: 265272821
Test: manual and presubmits
Change-Id: Ibb3cb8e0771f3d90cefd56e2308838b28c372ff4
This commit is contained in:
Justin Weir
2023-01-10 16:02:30 -05:00
parent 41aeadba75
commit 07ad993036
2 changed files with 13 additions and 2 deletions

View File

@@ -312,6 +312,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
private final Context mContext;
private final LockscreenShadeTransitionController mLockscreenShadeTransitionController;
private final DeviceStateManager mDeviceStateManager;
private CentralSurfacesCommandQueueCallbacks mCommandQueueCallbacks;
private float mTransitionToFullShadeProgress = 0f;
private NotificationListContainer mNotifListContainer;
@@ -879,8 +880,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
mMessageRouter.subscribeTo(MSG_LAUNCH_TRANSITION_TIMEOUT,
id -> onLaunchTransitionTimeout());
deviceStateManager.registerCallback(mMainExecutor,
new FoldStateListener(mContext, this::onFoldedStateChanged));
mDeviceStateManager = deviceStateManager;
wiredChargingRippleController.registerCallbacks();
mLightRevealScrimViewModelLazy = lightRevealScrimViewModelLazy;
@@ -1069,6 +1069,8 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
}
});
registerCallbacks();
mFalsingManager.addFalsingBeliefListener(mFalsingBeliefListener);
mPluginManager.addPluginListener(
@@ -1123,6 +1125,14 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
requestTopUi, componentTag))));
}
@VisibleForTesting
/** Registers listeners/callbacks with external dependencies. */
void registerCallbacks() {
//TODO(b/264502026) move the rest of the listeners here.
mDeviceStateManager.registerCallback(mMainExecutor,
new FoldStateListener(mContext, this::onFoldedStateChanged));
}
@VisibleForTesting
void initShadeVisibilityListener() {
mShadeController.setVisibilityListener(new ShadeController.ShadeVisibilityListener() {

View File

@@ -544,6 +544,7 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
mCentralSurfaces.startKeyguard();
mInitController.executePostInitTasks();
notificationLogger.setUpWithContainer(mNotificationListContainer);
mCentralSurfaces.registerCallbacks();
}
@Test