diff options
10 files changed, 45 insertions, 33 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsControllerOverlayTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsControllerOverlayTest.kt index a726b7c2b075..b0beab932e21 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsControllerOverlayTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsControllerOverlayTest.kt @@ -47,6 +47,7 @@ import com.android.systemui.dump.DumpManager import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.res.R +import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.LockscreenShadeTransitionController import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager import com.android.systemui.statusbar.phone.SystemUIDialogManager @@ -54,7 +55,6 @@ import com.android.systemui.statusbar.phone.UnlockedScreenOffAnimationController import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.user.domain.interactor.SelectedUserInteractor -import com.android.systemui.util.settings.SecureSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import org.junit.Before @@ -101,7 +101,6 @@ class UdfpsControllerOverlayTest : SysuiTestCase() { @Mock private lateinit var unlockedScreenOffAnimationController: UnlockedScreenOffAnimationController @Mock private lateinit var udfpsDisplayMode: UdfpsDisplayModeProvider - @Mock private lateinit var secureSettings: SecureSettings @Mock private lateinit var controllerCallback: IUdfpsOverlayControllerCallback @Mock private lateinit var udfpsController: UdfpsController @Mock private lateinit var udfpsView: UdfpsView @@ -117,6 +116,7 @@ class UdfpsControllerOverlayTest : SysuiTestCase() { @Mock private lateinit var udfpsKeyguardAccessibilityDelegate: UdfpsKeyguardAccessibilityDelegate @Mock private lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor + @Mock private lateinit var shadeInteractor: ShadeInteractor @Captor private lateinit var layoutParamsCaptor: ArgumentCaptor<WindowManager.LayoutParams> private val onTouch = { _: View, _: MotionEvent, _: Boolean -> true } @@ -174,6 +174,7 @@ class UdfpsControllerOverlayTest : SysuiTestCase() { mSelectedUserInteractor, { deviceEntryUdfpsTouchOverlayViewModel }, { defaultUdfpsTouchOverlayViewModel }, + shadeInteractor ) block() } diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsControllerTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsControllerTest.java index a4b55e765c92..e5da1f86a841 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsControllerTest.java +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsControllerTest.java @@ -94,6 +94,7 @@ import com.android.systemui.log.SessionTracker; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.res.R; +import com.android.systemui.shade.domain.interactor.ShadeInteractor; import com.android.systemui.statusbar.LockscreenShadeTransitionController; import com.android.systemui.statusbar.VibratorHelper; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; @@ -205,6 +206,8 @@ public class UdfpsControllerTest extends SysuiTestCase { @Mock private PrimaryBouncerInteractor mPrimaryBouncerInteractor; @Mock + private ShadeInteractor mShadeInteractor; + @Mock private SinglePointerTouchProcessor mSinglePointerTouchProcessor; @Mock private SessionTracker mSessionTracker; @@ -328,6 +331,7 @@ public class UdfpsControllerTest extends SysuiTestCase { mActivityLaunchAnimator, mBiometricExecutor, mPrimaryBouncerInteractor, + mShadeInteractor, mSinglePointerTouchProcessor, mSessionTracker, mAlternateBouncerInteractor, diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerBaseTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerBaseTest.java index ac16c135e6a1..13b53a896b70 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerBaseTest.java +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerBaseTest.java @@ -36,6 +36,7 @@ import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInterac import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.shade.ShadeExpansionChangeEvent; import com.android.systemui.shade.ShadeExpansionStateManager; +import com.android.systemui.shade.domain.interactor.ShadeInteractor; import com.android.systemui.statusbar.LockscreenShadeTransitionController; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.SystemUIDialogManager; @@ -70,6 +71,7 @@ public class UdfpsKeyguardViewLegacyControllerBaseTest extends SysuiTestCase { protected @Mock UdfpsController mUdfpsController; protected @Mock ActivityLaunchAnimator mActivityLaunchAnimator; protected @Mock PrimaryBouncerInteractor mPrimaryBouncerInteractor; + protected @Mock ShadeInteractor mShadeInteractor; protected @Mock AlternateBouncerInteractor mAlternateBouncerInteractor; protected @Mock UdfpsKeyguardAccessibilityDelegate mUdfpsKeyguardAccessibilityDelegate; protected @Mock SelectedUserInteractor mSelectedUserInteractor; @@ -149,7 +151,8 @@ public class UdfpsKeyguardViewLegacyControllerBaseTest extends SysuiTestCase { mAlternateBouncerInteractor, mUdfpsKeyguardAccessibilityDelegate, mSelectedUserInteractor, - mKeyguardTransitionInteractor); + mKeyguardTransitionInteractor, + mShadeInteractor); return controller; } } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt index 66fb8ca2832d..7d9ec08bcb3b 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsAnimationViewController.kt @@ -23,16 +23,14 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.repeatOnLifecycle import com.android.app.animation.Interpolators import com.android.systemui.Dumpable -import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor import com.android.systemui.dump.DumpManager import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.plugins.statusbar.StatusBarStateController -import com.android.systemui.statusbar.StatusBarState.SHADE +import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.phone.SystemUIDialogManager import com.android.systemui.util.ViewController import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job -import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch import java.io.PrintWriter @@ -49,7 +47,7 @@ import java.io.PrintWriter abstract class UdfpsAnimationViewController<T : UdfpsAnimationView>( view: T, protected val statusBarStateController: StatusBarStateController, - protected val primaryBouncerInteractor: PrimaryBouncerInteractor, + protected val shadeInteractor: ShadeInteractor, protected val dialogManager: SystemUIDialogManager, private val dumpManager: DumpManager ) : ViewController<T>(view), Dumpable { @@ -94,20 +92,18 @@ abstract class UdfpsAnimationViewController<T : UdfpsAnimationView>( // can make the view not visible; and we still want to listen for events // that may make the view visible again. repeatOnLifecycle(Lifecycle.State.CREATED) { - listenForBouncerExpansion(this) + listenForShadeExpansion(this) } } } @VisibleForTesting - open suspend fun listenForBouncerExpansion(scope: CoroutineScope): Job { + suspend fun listenForShadeExpansion(scope: CoroutineScope): Job { return scope.launch { - primaryBouncerInteractor.bouncerExpansion.map { 1f - it }.collect { expansion: Float -> - if (statusBarStateController.state != SHADE) { - notificationShadeVisible = expansion > 0f - view.onExpansionChanged(expansion) - updatePauseAuth() - } + shadeInteractor.anyExpansion.collect { expansion -> + notificationShadeVisible = expansion > 0f + view.onExpansionChanged(expansion) + updatePauseAuth() } } } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsBpViewController.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsBpViewController.kt index 03749a9dc0df..e7b0d9fd9d85 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsBpViewController.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsBpViewController.kt @@ -15,9 +15,9 @@ */ package com.android.systemui.biometrics -import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.statusbar.StatusBarStateController +import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.phone.SystemUIDialogManager /** @@ -26,13 +26,13 @@ import com.android.systemui.statusbar.phone.SystemUIDialogManager class UdfpsBpViewController( view: UdfpsBpView, statusBarStateController: StatusBarStateController, - primaryBouncerInteractor: PrimaryBouncerInteractor, + shadeInteractor: ShadeInteractor, systemUIDialogManager: SystemUIDialogManager, dumpManager: DumpManager ) : UdfpsAnimationViewController<UdfpsBpView>( view, statusBarStateController, - primaryBouncerInteractor, + shadeInteractor, systemUIDialogManager, dumpManager ) { diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java index 240728a8f1e8..2fd13b349438 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java @@ -89,6 +89,7 @@ import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInterac import com.android.systemui.log.SessionTracker; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; +import com.android.systemui.shade.domain.interactor.ShadeInteractor; import com.android.systemui.shared.system.SysUiStatsLog; import com.android.systemui.statusbar.LockscreenShadeTransitionController; import com.android.systemui.statusbar.VibratorHelper; @@ -162,6 +163,7 @@ public class UdfpsController implements DozeReceiver, Dumpable { @VisibleForTesting @NonNull final BiometricDisplayListener mOrientationListener; @NonNull private final ActivityLaunchAnimator mActivityLaunchAnimator; @NonNull private final PrimaryBouncerInteractor mPrimaryBouncerInteractor; + @NonNull private final ShadeInteractor mShadeInteractor; @Nullable private final TouchProcessor mTouchProcessor; @NonNull private final SessionTracker mSessionTracker; @NonNull private final Lazy<DeviceEntryUdfpsTouchOverlayViewModel> @@ -290,7 +292,8 @@ public class UdfpsController implements DozeReceiver, Dumpable { mKeyguardTransitionInteractor, mSelectedUserInteractor, mDeviceEntryUdfpsTouchOverlayViewModel, - mDefaultUdfpsTouchOverlayViewModel + mDefaultUdfpsTouchOverlayViewModel, + mShadeInteractor ))); } @@ -656,6 +659,7 @@ public class UdfpsController implements DozeReceiver, Dumpable { @NonNull ActivityLaunchAnimator activityLaunchAnimator, @NonNull @BiometricsBackground Executor biometricsExecutor, @NonNull PrimaryBouncerInteractor primaryBouncerInteractor, + @NonNull ShadeInteractor shadeInteractor, @NonNull SinglePointerTouchProcessor singlePointerTouchProcessor, @NonNull SessionTracker sessionTracker, @NonNull AlternateBouncerInteractor alternateBouncerInteractor, @@ -705,6 +709,7 @@ public class UdfpsController implements DozeReceiver, Dumpable { mBiometricExecutor = biometricsExecutor; mPrimaryBouncerInteractor = primaryBouncerInteractor; + mShadeInteractor = shadeInteractor; mAlternateBouncerInteractor = alternateBouncerInteractor; mInputManager = inputManager; mUdfpsKeyguardAccessibilityDelegate = udfpsKeyguardAccessibilityDelegate; diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsControllerOverlay.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsControllerOverlay.kt index aabee93fd0a0..b94a1779e10b 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsControllerOverlay.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsControllerOverlay.kt @@ -57,6 +57,7 @@ import com.android.systemui.dump.DumpManager import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.res.R +import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.LockscreenShadeTransitionController import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager import com.android.systemui.statusbar.phone.SystemUIDialogManager @@ -107,6 +108,7 @@ class UdfpsControllerOverlay @JvmOverloads constructor( private val selectedUserInteractor: SelectedUserInteractor, private val deviceEntryUdfpsTouchOverlayViewModel: Lazy<DeviceEntryUdfpsTouchOverlayViewModel>, private val defaultUdfpsTouchOverlayViewModel: Lazy<DefaultUdfpsTouchOverlayViewModel>, + private val shadeInteractor: ShadeInteractor, ) { private var overlayViewLegacy: UdfpsView? = null private set @@ -277,7 +279,7 @@ class UdfpsControllerOverlay @JvmOverloads constructor( updateAccessibilityViewLocation(sensorBounds) }, statusBarStateController, - primaryBouncerInteractor, + shadeInteractor, dialogManager, dumpManager ) @@ -303,6 +305,7 @@ class UdfpsControllerOverlay @JvmOverloads constructor( udfpsKeyguardAccessibilityDelegate, selectedUserInteractor, transitionInteractor, + shadeInteractor, ) } REASON_AUTH_BP -> { @@ -310,7 +313,7 @@ class UdfpsControllerOverlay @JvmOverloads constructor( UdfpsBpViewController( view.addUdfpsView(R.layout.udfps_bp_view), statusBarStateController, - primaryBouncerInteractor, + shadeInteractor, dialogManager, dumpManager ) @@ -320,7 +323,7 @@ class UdfpsControllerOverlay @JvmOverloads constructor( UdfpsFpmEmptyViewController( view.addUdfpsView(R.layout.udfps_fpm_empty_view), statusBarStateController, - primaryBouncerInteractor, + shadeInteractor, dialogManager, dumpManager ) diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsFpmEmptyViewController.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsFpmEmptyViewController.kt index 88002e7b8492..ab3fbb191527 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsFpmEmptyViewController.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsFpmEmptyViewController.kt @@ -15,9 +15,9 @@ */ package com.android.systemui.biometrics -import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.statusbar.StatusBarStateController +import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.phone.SystemUIDialogManager /** @@ -28,13 +28,13 @@ import com.android.systemui.statusbar.phone.SystemUIDialogManager class UdfpsFpmEmptyViewController( view: UdfpsFpmEmptyView, statusBarStateController: StatusBarStateController, - primaryBouncerInteractor: PrimaryBouncerInteractor, + shadeInteractor: ShadeInteractor, systemUIDialogManager: SystemUIDialogManager, dumpManager: DumpManager ) : UdfpsAnimationViewController<UdfpsFpmEmptyView>( view, statusBarStateController, - primaryBouncerInteractor, + shadeInteractor, systemUIDialogManager, dumpManager ) { diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerLegacy.kt b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerLegacy.kt index 64148f6035e0..9f170241269d 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerLegacy.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsKeyguardViewControllerLegacy.kt @@ -36,6 +36,7 @@ import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.lifecycle.repeatWhenAttached import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.res.R +import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.LockscreenShadeTransitionController import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager @@ -68,16 +69,17 @@ open class UdfpsKeyguardViewControllerLegacy( systemUIDialogManager: SystemUIDialogManager, private val udfpsController: UdfpsController, private val activityLaunchAnimator: ActivityLaunchAnimator, - primaryBouncerInteractor: PrimaryBouncerInteractor, + private val primaryBouncerInteractor: PrimaryBouncerInteractor, private val alternateBouncerInteractor: AlternateBouncerInteractor, private val udfpsKeyguardAccessibilityDelegate: UdfpsKeyguardAccessibilityDelegate, private val selectedUserInteractor: SelectedUserInteractor, private val transitionInteractor: KeyguardTransitionInteractor, + shadeInteractor: ShadeInteractor, ) : UdfpsAnimationViewController<UdfpsKeyguardViewLegacy>( view, statusBarStateController, - primaryBouncerInteractor, + shadeInteractor, systemUIDialogManager, dumpManager, ) { @@ -319,7 +321,7 @@ open class UdfpsKeyguardViewControllerLegacy( } @VisibleForTesting - override suspend fun listenForBouncerExpansion(scope: CoroutineScope): Job { + suspend fun listenForBouncerExpansion(scope: CoroutineScope): Job { return scope.launch { primaryBouncerInteractor.bouncerExpansion.collect { bouncerExpansion: Float -> inputBouncerExpansion = bouncerExpansion diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsBpViewControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsBpViewControllerTest.kt index e2aa984de46b..647dae6fd6c2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsBpViewControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/UdfpsBpViewControllerTest.kt @@ -20,10 +20,9 @@ import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase -import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor import com.android.systemui.dump.DumpManager import com.android.systemui.plugins.statusbar.StatusBarStateController -import com.android.systemui.shade.ShadeExpansionStateManager +import com.android.systemui.shade.domain.interactor.ShadeInteractor import com.android.systemui.statusbar.phone.SystemUIDialogManager import org.junit.Assert.assertFalse import org.junit.Before @@ -42,8 +41,7 @@ class UdfpsBpViewControllerTest : SysuiTestCase() { @Mock lateinit var udfpsBpView: UdfpsBpView @Mock lateinit var statusBarStateController: StatusBarStateController - @Mock lateinit var shadeExpansionStateManager: ShadeExpansionStateManager - @Mock lateinit var primaryBouncerInteractor: PrimaryBouncerInteractor + @Mock lateinit var shadeInteractor: ShadeInteractor @Mock lateinit var systemUIDialogManager: SystemUIDialogManager @Mock lateinit var dumpManager: DumpManager @@ -55,7 +53,7 @@ class UdfpsBpViewControllerTest : SysuiTestCase() { UdfpsBpViewController( udfpsBpView, statusBarStateController, - primaryBouncerInteractor, + shadeInteractor, systemUIDialogManager, dumpManager ) |