mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
34 lines
1.7 KiB
Swift
34 lines
1.7 KiB
Swift
import Sodium
|
|
|
|
enum Onboarding {
|
|
|
|
enum Flow {
|
|
case register, recover, link
|
|
|
|
func preregister(with seed: Data, ed25519KeyPair: Sign.KeyPair, x25519KeyPair: ECKeyPair) {
|
|
let userDefaults = UserDefaults.standard
|
|
KeyPairUtilities.store(seed: seed, ed25519KeyPair: ed25519KeyPair, x25519KeyPair: x25519KeyPair)
|
|
TSAccountManager.sharedInstance().phoneNumberAwaitingVerification = x25519KeyPair.hexEncodedPublicKey
|
|
switch self {
|
|
case .register:
|
|
userDefaults[.hasViewedSeed] = false
|
|
// Set hasSyncedInitialConfiguration to true so that when we hit the home screen a configuration sync
|
|
// is triggered (yes, the logic is a bit weird). This is needed so that if the user registers and
|
|
// immediately links a device, there'll be a configuration in their swarm.
|
|
userDefaults[.hasSyncedInitialConfiguration] = true
|
|
case .recover, .link:
|
|
userDefaults[.hasViewedSeed] = true // No need to show it again if the user is restoring or linking
|
|
userDefaults[.hasSyncedInitialConfiguration] = false
|
|
}
|
|
switch self {
|
|
case .register, .recover:
|
|
// Set both lastDisplayNameUpdate and lastProfilePictureUpdate to the current date, so that
|
|
// we don't overwrite what the user set in the display name step with whatever we find in
|
|
// their swarm.
|
|
userDefaults[.lastDisplayNameUpdate] = Date()
|
|
userDefaults[.lastProfilePictureUpdate] = Date()
|
|
case .link: break
|
|
}
|
|
}
|
|
}
|
|
}
|