Check for restorable previously optimized media and restore if necessary.

This commit is contained in:
Cody Henthorne
2024-09-24 11:41:50 -04:00
committed by Greyson Parrelli
parent d81182633d
commit 5552455c2e
2 changed files with 20 additions and 3 deletions

View File

@@ -23,6 +23,13 @@ class RestoreOptimizedMediaJob private constructor(parameters: Parameters) : Job
val job = RestoreOptimizedMediaJob()
AppDependencies.jobManager.add(job)
}
@JvmStatic
fun enqueueIfNecessary() {
if (SignalStore.backup.backsUpMedia && !SignalStore.backup.optimizeStorage) {
AppDependencies.jobManager.add(RestoreOptimizedMediaJob())
}
}
}
private constructor() : this(
@@ -34,11 +41,19 @@ class RestoreOptimizedMediaJob private constructor(parameters: Parameters) : Job
)
override fun run(): Result {
if (SignalStore.backup.optimizeStorage) {
return Result.success()
}
val restorableAttachments = SignalDatabase.attachments.getRestorableOptimizedAttachments()
if (restorableAttachments.isEmpty()) {
return Result.success()
}
val jobManager = AppDependencies.jobManager
SignalDatabase
.attachments
.getRestorableOptimizedAttachments()
restorableAttachments
.forEach {
val job = RestoreAttachmentJob.forOffloadedRestore(
messageId = it.mmsId,