mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-29 07:42:40 +00:00
Add numberOfPinFailures
This commit is contained in:
parent
14709201f8
commit
daf6788111
2 changed files with 23 additions and 2 deletions
|
@ -32,6 +32,7 @@ final class PinCodePreferences: NSObject {
|
|||
static let pin: String = "pin"
|
||||
static let biometricsEnabled: String = "biometricsEnabled"
|
||||
static let canUseBiometricsToUnlock: String = "canUseBiometricsToUnlock"
|
||||
static let numberOfPinFailures: String = "numberOfPinFailures"
|
||||
}
|
||||
|
||||
static let shared = PinCodePreferences()
|
||||
|
@ -39,7 +40,7 @@ final class PinCodePreferences: NSObject {
|
|||
/// Store. Defaults to `KeychainStore`
|
||||
private let store: KeyValueStore
|
||||
|
||||
override init() {
|
||||
override private init() {
|
||||
store = KeychainStore(withKeychain: Keychain(service: PinConstants.pinCodeKeychainService,
|
||||
accessGroup: BuildSettings.keychainAccessGroup))
|
||||
super.init()
|
||||
|
@ -129,6 +130,23 @@ final class PinCodePreferences: NSObject {
|
|||
}
|
||||
}
|
||||
|
||||
var numberOfPinFailures: Int {
|
||||
get {
|
||||
do {
|
||||
return try store.integer(forKey: StoreKeys.numberOfPinFailures) ?? 0
|
||||
} catch let error {
|
||||
NSLog("[PinCodePreferences] Error when reading numberOfPinFailures from store: \(error)")
|
||||
return 0
|
||||
}
|
||||
} set {
|
||||
do {
|
||||
try store.set(newValue, forKey: StoreKeys.numberOfPinFailures)
|
||||
} catch let error {
|
||||
NSLog("[PinCodePreferences] Error when storing numberOfPinFailures to the store: \(error)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var isBiometricsSet: Bool {
|
||||
return biometricsEnabled == true
|
||||
}
|
||||
|
@ -171,5 +189,7 @@ final class PinCodePreferences: NSObject {
|
|||
func reset() {
|
||||
pin = nil
|
||||
biometricsEnabled = nil
|
||||
canUseBiometricsToUnlock = nil
|
||||
numberOfPinFailures = 0
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,7 +53,8 @@ final class SetPinCoordinator: SetPinCoordinatorType {
|
|||
private func getRootCoordinator() -> Coordinator & Presentable {
|
||||
switch viewMode {
|
||||
case .unlock:
|
||||
if pinCodePreferences.isBiometricsSet {
|
||||
let canUseBiometricsToUnlock = pinCodePreferences.canUseBiometricsToUnlock ?? true
|
||||
if pinCodePreferences.isBiometricsSet && canUseBiometricsToUnlock {
|
||||
return createSetupBiometricsCoordinator()
|
||||
} else {
|
||||
return createEnterPinCodeCoordinator()
|
||||
|
|
Loading…
Reference in a new issue