Merge "Fix redundant move animation on Side-FPS indicator" into tm-qpr-dev

This commit is contained in:
Bill Lin
2022-08-01 23:22:40 +00:00
committed by Android (Google) Code Review
2 changed files with 43 additions and 1 deletions

View File

@@ -43,6 +43,8 @@ import android.view.View.AccessibilityDelegate
import android.view.ViewPropertyAnimator import android.view.ViewPropertyAnimator
import android.view.WindowInsets import android.view.WindowInsets
import android.view.WindowManager 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 android.view.accessibility.AccessibilityEvent
import androidx.annotation.RawRes import androidx.annotation.RawRes
import com.airbnb.lottie.LottieAnimationView import com.airbnb.lottie.LottieAnimationView
@@ -130,7 +132,7 @@ class SidefpsController @Inject constructor(
fitInsetsTypes = 0 // overrides default, avoiding status bars during layout fitInsetsTypes = 0 // overrides default, avoiding status bars during layout
gravity = Gravity.TOP or Gravity.LEFT gravity = Gravity.TOP or Gravity.LEFT
layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS 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 { init {

View File

@@ -45,6 +45,8 @@ import android.view.View
import android.view.ViewPropertyAnimator import android.view.ViewPropertyAnimator
import android.view.WindowInsets import android.view.WindowInsets
import android.view.WindowManager 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 android.view.WindowMetrics
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import com.airbnb.lottie.LottieAnimationView import com.airbnb.lottie.LottieAnimationView
@@ -438,6 +440,44 @@ class SidefpsControllerTest : SysuiTestCase() {
assertThat(fingerprintManager.hasSideFpsSensor()).isFalse() 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) private fun insetsForSmallNavbar() = insetsWithBottom(60)