Merge "Updating navigation view model" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
f06d5cf975
@@ -26,17 +26,23 @@ import android.os.CancellationSignal
|
||||
import android.os.Handler
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import com.android.settings.biometrics.GatekeeperPasswordProvider
|
||||
import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepo
|
||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
|
||||
import com.android.settings.biometrics.fingerprint2.shared.data.repository.PressToAuthProvider
|
||||
import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
|
||||
import com.android.settings.biometrics.fingerprint2.shared.model.Default
|
||||
import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
|
||||
import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
|
||||
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
|
||||
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
|
||||
import com.android.settings.biometrics.fingerprint2.data.repository.PressToAuthRepo
|
||||
import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
|
||||
import com.android.settings.biometrics.fingerprint2.lib.model.Default
|
||||
import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
|
||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
|
||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
|
||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
|
||||
import com.android.settings.password.ChooseLockSettingsHelper
|
||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
||||
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
||||
import com.android.systemui.biometrics.shared.model.SensorStrength
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import kotlinx.coroutines.cancelAndJoin
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.flow.last
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||
@@ -71,21 +77,28 @@ class FingerprintManagerInteractorTest {
|
||||
@Mock private lateinit var gateKeeperPasswordProvider: GatekeeperPasswordProvider
|
||||
|
||||
private var testScope = TestScope(backgroundDispatcher)
|
||||
private var pressToAuthProvider =
|
||||
object : PressToAuthProvider {
|
||||
private var pressToAuthRepo =
|
||||
object : PressToAuthRepo {
|
||||
override val isEnabled: Boolean
|
||||
get() = false
|
||||
}
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
val sensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
|
||||
val fingerprintSensorRepo =
|
||||
object : FingerprintSensorRepo {
|
||||
override val fingerprintSensor: Flow<FingerprintSensor> = flowOf(sensor)
|
||||
}
|
||||
|
||||
underTest =
|
||||
FingerprintManagerInteractorImpl(
|
||||
context,
|
||||
backgroundDispatcher,
|
||||
fingerprintManager,
|
||||
fingerprintSensorRepo,
|
||||
gateKeeperPasswordProvider,
|
||||
pressToAuthProvider,
|
||||
pressToAuthRepo,
|
||||
Default,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -21,16 +21,17 @@ import android.content.res.Configuration
|
||||
import android.view.accessibility.AccessibilityManager
|
||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import com.android.settings.biometrics.fingerprint2.shared.model.Default
|
||||
import com.android.settings.biometrics.fingerprint2.lib.model.Default
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.AccessibilityViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Education
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollFindSensorViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintFlowViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Education
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FoldStateViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NextStepViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavigationState
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.OrientationStateViewModel
|
||||
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
||||
@@ -38,7 +39,6 @@ import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
||||
import com.android.systemui.biometrics.shared.model.SensorStrength
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||
import kotlinx.coroutines.test.TestScope
|
||||
@@ -67,7 +67,7 @@ class FingerprintEnrollFindSensorViewModelV2Test {
|
||||
private lateinit var fakeFingerprintManagerInteractor: FakeFingerprintManagerInteractor
|
||||
private lateinit var gatekeeperViewModel: FingerprintGatekeeperViewModel
|
||||
private lateinit var enrollViewModel: FingerprintEnrollViewModel
|
||||
private lateinit var navigationViewModel: FingerprintEnrollNavigationViewModel
|
||||
private lateinit var navigationViewModel: FingerprintNavigationViewModel
|
||||
private lateinit var accessibilityViewModel: AccessibilityViewModel
|
||||
private lateinit var foldStateViewModel: FoldStateViewModel
|
||||
private lateinit var orientationStateViewModel: OrientationStateViewModel
|
||||
@@ -87,18 +87,19 @@ class FingerprintEnrollFindSensorViewModelV2Test {
|
||||
gatekeeperViewModel =
|
||||
FingerprintGatekeeperViewModel.FingerprintGatekeeperViewModelFactory(
|
||||
null,
|
||||
fakeFingerprintManagerInteractor
|
||||
fakeFingerprintManagerInteractor,
|
||||
)
|
||||
.create(FingerprintGatekeeperViewModel::class.java)
|
||||
|
||||
val sensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
|
||||
val fingerprintFlowViewModel = FingerprintFlowViewModel(Default)
|
||||
navigationViewModel =
|
||||
FingerprintEnrollNavigationViewModel.FingerprintEnrollNavigationViewModelFactory(
|
||||
backgroundDispatcher,
|
||||
fakeFingerprintManagerInteractor,
|
||||
gatekeeperViewModel,
|
||||
canSkipConfirm = true,
|
||||
Default,
|
||||
)
|
||||
.create(FingerprintEnrollNavigationViewModel::class.java)
|
||||
FingerprintNavigationViewModel(
|
||||
Education(sensor),
|
||||
false,
|
||||
fingerprintFlowViewModel,
|
||||
fakeFingerprintManagerInteractor,
|
||||
)
|
||||
|
||||
backgroundViewModel =
|
||||
BackgroundViewModel.BackgroundViewModelFactory().create(BackgroundViewModel::class.java)
|
||||
@@ -126,12 +127,10 @@ class FingerprintEnrollFindSensorViewModelV2Test {
|
||||
backgroundViewModel,
|
||||
accessibilityViewModel,
|
||||
foldStateViewModel,
|
||||
orientationStateViewModel
|
||||
orientationStateViewModel,
|
||||
fingerprintFlowViewModel,
|
||||
)
|
||||
.create(FingerprintEnrollFindSensorViewModel::class.java)
|
||||
|
||||
// Navigate to Education page
|
||||
navigationViewModel.nextStep()
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -141,18 +140,6 @@ class FingerprintEnrollFindSensorViewModelV2Test {
|
||||
|
||||
// TODO(b/305094585): test enroll() logic
|
||||
|
||||
@Test
|
||||
fun currentStepIsEducation() =
|
||||
testScope.runTest {
|
||||
var step: NextStepViewModel? = null
|
||||
val job = launch {
|
||||
navigationViewModel.navigationViewModel.collectLatest { step = it.currStep }
|
||||
}
|
||||
advanceUntilIdle()
|
||||
assertThat(step).isEqualTo(Education)
|
||||
job.cancel()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun udfpsLottieInfo() =
|
||||
testScope.runTest {
|
||||
@@ -161,7 +148,7 @@ class FingerprintEnrollFindSensorViewModelV2Test {
|
||||
0 /* sensorId */,
|
||||
SensorStrength.STRONG,
|
||||
5,
|
||||
FingerprintSensorType.UDFPS_OPTICAL
|
||||
FingerprintSensorType.UDFPS_OPTICAL,
|
||||
)
|
||||
|
||||
var udfpsLottieInfo: Boolean? = null
|
||||
@@ -234,7 +221,7 @@ class FingerprintEnrollFindSensorViewModelV2Test {
|
||||
0 /* sensorId */,
|
||||
SensorStrength.STRONG,
|
||||
5,
|
||||
FingerprintSensorType.UDFPS_OPTICAL
|
||||
FingerprintSensorType.UDFPS_OPTICAL,
|
||||
)
|
||||
|
||||
var showPrimaryButton: Boolean? = null
|
||||
|
||||
@@ -17,16 +17,20 @@
|
||||
package com.android.settings.fingerprint2.ui.enrollment.viewmodel
|
||||
|
||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||
import com.android.settings.biometrics.fingerprint2.shared.model.Default
|
||||
import com.android.settings.biometrics.fingerprint2.lib.model.Default
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Enrollment
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollEnrollingViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintFlowViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Enrollment
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavState
|
||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavigationState
|
||||
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
|
||||
import com.android.systemui.biometrics.shared.model.FingerprintSensor
|
||||
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
||||
import com.android.systemui.biometrics.shared.model.SensorStrength
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -54,7 +58,7 @@ class FingerprintEnrollEnrollingViewModelTest {
|
||||
private lateinit var enrollEnrollingViewModel: FingerprintEnrollEnrollingViewModel
|
||||
private lateinit var backgroundViewModel: BackgroundViewModel
|
||||
private lateinit var gateKeeperViewModel: FingerprintGatekeeperViewModel
|
||||
private lateinit var navigationViewModel: FingerprintEnrollNavigationViewModel
|
||||
private lateinit var navigationViewModel: FingerprintNavigationViewModel
|
||||
private val defaultGatekeeperInfo = GatekeeperInfo.GatekeeperPasswordInfo(byteArrayOf(1, 3), 3)
|
||||
private var testScope = TestScope(backgroundDispatcher)
|
||||
|
||||
@@ -65,18 +69,18 @@ class FingerprintEnrollEnrollingViewModelTest {
|
||||
gateKeeperViewModel =
|
||||
FingerprintGatekeeperViewModel.FingerprintGatekeeperViewModelFactory(
|
||||
gatekeeperInfo,
|
||||
fakeFingerprintManagerInteractor
|
||||
fakeFingerprintManagerInteractor,
|
||||
)
|
||||
.create(FingerprintGatekeeperViewModel::class.java)
|
||||
val sensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
|
||||
val fingerprintFlowViewModel = FingerprintFlowViewModel(Default)
|
||||
|
||||
navigationViewModel =
|
||||
FingerprintEnrollNavigationViewModel(
|
||||
backgroundDispatcher,
|
||||
FingerprintNavigationViewModel(
|
||||
Enrollment(sensor),
|
||||
false,
|
||||
fingerprintFlowViewModel,
|
||||
fakeFingerprintManagerInteractor,
|
||||
gateKeeperViewModel,
|
||||
Enrollment,
|
||||
NavState(true),
|
||||
Default,
|
||||
)
|
||||
|
||||
backgroundViewModel =
|
||||
|
||||
@@ -18,7 +18,7 @@ package com.android.settings.fingerprint2.ui.settings
|
||||
|
||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||
import com.android.settings.biometrics.BiometricEnrollBase
|
||||
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
|
||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
|
||||
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollFirstFingerprint
|
||||
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettings
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
package com.android.settings.fingerprint2.ui.settings
|
||||
|
||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
|
||||
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
|
||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
|
||||
import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
|
||||
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
|
||||
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
|
||||
|
||||
Reference in New Issue
Block a user