diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt index 16926aaf7e..8a63a3ba43 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt @@ -1338,7 +1338,7 @@ object BackupRepository { SignalDatabase.recipients.setProfileKey(selfId, selfData.profileKey) SignalDatabase.recipients.setProfileSharing(selfId, true) - val importState = ImportState(mediaRootBackupKey) + val importState = ImportState(mediaRootBackupKey, backupMode) val chatItemInserter: ChatItemArchiveImporter = ChatItemArchiveProcessor.beginImport(importState) Log.d(TAG, "[import] Beginning to read frames.") @@ -2530,7 +2530,7 @@ class ExportState( var releaseNoteRecipientId: Long? = null } -class ImportState(val mediaRootBackupKey: MediaRootBackupKey) { +class ImportState(val mediaRootBackupKey: MediaRootBackupKey, val backupMode: BackupMode) { val remoteToLocalRecipientId: MutableMap = hashMapOf() val chatIdToLocalThreadId: MutableMap = hashMapOf() val chatIdToLocalRecipientId: MutableMap = hashMapOf() diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataArchiveProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataArchiveProcessor.kt index eb9551f0e8..92951893bd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataArchiveProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataArchiveProcessor.kt @@ -275,7 +275,7 @@ object AccountDataArchiveProcessor { SignalStore.story.isFeatureDisabled = settings.storiesDisabled SignalStore.story.userHasSeenGroupStoryEducationSheet = settings.hasSeenGroupStoryEducationSheet SignalStore.story.viewedReceiptsEnabled = settings.storyViewReceiptsEnabled ?: settings.readReceipts - SignalStore.backup.optimizeStorage = settings.optimizeOnDeviceStorage + SignalStore.backup.optimizeStorage = !importState.backupMode.isLinkAndSync && settings.optimizeOnDeviceStorage SignalStore.backup.backupTier = MessageBackupTier.fromBackupLevel(settings.backupTier) SignalStore.settings.sentMediaQuality = settings.defaultSentMediaQuality.toLocalSentMediaQuality() SignalStore.settings.setTheme(settings.appTheme.toLocalTheme()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RestoreOptimizedMediaJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/RestoreOptimizedMediaJob.kt index 31d440942d..d0f37e3660 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RestoreOptimizedMediaJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RestoreOptimizedMediaJob.kt @@ -31,6 +31,11 @@ class RestoreOptimizedMediaJob private constructor(parameters: Parameters) : Job @JvmStatic fun enqueueIfNecessary() { + if (SignalStore.account.isLinkedDevice && SignalStore.backup.optimizeStorage) { + Log.w(TAG, "Storage optimization is not supported on linked devices. Disabling and restoring all media.") + SignalStore.backup.optimizeStorage = false + } + if (SignalStore.backup.backsUpMedia && !SignalStore.backup.optimizeStorage) { AppDependencies.jobManager.add(RestoreOptimizedMediaJob()) }