summaryrefslogtreecommitdiff
path: root/platform/darwin/src/MGLAccountManager.m
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/src/MGLAccountManager.m')
-rw-r--r--platform/darwin/src/MGLAccountManager.m40
1 files changed, 33 insertions, 7 deletions
diff --git a/platform/darwin/src/MGLAccountManager.m b/platform/darwin/src/MGLAccountManager.m
index 63fa634884..0566605323 100644
--- a/platform/darwin/src/MGLAccountManager.m
+++ b/platform/darwin/src/MGLAccountManager.m
@@ -1,26 +1,26 @@
#import "MGLAccountManager_Private.h"
#import "NSBundle+MGLAdditions.h"
+
#if TARGET_OS_OSX
#import "NSProcessInfo+MGLAdditions.h"
#endif
#if TARGET_OS_IPHONE || TARGET_OS_SIMULATOR
#import "MGLMapboxEvents.h"
+#import "MBXSKUToken.h"
+#endif
@interface MGLAccountManager ()
@property (atomic) NSString *accessToken;
@property (nonatomic) NSURL *apiBaseURL;
-@end
-#else
-@interface MGLAccountManager ()
-
-@property (atomic) NSString *accessToken;
-@property (nonatomic) NSURL *apiBaseURL;
+#if TARGET_OS_IPHONE || TARGET_OS_SIMULATOR
+@property (atomic) NSString *skuToken;
+@property (atomic) NSDate *skuTokenExpiration;
+#endif
@end
-#endif
@implementation MGLAccountManager
@@ -39,6 +39,10 @@
if (apiBaseURL.length && [NSURL URLWithString:apiBaseURL]) {
[self setAPIBaseURL:[NSURL URLWithString:apiBaseURL]];
}
+
+#if TARGET_OS_IPHONE || TARGET_OS_SIMULATOR
+ self.skuToken = [MBXSKUToken skuToken];
+#endif
}
+ (instancetype)sharedManager {
@@ -93,4 +97,26 @@
return [MGLAccountManager sharedManager].apiBaseURL;
}
+#pragma mark - SKU Tokens
+
+#if TARGET_OS_IPHONE || TARGET_OS_SIMULATOR
+
++ (void)setSkuToken:(NSString *)skuToken {
+ NSTimeInterval oneHour = 60 * 60; // TODO: make this const
+ MGLAccountManager.sharedManager.skuTokenExpiration = [NSDate dateWithTimeIntervalSinceNow:oneHour];
+
+ MGLAccountManager.sharedManager.skuToken = skuToken;
+}
+
++ (NSString *)skuToken {
+ return [MGLAccountManager.sharedManager isSKUTokenExpired] ? [MBXSKUToken skuToken] : MGLAccountManager.sharedManager.skuToken;
+}
+
+- (BOOL)isSKUTokenExpired {
+ NSTimeInterval secondsUntilExpiration = [MGLAccountManager.sharedManager.skuTokenExpiration timeIntervalSinceDate:NSDate.date];
+ return secondsUntilExpiration < 0;
+}
+
+#endif
+
@end