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

Commit 35d1862d authored by Fabián Kozynski's avatar Fabián Kozynski
Browse files

Move calls to SafetyCenterManager to bg

Move the calls to `handleInitialize` in the tile so they are called in
the bg thread. This method is always called before tiles are ready, so
it should not change behavior.

Test: manual, long press goes to correct activity
Test: atest CameraToggleTileTest MicrophoneToggleTileTest
Fixes: 407698587
Flag: EXEMPT bug fix

Change-Id: Id12c19e2e9729704c42267151b9a554eecdb2d68
parent 4d9fc173
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -148,6 +148,8 @@ class CameraToggleTileTest(flags: FlagsParameterization) : SysuiTestCase() {
                keyguardStateController,
                safetyCenterManager,
            )
        cameraTile.initialize()
        testableLooper.processAllMessages()
        assertThat(cameraTile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_CONTROLS)
        cameraTile.destroy()
        testableLooper.processAllMessages()
@@ -171,6 +173,8 @@ class CameraToggleTileTest(flags: FlagsParameterization) : SysuiTestCase() {
                keyguardStateController,
                safetyCenterManager,
            )
        cameraTile.initialize()
        testableLooper.processAllMessages()
        assertThat(tile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_SETTINGS)
        cameraTile.destroy()
        testableLooper.processAllMessages()
+4 −0
Original line number Diff line number Diff line
@@ -148,6 +148,8 @@ class MicrophoneToggleTileTest(flags: FlagsParameterization) : SysuiTestCase() {
                keyguardStateController,
                safetyCenterManager,
            )
        micTile.initialize()
        testableLooper.processAllMessages()
        assertThat(micTile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_CONTROLS)
        micTile.destroy()
        testableLooper.processAllMessages()
@@ -171,6 +173,8 @@ class MicrophoneToggleTileTest(flags: FlagsParameterization) : SysuiTestCase() {
                keyguardStateController,
                safetyCenterManager,
            )
        micTile.initialize()
        testableLooper.processAllMessages()
        assertThat(micTile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_SETTINGS)
        micTile.destroy()
        testableLooper.processAllMessages()
+10 −2
Original line number Diff line number Diff line
@@ -54,9 +54,11 @@ public abstract class SensorPrivacyToggleTile extends QSTileImpl<QSTile.BooleanS
        IndividualSensorPrivacyController.Callback {

    private final KeyguardStateController mKeyguard;
    private final SafetyCenterManager mSafetyCenterManager;
    protected IndividualSensorPrivacyController mSensorPrivacyController;

    private final Boolean mIsSafetyCenterEnabled;
    // Set delayed in the background thread.
    private boolean mIsSafetyCenterEnabled;

    /**
     * @return Id of the sensor that will be toggled
@@ -90,10 +92,16 @@ public abstract class SensorPrivacyToggleTile extends QSTileImpl<QSTile.BooleanS
                statusBarStateController, activityStarter, qsLogger);
        mSensorPrivacyController = sensorPrivacyController;
        mKeyguard = keyguardStateController;
        mIsSafetyCenterEnabled = safetyCenterManager.isSafetyCenterEnabled();
        mSafetyCenterManager = safetyCenterManager;
        mSensorPrivacyController.observe(getLifecycle(), this);
    }

    @Override
    protected void handleInitialize() {
        super.handleInitialize();
        mIsSafetyCenterEnabled = mSafetyCenterManager.isSafetyCenterEnabled();
    }

    @Override
    public BooleanState newTileState() {
        return new BooleanState();