mirror of
https://github.com/bitwarden/android.git
synced 2026-06-05 22:15:09 -05:00
User settings repo to get biometrics enabled info (#824)
This commit is contained in:
committed by
Álison Fernandes
parent
9fcc326df3
commit
aacb955720
@@ -66,6 +66,11 @@ interface SettingsRepository {
|
||||
*/
|
||||
var defaultUriMatchType: UriMatchType
|
||||
|
||||
/**
|
||||
* Whether or not biometric unlocking is enabled for the current user.
|
||||
*/
|
||||
val isUnlockWithBiometricsEnabled: Boolean
|
||||
|
||||
/**
|
||||
* Whether or not PIN unlocking is enabled for the current user.
|
||||
*/
|
||||
|
||||
@@ -151,6 +151,11 @@ class SettingsRepositoryImpl(
|
||||
)
|
||||
}
|
||||
|
||||
override val isUnlockWithBiometricsEnabled: Boolean
|
||||
get() = activeUserId
|
||||
?.let { authDiskSource.getUserBiometricUnlockKey(userId = it) != null }
|
||||
?: false
|
||||
|
||||
override val isUnlockWithPinEnabled: Boolean
|
||||
get() = activeUserId
|
||||
?.let { authDiskSource.getEncryptedPin(userId = it) != null }
|
||||
|
||||
@@ -6,7 +6,6 @@ import androidx.lifecycle.viewModelScope
|
||||
import com.x8bit.bitwarden.R
|
||||
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserFingerprintResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.UserState
|
||||
import com.x8bit.bitwarden.data.platform.repository.EnvironmentRepository
|
||||
import com.x8bit.bitwarden.data.platform.repository.SettingsRepository
|
||||
import com.x8bit.bitwarden.data.platform.repository.model.VaultTimeout
|
||||
@@ -18,7 +17,6 @@ import com.x8bit.bitwarden.ui.platform.base.util.Text
|
||||
import com.x8bit.bitwarden.ui.platform.base.util.asText
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -44,11 +42,7 @@ class AccountSecurityViewModel @Inject constructor(
|
||||
dialog = null,
|
||||
fingerprintPhrase = "".asText(), // This will be filled in dynamically
|
||||
isApproveLoginRequestsEnabled = settingsRepository.isApprovePasswordlessLoginsEnabled,
|
||||
isUnlockWithBiometricsEnabled = authRepository
|
||||
.userStateFlow
|
||||
.value
|
||||
?.activeAccount
|
||||
?.isBiometricsEnabled == true,
|
||||
isUnlockWithBiometricsEnabled = settingsRepository.isUnlockWithBiometricsEnabled,
|
||||
isUnlockWithPinEnabled = settingsRepository.isUnlockWithPinEnabled,
|
||||
vaultTimeout = settingsRepository.vaultTimeout,
|
||||
vaultTimeoutAction = settingsRepository.vaultTimeoutAction,
|
||||
@@ -75,12 +69,6 @@ class AccountSecurityViewModel @Inject constructor(
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
authRepository
|
||||
.userStateFlow
|
||||
.map { AccountSecurityAction.Internal.UserStateReceive(it) }
|
||||
.onEach(::sendAction)
|
||||
.launchIn(viewModelScope)
|
||||
}
|
||||
|
||||
override fun handleAction(action: AccountSecurityAction): Unit = when (action) {
|
||||
@@ -263,8 +251,6 @@ class AccountSecurityViewModel @Inject constructor(
|
||||
is AccountSecurityAction.Internal.FingerprintResultReceive -> {
|
||||
handleFingerprintResultReceived(action)
|
||||
}
|
||||
|
||||
is AccountSecurityAction.Internal.UserStateReceive -> handleUserStateReceive(action)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,17 +267,6 @@ class AccountSecurityViewModel @Inject constructor(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleUserStateReceive(action: AccountSecurityAction.Internal.UserStateReceive) {
|
||||
mutableStateFlow.update {
|
||||
it.copy(
|
||||
isUnlockWithBiometricsEnabled = action
|
||||
.userState
|
||||
?.activeAccount
|
||||
?.isBiometricsEnabled == true,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -546,12 +521,5 @@ sealed class AccountSecurityAction {
|
||||
data class FingerprintResultReceive(
|
||||
val fingerprintResult: UserFingerprintResult,
|
||||
) : Internal()
|
||||
|
||||
/**
|
||||
* The updated [userState] has been received.
|
||||
*/
|
||||
data class UserStateReceive(
|
||||
val userState: UserState?,
|
||||
) : Internal()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user