diff --git a/Signal/src/util/OWSBackup.h b/Signal/src/util/OWSBackup.h index a6363fc69..64687acb1 100644 --- a/Signal/src/util/OWSBackup.h +++ b/Signal/src/util/OWSBackup.h @@ -6,6 +6,9 @@ NS_ASSUME_NONNULL_BEGIN extern NSString *const NSNotificationNameBackupStateDidChange; +typedef void (^OWSBackupBoolBlock)(BOOL success); +typedef void (^OWSBackupErrorBlock)(NSError *error); + typedef NS_ENUM(NSUInteger, OWSBackupState) { // Has never backed up, not trying to backup yet. OWSBackupState_Idle = 0, diff --git a/Signal/src/util/OWSBackup.m b/Signal/src/util/OWSBackup.m index ff457138c..93ffa0dd8 100644 --- a/Signal/src/util/OWSBackup.m +++ b/Signal/src/util/OWSBackup.m @@ -5,6 +5,7 @@ #import "OWSBackup.h" #import "NSNotificationCenter+OWS.h" #import "OWSBackupExport.h" +#import "Signal-Swift.h" #import #import #import @@ -129,6 +130,8 @@ NS_ASSUME_NONNULL_BEGIN return result; } +#pragma mark - Backup Export + - (void)setLastExportSuccessDate:(NSDate *)value { OWSAssert(value); @@ -267,6 +270,26 @@ NS_ASSUME_NONNULL_BEGIN } } +#pragma mark - Backup Import + +- (void)checkCanImportBackup:(OWSBackupBoolBlock)success failure:(OWSBackupErrorBlock)failure +{ + OWSAssertIsOnMainThread(); + + DDLogInfo(@"%@ %s", self.logTag, __PRETTY_FUNCTION__); + + [OWSBackupAPI checkForManifestInCloudWithSuccess:^(BOOL value) { + dispatch_async(dispatch_get_main_queue(), ^{ + success(value); + }); + } + failure:^(NSError *error) { + dispatch_async(dispatch_get_main_queue(), ^{ + failure(error); + }); + }]; +} + #pragma mark - - (void)applicationDidBecomeActive:(NSNotification *)notification