From bfd04088bd1c1d806554a15a554331146a36f91b Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 6 Jul 2017 12:43:32 -0400 Subject: [PATCH] =?UTF-8?q?Persist=20registration=20view=E2=80=99s=20?= =?UTF-8?q?=E2=80=9Clast=20registered=E2=80=9D=20values=20in=20keychain=20?= =?UTF-8?q?so=20that=20they=20persist=20across=20clean=20installs.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit // FREEBIE --- .../RegistrationViewController.m | 38 +++++++++++++++---- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/Signal/src/ViewControllers/RegistrationViewController.m b/Signal/src/ViewControllers/RegistrationViewController.m index bdfbfe419..989ed2004 100644 --- a/Signal/src/ViewControllers/RegistrationViewController.m +++ b/Signal/src/ViewControllers/RegistrationViewController.m @@ -18,8 +18,9 @@ NS_ASSUME_NONNULL_BEGIN #ifdef DEBUG -NSString *const kNSUserDefaultsKey_LastRegisteredCountryCode = @"kNSUserDefaultsKey_LastRegisteredCountryCode"; -NSString *const kNSUserDefaultsKey_LastRegisteredPhoneNumber = @"kNSUserDefaultsKey_LastRegisteredPhoneNumber"; +NSString *const kKeychainService_LastRegistered = @"kKeychainService_LastRegistered"; +NSString *const kKeychainKey_LastRegisteredCountryCode = @"kKeychainKey_LastRegisteredCountryCode"; +NSString *const kKeychainKey_LastRegisteredPhoneNumber = @"kKeychainKey_LastRegisteredPhoneNumber"; #endif @@ -440,7 +441,12 @@ NSString *const kNSUserDefaultsKey_LastRegisteredPhoneNumber = @"kNSUserDefaults OWSCAssert([NSThread isMainThread]); OWSCAssert(key.length > 0); - return [[NSUserDefaults standardUserDefaults] stringForKey:key]; + NSError *error; + NSString *value = [SAMKeychain passwordForService:kKeychainService_LastRegistered account:key error:&error]; + if (value && !error) { + return value; + } + return nil; } - (void)setDebugValue:(NSString *)value forKey:(NSString *)key @@ -449,31 +455,47 @@ NSString *const kNSUserDefaultsKey_LastRegisteredPhoneNumber = @"kNSUserDefaults OWSCAssert(key.length > 0); OWSCAssert(value.length > 0); - [[NSUserDefaults standardUserDefaults] setValue:value forKey:key]; + NSError *error; + [SAMKeychain setPassword:value forService:kKeychainService_LastRegistered account:key error:&error]; + if (error) { + DDLogError(@"%@ Error persisting 'last registered' value in keychain: %@", self.tag, error); + } } - (NSString *_Nullable)lastRegisteredCountryCode { - return [self debugValueForKey:kNSUserDefaultsKey_LastRegisteredCountryCode]; + return [self debugValueForKey:kKeychainKey_LastRegisteredCountryCode]; } - (void)setLastRegisteredCountryCode:(NSString *)value { - [self setDebugValue:value forKey:kNSUserDefaultsKey_LastRegisteredCountryCode]; + [self setDebugValue:value forKey:kKeychainKey_LastRegisteredCountryCode]; } - (NSString *_Nullable)lastRegisteredPhoneNumber { - return [self debugValueForKey:kNSUserDefaultsKey_LastRegisteredPhoneNumber]; + return [self debugValueForKey:kKeychainKey_LastRegisteredPhoneNumber]; } - (void)setLastRegisteredPhoneNumber:(NSString *)value { - [self setDebugValue:value forKey:kNSUserDefaultsKey_LastRegisteredPhoneNumber]; + [self setDebugValue:value forKey:kKeychainKey_LastRegisteredPhoneNumber]; } #endif +#pragma mark - Logging + ++ (NSString *)tag +{ + return [NSString stringWithFormat:@"[%@]", self.class]; +} + +- (NSString *)tag +{ + return self.class.tag; +} + @end NS_ASSUME_NONNULL_END