From 613bdb29438f3545978884fc027d64aa2c0caf4d Mon Sep 17 00:00:00 2001 From: Alex Zolotarev Date: Sat, 23 Jan 2016 18:08:58 +0300 Subject: [PATCH] [ios] Minor OSM authorization fixes. --- .../Login/MWMAuthorizationCommon.h | 3 +++ .../Login/MWMAuthorizationCommon.mm | 26 ++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.h b/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.h index 93f59e98dd..87130e4372 100644 --- a/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.h +++ b/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.h @@ -11,8 +11,11 @@ typedef NS_OPTIONS(NSUInteger, MWMAuthorizationButtonType) UIColor * MWMAuthorizationButtonBackgroundColor(MWMAuthorizationButtonType type); void MWMAuthorizationConfigButton(UIButton * btn, MWMAuthorizationButtonType type); +// Deletes any stored credentials if called with empty key or secret. void MWMAuthorizationStoreCredentials(osm::TKeySecret const & keySecret); BOOL MWMAuthorizationHaveCredentials(); +// Returns empty key and secret if user has not beed authorized. +osm::TKeySecret MWMAuthorizationGetCredentials(); void MWMAuthorizationSetUserSkip(); BOOL MWMAuthorizationIsUserSkip(); diff --git a/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.mm b/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.mm index 72540b7191..f6d8a36119 100644 --- a/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.mm +++ b/iphone/Maps/Classes/CustomViews/Login/MWMAuthorizationCommon.mm @@ -52,11 +52,18 @@ void MWMAuthorizationConfigButton(UIButton * btn, MWMAuthorizationButtonType typ void MWMAuthorizationStoreCredentials(osm::TKeySecret const & keySecret) { - NSString * requestToken = @(keySecret.first.c_str()); - NSString * requestSecret = @(keySecret.second.c_str()); NSUserDefaults * ud = [NSUserDefaults standardUserDefaults]; - [ud setObject:requestToken forKey:kOSMRequestToken]; - [ud setObject:requestSecret forKey:kOSMRequestSecret]; + if (keySecret.first.empty() || keySecret.second.empty()) + { + [ud removeObjectForKey:kOSMRequestToken]; + [ud removeObjectForKey:kOSMRequestSecret]; + } + else + { + [ud setObject:@(keySecret.first.c_str()) forKey:kOSMRequestToken]; + [ud setObject:@(keySecret.second.c_str()) forKey:kOSMRequestSecret]; + } + [ud synchronize]; } BOOL MWMAuthorizationHaveCredentials() @@ -67,10 +74,21 @@ BOOL MWMAuthorizationHaveCredentials() return requestToken && requestSecret; } +osm::TKeySecret MWMAuthorizationGetCredentials() +{ + NSUserDefaults * ud = [NSUserDefaults standardUserDefaults]; + NSString * requestToken = [ud stringForKey:kOSMRequestToken]; + NSString * requestSecret = [ud stringForKey:kOSMRequestSecret]; + if (requestToken && requestSecret) + return osm::TKeySecret(requestToken.UTF8String, requestSecret.UTF8String); + return {}; +} + void MWMAuthorizationSetUserSkip() { NSUserDefaults * ud = [NSUserDefaults standardUserDefaults]; [ud setObject:[NSDate date] forKey:kAuthUserSkip]; + [ud synchronize]; } BOOL MWMAuthorizationIsUserSkip()