// // AppDelegate.m // FMC Planner 2 // // Created by Kilian Hofmann on 19.03.16. // Copyright © 2016 Kilian Hofmann. All rights reserved. // #import "AppDelegate.h" @implementation AppDelegate #pragma mark - Application lifecycle delegate methods - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. _dbClient = [[DropboxV2ObjC alloc] init]; NSDictionary *credentials = [[NSURLCredentialStorage sharedCredentialStorage] credentialsForProtectionSpace:_dbClient.kDropboxProtectionSpace]; NSURLCredential *credential = [credentials.objectEnumerator nextObject]; _dbClient.token = credential.password; // Reset if user changed it [_dbClient setupDropboxWithHandler:^{ } presenter:nil]; [self setup]; return YES; } - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. // This can occur for certain types of temporary interruptions (such as an // incoming phone call or SMS message) or when the user quits the // application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down // OpenGL ES frame rates. Games should use this method to pause the game. } - (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate // timers, and store enough application state information to restore your // application to its current state in case it is terminated later. // If your application supports background execution, this method is called // instead of applicationWillTerminate: when the user quits. } - (void)applicationWillEnterForeground:(UIApplication *)application { // Called as part of the transition from the background to the inactive // state; here you can undo many of the changes made on entering the // background. } - (void)applicationDidBecomeActive:(UIApplication *)application { // Restart any tasks that were paused (or not yet started) while the // application was inactive. If the application was previously in the // background, optionally refresh the user interface. } - (void)applicationWillTerminate:(UIApplication *)application { // Called when the application is about to terminate. Save data if // appropriate. See also applicationDidEnterBackground:. } #pragma mark - URL scheme handling - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { // Display text [_dbClient authorizeUserWithToke:url completion:^(void) { [_smWebView.navigationController popViewControllerAnimated:YES]; [_dbClient setupDropboxWithHandler:^{ } presenter:_smMenu]; } presenter:_smMenu]; return YES; } #pragma mark - Setup of save system - (void)setup { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsPath = paths[0]; BOOL saves = false; BOOL oldSaves = false; BOOL navData = false; [[NSFileManager defaultManager] fileExistsAtPath:[documentsPath stringByAppendingString:@"/SAVES"] isDirectory:&saves]; [[NSFileManager defaultManager] fileExistsAtPath:[documentsPath stringByAppendingString:@"/OLDSAVES"] isDirectory:&oldSaves]; [[NSFileManager defaultManager] fileExistsAtPath:[documentsPath stringByAppendingString:@"/NAVDATA"] isDirectory:&navData]; if (!saves) { [[NSFileManager defaultManager] createDirectoryAtPath:[documentsPath stringByAppendingString:@"/SAVES"] withIntermediateDirectories:NO attributes:nil error:nil]; } if (!oldSaves) { [[NSFileManager defaultManager] createDirectoryAtPath: [documentsPath stringByAppendingString:@"/OLDSAVES"] withIntermediateDirectories:NO attributes:nil error:nil]; } if (!navData) { [[NSFileManager defaultManager] createDirectoryAtPath:[documentsPath stringByAppendingString:@"/NAVDATA"] withIntermediateDirectories:NO attributes:nil error:nil]; } } @end