Don't prepare in-window animations if leaveKeyguardOpenOnHide.
This resulted in a blank launcher as we prepared for, but then never started, the in-window unlock animations, since the keyguar was remaining open over the Launcher. Fixes: 231396336 Test: pull down shade with show sensitive content only enabled; using pin/pattern unlock Change-Id: I236e46e410225d47404015d08cbfd9777727a84c
This commit is contained in:
@@ -44,6 +44,7 @@ import com.android.systemui.shared.system.QuickStepContract
|
||||
import com.android.systemui.shared.system.smartspace.ILauncherUnlockAnimationController
|
||||
import com.android.systemui.shared.system.smartspace.ISysuiUnlockAnimationController
|
||||
import com.android.systemui.shared.system.smartspace.SmartspaceState
|
||||
import com.android.systemui.statusbar.SysuiStatusBarStateController
|
||||
import com.android.systemui.statusbar.phone.BiometricUnlockController
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController
|
||||
import dagger.Lazy
|
||||
@@ -140,7 +141,8 @@ class KeyguardUnlockAnimationController @Inject constructor(
|
||||
keyguardViewMediator: Lazy<KeyguardViewMediator>,
|
||||
private val keyguardViewController: KeyguardViewController,
|
||||
private val featureFlags: FeatureFlags,
|
||||
private val biometricUnlockControllerLazy: Lazy<BiometricUnlockController>
|
||||
private val biometricUnlockControllerLazy: Lazy<BiometricUnlockController>,
|
||||
private val statusBarStateController: SysuiStatusBarStateController
|
||||
) : KeyguardStateController.Callback, ISysuiUnlockAnimationController.Stub() {
|
||||
|
||||
interface KeyguardUnlockAnimationListener {
|
||||
@@ -372,7 +374,8 @@ class KeyguardUnlockAnimationController @Inject constructor(
|
||||
* changed.
|
||||
*/
|
||||
override fun onKeyguardGoingAwayChanged() {
|
||||
if (keyguardStateController.isKeyguardGoingAway) {
|
||||
if (keyguardStateController.isKeyguardGoingAway
|
||||
&& !statusBarStateController.leaveOpenOnKeyguardHide()) {
|
||||
prepareForInWindowLauncherAnimations()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import androidx.test.filters.SmallTest
|
||||
import com.android.keyguard.KeyguardViewController
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.flags.FeatureFlags
|
||||
import com.android.systemui.statusbar.SysuiStatusBarStateController
|
||||
import com.android.systemui.statusbar.phone.BiometricUnlockController
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController
|
||||
import junit.framework.Assert.assertEquals
|
||||
@@ -49,6 +50,8 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() {
|
||||
private lateinit var biometricUnlockController: BiometricUnlockController
|
||||
@Mock
|
||||
private lateinit var surfaceTransactionApplier: SyncRtSurfaceTransactionApplier
|
||||
@Mock
|
||||
private lateinit var statusBarStateController: SysuiStatusBarStateController
|
||||
|
||||
private lateinit var remoteAnimationTarget: RemoteAnimationTarget
|
||||
|
||||
@@ -57,7 +60,7 @@ class KeyguardUnlockAnimationControllerTest : SysuiTestCase() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
keyguardUnlockAnimationController = KeyguardUnlockAnimationController(
|
||||
context, keyguardStateController, { keyguardViewMediator }, keyguardViewController,
|
||||
featureFlags, { biometricUnlockController }
|
||||
featureFlags, { biometricUnlockController }, statusBarStateController
|
||||
)
|
||||
|
||||
`when`(keyguardViewController.viewRootImpl).thenReturn(mock(ViewRootImpl::class.java))
|
||||
|
||||
Reference in New Issue
Block a user