diff --git a/Signal/src/ViewControllers/DebugUI/DebugUIBackup.m b/Signal/src/ViewControllers/DebugUI/DebugUIBackup.m index df3c14543..0f291c8fa 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUIBackup.m +++ b/Signal/src/ViewControllers/DebugUI/DebugUIBackup.m @@ -77,6 +77,10 @@ NS_ASSUME_NONNULL_BEGIN actionBlock:^{ [DebugUIBackup logBackupMetadataCache]; }]]; + [items addObject:[OWSTableItem itemWithTitle:@"Lazy Restore Attachments" + actionBlock:^{ + [AppEnvironment.shared.backupLazyRestore runIfNecessary]; + }]]; return [OWSTableSection sectionWithTitle:self.name items:items]; } diff --git a/Signal/src/util/Backup/OWSBackupImportJob.m b/Signal/src/util/Backup/OWSBackupImportJob.m index 8bc7746da..a11186505 100644 --- a/Signal/src/util/Backup/OWSBackupImportJob.m +++ b/Signal/src/util/Backup/OWSBackupImportJob.m @@ -175,7 +175,7 @@ NSString *const kOWSBackup_ImportDatabaseKeySpec = @"kOWSBackup_ImportDatabaseKe }) .then(^{ // Kick off lazy restore on main thread. - [self.backupLazyRestore runIfNecessary]; + [self.backupLazyRestore clearCompleteAndRunIfNecessary]; [self.profileManager fetchLocalUsersProfile]; diff --git a/Signal/src/util/Backup/OWSBackupLazyRestore.swift b/Signal/src/util/Backup/OWSBackupLazyRestore.swift index 563c266cb..149dfa48f 100644 --- a/Signal/src/util/Backup/OWSBackupLazyRestore.swift +++ b/Signal/src/util/Backup/OWSBackupLazyRestore.swift @@ -53,6 +53,15 @@ public class BackupLazyRestore: NSObject { private let backgroundQueue = DispatchQueue.global(qos: .background) + @objc + public func clearCompleteAndRunIfNecessary() { + AssertIsOnMainThread() + + isComplete = false + + runIfNecessary() + } + @objc public func runIfNecessary() { AssertIsOnMainThread()