diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/biometrics/SidefpsController.kt | 4 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/biometrics/SidefpsControllerTest.kt | 40 |
2 files changed, 43 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/SidefpsController.kt b/packages/SystemUI/src/com/android/systemui/biometrics/SidefpsController.kt index bbffb73b7503..d03106b4e6bc 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/SidefpsController.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/SidefpsController.kt @@ -43,6 +43,8 @@ import android.view.View.AccessibilityDelegate import android.view.ViewPropertyAnimator import android.view.WindowInsets import android.view.WindowManager +import android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION +import android.view.WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY import android.view.accessibility.AccessibilityEvent import androidx.annotation.RawRes import com.airbnb.lottie.LottieAnimationView @@ -130,7 +132,7 @@ class SidefpsController @Inject constructor( fitInsetsTypes = 0 // overrides default, avoiding status bars during layout gravity = Gravity.TOP or Gravity.LEFT layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS - privateFlags = WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY + privateFlags = PRIVATE_FLAG_TRUSTED_OVERLAY or PRIVATE_FLAG_NO_MOVE_ANIMATION } init { diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/SidefpsControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/SidefpsControllerTest.kt index 6157ccbd597a..8d969d0f1045 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/SidefpsControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/SidefpsControllerTest.kt @@ -45,6 +45,8 @@ import android.view.View import android.view.ViewPropertyAnimator import android.view.WindowInsets import android.view.WindowManager +import android.view.WindowManager.LayoutParams.PRIVATE_FLAG_NO_MOVE_ANIMATION +import android.view.WindowManager.LayoutParams.PRIVATE_FLAG_TRUSTED_OVERLAY import android.view.WindowMetrics import androidx.test.filters.SmallTest import com.airbnb.lottie.LottieAnimationView @@ -438,6 +440,44 @@ class SidefpsControllerTest : SysuiTestCase() { assertThat(fingerprintManager.hasSideFpsSensor()).isFalse() } + + @Test + fun testLayoutParams_hasNoMoveAnimationWindowFlag() = testWithDisplay( + deviceConfig = DeviceConfig.Y_ALIGNED_UNFOLDED + ) { + sideFpsController.overlayOffsets = sensorLocation + sideFpsController.updateOverlayParams( + windowManager.defaultDisplay, + indicatorBounds + ) + overlayController.show(SENSOR_ID, REASON_UNKNOWN) + executor.runAllReady() + + verify(windowManager).updateViewLayout(any(), overlayViewParamsCaptor.capture()) + + val lpFlags = overlayViewParamsCaptor.value.privateFlags + + assertThat((lpFlags and PRIVATE_FLAG_NO_MOVE_ANIMATION) != 0).isTrue() + } + + @Test + fun testLayoutParams_hasTrustedOverlayWindowFlag() = testWithDisplay( + deviceConfig = DeviceConfig.Y_ALIGNED_UNFOLDED + ) { + sideFpsController.overlayOffsets = sensorLocation + sideFpsController.updateOverlayParams( + windowManager.defaultDisplay, + indicatorBounds + ) + overlayController.show(SENSOR_ID, REASON_UNKNOWN) + executor.runAllReady() + + verify(windowManager).updateViewLayout(any(), overlayViewParamsCaptor.capture()) + + val lpFlags = overlayViewParamsCaptor.value.privateFlags + + assertThat((lpFlags and PRIVATE_FLAG_TRUSTED_OVERLAY) != 0).isTrue() + } } private fun insetsForSmallNavbar() = insetsWithBottom(60) |