[ios] Prompt for access token in ios-bench
Prompt for an access token before starting benchmarking. /ref #4728
This commit is contained in:
committed by
Minh Nguyễn
parent
6a6b51efbc
commit
17a8079f30
@@ -1,5 +1,7 @@
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
extern NSString * const MBXMapboxAccessTokenDefaultsKey;
|
||||
|
||||
@interface MBXBenchAppDelegate : UIResponder <UIApplicationDelegate>
|
||||
|
||||
@property (strong, nonatomic) UIWindow *window;
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
#import "MBXBenchViewController.h"
|
||||
#import <Mapbox/Mapbox.h>
|
||||
|
||||
NSString * const MBXMapboxAccessTokenDefaultsKey = @"MBXMapboxAccessToken";
|
||||
|
||||
@implementation MBXBenchAppDelegate
|
||||
|
||||
- (BOOL)application:(UIApplication*)application
|
||||
didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
|
||||
NSString* accessToken = [[NSProcessInfo processInfo] environment][@"MAPBOX_ACCESS_TOKEN"];
|
||||
if (accessToken) {
|
||||
// Store to preferences so that we can launch the app later on without having to specify
|
||||
// token.
|
||||
[[NSUserDefaults standardUserDefaults] setObject:accessToken forKey:@"access_token"];
|
||||
} else {
|
||||
// Try to retrieve from preferences, maybe we've stored them there previously and can reuse
|
||||
// the token.
|
||||
accessToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"access_token"];
|
||||
}
|
||||
if (!accessToken) {
|
||||
NSLog(@"No access token set. Mapbox vector tiles won't work.");
|
||||
} else {
|
||||
if (![MGLAccountManager accessToken]) {
|
||||
NSString *accessToken = [[NSProcessInfo processInfo] environment][@"MAPBOX_ACCESS_TOKEN"];
|
||||
if (accessToken) {
|
||||
// Store to preferences so that we can launch the app later on without having to specify
|
||||
// token.
|
||||
[[NSUserDefaults standardUserDefaults] setObject:accessToken forKey:MBXMapboxAccessTokenDefaultsKey];
|
||||
} else {
|
||||
// Try to retrieve from preferences, maybe we've stored them there previously and can reuse
|
||||
// the token.
|
||||
accessToken = [[NSUserDefaults standardUserDefaults] objectForKey:MBXMapboxAccessTokenDefaultsKey];
|
||||
}
|
||||
[MGLAccountManager setAccessToken:accessToken];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#import "MBXBenchViewController.h"
|
||||
|
||||
#import "MBXBenchAppDelegate.h"
|
||||
|
||||
#import <Mapbox/Mapbox.h>
|
||||
#import "MGLMapView_Internal.h"
|
||||
|
||||
@@ -44,10 +46,42 @@
|
||||
self.mapView.rotateEnabled = NO;
|
||||
self.mapView.userInteractionEnabled = YES;
|
||||
|
||||
[self startBenchmarkIteration];
|
||||
|
||||
[self.view addSubview:self.mapView];
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated
|
||||
{
|
||||
[super viewDidAppear:animated];
|
||||
|
||||
if ([MGLAccountManager accessToken].length) {
|
||||
[self startBenchmarkIteration];
|
||||
} else {
|
||||
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Access Token" message:@"Enter your Mapbox access token to load Mapbox-hosted tiles and styles:" preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
|
||||
textField.keyboardType = UIKeyboardTypeURL;
|
||||
textField.autocorrectionType = UITextAutocorrectionTypeNo;
|
||||
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
|
||||
}];
|
||||
|
||||
[alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
|
||||
[self startBenchmarkIteration];
|
||||
}]];
|
||||
UIAlertAction *OKAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
|
||||
UITextField *textField = alertController.textFields.firstObject;
|
||||
NSString *accessToken = textField.text;
|
||||
[[NSUserDefaults standardUserDefaults] setObject:accessToken forKey:MBXMapboxAccessTokenDefaultsKey];
|
||||
[MGLAccountManager setAccessToken:accessToken];
|
||||
[self.mapView reloadStyle:self];
|
||||
|
||||
[self startBenchmarkIteration];
|
||||
}];
|
||||
[alertController addAction:OKAction];
|
||||
|
||||
if ([alertController respondsToSelector:@selector(setPreferredAction:)]) {
|
||||
alertController.preferredAction = OKAction;
|
||||
}
|
||||
[self presentViewController:alertController animated:YES completion:nil];
|
||||
}
|
||||
}
|
||||
|
||||
size_t idx = 0;
|
||||
|
||||
Reference in New Issue
Block a user