Merge "Modifying FingerprintSettingsV2 structure" into main

This commit is contained in:
Joshua Mccloskey
2023-08-17 22:01:58 +00:00
committed by Android (Google) Code Review
30 changed files with 164 additions and 111 deletions

View File

@@ -2567,7 +2567,8 @@
</intent-filter>
</activity>
<activity android:name=".biometrics.fingerprint2.enrollment.ui.activity.FingerprintEnrollmentV2Activity"
<activity android:name=".biometrics.fingerprint2.ui.enrollment.activity.FingerprintEnrollmentV2Activity"
android:exported="true"
android:permission="android.permission.MANAGE_FINGERPRINT"
android:theme="@style/GlifTheme.Light">
@@ -4942,7 +4943,7 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<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"
android:value="@string/menu_key_security"/>
</activity>

View 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)

View File

@@ -25,8 +25,8 @@ import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
import android.os.CancellationSignal
import android.util.Log
import com.android.settings.biometrics.GatekeeperPasswordProvider
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
import com.android.settings.password.ChooseLockSettingsHelper
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine

View File

@@ -14,7 +14,9 @@
* 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. */
data class FingerprintStateViewModel(
@@ -23,6 +25,7 @@ data class FingerprintStateViewModel(
val maxFingerprints: Int,
val hasSideFps: Boolean,
val pressToAuth: Boolean,
val sensorProps: FingerprintSensorPropertiesInternal,
)
data class FingerprintViewModel(

View File

@@ -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)

View File

@@ -14,7 +14,7 @@
* 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.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.GatekeeperPasswordProvider
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.enrollment.ui.fragment.FingerprintEnrollEnrollingV2Fragment
import com.android.settings.biometrics.fingerprint2.enrollment.ui.fragment.FingerprintEnrollFindSensorV2Fragment
import com.android.settings.biometrics.fingerprint2.enrollment.ui.fragment.FingerprintEnrollmentIntroV2Fragment
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Confirmation
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Education
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Enrollment
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintEnrollmentNavigationViewModel
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintGatekeeperViewModel
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintScrollViewModel
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintViewModel
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Finish
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.GatekeeperInfo
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Intro
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.LaunchConfirmDeviceCredential
import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollConfirmationV2Fragment
import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollEnrollingV2Fragment
import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollFindSensorV2Fragment
import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollmentIntroV2Fragment
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Confirmation
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Education
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Enrollment
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Finish
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Intro
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.LaunchConfirmDeviceCredential
import com.android.settings.password.ChooseLockGeneric
import com.android.settings.password.ChooseLockSettingsHelper
import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE

View File

@@ -14,12 +14,12 @@
* 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 androidx.fragment.app.Fragment
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.

View File

@@ -14,12 +14,12 @@
* 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 androidx.fragment.app.Fragment
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. */
class FingerprintEnrollEnrollingV2Fragment : Fragment() {

View File

@@ -14,13 +14,13 @@
* 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 androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
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.

View File

@@ -14,7 +14,7 @@
* 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.StringRes
@@ -34,11 +34,11 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import com.android.settings.R
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintEnrollmentNavigationViewModel
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintGatekeeperViewModel
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintScrollViewModel
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.FingerprintViewModel
import com.android.settings.biometrics.fingerprint2.enrollment.ui.viewmodel.Unicorn
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Unicorn
import com.google.android.setupcompat.template.FooterBarMixin
import com.google.android.setupcompat.template.FooterButton
import com.google.android.setupdesign.GlifLayout

View File

@@ -14,7 +14,7 @@
* 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 androidx.lifecycle.ViewModel

View File

@@ -14,7 +14,7 @@
* 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.util.Log

View File

@@ -14,7 +14,7 @@
* 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.ViewModelProvider

View File

@@ -14,13 +14,13 @@
* 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.ViewModelProvider
import androidx.lifecycle.viewModelScope
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.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
@@ -28,21 +28,6 @@ import kotlinx.coroutines.flow.last
import kotlinx.coroutines.flow.update
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. */
class FingerprintViewModel(fingerprintManagerInteractor: FingerprintManagerInteractor) :
ViewModel() {
@@ -61,7 +46,11 @@ class FingerprintViewModel(fingerprintManagerInteractor: FingerprintManagerInter
viewModelScope.launch {
val enrolledFingerprints =
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 maxFingerprints = 5
@@ -70,6 +59,8 @@ class FingerprintViewModel(fingerprintManagerInteractor: FingerprintManagerInter
enrolledFingerprints,
enrolledFingerprints.size < maxFingerprints,
maxFingerprints,
sensorProps.isAnySidefpsType,
false,
sensorProps,
)
}

View File

@@ -14,7 +14,7 @@
* 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

View File

@@ -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)

View File

@@ -14,25 +14,25 @@
* 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.util.Log
import androidx.lifecycle.LifecycleCoroutineScope
import com.android.settings.biometrics.fingerprint2.ui.binder.FingerprintSettingsViewBinder.FingerprintView
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollAdditionalFingerprint
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollFirstFingerprint
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintStateViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettings
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettingsWithResult
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchConfirmDeviceCredential
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchedActivity
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.PreferenceViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.ShowSettings
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 com.android.settings.biometrics.fingerprint2.ui.settings.binder.FingerprintSettingsViewBinder.FingerprintView
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollAdditionalFingerprint
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.FingerprintSettingsViewModel
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettings
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettingsWithResult
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchConfirmDeviceCredential
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchedActivity
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.ShowSettings
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.collectLatest

View File

@@ -14,7 +14,7 @@
* 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.admin.DevicePolicyManager
@@ -26,7 +26,7 @@ import android.os.Bundle
import android.os.UserManager
import androidx.appcompat.app.AlertDialog
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 kotlin.coroutines.resume
import kotlinx.coroutines.suspendCancellableCoroutine

View File

@@ -14,7 +14,7 @@
* 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.util.Log
@@ -22,7 +22,7 @@ import android.view.View
import androidx.lifecycle.lifecycleScope
import androidx.preference.PreferenceViewHolder
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 kotlinx.coroutines.delay
import kotlinx.coroutines.launch

View File

@@ -14,7 +14,7 @@
* 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.settings.SettingsEnums
@@ -27,7 +27,7 @@ import android.util.Log
import android.widget.ImeAwareEditText
import androidx.appcompat.app.AlertDialog
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 kotlin.coroutines.resume
import kotlinx.coroutines.suspendCancellableCoroutine
@@ -106,8 +106,8 @@ class FingerprintSettingsRenameDialog : InstrumentedDialogFragment() {
val dialog = FingerprintSettingsRenameDialog()
val onClick =
DialogInterface.OnClickListener { _, _ ->
val dialogTextField = dialog.requireDialog()
.requireViewById(R.id.fingerprint_rename_field) as ImeAwareEditText
val dialogTextField =
dialog.requireDialog().findViewById(R.id.fingerprint_rename_field) as ImeAwareEditText
val newName = dialogTextField.text.toString()
if (!TextUtils.equals(newName, fp.name)) {
Log.d(TAG, "rename $fp.name to $newName for $dialog")

View File

@@ -14,7 +14,7 @@
* 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.admin.DevicePolicyManager
@@ -26,7 +26,6 @@ import android.hardware.fingerprint.FingerprintManager
import android.os.Bundle
import android.provider.Settings.Secure
import android.text.TextUtils
import android.util.FeatureFlagUtils
import android.util.Log
import android.view.View
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.FingerprintEnrollIntroductionInternal
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
import com.android.settings.biometrics.fingerprint2.ui.binder.FingerprintSettingsViewBinder
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintStateViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
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 com.android.settings.biometrics.fingerprint2.ui.settings.binder.FingerprintSettingsViewBinder
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
import com.android.settings.core.SettingsBaseActivity
import com.android.settings.core.instrumentation.InstrumentedDialogFragment
import com.android.settings.dashboard.DashboardFragment
@@ -164,6 +163,7 @@ class FingerprintSettingsV2Fragment :
Log.d(TAG, "onCreate()")
}
/*
if (
!FeatureFlagUtils.isEnabled(
context,
@@ -175,6 +175,8 @@ class FingerprintSettingsV2Fragment :
return
}
*/
val context = requireContext()
val userId = context.userId

View File

@@ -14,7 +14,7 @@
* 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 androidx.lifecycle.ViewModel

View File

@@ -14,7 +14,7 @@
* 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.FingerprintSensorProperties
@@ -24,6 +24,9 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
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.flow.Flow
import kotlinx.coroutines.flow.MutableSharedFlow
@@ -270,7 +273,8 @@ class FingerprintSettingsViewModel(
canEnrollFingerprint,
maxFingerprints,
hasSideFps,
pressToAuthEnabled
pressToAuthEnabled,
fingerprintManagerInteractor.sensorPropertiesInternal().first(),
)
}
}

View File

@@ -14,7 +14,7 @@
* 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

View File

@@ -14,7 +14,9 @@
* 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. */
sealed class PreferenceViewModel {

View File

@@ -72,7 +72,7 @@ import com.android.settings.biometrics.combination.CombinedBiometricProfileSetti
import com.android.settings.biometrics.combination.CombinedBiometricSettings;
import com.android.settings.biometrics.face.FaceSettings;
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.BluetoothDeviceDetailsFragment;
import com.android.settings.bluetooth.BluetoothFindBroadcastsFragment;

View File

@@ -20,8 +20,8 @@ import android.hardware.biometrics.SensorProperties
import android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow

View File

@@ -29,8 +29,8 @@ import androidx.test.core.app.ApplicationProvider
import com.android.settings.biometrics.GatekeeperPasswordProvider
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
import com.android.settings.password.ChooseLockSettingsHelper
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.cancelAndJoin

View File

@@ -14,18 +14,18 @@
* 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 com.android.settings.biometrics.BiometricEnrollBase
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollFirstFingerprint
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettings
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettingsWithResult
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchConfirmDeviceCredential
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.NextStepViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.ShowSettings
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
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
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettingsWithResult
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchConfirmDeviceCredential
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.NextStepViewModel
import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.ShowSettings
import com.android.settings.fingerprint2.domain.interactor.FakeFingerprintManagerInteractor
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.Dispatchers

View File

@@ -14,17 +14,17 @@
* 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.fingerprint.FingerprintSensorProperties
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
import com.android.settings.biometrics.fingerprint2.ui.viewmodel.PreferenceViewModel
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
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
import com.android.settings.fingerprint2.domain.interactor.FakeFingerprintManagerInteractor
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.Dispatchers