From 6624778f7f0010770dd65c9ce8503c901d5e15f2 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Thu, 2 Nov 2023 08:50:51 +0200 Subject: [PATCH] Fix periodical backups --- .../kotatsu/settings/backup/BackupDialogFragment.kt | 2 +- .../kotatsu/settings/backup/PeriodicalBackupWorker.kt | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/BackupDialogFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/BackupDialogFragment.kt index 455e4b22b..b40157ab0 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/BackupDialogFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/BackupDialogFragment.kt @@ -29,7 +29,7 @@ class BackupDialogFragment : AlertDialogFragment() { private var backup: File? = null private val saveFileContract = registerForActivityResult( - ActivityResultContracts.CreateDocument("*/*"), + ActivityResultContracts.CreateDocument("application/zip"), ) { uri -> val file = backup if (uri != null && file != null) { diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/PeriodicalBackupWorker.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/PeriodicalBackupWorker.kt index 266970887..3c7f5ced6 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/PeriodicalBackupWorker.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/backup/PeriodicalBackupWorker.kt @@ -16,15 +16,11 @@ import androidx.work.workDataOf import dagger.Reusable import dagger.assisted.Assisted import dagger.assisted.AssistedInject -import okio.buffer -import okio.sink -import okio.source import org.koitharu.kotatsu.core.backup.BackupRepository import org.koitharu.kotatsu.core.backup.BackupZipOutput import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.core.util.ext.awaitUniqueWorkInfoByName import org.koitharu.kotatsu.core.util.ext.deleteAwait -import org.koitharu.kotatsu.core.util.ext.writeAllCancellable import org.koitharu.kotatsu.settings.work.PeriodicWorkScheduler import java.util.Date import java.util.concurrent.TimeUnit @@ -55,9 +51,7 @@ class PeriodicalBackupWorker @AssistedInject constructor( ?.createFile("application/zip", file.nameWithoutExtension) ?.uri ?: return Result.failure() applicationContext.contentResolver.openOutputStream(target, "wt")?.use { output -> - file.source().use { input -> - output.sink().buffer().writeAllCancellable(input) - } + file.inputStream().copyTo(output) } ?: return Result.failure() file.deleteAwait() return Result.success(resultData) @@ -79,6 +73,7 @@ class PeriodicalBackupWorker @AssistedInject constructor( settings.periodicalBackupFrequency, TimeUnit.DAYS, ).setConstraints(constraints.build()) + .keepResultsForAtLeast(20, TimeUnit.DAYS) .addTag(TAG) .build() workManager