Merge "Use FingerprintSensorType in shared lib." into main
This commit is contained in:
@@ -21,7 +21,6 @@ import android.annotation.StringRes
|
|||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.graphics.PorterDuff
|
import android.graphics.PorterDuff
|
||||||
import android.graphics.PorterDuffColorFilter
|
import android.graphics.PorterDuffColorFilter
|
||||||
import android.hardware.fingerprint.FingerprintSensorProperties
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.Html
|
import android.text.Html
|
||||||
import android.text.method.LinkMovementMethod
|
import android.text.method.LinkMovementMethod
|
||||||
@@ -39,6 +38,7 @@ import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Fing
|
|||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
|
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.FingerprintScrollViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Unicorn
|
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Unicorn
|
||||||
|
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
||||||
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
|
||||||
@@ -144,8 +144,8 @@ class FingerprintEnrollmentIntroV2Fragment : Fragment(R.layout.fingerprint_v2_en
|
|||||||
val iconShield: ImageView = view.requireViewById(R.id.icon_shield)
|
val iconShield: ImageView = view.requireViewById(R.id.icon_shield)
|
||||||
val footerMessage6: TextView = view.requireViewById(R.id.footer_message_6)
|
val footerMessage6: TextView = view.requireViewById(R.id.footer_message_6)
|
||||||
when (sensorType) {
|
when (sensorType) {
|
||||||
FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC,
|
FingerprintSensorType.UDFPS_ULTRASONIC,
|
||||||
FingerprintSensorProperties.TYPE_UDFPS_OPTICAL -> {
|
FingerprintSensorType.UDFPS_OPTICAL -> {
|
||||||
footerMessage6.visibility = View.VISIBLE
|
footerMessage6.visibility = View.VISIBLE
|
||||||
iconShield.visibility = View.VISIBLE
|
iconShield.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
|
@@ -16,20 +16,24 @@
|
|||||||
|
|
||||||
package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
|
package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
|
||||||
|
|
||||||
import android.hardware.fingerprint.FingerprintSensorProperties
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
|
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
|
||||||
|
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
||||||
|
import com.android.systemui.biometrics.shared.model.toSensorType
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.transform
|
import kotlinx.coroutines.flow.filterNotNull
|
||||||
|
import kotlinx.coroutines.flow.map
|
||||||
|
|
||||||
/** Represents all of the fingerprint information needed for fingerprint enrollment. */
|
/** Represents all of the fingerprint information needed for fingerprint enrollment. */
|
||||||
class FingerprintEnrollViewModel(fingerprintManagerInteractor: FingerprintManagerInteractor) :
|
class FingerprintEnrollViewModel(fingerprintManagerInteractor: FingerprintManagerInteractor) :
|
||||||
ViewModel() {
|
ViewModel() {
|
||||||
|
|
||||||
/** Represents the stream of [FingerprintSensorProperties.SensorType] */
|
/** Represents the stream of [FingerprintSensorType] */
|
||||||
val sensorType: Flow<Int> =
|
val sensorType: Flow<FingerprintSensorType> =
|
||||||
fingerprintManagerInteractor.sensorPropertiesInternal.transform { it?.sensorType }
|
fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map {
|
||||||
|
it.sensorType.toSensorType()
|
||||||
|
}
|
||||||
|
|
||||||
class FingerprintEnrollViewModelFactory(val interactor: FingerprintManagerInteractor) :
|
class FingerprintEnrollViewModelFactory(val interactor: FingerprintManagerInteractor) :
|
||||||
ViewModelProvider.Factory {
|
ViewModelProvider.Factory {
|
||||||
|
@@ -17,7 +17,6 @@
|
|||||||
package com.android.settings.biometrics.fingerprint2.ui.settings.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.util.Log
|
import android.util.Log
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
@@ -25,6 +24,8 @@ 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.FingerprintAuthAttemptViewModel
|
||||||
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
|
||||||
|
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
|
||||||
|
import com.android.systemui.biometrics.shared.model.toSensorType
|
||||||
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
|
||||||
@@ -89,8 +90,10 @@ class FingerprintSettingsViewModel(
|
|||||||
|
|
||||||
private val _consumerShouldAuthenticate: MutableStateFlow<Boolean> = MutableStateFlow(false)
|
private val _consumerShouldAuthenticate: MutableStateFlow<Boolean> = MutableStateFlow(false)
|
||||||
|
|
||||||
private val _fingerprintSensorType: Flow<Int> =
|
private val _fingerprintSensorType: Flow<FingerprintSensorType> =
|
||||||
fingerprintManagerInteractor.sensorPropertiesInternal.transform { it?.sensorType }
|
fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map {
|
||||||
|
it.sensorType.toSensorType()
|
||||||
|
}
|
||||||
|
|
||||||
private val _sensorNullOrEmpty: Flow<Boolean> =
|
private val _sensorNullOrEmpty: Flow<Boolean> =
|
||||||
fingerprintManagerInteractor.sensorPropertiesInternal.map { it == null }
|
fingerprintManagerInteractor.sensorPropertiesInternal.map { it == null }
|
||||||
@@ -147,10 +150,7 @@ class FingerprintSettingsViewModel(
|
|||||||
return@combine false
|
return@combine false
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
listOf(
|
listOf(FingerprintSensorType.UDFPS_ULTRASONIC, FingerprintSensorType.UDFPS_OPTICAL)
|
||||||
FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
|
|
||||||
FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC
|
|
||||||
)
|
|
||||||
.contains(sensorType)
|
.contains(sensorType)
|
||||||
) {
|
) {
|
||||||
return@combine false
|
return@combine false
|
||||||
|
Reference in New Issue
Block a user