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

Commit e708a927 authored by Manjeet Rulhania's avatar Manjeet Rulhania Committed by Android (Google) Code Review
Browse files

Merge "Fix privacy control long click jank regression" into main

parents cb7ad62e 832aac83
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;

import com.android.internal.logging.MetricsLogger;
import com.android.systemui.res.R;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.ActivityStarter;
@@ -43,6 +42,7 @@ import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.QsEventLogger;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.res.R;
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController;
import com.android.systemui.statusbar.policy.KeyguardStateController;

@@ -55,7 +55,7 @@ public abstract class SensorPrivacyToggleTile extends QSTileImpl<QSTile.BooleanS
    private final KeyguardStateController mKeyguard;
    protected IndividualSensorPrivacyController mSensorPrivacyController;

    private final SafetyCenterManager mSafetyCenterManager;
    private final Boolean mIsSafetyCenterEnabled;

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

@@ -138,7 +138,7 @@ public abstract class SensorPrivacyToggleTile extends QSTileImpl<QSTile.BooleanS

    @Override
    public Intent getLongClickIntent() {
        if (mSafetyCenterManager.isSafetyCenterEnabled()) {
        if (mIsSafetyCenterEnabled) {
            return new Intent(Settings.ACTION_PRIVACY_CONTROLS);
        } else {
            return new Intent(Settings.ACTION_PRIVACY_SETTINGS);
+35 −2
Original line number Diff line number Diff line
@@ -124,11 +124,44 @@ class CameraToggleTileTest : SysuiTestCase() {
    }

    @Test
    fun testLongClickIntent() {
    fun testLongClickIntent_safetyCenterEnabled() {
        whenever(safetyCenterManager.isSafetyCenterEnabled).thenReturn(true)
        assertThat(tile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_CONTROLS)
        val cameraTile = CameraToggleTile(
                host,
                uiEventLogger,
                testableLooper.looper,
                Handler(testableLooper.looper),
                metricsLogger,
                FalsingManagerFake(),
                statusBarStateController,
                activityStarter,
                qsLogger,
                privacyController,
                keyguardStateController,
                safetyCenterManager)
        assertThat(cameraTile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_CONTROLS)
        cameraTile.destroy()
        testableLooper.processAllMessages()
    }

    @Test
    fun testLongClickIntent_safetyCenterDisabled() {
        whenever(safetyCenterManager.isSafetyCenterEnabled).thenReturn(false)
        val cameraTile = CameraToggleTile(
                host,
                uiEventLogger,
                testableLooper.looper,
                Handler(testableLooper.looper),
                metricsLogger,
                FalsingManagerFake(),
                statusBarStateController,
                activityStarter,
                qsLogger,
                privacyController,
                keyguardStateController,
                safetyCenterManager)
        assertThat(tile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_SETTINGS)
        cameraTile.destroy()
        testableLooper.processAllMessages()
    }
}
+36 −3
Original line number Diff line number Diff line
@@ -123,11 +123,44 @@ class MicrophoneToggleTileTest : SysuiTestCase() {
    }

    @Test
    fun testLongClickIntent() {
    fun testLongClickIntent_safetyCenterEnabled() {
        whenever(safetyCenterManager.isSafetyCenterEnabled).thenReturn(true)
        assertThat(tile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_CONTROLS)
        val micTile = MicrophoneToggleTile(
                host,
                uiEventLogger,
                testableLooper.looper,
                Handler(testableLooper.looper),
                metricsLogger,
                FalsingManagerFake(),
                statusBarStateController,
                activityStarter,
                qsLogger,
                privacyController,
                keyguardStateController,
                safetyCenterManager)
        assertThat(micTile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_CONTROLS)
        micTile.destroy()
        testableLooper.processAllMessages()
    }

    @Test
    fun testLongClickIntent_safetyCenterDisabled() {
        whenever(safetyCenterManager.isSafetyCenterEnabled).thenReturn(false)
        assertThat(tile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_SETTINGS)
        val micTile = MicrophoneToggleTile(
                host,
                uiEventLogger,
                testableLooper.looper,
                Handler(testableLooper.looper),
                metricsLogger,
                FalsingManagerFake(),
                statusBarStateController,
                activityStarter,
                qsLogger,
                privacyController,
                keyguardStateController,
                safetyCenterManager)
        assertThat(micTile.longClickIntent?.action).isEqualTo(Settings.ACTION_PRIVACY_SETTINGS)
        micTile.destroy()
        testableLooper.processAllMessages()
    }
}