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

Commit 1ae4230b authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Ensure secure camera reset when GONE" into main

parents 130ef1ca 1ebbaf4b
Loading
Loading
Loading
Loading
+19 −0
Original line number Original line Diff line number Diff line
@@ -39,7 +39,9 @@ import com.android.systemui.keyguard.shared.model.DozeTransitionModel
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.KeyguardState.AOD
import com.android.systemui.keyguard.shared.model.KeyguardState.AOD
import com.android.systemui.keyguard.shared.model.KeyguardState.DOZING
import com.android.systemui.keyguard.shared.model.KeyguardState.DOZING
import com.android.systemui.keyguard.shared.model.KeyguardState.GONE
import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN
import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN
import com.android.systemui.keyguard.shared.model.KeyguardState.OCCLUDED
import com.android.systemui.keyguard.shared.model.StatusBarState
import com.android.systemui.keyguard.shared.model.StatusBarState
import com.android.systemui.keyguard.shared.model.TransitionState
import com.android.systemui.keyguard.shared.model.TransitionState
import com.android.systemui.keyguard.shared.model.TransitionState.FINISHED
import com.android.systemui.keyguard.shared.model.TransitionState.FINISHED
@@ -164,6 +166,23 @@ class KeyguardInteractorTest : SysuiTestCase() {
            assertThat(secureCameraActive()).isFalse()
            assertThat(secureCameraActive()).isFalse()
        }
        }


    @Test
    @DisableFlags(FLAG_KEYGUARD_WM_STATE_REFACTOR)
    fun testGoneStateResetsCameraActive() =
        testScope.runTest {
            val secureCameraActive = collectLastValue(underTest.isSecureCameraActive)
            runCurrent()

            underTest.onCameraLaunchDetected(
                StatusBarManager.CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP,
                isSecureCamera = true,
            )
            assertThat(secureCameraActive()).isTrue()

            keyguardTransitionRepository.sendTransitionSteps(from = OCCLUDED, to = GONE, testScope)
            assertThat(secureCameraActive()).isFalse()
        }

    /** Regression test for b/373700726. */
    /** Regression test for b/373700726. */
    @Test
    @Test
    @DisableFlags(FLAG_KEYGUARD_WM_STATE_REFACTOR)
    @DisableFlags(FLAG_KEYGUARD_WM_STATE_REFACTOR)
+6 −0
Original line number Original line Diff line number Diff line
@@ -288,6 +288,7 @@ constructor(
        KeyguardBecameVisible,
        KeyguardBecameVisible,
        PrimaryBouncerBecameVisible,
        PrimaryBouncerBecameVisible,
        SecureCameraLaunched,
        SecureCameraLaunched,
        InGoneState,
    }
    }


    /** Whether camera is launched over keyguard. */
    /** Whether camera is launched over keyguard. */
@@ -302,6 +303,10 @@ constructor(
                primaryBouncerShowing
                primaryBouncerShowing
                    .filter { it }
                    .filter { it }
                    .map { SecureCameraRelatedEventType.PrimaryBouncerBecameVisible },
                    .map { SecureCameraRelatedEventType.PrimaryBouncerBecameVisible },
                keyguardTransitionInteractor
                    .transitionValue(GONE)
                    .filter { it == 1f }
                    .map { SecureCameraRelatedEventType.InGoneState },
            )
            )
            .map {
            .map {
                when (it) {
                when (it) {
@@ -310,6 +315,7 @@ constructor(
                    // have to show, so those events tell us that secure camera is no longer active.
                    // have to show, so those events tell us that secure camera is no longer active.
                    SecureCameraRelatedEventType.KeyguardBecameVisible -> false
                    SecureCameraRelatedEventType.KeyguardBecameVisible -> false
                    SecureCameraRelatedEventType.PrimaryBouncerBecameVisible -> false
                    SecureCameraRelatedEventType.PrimaryBouncerBecameVisible -> false
                    SecureCameraRelatedEventType.InGoneState -> false
                }
                }
            }
            }
            .onStart { emit(false) }
            .onStart { emit(false) }