diff --git a/FMC PLanner 2.xcworkspace/xcuserdata/Kili2.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/FMC PLanner 2.xcworkspace/xcuserdata/Kili2.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
index 48e8090..a17d576 100644
--- a/FMC PLanner 2.xcworkspace/xcuserdata/Kili2.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
+++ b/FMC PLanner 2.xcworkspace/xcuserdata/Kili2.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -35,22 +35,6 @@
landmarkType = "5">
-
-
-
-
@@ -74,11 +58,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "FMC Planner 2/DropboxV2ObjC.m"
- timestampString = "482597611.374247"
+ timestampString = "482609979.426219"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "568"
- endingLineNumber = "568"
+ startingLineNumber = "577"
+ endingLineNumber = "577"
landmarkName = "-setupDropboxWithHandler:presenter:"
landmarkType = "5">
@@ -90,11 +74,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "FMC Planner 2/DropboxV2ObjC.m"
- timestampString = "482597611.374247"
+ timestampString = "482609979.426219"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "570"
- endingLineNumber = "570"
+ startingLineNumber = "579"
+ endingLineNumber = "579"
landmarkName = "-setupDropboxWithHandler:presenter:"
landmarkType = "5">
@@ -106,11 +90,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "FMC Planner 2/DropboxV2ObjC.m"
- timestampString = "482597611.374247"
+ timestampString = "482609979.426219"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "589"
- endingLineNumber = "589"
+ startingLineNumber = "598"
+ endingLineNumber = "598"
landmarkName = "-setupDropboxWithHandler:presenter:"
landmarkType = "5">
@@ -122,11 +106,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "FMC Planner 2/DropboxV2ObjC.m"
- timestampString = "482597611.374247"
+ timestampString = "482609979.426219"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "608"
- endingLineNumber = "608"
+ startingLineNumber = "617"
+ endingLineNumber = "617"
landmarkName = "-setupDropboxWithHandler:presenter:"
landmarkType = "5">
@@ -138,11 +122,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "FMC Planner 2/DropboxV2ObjC.m"
- timestampString = "482597611.374247"
+ timestampString = "482609979.426219"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "627"
- endingLineNumber = "627"
+ startingLineNumber = "636"
+ endingLineNumber = "636"
landmarkName = "-setupDropboxWithHandler:presenter:"
landmarkType = "5">
diff --git a/FMC Planner 2/DropboxV2ObjC.h b/FMC Planner 2/DropboxV2ObjC.h
index 9692962..5c8de46 100644
--- a/FMC Planner 2/DropboxV2ObjC.h
+++ b/FMC Planner 2/DropboxV2ObjC.h
@@ -32,12 +32,12 @@
- (void)downloadFromDropbox:(NSArray *)files
presenter:(UIViewController *)presenter
- completion:(void (^)(void))handler;
+ completion:(void (^)(BOOL success))handler;
- (void)uploadToDropbox:(NSArray *)files
presenter:(UIViewController *)presenter
- completion:(void (^)(void))handler;
+ completion:(void (^)(BOOL success))handler;
- (void)contentsOfPath:(NSString *)path
- completion:(void (^)(NSArray *data))handler
+ completion:(void (^)(NSArray *data, BOOL success))handler
presenter:(UIViewController *)presenter;
- (void)createFolderAtPath:(NSString *)path
presenter:(UIViewController *)presenter;
diff --git a/FMC Planner 2/DropboxV2ObjC.m b/FMC Planner 2/DropboxV2ObjC.m
index 34d98b6..b016ad0 100644
--- a/FMC Planner 2/DropboxV2ObjC.m
+++ b/FMC Planner 2/DropboxV2ObjC.m
@@ -21,6 +21,11 @@
protocol:@"HTTP"
realm:nil
authenticationMethod:@"OAuth2"];
+ NSDictionary *credentials =
+ [[NSURLCredentialStorage sharedCredentialStorage]
+ credentialsForProtectionSpace:self.kDropboxProtectionSpace];
+ NSURLCredential *credential = [credentials.objectEnumerator nextObject];
+ self.token = credential.password;
return self;
}
@@ -156,7 +161,7 @@
* @param completion executed after completion
*/
- (void)contentsOfPath:(NSString *)path
- completion:(void (^)(NSArray *data))handler
+ completion:(void (^)(NSArray *data, BOOL success))handler
presenter:(UIViewController *)presenter
{
@@ -250,9 +255,10 @@
.topViewController];
}
}];
+ handler(nil, NO);
}
else {
- handler(data2);
+ handler(data2, YES);
}
}
}
@@ -265,6 +271,7 @@
.topViewController];
}];
+ handler(nil, NO);
}
}];
}
@@ -275,7 +282,7 @@
*/
- (void)downloadFromDropbox:(NSArray *)files
presenter:(UIViewController *)presenter
- completion:(void (^)(void))handler
+ completion:(void (^)(BOOL success))handler
{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
request.URL = [NSURL
@@ -320,6 +327,7 @@
valueForKey:@"error_summary"] == nil) {
[data writeToFile:[SharedDeclerations savePathForFile:string]
atomically:YES];
+ handler(YES);
}
else {
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
@@ -361,6 +369,7 @@
.topViewController];
}
}];
+ handler(NO);
}
}
else if (error != nil) {
@@ -370,11 +379,10 @@
presentErrorAlert:error
presenter:presenter.navigationController
.topViewController];
-
}];
+ handler(NO);
}
}
- handler();
}
/**
@@ -383,7 +391,7 @@
*/
- (void)uploadToDropbox:(NSArray *)files
presenter:(UIViewController *)presenter
- completion:(void (^)(void))handler
+ completion:(void (^)(BOOL success))handler
{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
request.URL =
@@ -434,6 +442,7 @@
.topViewController];
}];
+ handler(NO);
}
if ([[NSJSONSerialization JSONObjectWithData:data options:0 error:nil]
valueForKey:@"error_summary"] != nil) {
@@ -475,9 +484,9 @@
.topViewController];
}
}];
+ handler(NO);
}
}
- handler();
}
@@ -566,7 +575,7 @@
[queue addOperationWithBlock:^{
// Exports (PMDG format)
[self contentsOfPath:nil
- completion:^(NSArray *data) {
+ completion:^(NSArray *data, BOOL success) {
BOOL exports = false;
for (NSDictionary *dict in data) {
if ([[dict valueForKey:@"name"]
@@ -585,7 +594,7 @@
presenter:presenter];
// NavData (3 files from QW Navigraph data
[self contentsOfPath:nil
- completion:^(NSArray *data) {
+ completion:^(NSArray *data, BOOL success) {
BOOL exports = false;
for (NSDictionary *dict in data) {
if ([[dict valueForKey:@"name"]
@@ -604,7 +613,7 @@
presenter:presenter.navigationController.topViewController];
// Backups of Saves
[self contentsOfPath:nil
- completion:^(NSArray *data) {
+ completion:^(NSArray *data, BOOL success) {
BOOL exports = false;
for (NSDictionary *dict in data) {
if ([[dict valueForKey:@"name"]
@@ -623,7 +632,7 @@
presenter:presenter.navigationController.topViewController];
// Old saves (FMC Planner + (or X?))
[self contentsOfPath:nil
- completion:^(NSArray *data) {
+ completion:^(NSArray *data, BOOL success) {
BOOL exports = false;
for (NSDictionary *dict in data) {
if ([[dict valueForKey:@"name"]
diff --git a/FMC Planner 2/TableViewController.m b/FMC Planner 2/TableViewController.m
index 1c90cfb..919e45e 100644
--- a/FMC Planner 2/TableViewController.m
+++ b/FMC Planner 2/TableViewController.m
@@ -41,7 +41,7 @@
if ([self.title isEqualToString:@"Download"]) {
[dbClient
contentsOfPath:@"SAVES"
- completion:^(NSArray *data) {
+ completion:^(NSArray *data, BOOL success) {
NSMutableArray *temp = [[NSMutableArray alloc] init];
if (data != nil) {
for (NSDictionary *dict in data) {
@@ -184,7 +184,7 @@
[queue addOperationWithBlock:^{
[dbClient downloadFromDropbox:_markList
presenter:self
- completion:^{
+ completion:^(BOOL success) {
[[NSOperationQueue mainQueue]
addOperationWithBlock:^{
_sm.dbDownload.enabled = YES;
@@ -204,7 +204,7 @@
[dbClient
uploadToDropbox:_markList
presenter:self
- completion:^{
+ completion:^(BOOL success) {
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
_sm.dbUpload.enabled = YES;
_sm.dbUpload.alpha = 1.0;
diff --git a/FMC Planner 2/ViewController.m b/FMC Planner 2/ViewController.m
index 77351ce..ea20431 100644
--- a/FMC Planner 2/ViewController.m
+++ b/FMC Planner 2/ViewController.m
@@ -29,11 +29,6 @@
// Override point for customization after application launch.
_dbClient = [[DropboxV2ObjC alloc] init];
((AppDelegate *)[UIApplication sharedApplication].delegate).main = self;
- NSDictionary *credentials =
- [[NSURLCredentialStorage sharedCredentialStorage]
- credentialsForProtectionSpace:_dbClient.kDropboxProtectionSpace];
- NSURLCredential *credential = [credentials.objectEnumerator nextObject];
- _dbClient.token = credential.password;
// Reset if user changed it
[_dbClient setupDropboxWithHandler:^{
}
diff --git a/FMC Planner 2/ViewControllerServiceMenu.m b/FMC Planner 2/ViewControllerServiceMenu.m
index 76dd243..abbf858 100644
--- a/FMC Planner 2/ViewControllerServiceMenu.m
+++ b/FMC Planner 2/ViewControllerServiceMenu.m
@@ -121,7 +121,7 @@
[queue addOperationWithBlock:^{
[dbClient
contentsOfPath:@"NAVDATA"
- completion:^(NSArray *files) {
+ completion:^(NSArray *files, BOOL success) {
if (files != nil) {
NSMutableArray *dlList = [[NSMutableArray alloc] init];
for (NSDictionary *file in files) {
@@ -132,7 +132,7 @@
[dbClient
downloadFromDropbox:dlList
presenter:self
- completion:^{
+ completion:^(BOOL success) {
[[NSOperationQueue mainQueue]
addOperationWithBlock:^{
_main.navDataActive = false;
diff --git a/FMC Planner 2Tests/FMC_Planner_2Tests.m b/FMC Planner 2Tests/FMC_Planner_2Tests.m
index 354125d..d6bd250 100644
--- a/FMC Planner 2Tests/FMC_Planner_2Tests.m
+++ b/FMC Planner 2Tests/FMC_Planner_2Tests.m
@@ -6,11 +6,14 @@
// Copyright © 2016 Kilian Hofmann. All rights reserved.
//
+#import "DropboxV2ObjC.h"
#import "NavDataParser.h"
+#import "SharedDeclerations.h"
#import
@interface FMC_Planner_2Tests : XCTestCase {
NavDataParser *parser;
+ DropboxV2ObjC *dbClient;
}
@end
@@ -22,9 +25,8 @@
[super setUp];
// Put setup code here. This method is called before the invocation of each
// test method in the class.
- if (parser == nil) {
- parser = [[NavDataParser alloc] init];
- }
+ parser = [[NavDataParser alloc] init];
+ dbClient = [[DropboxV2ObjC alloc] init];
}
- (void)tearDown
@@ -47,6 +49,8 @@
{
XCTAssertTrue([parser findAirway:@"T104"].count > 0);
XCTAssertTrue([parser findAirway:@"T104T"].count == 0);
+ XCTAssertTrue(
+ [[parser findAirway:@"DIRECT"].firstObject isEqualToString:@"OK"]);
}
- (void)testWaypointOnAirway
@@ -68,4 +72,50 @@
withStart:@"DKB"] == nil);
}
+- (void)testPathContent
+{
+ [dbClient contentsOfPath:nil
+ completion:^(NSArray *data, BOOL success) {
+ if (success) {
+ NSMutableArray *temp = [[NSMutableArray alloc] init];
+ for (NSDictionary *dict in data) {
+ [temp addObject:[dict valueForKey:@"name"]];
+ }
+ XCTAssertTrue([temp containsObject:@"TEST.txt"]);
+ }
+ }
+ presenter:nil];
+}
+
+- (void)testDownload
+{
+ if ([[NSFileManager defaultManager]
+ fileExistsAtPath:[SharedDeclerations
+ savePathForFile:@"TEST.txt"]]) {
+ [[NSFileManager defaultManager]
+ removeItemAtPath:[SharedDeclerations savePathForFile:@"TEST.txt"]
+ error:nil];
+ }
+ [dbClient downloadFromDropbox:@[ @"TEST.txt" ]
+ presenter:nil
+ completion:^(BOOL success) {
+ if (success) {
+ XCTAssertTrue([[NSFileManager defaultManager]
+ fileExistsAtPath:
+ [SharedDeclerations
+ savePathForFile:@"TEST.txt"]]);
+ }
+ }];
+}
+
+- (void)testUpload
+{
+ [dbClient
+ uploadToDropbox:@[ [SharedDeclerations savePathForFile:@"TEST.txt"] ]
+ presenter:nil
+ completion:^(BOOL success) {
+ XCTAssertTrue(success);
+ }];
+}
+
@end