diff options
13 files changed, 38 insertions, 8 deletions
| diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorTest.kt index 24c651f3c702..a9541d962639 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorTest.kt @@ -61,6 +61,7 @@ class KeyguardInteractorTest : SysuiTestCase() {      private val testScope = kosmos.testScope      private val repository by lazy { kosmos.fakeKeyguardRepository }      private val sceneInteractor by lazy { kosmos.sceneInteractor } +    private val fromGoneTransitionInteractor by lazy { kosmos.fromGoneTransitionInteractor }      private val commandQueue by lazy { FakeCommandQueue() }      private val bouncerRepository = FakeKeyguardBouncerRepository()      private val shadeRepository = FakeShadeRepository() @@ -79,6 +80,7 @@ class KeyguardInteractorTest : SysuiTestCase() {              shadeRepository = shadeRepository,              keyguardTransitionInteractor = kosmos.keyguardTransitionInteractor,              sceneInteractorProvider = { sceneInteractor }, +            fromGoneTransitionInteractor = { fromGoneTransitionInteractor },          )      } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 43a8b40a3150..3b34750756b4 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -40,6 +40,7 @@ import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STR  import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN;  import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_FOR_UNATTENDED_UPDATE;  import static com.android.systemui.DejankUtils.whitelistIpcs; +import static com.android.systemui.Flags.migrateClocksToBlueprint;  import static com.android.systemui.Flags.notifyPowerManagerUserActivityBackground;  import static com.android.systemui.Flags.refactorGetCurrentUser;  import static com.android.systemui.keyguard.ui.viewmodel.LockscreenToDreamingTransitionViewModel.DREAMING_ANIMATION_DURATION_MS; @@ -3401,6 +3402,11 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,                  mSurfaceBehindRemoteAnimationFinishedCallback = null;              }          } + +        // Ensure that keyguard becomes visible if the going away animation is canceled +        if (showKeyguard && !KeyguardWmStateRefactor.isEnabled() && migrateClocksToBlueprint()) { +            mKeyguardInteractor.showKeyguard(); +        }      }      private void adjustStatusBarLocked() { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractor.kt index d5a9bd19d766..4a3232e755bd 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromGoneTransitionInteractor.kt @@ -71,6 +71,10 @@ constructor(          listenForGoneToDreamingLockscreenHosted()      } +    fun showKeyguard() { +        scope.launch { startTransitionTo(KeyguardState.LOCKSCREEN) } +    } +      // Primarily for when the user chooses to lock down the device      private fun listenForGoneToLockscreenOrHub() {          if (KeyguardWmStateRefactor.isEnabled) { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt index 773497383f0b..283f1601846b 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractor.kt @@ -83,6 +83,7 @@ constructor(      shadeRepository: ShadeRepository,      keyguardTransitionInteractor: KeyguardTransitionInteractor,      sceneInteractorProvider: Provider<SceneInteractor>, +    private val fromGoneTransitionInteractor: Provider<FromGoneTransitionInteractor>,  ) {      // TODO(b/296118689): move to a repository      private val _sharedNotificationContainerBounds = MutableStateFlow(NotificationContainerBounds()) @@ -383,6 +384,11 @@ constructor(          repository.topClippingBounds.value = top      } +    /** Temporary shim, until [KeyguardWmStateRefactor] is enabled */ +    fun showKeyguard() { +        fromGoneTransitionInteractor.get().showKeyguard() +    } +      companion object {          private const val TAG = "KeyguardInteractor"      } diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowControllerImplTest.java index c31c625dff50..1ee26db81826 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowControllerImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowControllerImplTest.java @@ -196,7 +196,8 @@ public class NotificationShadeWindowControllerImplTest extends SysuiTestCase {                  new ConfigurationInteractor(configurationRepository),                  shadeRepository,                  keyguardTransitionInteractor, -                () -> sceneInteractor); +                () -> sceneInteractor, +                () -> mKosmos.getFromGoneTransitionInteractor());          CommunalInteractor communalInteractor = mKosmos.getCommunalInteractor();          mFromLockscreenTransitionInteractor = mKosmos.getFromLockscreenTransitionInteractor(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerImplBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerImplBaseTest.java index d3160ed3a64f..b9451bafec90 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerImplBaseTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/shade/QuickSettingsControllerImplBaseTest.java @@ -222,7 +222,8 @@ public class QuickSettingsControllerImplBaseTest extends SysuiTestCase {                  new ConfigurationInteractor(configurationRepository),                  mShadeRepository,                  keyguardTransitionInteractor, -                () -> sceneInteractor); +                () -> sceneInteractor, +                () -> mKosmos.getFromGoneTransitionInteractor());          mFromLockscreenTransitionInteractor = mKosmos.getFromLockscreenTransitionInteractor();          mFromPrimaryBouncerTransitionInteractor = diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarStateControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarStateControllerImplTest.kt index 103dcb7dda4b..dcd000aaa011 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarStateControllerImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/StatusBarStateControllerImplTest.kt @@ -45,6 +45,7 @@ import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepos  import com.android.systemui.keyguard.domain.interactor.FromLockscreenTransitionInteractor  import com.android.systemui.keyguard.domain.interactor.FromPrimaryBouncerTransitionInteractor  import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor +import com.android.systemui.keyguard.domain.interactor.fromGoneTransitionInteractor  import com.android.systemui.keyguard.domain.interactor.fromLockscreenTransitionInteractor  import com.android.systemui.keyguard.domain.interactor.fromPrimaryBouncerTransitionInteractor  import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor @@ -153,6 +154,7 @@ class StatusBarStateControllerImplTest : SysuiTestCase() {                  shadeRepository,                  keyguardTransitionInteractor,                  { kosmos.sceneInteractor }, +                { kosmos.fromGoneTransitionInteractor },              )          whenever(deviceEntryUdfpsInteractor.isUdfpsSupported).thenReturn(MutableStateFlow(false)) diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java index 1748cffcddda..d9e9c596ee4a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java @@ -177,7 +177,8 @@ public class KeyguardStatusBarViewControllerTest extends SysuiTestCase {                  new ConfigurationInteractor(new FakeConfigurationRepository()),                  new FakeShadeRepository(),                  keyguardTransitionInteractor, -                () -> mKosmos.getSceneInteractor()); +                () -> mKosmos.getSceneInteractor(), +                () -> mKosmos.getFromGoneTransitionInteractor());          mViewModel =                  new KeyguardStatusBarViewModel(                          mTestScope.getBackgroundScope(), diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt index 76913e8e15ee..e4b9f102c51c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/ui/viewmodel/KeyguardStatusBarViewModelTest.kt @@ -24,6 +24,7 @@ import com.android.systemui.common.ui.domain.interactor.ConfigurationInteractor  import com.android.systemui.coroutines.collectLastValue  import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository  import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor +import com.android.systemui.keyguard.domain.interactor.fromGoneTransitionInteractor  import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor  import com.android.systemui.keyguard.shared.model.StatusBarState  import com.android.systemui.kosmos.testScope @@ -63,9 +64,9 @@ class KeyguardStatusBarViewModelTest : SysuiTestCase() {              ConfigurationInteractor(FakeConfigurationRepository()),              FakeShadeRepository(),              kosmos.keyguardTransitionInteractor, -        ) { -            kosmos.sceneInteractor -        } +            { kosmos.sceneInteractor }, +            { kosmos.fromGoneTransitionInteractor }, +        )      private val keyguardStatusBarInteractor =          KeyguardStatusBarInteractor(              FakeKeyguardStatusBarRepository(), diff --git a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java index 19f31d55d4a4..ec27f48f9570 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java @@ -441,7 +441,8 @@ public class BubblesTest extends SysuiTestCase {                  new ConfigurationInteractor(configurationRepository),                  shadeRepository,                  keyguardTransitionInteractor, -                () -> sceneInteractor); +                () -> sceneInteractor, +                () -> mKosmos.getFromGoneTransitionInteractor());          mFromLockscreenTransitionInteractor = mKosmos.getFromLockscreenTransitionInteractor();          mFromPrimaryBouncerTransitionInteractor = diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorFactory.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorFactory.kt index 3893a9b74b2a..00cdc337bc06 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorFactory.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorFactory.kt @@ -51,6 +51,7 @@ object KeyguardInteractorFactory {          configurationRepository: FakeConfigurationRepository = FakeConfigurationRepository(),          shadeRepository: FakeShadeRepository = FakeShadeRepository(),          sceneInteractor: SceneInteractor = mock(), +        fromGoneTransitionInteractor: FromGoneTransitionInteractor = mock(),          powerInteractor: PowerInteractor = PowerInteractorFactory.create().powerInteractor,      ): WithDependencies {          // Mock this until the class is replaced by kosmos @@ -77,6 +78,7 @@ object KeyguardInteractorFactory {                  sceneInteractorProvider = { sceneInteractor },                  keyguardTransitionInteractor = keyguardTransitionInteractor,                  powerInteractor = powerInteractor, +                fromGoneTransitionInteractor = { fromGoneTransitionInteractor },              ),          )      } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorKosmos.kt index 5140a9f5c2ba..d61bc9f559bb 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardInteractorKosmos.kt @@ -26,7 +26,7 @@ import com.android.systemui.scene.shared.flag.sceneContainerFlags  import com.android.systemui.shade.data.repository.shadeRepository  import com.android.systemui.statusbar.commandQueue -val Kosmos.keyguardInteractor by +val Kosmos.keyguardInteractor: KeyguardInteractor by      Kosmos.Fixture {          KeyguardInteractor(              repository = keyguardRepository, @@ -38,5 +38,6 @@ val Kosmos.keyguardInteractor by              shadeRepository = shadeRepository,              keyguardTransitionInteractor = keyguardTransitionInteractor,              sceneInteractorProvider = { sceneInteractor }, +            fromGoneTransitionInteractor = { fromGoneTransitionInteractor },          )      } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt index 3fc5af1a50ab..e861892252fa 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/kosmos/KosmosJavaAdapter.kt @@ -34,6 +34,7 @@ import com.android.systemui.globalactions.domain.interactor.globalActionsInterac  import com.android.systemui.jank.interactionJankMonitor  import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository  import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository +import com.android.systemui.keyguard.domain.interactor.fromGoneTransitionInteractor  import com.android.systemui.keyguard.domain.interactor.fromLockscreenTransitionInteractor  import com.android.systemui.keyguard.domain.interactor.fromPrimaryBouncerTransitionInteractor  import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor @@ -92,6 +93,7 @@ class KosmosJavaAdapter(      val fromPrimaryBouncerTransitionInteractor by lazy {          kosmos.fromPrimaryBouncerTransitionInteractor      } +    val fromGoneTransitionInteractor by lazy { kosmos.fromGoneTransitionInteractor }      val globalActionsInteractor by lazy { kosmos.globalActionsInteractor }      val sceneDataSource by lazy { kosmos.sceneDataSource } |