Loading packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/DefaultBlueprint.kt +5 −1 Original line number Diff line number Diff line Loading @@ -136,7 +136,11 @@ constructor( }, ) LockscreenSceneLayout(elementFactory = elementFactory, elementContext = elementContext) LockscreenSceneLayout( viewModel = viewModel, elementFactory = elementFactory, elementContext = elementContext, ) } } } packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/elements/LockscreenLowerRegionElementProvider.kt +20 −37 Original line number Diff line number Diff line Loading @@ -17,9 +17,7 @@ package com.android.systemui.keyguard.ui.composable.elements import android.content.Context import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.navigationBarsPadding Loading @@ -28,9 +26,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.unit.dp import androidx.compose.ui.res.dimensionResource import com.android.compose.animation.scene.ContentScope import com.android.compose.modifiers.padding import com.android.systemui.keyguard.ui.viewmodel.LockscreenLowerRegionViewModel import com.android.systemui.lifecycle.rememberViewModel import com.android.systemui.log.LogBuffer Loading @@ -41,10 +38,10 @@ import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenEl import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementFactory import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementFactory.Companion.lockscreenElement import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementKeys import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementKeys.AmbientIndicationArea import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementKeys.IndicationArea import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementKeys.Shortcuts import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementProvider import com.android.systemui.res.R import com.android.systemui.shade.ShadeDisplayAware import javax.inject.Inject import kotlin.collections.List Loading Loading @@ -72,40 +69,27 @@ constructor( ) { val viewModel = rememberViewModel("LockscreenLowerRegion") { viewModelFactory.create() } Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(8.dp), modifier = Modifier.navigationBarsPadding().fillMaxWidth().padding(horizontal = 16.dp), ) { if (viewModel.isAmbientIndicationVisible) { factory.lockscreenElement( AmbientIndicationArea, context, Modifier.fillMaxWidth(), ) } Row( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth(), modifier = Modifier.navigationBarsPadding() .fillMaxWidth() .padding( horizontal = dimensionResource(R.dimen.keyguard_affordance_horizontal_offset) ), ) { Box( Modifier.graphicsLayer { translationX = viewModel.unfoldTranslations.start } Modifier.graphicsLayer { translationX = viewModel.unfoldTranslations.start } ) { factory.lockscreenElement(Shortcuts.Start, context) } Box(Modifier.weight(1f)) { factory.lockscreenElement(IndicationArea, context) } Box(Modifier.weight(1f)) { factory.lockscreenElement(IndicationArea, context) } Box( Modifier.graphicsLayer { translationX = viewModel.unfoldTranslations.end } Modifier.graphicsLayer { translationX = viewModel.unfoldTranslations.end } ) { factory.lockscreenElement(Shortcuts.End, context) } Loading @@ -113,4 +97,3 @@ constructor( } } } } packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/layout/LockscreenSceneLayout.kt +44 −15 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.keyguard.ui.composable.layout import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.layout.HorizontalAlignmentLine import androidx.compose.ui.layout.Layout Loading @@ -30,6 +29,7 @@ import androidx.compose.ui.unit.IntRect import androidx.compose.ui.unit.dp import com.android.compose.animation.scene.ContentScope import com.android.compose.modifiers.thenIf import com.android.systemui.keyguard.ui.viewmodel.LockscreenContentViewModel import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementContext import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementFactory import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementFactory.Companion.lockscreenElement Loading Loading @@ -114,31 +114,36 @@ object LockIconAlignmentLines { */ @Composable fun ContentScope.LockscreenSceneLayout( viewModel: LockscreenContentViewModel, elementFactory: LockscreenElementFactory, elementContext: LockscreenElementContext, modifier: Modifier = Modifier, ) { val density = LocalDensity.current val spacingAboveLockIconPx = with(density) { 64.dp.roundToPx() } val spacingBetweenColumnsPx = with(density) { 32.dp.roundToPx() } Layout( content = { elementFactory.lockscreenElement(LockscreenElementKeys.StatusBar, elementContext) elementFactory.lockscreenElement(LockscreenElementKeys.Region.Upper, elementContext) elementFactory.lockscreenElement(LockscreenElementKeys.Region.Lower, elementContext) elementFactory.lockscreenElement(LockscreenElementKeys.LockIcon, elementContext) elementFactory.lockscreenElement( LockscreenElementKeys.AmbientIndicationArea, elementContext, ) elementFactory.lockscreenElement(LockscreenElementKeys.Region.Lower, elementContext) elementFactory.lockscreenElement(LockscreenElementKeys.SettingsMenu, elementContext) }, // Hide the lock screen elements when an overlay is shown above. modifier = modifier.thenIf(isIdleWithOverlay()) { Modifier.graphicsLayer { alpha = 0f } }, ) { measurables, constraints -> check(measurables.size == 5) check(measurables.size == 6) val statusBarMeasurable = measurables[0] val contentMeasurable = measurables[1] val bottomAreaMeasurable = measurables[2] val lockIconMeasurable = measurables[3] val settingsMenuMeasurable = measurables[4] val upperRegionMeasurable = measurables[1] val lockIconMeasurable = measurables[2] val ambientIndicationMeasurable = measurables[3] val lowerRegionMeasurable = measurables[4] val settingsMenuMeasurable = measurables[5] val statusBarPlaceable = statusBarMeasurable.measure(constraints = Constraints.fixedWidth(constraints.maxWidth)) Loading @@ -156,11 +161,20 @@ fun ContentScope.LockscreenSceneLayout( bottom = lockIconPlaceable[LockIconAlignmentLines.Bottom], ) val lockIconConstrainedMaxHeight = val ambientIndicationPlaceable = ambientIndicationMeasurable.measure( constraints = Constraints.fixedWidth(constraints.maxWidth) ) var lockIconConstrainedMaxHeight = lockIconBounds.top - spacingAboveLockIconPx - statusBarPlaceable.measuredHeight val contentPlaceable = contentMeasurable.measure( if (!viewModel.isUdfpsSupported) { lockIconConstrainedMaxHeight -= ambientIndicationPlaceable.measuredHeight } val upperRegionPlaceable = upperRegionMeasurable.measure( Constraints( minWidth = 0, maxWidth = constraints.maxWidth.coerceAtLeast(0), Loading @@ -169,16 +183,31 @@ fun ContentScope.LockscreenSceneLayout( ) ) val bottomAreaPlaceable = bottomAreaMeasurable.measure(constraints = Constraints.fixedWidth(constraints.maxWidth)) val lowerRegionPlaceable = lowerRegionMeasurable.measure( constraints = Constraints.fixedWidth(constraints.maxWidth) ) val settingsMenuPleaceable = settingsMenuMeasurable.measure(constraints) layout(constraints.maxWidth, constraints.maxHeight) { statusBarPlaceable.place(0, 0) contentPlaceable.placeRelative(0, statusBarPlaceable.measuredHeight) bottomAreaPlaceable.place(0, constraints.maxHeight - bottomAreaPlaceable.measuredHeight) upperRegionPlaceable.placeRelative(0, statusBarPlaceable.measuredHeight) lockIconPlaceable.place(x = lockIconBounds.left, y = lockIconBounds.top) if (viewModel.isUdfpsSupported) { ambientIndicationPlaceable.place(x = 0, y = lockIconBounds.bottom) } else { ambientIndicationPlaceable.place( x = 0, y = lockIconBounds.top - ambientIndicationPlaceable.measuredHeight, ) } lowerRegionPlaceable.place( 0, constraints.maxHeight - lowerRegionPlaceable.measuredHeight, ) settingsMenuPleaceable.placeRelative( x = (constraints.maxWidth - settingsMenuPleaceable.measuredWidth) / 2, y = constraints.maxHeight - settingsMenuPleaceable.measuredHeight, Loading packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenContentViewModelTest.kt +22 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.android.systemui.keyguard.ui.viewmodel import android.platform.test.flag.junit.FlagsParameterization import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.biometrics.data.repository.fingerprintPropertyRepository import com.android.systemui.deviceentry.domain.interactor.deviceEntryUdfpsInteractor import com.android.systemui.flags.andSceneContainer import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.repository.keyguardOcclusionRepository Loading @@ -26,6 +28,7 @@ import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.transition.fakeKeyguardTransitionAnimationCallback import com.android.systemui.keyguard.shared.transition.keyguardTransitionAnimationCallbackDelegator import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.collectLastValue import com.android.systemui.kosmos.runCurrent import com.android.systemui.kosmos.runTest import com.android.systemui.kosmos.testScope Loading Loading @@ -149,4 +152,23 @@ class LockscreenContentViewModelTest(flags: FlagsParameterization) : SysuiTestCa assertThat(underTest.isContentVisible).isTrue() } fun isUdfpsSupported_withoutUdfps_false() = kosmos.runTest { val isUdfpsSupported by collectLastValue(deviceEntryUdfpsInteractor.isUdfpsSupported) fingerprintPropertyRepository.supportsRearFps() assertThat(isUdfpsSupported).isFalse() assertThat(underTest.isUdfpsSupported).isFalse() } @Test fun isUdfpsSupported_withUdfps_true() = kosmos.runTest { val isUdfpsSupported by collectLastValue(deviceEntryUdfpsInteractor.isUdfpsSupported) fingerprintPropertyRepository.supportsUdfps() assertThat(isUdfpsSupported).isTrue() assertThat(underTest.isUdfpsSupported).isTrue() } } packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenLowerRegionViewModelTest.kt +0 −16 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.keyguard.ui.viewmodel import android.platform.test.flag.junit.FlagsParameterization import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.biometrics.authController import com.android.systemui.common.ui.data.repository.fakeConfigurationRepository import com.android.systemui.flags.andSceneContainer import com.android.systemui.kosmos.Kosmos Loading @@ -31,7 +30,6 @@ import com.android.systemui.res.R import com.android.systemui.shade.data.repository.shadeRepository import com.android.systemui.testKosmos import com.android.systemui.unfold.fakeUnfoldTransitionProgressProvider import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat import java.util.Locale import kotlinx.coroutines.Job Loading Loading @@ -71,20 +69,6 @@ class LockscreenLowerRegionViewModelTest(flags: FlagsParameterization) : SysuiTe } } @Test fun isAmbientIndicationVisible_withUdfps_false() = kosmos.runTest { whenever(authController.isUdfpsSupported).thenReturn(true) assertThat(underTest.isAmbientIndicationVisible).isFalse() } @Test fun isAmbientIndicationVisible_withoutUdfps_true() = kosmos.runTest { whenever(authController.isUdfpsSupported).thenReturn(false) assertThat(underTest.isAmbientIndicationVisible).isTrue() } @Test fun unfoldTranslations() = kosmos.runTest { Loading Loading
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/blueprint/DefaultBlueprint.kt +5 −1 Original line number Diff line number Diff line Loading @@ -136,7 +136,11 @@ constructor( }, ) LockscreenSceneLayout(elementFactory = elementFactory, elementContext = elementContext) LockscreenSceneLayout( viewModel = viewModel, elementFactory = elementFactory, elementContext = elementContext, ) } } }
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/elements/LockscreenLowerRegionElementProvider.kt +20 −37 Original line number Diff line number Diff line Loading @@ -17,9 +17,7 @@ package com.android.systemui.keyguard.ui.composable.elements import android.content.Context import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.navigationBarsPadding Loading @@ -28,9 +26,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.unit.dp import androidx.compose.ui.res.dimensionResource import com.android.compose.animation.scene.ContentScope import com.android.compose.modifiers.padding import com.android.systemui.keyguard.ui.viewmodel.LockscreenLowerRegionViewModel import com.android.systemui.lifecycle.rememberViewModel import com.android.systemui.log.LogBuffer Loading @@ -41,10 +38,10 @@ import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenEl import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementFactory import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementFactory.Companion.lockscreenElement import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementKeys import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementKeys.AmbientIndicationArea import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementKeys.IndicationArea import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementKeys.Shortcuts import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementProvider import com.android.systemui.res.R import com.android.systemui.shade.ShadeDisplayAware import javax.inject.Inject import kotlin.collections.List Loading Loading @@ -72,40 +69,27 @@ constructor( ) { val viewModel = rememberViewModel("LockscreenLowerRegion") { viewModelFactory.create() } Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(8.dp), modifier = Modifier.navigationBarsPadding().fillMaxWidth().padding(horizontal = 16.dp), ) { if (viewModel.isAmbientIndicationVisible) { factory.lockscreenElement( AmbientIndicationArea, context, Modifier.fillMaxWidth(), ) } Row( verticalAlignment = Alignment.CenterVertically, modifier = Modifier.fillMaxWidth(), modifier = Modifier.navigationBarsPadding() .fillMaxWidth() .padding( horizontal = dimensionResource(R.dimen.keyguard_affordance_horizontal_offset) ), ) { Box( Modifier.graphicsLayer { translationX = viewModel.unfoldTranslations.start } Modifier.graphicsLayer { translationX = viewModel.unfoldTranslations.start } ) { factory.lockscreenElement(Shortcuts.Start, context) } Box(Modifier.weight(1f)) { factory.lockscreenElement(IndicationArea, context) } Box(Modifier.weight(1f)) { factory.lockscreenElement(IndicationArea, context) } Box( Modifier.graphicsLayer { translationX = viewModel.unfoldTranslations.end } Modifier.graphicsLayer { translationX = viewModel.unfoldTranslations.end } ) { factory.lockscreenElement(Shortcuts.End, context) } Loading @@ -113,4 +97,3 @@ constructor( } } } }
packages/SystemUI/compose/features/src/com/android/systemui/keyguard/ui/composable/layout/LockscreenSceneLayout.kt +44 −15 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.keyguard.ui.composable.layout import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.layout.HorizontalAlignmentLine import androidx.compose.ui.layout.Layout Loading @@ -30,6 +29,7 @@ import androidx.compose.ui.unit.IntRect import androidx.compose.ui.unit.dp import com.android.compose.animation.scene.ContentScope import com.android.compose.modifiers.thenIf import com.android.systemui.keyguard.ui.viewmodel.LockscreenContentViewModel import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementContext import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementFactory import com.android.systemui.plugins.keyguard.ui.composable.elements.LockscreenElementFactory.Companion.lockscreenElement Loading Loading @@ -114,31 +114,36 @@ object LockIconAlignmentLines { */ @Composable fun ContentScope.LockscreenSceneLayout( viewModel: LockscreenContentViewModel, elementFactory: LockscreenElementFactory, elementContext: LockscreenElementContext, modifier: Modifier = Modifier, ) { val density = LocalDensity.current val spacingAboveLockIconPx = with(density) { 64.dp.roundToPx() } val spacingBetweenColumnsPx = with(density) { 32.dp.roundToPx() } Layout( content = { elementFactory.lockscreenElement(LockscreenElementKeys.StatusBar, elementContext) elementFactory.lockscreenElement(LockscreenElementKeys.Region.Upper, elementContext) elementFactory.lockscreenElement(LockscreenElementKeys.Region.Lower, elementContext) elementFactory.lockscreenElement(LockscreenElementKeys.LockIcon, elementContext) elementFactory.lockscreenElement( LockscreenElementKeys.AmbientIndicationArea, elementContext, ) elementFactory.lockscreenElement(LockscreenElementKeys.Region.Lower, elementContext) elementFactory.lockscreenElement(LockscreenElementKeys.SettingsMenu, elementContext) }, // Hide the lock screen elements when an overlay is shown above. modifier = modifier.thenIf(isIdleWithOverlay()) { Modifier.graphicsLayer { alpha = 0f } }, ) { measurables, constraints -> check(measurables.size == 5) check(measurables.size == 6) val statusBarMeasurable = measurables[0] val contentMeasurable = measurables[1] val bottomAreaMeasurable = measurables[2] val lockIconMeasurable = measurables[3] val settingsMenuMeasurable = measurables[4] val upperRegionMeasurable = measurables[1] val lockIconMeasurable = measurables[2] val ambientIndicationMeasurable = measurables[3] val lowerRegionMeasurable = measurables[4] val settingsMenuMeasurable = measurables[5] val statusBarPlaceable = statusBarMeasurable.measure(constraints = Constraints.fixedWidth(constraints.maxWidth)) Loading @@ -156,11 +161,20 @@ fun ContentScope.LockscreenSceneLayout( bottom = lockIconPlaceable[LockIconAlignmentLines.Bottom], ) val lockIconConstrainedMaxHeight = val ambientIndicationPlaceable = ambientIndicationMeasurable.measure( constraints = Constraints.fixedWidth(constraints.maxWidth) ) var lockIconConstrainedMaxHeight = lockIconBounds.top - spacingAboveLockIconPx - statusBarPlaceable.measuredHeight val contentPlaceable = contentMeasurable.measure( if (!viewModel.isUdfpsSupported) { lockIconConstrainedMaxHeight -= ambientIndicationPlaceable.measuredHeight } val upperRegionPlaceable = upperRegionMeasurable.measure( Constraints( minWidth = 0, maxWidth = constraints.maxWidth.coerceAtLeast(0), Loading @@ -169,16 +183,31 @@ fun ContentScope.LockscreenSceneLayout( ) ) val bottomAreaPlaceable = bottomAreaMeasurable.measure(constraints = Constraints.fixedWidth(constraints.maxWidth)) val lowerRegionPlaceable = lowerRegionMeasurable.measure( constraints = Constraints.fixedWidth(constraints.maxWidth) ) val settingsMenuPleaceable = settingsMenuMeasurable.measure(constraints) layout(constraints.maxWidth, constraints.maxHeight) { statusBarPlaceable.place(0, 0) contentPlaceable.placeRelative(0, statusBarPlaceable.measuredHeight) bottomAreaPlaceable.place(0, constraints.maxHeight - bottomAreaPlaceable.measuredHeight) upperRegionPlaceable.placeRelative(0, statusBarPlaceable.measuredHeight) lockIconPlaceable.place(x = lockIconBounds.left, y = lockIconBounds.top) if (viewModel.isUdfpsSupported) { ambientIndicationPlaceable.place(x = 0, y = lockIconBounds.bottom) } else { ambientIndicationPlaceable.place( x = 0, y = lockIconBounds.top - ambientIndicationPlaceable.measuredHeight, ) } lowerRegionPlaceable.place( 0, constraints.maxHeight - lowerRegionPlaceable.measuredHeight, ) settingsMenuPleaceable.placeRelative( x = (constraints.maxWidth - settingsMenuPleaceable.measuredWidth) / 2, y = constraints.maxHeight - settingsMenuPleaceable.measuredHeight, Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenContentViewModelTest.kt +22 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.android.systemui.keyguard.ui.viewmodel import android.platform.test.flag.junit.FlagsParameterization import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.biometrics.data.repository.fingerprintPropertyRepository import com.android.systemui.deviceentry.domain.interactor.deviceEntryUdfpsInteractor import com.android.systemui.flags.andSceneContainer import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.repository.keyguardOcclusionRepository Loading @@ -26,6 +28,7 @@ import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.transition.fakeKeyguardTransitionAnimationCallback import com.android.systemui.keyguard.shared.transition.keyguardTransitionAnimationCallbackDelegator import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.collectLastValue import com.android.systemui.kosmos.runCurrent import com.android.systemui.kosmos.runTest import com.android.systemui.kosmos.testScope Loading Loading @@ -149,4 +152,23 @@ class LockscreenContentViewModelTest(flags: FlagsParameterization) : SysuiTestCa assertThat(underTest.isContentVisible).isTrue() } fun isUdfpsSupported_withoutUdfps_false() = kosmos.runTest { val isUdfpsSupported by collectLastValue(deviceEntryUdfpsInteractor.isUdfpsSupported) fingerprintPropertyRepository.supportsRearFps() assertThat(isUdfpsSupported).isFalse() assertThat(underTest.isUdfpsSupported).isFalse() } @Test fun isUdfpsSupported_withUdfps_true() = kosmos.runTest { val isUdfpsSupported by collectLastValue(deviceEntryUdfpsInteractor.isUdfpsSupported) fingerprintPropertyRepository.supportsUdfps() assertThat(isUdfpsSupported).isTrue() assertThat(underTest.isUdfpsSupported).isTrue() } }
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ui/viewmodel/LockscreenLowerRegionViewModelTest.kt +0 −16 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.keyguard.ui.viewmodel import android.platform.test.flag.junit.FlagsParameterization import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.biometrics.authController import com.android.systemui.common.ui.data.repository.fakeConfigurationRepository import com.android.systemui.flags.andSceneContainer import com.android.systemui.kosmos.Kosmos Loading @@ -31,7 +30,6 @@ import com.android.systemui.res.R import com.android.systemui.shade.data.repository.shadeRepository import com.android.systemui.testKosmos import com.android.systemui.unfold.fakeUnfoldTransitionProgressProvider import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat import java.util.Locale import kotlinx.coroutines.Job Loading Loading @@ -71,20 +69,6 @@ class LockscreenLowerRegionViewModelTest(flags: FlagsParameterization) : SysuiTe } } @Test fun isAmbientIndicationVisible_withUdfps_false() = kosmos.runTest { whenever(authController.isUdfpsSupported).thenReturn(true) assertThat(underTest.isAmbientIndicationVisible).isFalse() } @Test fun isAmbientIndicationVisible_withoutUdfps_true() = kosmos.runTest { whenever(authController.isUdfpsSupported).thenReturn(false) assertThat(underTest.isAmbientIndicationVisible).isTrue() } @Test fun unfoldTranslations() = kosmos.runTest { Loading