Swiftgram/TelegramUI/SecureIdAuthControllerState.swift
Peter Iakovlev aa60d76fd8 no message
2018-03-27 12:03:25 +04:00

75 lines
2.1 KiB
Swift

import Foundation
import Postbox
import TelegramCore
struct SecureIdEncryptedFormData {
let form: EncryptedSecureIdForm
let accountPeer: Peer
let servicePeer: Peer
}
enum SecureIdAuthPasswordChallengeState {
case none
case checking
case invalid
}
enum SecureIdAuthControllerVerificationState: Equatable {
case noChallenge
case passwordChallenge(SecureIdAuthPasswordChallengeState)
case verified(SecureIdAccessContext)
static func ==(lhs: SecureIdAuthControllerVerificationState, rhs: SecureIdAuthControllerVerificationState) -> Bool {
switch lhs {
case .noChallenge:
if case .noChallenge = rhs {
return true
} else {
return false
}
case let .passwordChallenge(state):
if case .passwordChallenge(state) = rhs {
return true
} else {
return false
}
case .verified:
if case .verified = rhs {
return true
} else {
return false
}
}
}
}
struct SecureIdAuthControllerState: Equatable {
var encryptedFormData: SecureIdEncryptedFormData?
var formData: SecureIdForm?
var verificationState: SecureIdAuthControllerVerificationState?
static func ==(lhs: SecureIdAuthControllerState, rhs: SecureIdAuthControllerState) -> Bool {
if (lhs.formData != nil) != (rhs.formData != nil) {
return false
}
if (lhs.encryptedFormData != nil) != (rhs.encryptedFormData != nil) {
return false
}
if let lhsFormData = lhs.formData, let rhsFormData = rhs.formData {
if lhsFormData != rhsFormData {
return false
}
} else if (lhs.formData != nil) != (rhs.formData != nil) {
return false
}
if lhs.verificationState != rhs.verificationState {
return false
}
return true
}
}