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 pin: String = "pin"
|
||||||
static let biometricsEnabled: String = "biometricsEnabled"
|
static let biometricsEnabled: String = "biometricsEnabled"
|
||||||
static let canUseBiometricsToUnlock: String = "canUseBiometricsToUnlock"
|
static let canUseBiometricsToUnlock: String = "canUseBiometricsToUnlock"
|
||||||
|
static let numberOfPinFailures: String = "numberOfPinFailures"
|
||||||
}
|
}
|
||||||
|
|
||||||
static let shared = PinCodePreferences()
|
static let shared = PinCodePreferences()
|
||||||
|
@ -39,7 +40,7 @@ final class PinCodePreferences: NSObject {
|
||||||
/// Store. Defaults to `KeychainStore`
|
/// Store. Defaults to `KeychainStore`
|
||||||
private let store: KeyValueStore
|
private let store: KeyValueStore
|
||||||
|
|
||||||
override init() {
|
override private init() {
|
||||||
store = KeychainStore(withKeychain: Keychain(service: PinConstants.pinCodeKeychainService,
|
store = KeychainStore(withKeychain: Keychain(service: PinConstants.pinCodeKeychainService,
|
||||||
accessGroup: BuildSettings.keychainAccessGroup))
|
accessGroup: BuildSettings.keychainAccessGroup))
|
||||||
super.init()
|
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 {
|
var isBiometricsSet: Bool {
|
||||||
return biometricsEnabled == true
|
return biometricsEnabled == true
|
||||||
}
|
}
|
||||||
|
@ -171,5 +189,7 @@ final class PinCodePreferences: NSObject {
|
||||||
func reset() {
|
func reset() {
|
||||||
pin = nil
|
pin = nil
|
||||||
biometricsEnabled = nil
|
biometricsEnabled = nil
|
||||||
|
canUseBiometricsToUnlock = nil
|
||||||
|
numberOfPinFailures = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,8 @@ final class SetPinCoordinator: SetPinCoordinatorType {
|
||||||
private func getRootCoordinator() -> Coordinator & Presentable {
|
private func getRootCoordinator() -> Coordinator & Presentable {
|
||||||
switch viewMode {
|
switch viewMode {
|
||||||
case .unlock:
|
case .unlock:
|
||||||
if pinCodePreferences.isBiometricsSet {
|
let canUseBiometricsToUnlock = pinCodePreferences.canUseBiometricsToUnlock ?? true
|
||||||
|
if pinCodePreferences.isBiometricsSet && canUseBiometricsToUnlock {
|
||||||
return createSetupBiometricsCoordinator()
|
return createSetupBiometricsCoordinator()
|
||||||
} else {
|
} else {
|
||||||
return createEnterPinCodeCoordinator()
|
return createEnterPinCodeCoordinator()
|
||||||
|
|
Loading…
Reference in a new issue