|
|
|
@ -13,6 +13,7 @@ import org.koitharu.kotatsu.core.backup.BackupRepository
|
|
|
|
import org.koitharu.kotatsu.core.backup.BackupZipInput
|
|
|
|
import org.koitharu.kotatsu.core.backup.BackupZipInput
|
|
|
|
import org.koitharu.kotatsu.core.backup.BackupZipOutput
|
|
|
|
import org.koitharu.kotatsu.core.backup.BackupZipOutput
|
|
|
|
import org.koitharu.kotatsu.core.db.MangaDatabase
|
|
|
|
import org.koitharu.kotatsu.core.db.MangaDatabase
|
|
|
|
|
|
|
|
import org.koitharu.kotatsu.core.prefs.AppSettings
|
|
|
|
import java.io.*
|
|
|
|
import java.io.*
|
|
|
|
|
|
|
|
|
|
|
|
class AppBackupAgent : BackupAgent() {
|
|
|
|
class AppBackupAgent : BackupAgent() {
|
|
|
|
@ -31,7 +32,8 @@ class AppBackupAgent : BackupAgent() {
|
|
|
|
|
|
|
|
|
|
|
|
override fun onFullBackup(data: FullBackupDataOutput) {
|
|
|
|
override fun onFullBackup(data: FullBackupDataOutput) {
|
|
|
|
super.onFullBackup(data)
|
|
|
|
super.onFullBackup(data)
|
|
|
|
val file = createBackupFile(this, BackupRepository(MangaDatabase(applicationContext)))
|
|
|
|
val file =
|
|
|
|
|
|
|
|
createBackupFile(this, BackupRepository(MangaDatabase(applicationContext), AppSettings(applicationContext)))
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
fullBackupFile(file, data)
|
|
|
|
fullBackupFile(file, data)
|
|
|
|
} finally {
|
|
|
|
} finally {
|
|
|
|
@ -48,7 +50,7 @@ class AppBackupAgent : BackupAgent() {
|
|
|
|
mtime: Long
|
|
|
|
mtime: Long
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
if (destination?.name?.endsWith(".bk.zip") == true) {
|
|
|
|
if (destination?.name?.endsWith(".bk.zip") == true) {
|
|
|
|
restoreBackupFile(data.fileDescriptor, size, BackupRepository(MangaDatabase(applicationContext)))
|
|
|
|
restoreBackupFile(data.fileDescriptor, size, BackupRepository(MangaDatabase(applicationContext), AppSettings(applicationContext)))
|
|
|
|
destination.delete()
|
|
|
|
destination.delete()
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
super.onRestoreFile(data, size, destination, type, mode, mtime)
|
|
|
|
super.onRestoreFile(data, size, destination, type, mode, mtime)
|
|
|
|
@ -62,6 +64,7 @@ class AppBackupAgent : BackupAgent() {
|
|
|
|
backup.put(repository.dumpHistory())
|
|
|
|
backup.put(repository.dumpHistory())
|
|
|
|
backup.put(repository.dumpCategories())
|
|
|
|
backup.put(repository.dumpCategories())
|
|
|
|
backup.put(repository.dumpFavourites())
|
|
|
|
backup.put(repository.dumpFavourites())
|
|
|
|
|
|
|
|
backup.put(repository.dumpSettings())
|
|
|
|
backup.finish()
|
|
|
|
backup.finish()
|
|
|
|
backup.file
|
|
|
|
backup.file
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -81,6 +84,7 @@ class AppBackupAgent : BackupAgent() {
|
|
|
|
repository.restoreHistory(backup.getEntry(BackupEntry.HISTORY))
|
|
|
|
repository.restoreHistory(backup.getEntry(BackupEntry.HISTORY))
|
|
|
|
repository.restoreCategories(backup.getEntry(BackupEntry.CATEGORIES))
|
|
|
|
repository.restoreCategories(backup.getEntry(BackupEntry.CATEGORIES))
|
|
|
|
repository.restoreFavourites(backup.getEntry(BackupEntry.FAVOURITES))
|
|
|
|
repository.restoreFavourites(backup.getEntry(BackupEntry.FAVOURITES))
|
|
|
|
|
|
|
|
repository.restoreSettings(backup.getEntry(BackupEntry.SETTINGS))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} finally {
|
|
|
|
} finally {
|
|
|
|
backup.close()
|
|
|
|
backup.close()
|
|
|
|
@ -102,4 +106,4 @@ class AppBackupAgent : BackupAgent() {
|
|
|
|
bytes = read(buffer, 0, buffer.size.coerceAtMost(bytesLeft))
|
|
|
|
bytes = read(buffer, 0, buffer.size.coerceAtMost(bytesLeft))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|