Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eea9199c authored by Hao Dong's avatar Hao Dong Committed by Android (Google) Code Review
Browse files

Merge "Use FingerprintSensorType in shared lib." into main

parents dc37fd1c ae289cf1
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.annotation.StringRes
import android.graphics.Color
import android.graphics.PorterDuff
import android.graphics.PorterDuffColorFilter
import android.hardware.fingerprint.FingerprintSensorProperties
import android.os.Bundle
import android.text.Html
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.FingerprintScrollViewModel
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.FooterButton
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 footerMessage6: TextView = view.requireViewById(R.id.footer_message_6)
            when (sensorType) {
              FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC,
              FingerprintSensorProperties.TYPE_UDFPS_OPTICAL -> {
              FingerprintSensorType.UDFPS_ULTRASONIC,
              FingerprintSensorType.UDFPS_OPTICAL -> {
                footerMessage6.visibility = View.VISIBLE
                iconShield.visibility = View.VISIBLE
              }
+9 −5
Original line number Diff line number Diff line
@@ -16,20 +16,24 @@

package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel

import android.hardware.fingerprint.FingerprintSensorProperties
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
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.transform
import kotlinx.coroutines.flow.filterNotNull
import kotlinx.coroutines.flow.map

/** Represents all of the fingerprint information needed for fingerprint enrollment. */
class FingerprintEnrollViewModel(fingerprintManagerInteractor: FingerprintManagerInteractor) :
  ViewModel() {

  /** Represents the stream of [FingerprintSensorProperties.SensorType] */
  val sensorType: Flow<Int> =
    fingerprintManagerInteractor.sensorPropertiesInternal.transform { it?.sensorType }
  /** Represents the stream of [FingerprintSensorType] */
  val sensorType: Flow<FingerprintSensorType> =
    fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map {
      it.sensorType.toSensorType()
    }

  class FingerprintEnrollViewModelFactory(val interactor: FingerprintManagerInteractor) :
    ViewModelProvider.Factory {
+8 −8
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel

import android.hardware.fingerprint.FingerprintManager
import android.hardware.fingerprint.FingerprintSensorProperties
import android.util.Log
import androidx.lifecycle.ViewModel
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.shared.model.FingerprintAuthAttemptViewModel
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.flow.Flow
import kotlinx.coroutines.flow.MutableSharedFlow
@@ -89,8 +90,10 @@ class FingerprintSettingsViewModel(

  private val _consumerShouldAuthenticate: MutableStateFlow<Boolean> = MutableStateFlow(false)

  private val _fingerprintSensorType: Flow<Int> =
    fingerprintManagerInteractor.sensorPropertiesInternal.transform { it?.sensorType }
  private val _fingerprintSensorType: Flow<FingerprintSensorType> =
    fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map {
      it.sensorType.toSensorType()
    }

  private val _sensorNullOrEmpty: Flow<Boolean> =
    fingerprintManagerInteractor.sensorPropertiesInternal.map { it == null }
@@ -147,10 +150,7 @@ class FingerprintSettingsViewModel(
          return@combine false
        }
        if (
          listOf(
              FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
              FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC
            )
          listOf(FingerprintSensorType.UDFPS_ULTRASONIC, FingerprintSensorType.UDFPS_OPTICAL)
            .contains(sensorType)
        ) {
          return@combine false