diff options
| author | 2024-10-11 19:23:15 +0000 | |
|---|---|---|
| committer | 2024-10-11 19:24:49 +0000 | |
| commit | a682fea38f3fae2ebe45b72430c0fc533decb3fa (patch) | |
| tree | 01bff887c09095a447071f19e2237191fc3379b5 | |
| parent | 3363b51da75dbec3e35eadb52250758a459da6ae (diff) | |
Remove pieces of device entry flag
Piece #2
Bug: 279440316
Test: atest SystemUITests
Flag: com.android.systemui.device_entry_udfps_refactor
Change-Id: I9ccd453ef032d919db0bc863249c9b2ded141dc5
4 files changed, 70 insertions, 189 deletions
diff --git a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/LockSection.kt b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/LockSection.kt index a525f36c71ce..9390664d1283 100644 --- a/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/LockSection.kt +++ b/packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/section/LockSection.kt @@ -30,14 +30,10 @@ import androidx.compose.ui.unit.IntRect import androidx.compose.ui.viewinterop.AndroidView import com.android.compose.animation.scene.ElementKey import com.android.compose.animation.scene.SceneScope -import com.android.keyguard.LockIconView -import com.android.keyguard.LockIconViewController import com.android.systemui.biometrics.AuthController import com.android.systemui.dagger.qualifiers.Application -import com.android.systemui.deviceentry.shared.DeviceEntryUdfpsRefactor import com.android.systemui.flags.FeatureFlagsClassic import com.android.systemui.flags.Flags -import com.android.systemui.keyguard.KeyguardBottomAreaRefactor import com.android.systemui.keyguard.ui.binder.DeviceEntryIconViewBinder import com.android.systemui.keyguard.ui.composable.blueprint.BlueprintAlignmentLines import com.android.systemui.keyguard.ui.view.DeviceEntryIconView @@ -61,7 +57,6 @@ constructor( private val windowManager: WindowManager, private val authController: AuthController, private val featureFlags: FeatureFlagsClassic, - private val lockIconViewController: Lazy<LockIconViewController>, private val deviceEntryIconViewModel: Lazy<DeviceEntryIconViewModel>, private val deviceEntryForegroundViewModel: Lazy<DeviceEntryForegroundViewModel>, private val deviceEntryBackgroundViewModel: Lazy<DeviceEntryBackgroundViewModel>, @@ -71,42 +66,28 @@ constructor( ) { @Composable fun SceneScope.LockIcon(overrideColor: Color? = null, modifier: Modifier = Modifier) { - if (!KeyguardBottomAreaRefactor.isEnabled && !DeviceEntryUdfpsRefactor.isEnabled) { - return - } - val context = LocalContext.current AndroidView( factory = { context -> - val view = - if (DeviceEntryUdfpsRefactor.isEnabled) { - DeviceEntryIconView( - context, - null, - logger = LongPressHandlingViewLogger(logBuffer, tag = TAG) - ) - .apply { - id = R.id.device_entry_icon_view - DeviceEntryIconViewBinder.bind( - applicationScope, - this, - deviceEntryIconViewModel.get(), - deviceEntryForegroundViewModel.get(), - deviceEntryBackgroundViewModel.get(), - falsingManager.get(), - vibratorHelper.get(), - overrideColor, - ) - } - } else { - // KeyguardBottomAreaRefactor.isEnabled - LockIconView(context, null).apply { - id = R.id.lock_icon_view - lockIconViewController.get().setLockIconView(this) - } + DeviceEntryIconView( + context, + null, + logger = LongPressHandlingViewLogger(logBuffer, tag = TAG), + ) + .apply { + id = R.id.device_entry_icon_view + DeviceEntryIconViewBinder.bind( + applicationScope, + this, + deviceEntryIconViewModel.get(), + deviceEntryForegroundViewModel.get(), + deviceEntryBackgroundViewModel.get(), + falsingManager.get(), + vibratorHelper.get(), + overrideColor, + ) } - view }, modifier = modifier.element(LockIconElementKey).layout { measurable, _ -> @@ -141,9 +122,7 @@ constructor( * On devices that support UDFPS (under-display fingerprint sensor), the bounds of the icon are * the same as the bounds of the sensor. */ - private fun lockIconBounds( - context: Context, - ): IntRect { + private fun lockIconBounds(context: Context): IntRect { val windowViewBounds = windowManager.currentWindowMetrics.bounds var widthPx = windowViewBounds.right.toFloat() if (featureFlags.isEnabled(Flags.LOCKSCREEN_ENABLE_LANDSCAPE)) { @@ -162,10 +141,7 @@ constructor( val (center, radius) = if (authController.isUdfpsSupported && udfpsLocation != null) { Pair( - IntOffset( - x = udfpsLocation.x, - y = udfpsLocation.y, - ), + IntOffset(x = udfpsLocation.x, y = udfpsLocation.y), authController.udfpsRadius.toInt(), ) } else { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySection.kt index 782d37b1929c..8d2bfb5bdf40 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySection.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySection.kt @@ -27,11 +27,8 @@ import android.view.WindowManager import androidx.annotation.VisibleForTesting import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet -import com.android.keyguard.LockIconView -import com.android.keyguard.LockIconViewController import com.android.systemui.biometrics.AuthController import com.android.systemui.dagger.qualifiers.Application -import com.android.systemui.deviceentry.shared.DeviceEntryUdfpsRefactor import com.android.systemui.flags.FeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.keyguard.KeyguardBottomAreaRefactor @@ -66,7 +63,6 @@ constructor( private val context: Context, private val notificationPanelView: NotificationPanelView, private val featureFlags: FeatureFlags, - private val lockIconViewController: Lazy<LockIconViewController>, private val deviceEntryIconViewModel: Lazy<DeviceEntryIconViewModel>, private val deviceEntryForegroundViewModel: Lazy<DeviceEntryForegroundViewModel>, private val deviceEntryBackgroundViewModel: Lazy<DeviceEntryBackgroundViewModel>, @@ -78,70 +74,44 @@ constructor( private var disposableHandle: DisposableHandle? = null override fun addViews(constraintLayout: ConstraintLayout) { - if ( - !KeyguardBottomAreaRefactor.isEnabled && - !MigrateClocksToBlueprint.isEnabled && - !DeviceEntryUdfpsRefactor.isEnabled - ) { + if (!KeyguardBottomAreaRefactor.isEnabled && !MigrateClocksToBlueprint.isEnabled) { return } - notificationPanelView.findViewById<View>(R.id.lock_icon_view).let { - notificationPanelView.removeView(it) - } - val view = - if (DeviceEntryUdfpsRefactor.isEnabled) { - DeviceEntryIconView( - context, - null, - logger = - LongPressHandlingViewLogger( - logBuffer = logBuffer, - TAG - ) - ) - .apply { id = deviceEntryIconViewId } - } else { - // KeyguardBottomAreaRefactor.isEnabled or MigrateClocksToBlueprint.isEnabled - LockIconView(context, null).apply { id = R.id.lock_icon_view } - } + DeviceEntryIconView( + context, + null, + logger = LongPressHandlingViewLogger(logBuffer = logBuffer, TAG), + ) + .apply { id = deviceEntryIconViewId } + constraintLayout.addView(view) } override fun bindData(constraintLayout: ConstraintLayout) { - if (DeviceEntryUdfpsRefactor.isEnabled) { - constraintLayout.findViewById<DeviceEntryIconView?>(deviceEntryIconViewId)?.let { - disposableHandle?.dispose() - disposableHandle = - DeviceEntryIconViewBinder.bind( - applicationScope, - it, - deviceEntryIconViewModel.get(), - deviceEntryForegroundViewModel.get(), - deviceEntryBackgroundViewModel.get(), - falsingManager.get(), - vibratorHelper.get(), - ) - } - } else { - constraintLayout.findViewById<LockIconView?>(R.id.lock_icon_view)?.let { - lockIconViewController.get().setLockIconView(it) - } + constraintLayout.findViewById<DeviceEntryIconView?>(deviceEntryIconViewId)?.let { + disposableHandle?.dispose() + disposableHandle = + DeviceEntryIconViewBinder.bind( + applicationScope, + it, + deviceEntryIconViewModel.get(), + deviceEntryForegroundViewModel.get(), + deviceEntryBackgroundViewModel.get(), + falsingManager.get(), + vibratorHelper.get(), + ) } } override fun applyConstraints(constraintSet: ConstraintSet) { - val isUdfpsSupported = - if (DeviceEntryUdfpsRefactor.isEnabled) { - Log.d( - "DefaultDeviceEntrySection", - "isUdfpsSupported=${deviceEntryIconViewModel.get().isUdfpsSupported.value}" - ) - deviceEntryIconViewModel.get().isUdfpsSupported.value - } else { - authController.isUdfpsSupported - } + Log.d( + "DefaultDeviceEntrySection", + "isUdfpsSupported=${deviceEntryIconViewModel.get().isUdfpsSupported.value}", + ) + val isUdfpsSupported = deviceEntryIconViewModel.get().isUdfpsSupported.value + val scaleFactor: Float = authController.scaleFactor val mBottomPaddingPx = context.resources.getDimensionPixelSize(R.dimen.lock_icon_margin_bottom) @@ -160,31 +130,24 @@ constructor( val iconRadiusPx = (defaultDensity * 36).toInt() if (isUdfpsSupported) { - if (DeviceEntryUdfpsRefactor.isEnabled) { - deviceEntryIconViewModel.get().udfpsLocation.value?.let { udfpsLocation -> - Log.d( - "DeviceEntrySection", - "udfpsLocation=$udfpsLocation, " + - "scaledLocation=(${udfpsLocation.centerX},${udfpsLocation.centerY}), " + - "unusedAuthController=${authController.udfpsLocation}" - ) - centerIcon( - Point(udfpsLocation.centerX.toInt(), udfpsLocation.centerY.toInt()), - udfpsLocation.radius, - constraintSet - ) - } - } else { - authController.udfpsLocation?.let { udfpsLocation -> - Log.d("DeviceEntrySection", "udfpsLocation=$udfpsLocation") - centerIcon(udfpsLocation, authController.udfpsRadius, constraintSet) - } + deviceEntryIconViewModel.get().udfpsLocation.value?.let { udfpsLocation -> + Log.d( + "DeviceEntrySection", + "udfpsLocation=$udfpsLocation, " + + "scaledLocation=(${udfpsLocation.centerX},${udfpsLocation.centerY}), " + + "unusedAuthController=${authController.udfpsLocation}", + ) + centerIcon( + Point(udfpsLocation.centerX.toInt(), udfpsLocation.centerY.toInt()), + udfpsLocation.radius, + constraintSet, + ) } } else { centerIcon( Point( (widthPixels / 2).toInt(), - (heightPixels - ((mBottomPaddingPx + iconRadiusPx) * scaleFactor)).toInt() + (heightPixels - ((mBottomPaddingPx + iconRadiusPx) * scaleFactor)).toInt(), ), iconRadiusPx * scaleFactor, constraintSet, @@ -193,12 +156,8 @@ constructor( } override fun removeViews(constraintLayout: ConstraintLayout) { - if (DeviceEntryUdfpsRefactor.isEnabled) { - constraintLayout.removeView(deviceEntryIconViewId) - disposableHandle?.dispose() - } else { - constraintLayout.removeView(R.id.lock_icon_view) - } + constraintLayout.removeView(deviceEntryIconViewId) + disposableHandle?.dispose() } @VisibleForTesting @@ -213,12 +172,7 @@ constructor( ) } - val iconId = - if (DeviceEntryUdfpsRefactor.isEnabled) { - deviceEntryIconViewId - } else { - R.id.lock_icon_view - } + val iconId = deviceEntryIconViewId constraintSet.apply { constrainWidth(iconId, sensorRect.right - sensorRect.left) @@ -228,14 +182,14 @@ constructor( ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, - sensorRect.top + sensorRect.top, ) connect( iconId, ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START, - sensorRect.left + sensorRect.left, ) } @@ -243,8 +197,8 @@ constructor( // Without this logic, the lock icon location changes but the KeyguardBottomAreaView is not // updated and visible ui layout jank occurs. This is due to AmbientIndicationContainer // being in NPVC and laying out prior to the KeyguardRootView. - // Remove when both DeviceEntryUdfpsRefactor and KeyguardBottomAreaRefactor are enabled. - if (DeviceEntryUdfpsRefactor.isEnabled && !KeyguardBottomAreaRefactor.isEnabled) { + // Remove when KeyguardBottomAreaRefactor is enabled. + if (!KeyguardBottomAreaRefactor.isEnabled) { with(notificationPanelView) { val isUdfpsSupported = deviceEntryIconViewModel.get().isUdfpsSupported.value val bottomAreaViewRight = findViewById<View>(R.id.keyguard_bottom_area)?.right ?: 0 @@ -256,7 +210,7 @@ constructor( ambientLeft, sensorRect.bottom, bottomAreaViewRight - ambientLeft, - ambientTop + it.measuredHeight + ambientTop + it.measuredHeight, ) } else { // make bottom of ambient indication view the top of the lock icon @@ -264,7 +218,7 @@ constructor( ambientLeft, sensorRect.top - it.measuredHeight, bottomAreaViewRight - ambientLeft, - sensorRect.top + sensorRect.top, ) } } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/NotificationStackScrollLayoutSection.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/NotificationStackScrollLayoutSection.kt index edcf97a81ea4..620cc13a0c3a 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/NotificationStackScrollLayoutSection.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/view/layout/sections/NotificationStackScrollLayoutSection.kt @@ -55,11 +55,7 @@ constructor( R.id.nssl_placeholder_barrier_bottom, Barrier.TOP, 0, - *intArrayOf( - R.id.device_entry_icon_view, - R.id.lock_icon_view, - R.id.ambient_indication_container - ) + *intArrayOf(R.id.device_entry_icon_view, R.id.ambient_indication_container), ) connect(placeHolderId, BOTTOM, R.id.nssl_placeholder_barrier_bottom, TOP) } diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySectionTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySectionTest.kt index bfb8a57e6271..cea51a89a378 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySectionTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/view/layout/sections/DefaultDeviceEntrySectionTest.kt @@ -18,13 +18,11 @@ package com.android.systemui.keyguard.ui.view.layout.sections import android.graphics.Point -import android.platform.test.annotations.DisableFlags import android.view.WindowManager import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest -import com.android.keyguard.LegacyLockIconViewController import com.android.systemui.Flags as AConfigFlags import com.android.systemui.SysuiTestCase import com.android.systemui.biometrics.AuthController @@ -60,7 +58,6 @@ class DefaultDeviceEntrySectionTest : SysuiTestCase() { @Mock(answer = Answers.RETURNS_DEEP_STUBS) private lateinit var windowManager: WindowManager @Mock private lateinit var notificationPanelView: NotificationPanelView private lateinit var featureFlags: FakeFeatureFlags - @Mock private lateinit var lockIconViewController: LegacyLockIconViewController @Mock private lateinit var falsingManager: FalsingManager @Mock private lateinit var deviceEntryIconViewModel: DeviceEntryIconViewModel private lateinit var underTest: DefaultDeviceEntrySection @@ -81,7 +78,6 @@ class DefaultDeviceEntrySectionTest : SysuiTestCase() { context, notificationPanelView, featureFlags, - { lockIconViewController }, { deviceEntryIconViewModel }, { mock(DeviceEntryForegroundViewModel::class.java) }, { mock(DeviceEntryBackgroundViewModel::class.java) }, @@ -102,37 +98,13 @@ class DefaultDeviceEntrySectionTest : SysuiTestCase() { @Test fun addViewsConditionally_migrateAndRefactorFlagsOn() { mSetFlagsRule.enableFlags(AConfigFlags.FLAG_KEYGUARD_BOTTOM_AREA_REFACTOR) - mSetFlagsRule.enableFlags(AConfigFlags.FLAG_DEVICE_ENTRY_UDFPS_REFACTOR) val constraintLayout = ConstraintLayout(context, null) underTest.addViews(constraintLayout) assertThat(constraintLayout.childCount).isGreaterThan(0) } @Test - @DisableFlags(AConfigFlags.FLAG_MIGRATE_CLOCKS_TO_BLUEPRINT) - fun addViewsConditionally_migrateFlagOff() { - mSetFlagsRule.disableFlags(AConfigFlags.FLAG_KEYGUARD_BOTTOM_AREA_REFACTOR) - mSetFlagsRule.disableFlags(AConfigFlags.FLAG_DEVICE_ENTRY_UDFPS_REFACTOR) - val constraintLayout = ConstraintLayout(context, null) - underTest.addViews(constraintLayout) - assertThat(constraintLayout.childCount).isEqualTo(0) - } - - @Test - fun applyConstraints_udfps_refactor_off() { - mSetFlagsRule.disableFlags(AConfigFlags.FLAG_DEVICE_ENTRY_UDFPS_REFACTOR) - val cs = ConstraintSet() - underTest.applyConstraints(cs) - - val constraint = cs.getConstraint(R.id.lock_icon_view) - - assertThat(constraint.layout.topToTop).isEqualTo(ConstraintSet.PARENT_ID) - assertThat(constraint.layout.startToStart).isEqualTo(ConstraintSet.PARENT_ID) - } - - @Test - fun applyConstraints_udfps_refactor_on() { - mSetFlagsRule.enableFlags(AConfigFlags.FLAG_DEVICE_ENTRY_UDFPS_REFACTOR) + fun applyConstraints() { whenever(deviceEntryIconViewModel.isUdfpsSupported).thenReturn(MutableStateFlow(false)) val cs = ConstraintSet() underTest.applyConstraints(cs) @@ -144,24 +116,7 @@ class DefaultDeviceEntrySectionTest : SysuiTestCase() { } @Test - fun testCenterIcon_udfps_refactor_off() { - mSetFlagsRule.disableFlags(AConfigFlags.FLAG_DEVICE_ENTRY_UDFPS_REFACTOR) - val cs = ConstraintSet() - underTest.centerIcon(Point(5, 6), 1F, cs) - - val constraint = cs.getConstraint(R.id.lock_icon_view) - - assertThat(constraint.layout.mWidth).isEqualTo(2) - assertThat(constraint.layout.mHeight).isEqualTo(2) - assertThat(constraint.layout.topToTop).isEqualTo(ConstraintSet.PARENT_ID) - assertThat(constraint.layout.startToStart).isEqualTo(ConstraintSet.PARENT_ID) - assertThat(constraint.layout.topMargin).isEqualTo(5) - assertThat(constraint.layout.startMargin).isEqualTo(4) - } - - @Test - fun testCenterIcon_udfps_refactor_on() { - mSetFlagsRule.enableFlags(AConfigFlags.FLAG_DEVICE_ENTRY_UDFPS_REFACTOR) + fun testCenterIcon() { val cs = ConstraintSet() underTest.centerIcon(Point(5, 6), 1F, cs) |