1 package com.android.systemui.keyguard.domain.interactor 2 3 import com.android.systemui.dagger.SysUISingleton 4 import com.android.systemui.keyguard.data.repository.KeyguardRepository 5 import com.android.systemui.keyguard.shared.model.BiometricUnlockMode 6 import com.android.systemui.keyguard.shared.model.BiometricUnlockModel 7 import com.android.systemui.keyguard.shared.model.BiometricUnlockSource 8 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_DISMISS_BOUNCER 9 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_NONE 10 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_ONLY_WAKE 11 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_SHOW_BOUNCER 12 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_UNLOCK_COLLAPSING 13 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK 14 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK_FROM_DREAM 15 import com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK_PULSING 16 import com.android.systemui.statusbar.phone.BiometricUnlockController.WakeAndUnlockMode 17 import javax.inject.Inject 18 import kotlinx.coroutines.flow.StateFlow 19 20 @SysUISingleton 21 class BiometricUnlockInteractor 22 @Inject 23 constructor( 24 private val keyguardRepository: KeyguardRepository, 25 ) { 26 27 val unlockState: StateFlow<BiometricUnlockModel> = keyguardRepository.biometricUnlockState 28 setBiometricUnlockStatenull29 fun setBiometricUnlockState( 30 @WakeAndUnlockMode unlockStateInt: Int, 31 biometricUnlockSource: BiometricUnlockSource?, 32 ) { 33 val state = biometricModeIntToObject(unlockStateInt) 34 keyguardRepository.setBiometricUnlockState(state, biometricUnlockSource) 35 } 36 biometricModeIntToObjectnull37 private fun biometricModeIntToObject(@WakeAndUnlockMode value: Int): BiometricUnlockMode { 38 return when (value) { 39 MODE_NONE -> BiometricUnlockMode.NONE 40 MODE_WAKE_AND_UNLOCK -> BiometricUnlockMode.WAKE_AND_UNLOCK 41 MODE_WAKE_AND_UNLOCK_PULSING -> BiometricUnlockMode.WAKE_AND_UNLOCK_PULSING 42 MODE_SHOW_BOUNCER -> BiometricUnlockMode.SHOW_BOUNCER 43 MODE_ONLY_WAKE -> BiometricUnlockMode.ONLY_WAKE 44 MODE_UNLOCK_COLLAPSING -> BiometricUnlockMode.UNLOCK_COLLAPSING 45 MODE_WAKE_AND_UNLOCK_FROM_DREAM -> BiometricUnlockMode.WAKE_AND_UNLOCK_FROM_DREAM 46 MODE_DISMISS_BOUNCER -> BiometricUnlockMode.DISMISS_BOUNCER 47 else -> throw IllegalArgumentException("Invalid BiometricUnlockModel value: $value") 48 } 49 } 50 } 51