Merge "Modifying FingerprintSettingsV2 structure" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
e198ff269b
@@ -2567,7 +2567,8 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity android:name=".biometrics.fingerprint2.enrollment.ui.activity.FingerprintEnrollmentV2Activity"
|
|
||||||
|
<activity android:name=".biometrics.fingerprint2.ui.enrollment.activity.FingerprintEnrollmentV2Activity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:permission="android.permission.MANAGE_FINGERPRINT"
|
android:permission="android.permission.MANAGE_FINGERPRINT"
|
||||||
android:theme="@style/GlifTheme.Light">
|
android:theme="@style/GlifTheme.Light">
|
||||||
@@ -4942,7 +4943,7 @@
|
|||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||||
android:value="com.android.settings.biometrics.fingerprint2.ui.fragment.FingerprintSettingsV2Fragment" />
|
android:value="com.android.settings.biometrics.fingerprint2.ui.settings.fragment.FingerprintSettingsV2Fragment" />
|
||||||
<meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
|
<meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
|
||||||
android:value="@string/menu_key_security"/>
|
android:value="@string/menu_key_security"/>
|
||||||
</activity>
|
</activity>
|
||||||
|
10
src/com/android/settings/biometrics/fingerprint2/README.md
Normal file
10
src/com/android/settings/biometrics/fingerprint2/README.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
### Fingerprint Settings Enrollment
|
||||||
|
|
||||||
|
#### Flows
|
||||||
|
|
||||||
|
* FingerprintSettings (ui.settings.fragment.FingerprintSettingsV2Fragment)
|
||||||
|
* FingerprintEnrollment (ui.enrollment.activity.FingerprintEnrollmentV2Activity)
|
||||||
|
|
||||||
|
#### Style
|
||||||
|
|
||||||
|
* Please use [kfmt](https://plugins.jetbrains.com/plugin/14912-ktfmt)
|
@@ -25,8 +25,8 @@ import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
|||||||
import android.os.CancellationSignal
|
import android.os.CancellationSignal
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import com.android.settings.biometrics.GatekeeperPasswordProvider
|
import com.android.settings.biometrics.GatekeeperPasswordProvider
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper
|
import com.android.settings.password.ChooseLockSettingsHelper
|
||||||
import kotlin.coroutines.resume
|
import kotlin.coroutines.resume
|
||||||
import kotlin.coroutines.suspendCoroutine
|
import kotlin.coroutines.suspendCoroutine
|
||||||
|
@@ -14,7 +14,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.viewmodel
|
package com.android.settings.biometrics.fingerprint2.shared.model
|
||||||
|
|
||||||
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
|
|
||||||
/** Represents the fingerprint data nad the relevant state. */
|
/** Represents the fingerprint data nad the relevant state. */
|
||||||
data class FingerprintStateViewModel(
|
data class FingerprintStateViewModel(
|
||||||
@@ -23,6 +25,7 @@ data class FingerprintStateViewModel(
|
|||||||
val maxFingerprints: Int,
|
val maxFingerprints: Int,
|
||||||
val hasSideFps: Boolean,
|
val hasSideFps: Boolean,
|
||||||
val pressToAuth: Boolean,
|
val pressToAuth: Boolean,
|
||||||
|
val sensorProps: FingerprintSensorPropertiesInternal,
|
||||||
)
|
)
|
||||||
|
|
||||||
data class FingerprintViewModel(
|
data class FingerprintViewModel(
|
@@ -0,0 +1,23 @@
|
|||||||
|
### Fingerprint Settings Enrollment
|
||||||
|
|
||||||
|
#### Entry Points (To FingerprintEnrollment)
|
||||||
|
|
||||||
|
* FingerprintSettings (which launches the below intent)
|
||||||
|
* Intent -> ".biometrics.fingerprint2.ui.enrollment.activity.FingerprintEnrollmentV2Activity")
|
||||||
|
|
||||||
|
#### General Architecture
|
||||||
|
|
||||||
|
The code should follow the MVVM architecture.
|
||||||
|
|
||||||
|
**In addition, one activity (FingerprintEnrollmentV2Activity) should**
|
||||||
|
|
||||||
|
* Control a list of fragments which correspond to enrollment steps
|
||||||
|
* Be responsible for navigation events between fragments
|
||||||
|
* Be responsible for navigation events to other activities if need be (
|
||||||
|
ConfirmDeviceCredentialActivity)
|
||||||
|
* Be the controller of the viewmodels
|
||||||
|
|
||||||
|
#### Style
|
||||||
|
|
||||||
|
* Please use [kfmt](https://plugins.jetbrains.com/plugin/14912-ktfmt)
|
||||||
|
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.enrollment.ui.activity
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.activity
|
||||||
|
|
||||||
import android.annotation.ColorInt
|
import android.annotation.ColorInt
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
@@ -40,21 +40,21 @@ import com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST
|
|||||||
import com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED
|
import com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED
|
||||||
import com.android.settings.biometrics.GatekeeperPasswordProvider
|
import com.android.settings.biometrics.GatekeeperPasswordProvider
|
||||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
|
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.fragment.FingerprintEnrollConfirmationV2Fragment
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollConfirmationV2Fragment
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.fragment.FingerprintEnrollEnrollingV2Fragment
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollEnrollingV2Fragment
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.fragment.FingerprintEnrollFindSensorV2Fragment
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollFindSensorV2Fragment
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.fragment.FingerprintEnrollmentIntroV2Fragment
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollmentIntroV2Fragment
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Confirmation
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Confirmation
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Education
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Education
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Enrollment
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Enrollment
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintEnrollmentNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintGatekeeperViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintScrollViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Finish
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Finish
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.GatekeeperInfo
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Intro
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Intro
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.LaunchConfirmDeviceCredential
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.LaunchConfirmDeviceCredential
|
||||||
import com.android.settings.password.ChooseLockGeneric
|
import com.android.settings.password.ChooseLockGeneric
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper
|
import com.android.settings.password.ChooseLockSettingsHelper
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE
|
import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE
|
@@ -14,12 +14,12 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.enrollment.ui.fragment
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintEnrollmentNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A fragment to indicate that fingerprint enrollment has been completed.
|
* A fragment to indicate that fingerprint enrollment has been completed.
|
@@ -14,12 +14,12 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.enrollment.ui.fragment
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintEnrollmentNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
|
||||||
|
|
||||||
/** A fragment that is responsible for enrolling a users fingerprint. */
|
/** A fragment that is responsible for enrolling a users fingerprint. */
|
||||||
class FingerprintEnrollEnrollingV2Fragment : Fragment() {
|
class FingerprintEnrollEnrollingV2Fragment : Fragment() {
|
@@ -14,13 +14,13 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.enrollment.ui.fragment
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintEnrollmentNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A fragment that is used to educate the user about the fingerprint sensor on this device.
|
* A fragment that is used to educate the user about the fingerprint sensor on this device.
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.enrollment.ui.fragment
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment
|
||||||
|
|
||||||
import android.annotation.NonNull
|
import android.annotation.NonNull
|
||||||
import android.annotation.StringRes
|
import android.annotation.StringRes
|
||||||
@@ -34,11 +34,11 @@ import androidx.fragment.app.Fragment
|
|||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintEnrollmentNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintGatekeeperViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintScrollViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Unicorn
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Unicorn
|
||||||
import com.google.android.setupcompat.template.FooterBarMixin
|
import com.google.android.setupcompat.template.FooterBarMixin
|
||||||
import com.google.android.setupcompat.template.FooterButton
|
import com.google.android.setupcompat.template.FooterButton
|
||||||
import com.google.android.setupdesign.GlifLayout
|
import com.google.android.setupdesign.GlifLayout
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
|
||||||
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
|
||||||
|
|
||||||
import android.os.CountDownTimer
|
import android.os.CountDownTimer
|
||||||
import android.util.Log
|
import android.util.Log
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
@@ -14,13 +14,13 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
|
||||||
|
|
||||||
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
|
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
|
||||||
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintStateViewModel
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -28,21 +28,6 @@ import kotlinx.coroutines.flow.last
|
|||||||
import kotlinx.coroutines.flow.update
|
import kotlinx.coroutines.flow.update
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
/** Represents the fingerprint data nad the relevant state. */
|
|
||||||
data class FingerprintStateViewModel(
|
|
||||||
val fingerprintViewModels: List<FingerEnrollmentViewModel>,
|
|
||||||
val canEnroll: Boolean,
|
|
||||||
val maxFingerprints: Int,
|
|
||||||
val sensorProps: FingerprintSensorPropertiesInternal,
|
|
||||||
)
|
|
||||||
|
|
||||||
/** Represents a fingerprint enrollment. */
|
|
||||||
data class FingerEnrollmentViewModel(
|
|
||||||
val name: String,
|
|
||||||
val fingerId: Int,
|
|
||||||
val deviceId: Long,
|
|
||||||
)
|
|
||||||
|
|
||||||
/** Represents all of the fingerprint information needed for fingerprint enrollment. */
|
/** Represents all of the fingerprint information needed for fingerprint enrollment. */
|
||||||
class FingerprintViewModel(fingerprintManagerInteractor: FingerprintManagerInteractor) :
|
class FingerprintViewModel(fingerprintManagerInteractor: FingerprintManagerInteractor) :
|
||||||
ViewModel() {
|
ViewModel() {
|
||||||
@@ -61,7 +46,11 @@ class FingerprintViewModel(fingerprintManagerInteractor: FingerprintManagerInter
|
|||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
val enrolledFingerprints =
|
val enrolledFingerprints =
|
||||||
fingerprintManagerInteractor.enrolledFingerprints.last().map {
|
fingerprintManagerInteractor.enrolledFingerprints.last().map {
|
||||||
FingerEnrollmentViewModel(it.name, it.fingerId, it.deviceId)
|
com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel(
|
||||||
|
it.name,
|
||||||
|
it.fingerId,
|
||||||
|
it.deviceId
|
||||||
|
)
|
||||||
}
|
}
|
||||||
val sensorProps = fingerprintManagerInteractor.sensorPropertiesInternal().first()
|
val sensorProps = fingerprintManagerInteractor.sensorPropertiesInternal().first()
|
||||||
val maxFingerprints = 5
|
val maxFingerprints = 5
|
||||||
@@ -70,6 +59,8 @@ class FingerprintViewModel(fingerprintManagerInteractor: FingerprintManagerInter
|
|||||||
enrolledFingerprints,
|
enrolledFingerprints,
|
||||||
enrolledFingerprints.size < maxFingerprints,
|
enrolledFingerprints.size < maxFingerprints,
|
||||||
maxFingerprints,
|
maxFingerprints,
|
||||||
|
sensorProps.isAnySidefpsType,
|
||||||
|
false,
|
||||||
sensorProps,
|
sensorProps,
|
||||||
)
|
)
|
||||||
}
|
}
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class that represents an action that the consumer should transition between lastStep and
|
* A class that represents an action that the consumer should transition between lastStep and
|
@@ -0,0 +1,17 @@
|
|||||||
|
### Fingerprint Settings Enrollment
|
||||||
|
|
||||||
|
#### Entry Point (For Fingerprint Settings)
|
||||||
|
|
||||||
|
* [SecuritySettings] (https://cs.android.com/android/platform/superproject/+/master:packages/apps/Settings/src/com/android/settings/security/SecuritySettings.java;l=40?q=SecuritySettings)
|
||||||
|
|
||||||
|
#### General Architecture
|
||||||
|
|
||||||
|
The code should follow the MVVM architecture.
|
||||||
|
|
||||||
|
The FingerprintSettingsV2Fragment is responsible for most of the heavy lifting. It should coordinate
|
||||||
|
navigation events, maintain the viewmodels, and launch new activities if need be.
|
||||||
|
|
||||||
|
#### Style
|
||||||
|
|
||||||
|
* Please use [kfmt](https://plugins.jetbrains.com/plugin/14912-ktfmt)
|
||||||
|
|
@@ -14,25 +14,25 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.binder
|
package com.android.settings.biometrics.fingerprint2.ui.settings.binder
|
||||||
|
|
||||||
import android.hardware.fingerprint.FingerprintManager
|
import android.hardware.fingerprint.FingerprintManager
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.LifecycleCoroutineScope
|
import androidx.lifecycle.LifecycleCoroutineScope
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.binder.FingerprintSettingsViewBinder.FingerprintView
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollAdditionalFingerprint
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintStateViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollFirstFingerprint
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.binder.FingerprintSettingsViewBinder.FingerprintView
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollAdditionalFingerprint
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollFirstFingerprint
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintStateViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettings
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettings
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettingsWithResult
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettingsWithResult
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchConfirmDeviceCredential
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchConfirmDeviceCredential
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchedActivity
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchedActivity
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.PreferenceViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.ShowSettings
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.ShowSettings
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.fragment
|
package com.android.settings.biometrics.fingerprint2.ui.settings.fragment
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.app.admin.DevicePolicyManager
|
import android.app.admin.DevicePolicyManager
|
||||||
@@ -26,7 +26,7 @@ import android.os.Bundle
|
|||||||
import android.os.UserManager
|
import android.os.UserManager
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment
|
||||||
import kotlin.coroutines.resume
|
import kotlin.coroutines.resume
|
||||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
import kotlinx.coroutines.suspendCancellableCoroutine
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.fragment
|
package com.android.settings.biometrics.fingerprint2.ui.settings.fragment
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
@@ -22,7 +22,7 @@ import android.view.View
|
|||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.preference.PreferenceViewHolder
|
import androidx.preference.PreferenceViewHolder
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import com.android.settingslib.widget.TwoTargetPreference
|
import com.android.settingslib.widget.TwoTargetPreference
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.fragment
|
package com.android.settings.biometrics.fingerprint2.ui.settings.fragment
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.app.settings.SettingsEnums
|
import android.app.settings.SettingsEnums
|
||||||
@@ -27,7 +27,7 @@ import android.util.Log
|
|||||||
import android.widget.ImeAwareEditText
|
import android.widget.ImeAwareEditText
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment
|
||||||
import kotlin.coroutines.resume
|
import kotlin.coroutines.resume
|
||||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||||
@@ -106,8 +106,8 @@ class FingerprintSettingsRenameDialog : InstrumentedDialogFragment() {
|
|||||||
val dialog = FingerprintSettingsRenameDialog()
|
val dialog = FingerprintSettingsRenameDialog()
|
||||||
val onClick =
|
val onClick =
|
||||||
DialogInterface.OnClickListener { _, _ ->
|
DialogInterface.OnClickListener { _, _ ->
|
||||||
val dialogTextField = dialog.requireDialog()
|
val dialogTextField =
|
||||||
.requireViewById(R.id.fingerprint_rename_field) as ImeAwareEditText
|
dialog.requireDialog().findViewById(R.id.fingerprint_rename_field) as ImeAwareEditText
|
||||||
val newName = dialogTextField.text.toString()
|
val newName = dialogTextField.text.toString()
|
||||||
if (!TextUtils.equals(newName, fp.name)) {
|
if (!TextUtils.equals(newName, fp.name)) {
|
||||||
Log.d(TAG, "rename $fp.name to $newName for $dialog")
|
Log.d(TAG, "rename $fp.name to $newName for $dialog")
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.fragment
|
package com.android.settings.biometrics.fingerprint2.ui.settings.fragment
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.app.admin.DevicePolicyManager
|
import android.app.admin.DevicePolicyManager
|
||||||
@@ -26,7 +26,6 @@ import android.hardware.fingerprint.FingerprintManager
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.Settings.Secure
|
import android.provider.Settings.Secure
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.FeatureFlagUtils
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
@@ -47,12 +46,12 @@ import com.android.settings.biometrics.GatekeeperPasswordProvider
|
|||||||
import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling
|
import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling
|
||||||
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal
|
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal
|
||||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
|
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.binder.FingerprintSettingsViewBinder
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintStateViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.binder.FingerprintSettingsViewBinder
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintStateViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
|
||||||
import com.android.settings.core.SettingsBaseActivity
|
import com.android.settings.core.SettingsBaseActivity
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment
|
||||||
import com.android.settings.dashboard.DashboardFragment
|
import com.android.settings.dashboard.DashboardFragment
|
||||||
@@ -164,6 +163,7 @@ class FingerprintSettingsV2Fragment :
|
|||||||
Log.d(TAG, "onCreate()")
|
Log.d(TAG, "onCreate()")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
if (
|
if (
|
||||||
!FeatureFlagUtils.isEnabled(
|
!FeatureFlagUtils.isEnabled(
|
||||||
context,
|
context,
|
||||||
@@ -175,6 +175,8 @@ class FingerprintSettingsV2Fragment :
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
val context = requireContext()
|
val context = requireContext()
|
||||||
val userId = context.userId
|
val userId = context.userId
|
||||||
|
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.viewmodel
|
package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
|
||||||
|
|
||||||
import android.hardware.fingerprint.FingerprintManager
|
import android.hardware.fingerprint.FingerprintManager
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.viewmodel
|
package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
|
||||||
|
|
||||||
import android.hardware.fingerprint.FingerprintManager
|
import android.hardware.fingerprint.FingerprintManager
|
||||||
import android.hardware.fingerprint.FingerprintSensorProperties
|
import android.hardware.fingerprint.FingerprintSensorProperties
|
||||||
@@ -24,6 +24,9 @@ import androidx.lifecycle.ViewModel
|
|||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
|
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
|
||||||
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
|
||||||
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintStateViewModel
|
||||||
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import kotlinx.coroutines.CoroutineDispatcher
|
import kotlinx.coroutines.CoroutineDispatcher
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||||
@@ -270,7 +273,8 @@ class FingerprintSettingsViewModel(
|
|||||||
canEnrollFingerprint,
|
canEnrollFingerprint,
|
||||||
maxFingerprints,
|
maxFingerprints,
|
||||||
hasSideFps,
|
hasSideFps,
|
||||||
pressToAuthEnabled
|
pressToAuthEnabled,
|
||||||
|
fingerprintManagerInteractor.sensorPropertiesInternal().first(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.viewmodel
|
package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class to represent a high level step for FingerprintSettings. This is typically to perform an
|
* A class to represent a high level step for FingerprintSettings. This is typically to perform an
|
@@ -14,7 +14,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.viewmodel
|
package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
|
||||||
|
|
||||||
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
|
|
||||||
/** Classed use to represent a Dialogs state. */
|
/** Classed use to represent a Dialogs state. */
|
||||||
sealed class PreferenceViewModel {
|
sealed class PreferenceViewModel {
|
@@ -72,7 +72,7 @@ import com.android.settings.biometrics.combination.CombinedBiometricProfileSetti
|
|||||||
import com.android.settings.biometrics.combination.CombinedBiometricSettings;
|
import com.android.settings.biometrics.combination.CombinedBiometricSettings;
|
||||||
import com.android.settings.biometrics.face.FaceSettings;
|
import com.android.settings.biometrics.face.FaceSettings;
|
||||||
import com.android.settings.biometrics.fingerprint.FingerprintSettings;
|
import com.android.settings.biometrics.fingerprint.FingerprintSettings;
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.fragment.FingerprintSettingsV2Fragment;
|
import com.android.settings.biometrics.fingerprint2.ui.settings.fragment.FingerprintSettingsV2Fragment;
|
||||||
import com.android.settings.bluetooth.BluetoothBroadcastDialog;
|
import com.android.settings.bluetooth.BluetoothBroadcastDialog;
|
||||||
import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
|
import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
|
||||||
import com.android.settings.bluetooth.BluetoothFindBroadcastsFragment;
|
import com.android.settings.bluetooth.BluetoothFindBroadcastsFragment;
|
||||||
|
@@ -20,8 +20,8 @@ import android.hardware.biometrics.SensorProperties
|
|||||||
import android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON
|
import android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON
|
||||||
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
|
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.flow
|
import kotlinx.coroutines.flow.flow
|
||||||
|
|
||||||
|
@@ -29,8 +29,8 @@ import androidx.test.core.app.ApplicationProvider
|
|||||||
import com.android.settings.biometrics.GatekeeperPasswordProvider
|
import com.android.settings.biometrics.GatekeeperPasswordProvider
|
||||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
|
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
|
||||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
|
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper
|
import com.android.settings.password.ChooseLockSettingsHelper
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.cancelAndJoin
|
import kotlinx.coroutines.cancelAndJoin
|
||||||
|
@@ -14,18 +14,18 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.fingerprint2.viewmodel
|
package com.android.settings.fingerprint2.settings.viewmodel
|
||||||
|
|
||||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||||
import com.android.settings.biometrics.BiometricEnrollBase
|
import com.android.settings.biometrics.BiometricEnrollBase
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollFirstFingerprint
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollFirstFingerprint
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettings
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettings
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettingsWithResult
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettingsWithResult
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchConfirmDeviceCredential
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchConfirmDeviceCredential
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.NextStepViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.NextStepViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.ShowSettings
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.ShowSettings
|
||||||
import com.android.settings.fingerprint2.domain.interactor.FakeFingerprintManagerInteractor
|
import com.android.settings.fingerprint2.domain.interactor.FakeFingerprintManagerInteractor
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
@@ -14,17 +14,17 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.fingerprint2.viewmodel
|
package com.android.settings.fingerprint2.settings.viewmodel
|
||||||
|
|
||||||
import android.hardware.biometrics.SensorProperties
|
import android.hardware.biometrics.SensorProperties
|
||||||
import android.hardware.fingerprint.FingerprintSensorProperties
|
import android.hardware.fingerprint.FingerprintSensorProperties
|
||||||
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
|
||||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.PreferenceViewModel
|
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
|
||||||
import com.android.settings.fingerprint2.domain.interactor.FakeFingerprintManagerInteractor
|
import com.android.settings.fingerprint2.domain.interactor.FakeFingerprintManagerInteractor
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
Reference in New Issue
Block a user