Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07ad9930 authored by Justin Weir's avatar Justin Weir
Browse files

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
parent 41aeadba
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -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() {
+1 −0
Original line number Diff line number Diff line
@@ -544,6 +544,7 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
        mCentralSurfaces.startKeyguard();
        mInitController.executePostInitTasks();
        notificationLogger.setUpWithContainer(mNotificationListContainer);
        mCentralSurfaces.registerCallbacks();
    }

    @Test