Merge "Remove pieces of device entry flag" into main
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 a525f36..9390664 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.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 @@
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 @@
) {
@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 @@
* 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 @@
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 782d37b..8d2bfb5 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 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 @@
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 @@
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 @@
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 @@
}
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 @@
)
}
- 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 @@
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 @@
// 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 @@
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 @@
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 edcf97a..620cc13 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 @@
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 bfb8a57..cea51a8 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 @@
@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 @@
context,
notificationPanelView,
featureFlags,
- { lockIconViewController },
{ deviceEntryIconViewModel },
{ mock(DeviceEntryForegroundViewModel::class.java) },
{ mock(DeviceEntryBackgroundViewModel::class.java) },
@@ -102,37 +98,13 @@
@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 @@
}
@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)