Add Saved Searches to backup and restore

This commit is contained in:
Jobobby04 2020-05-25 21:09:10 -04:00
parent 766bf0539d
commit b6a0a807c2
3 changed files with 27 additions and 0 deletions

View File

@ -27,6 +27,7 @@ import eu.kanade.tachiyomi.data.backup.models.Backup.CURRENT_VERSION
import eu.kanade.tachiyomi.data.backup.models.Backup.EXTENSIONS
import eu.kanade.tachiyomi.data.backup.models.Backup.HISTORY
import eu.kanade.tachiyomi.data.backup.models.Backup.MANGA
import eu.kanade.tachiyomi.data.backup.models.Backup.SAVEDSEARCHES
import eu.kanade.tachiyomi.data.backup.models.Backup.TRACK
import eu.kanade.tachiyomi.data.backup.models.DHistory
import eu.kanade.tachiyomi.data.backup.serializer.CategoryTypeAdapter
@ -55,6 +56,8 @@ import exh.eh.EHentaiThrottleManager
import kotlin.math.max
import rx.Observable
import timber.log.Timber
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy
class BackupManager(val context: Context, version: Int = CURRENT_VERSION) {
@ -148,6 +151,9 @@ class BackupManager(val context: Context, version: Int = CURRENT_VERSION) {
// Backup extension ID/name mapping
backupExtensionInfo(extensionEntries, extensions)
root[SAVEDSEARCHES] =
Injekt.get<PreferencesHelper>().eh_savedSearches().get().joinToString(separator = "***")
}
try {
@ -492,6 +498,16 @@ class BackupManager(val context: Context, version: Int = CURRENT_VERSION) {
return true
}
internal fun restoreSavedSearches(jsonSavedSearches: JsonElement) {
val backupSavedSearches = jsonSavedSearches.asString.split("***").toSet()
backupSavedSearches.forEach {
val savedSearches = preferences.eh_savedSearches().get()
if (it !in savedSearches) {
preferences.eh_savedSearches().set(savedSearches + it)
}
}
}
/**
* Returns manga
*

View File

@ -19,6 +19,7 @@ import eu.kanade.tachiyomi.data.backup.models.Backup.CHAPTERS
import eu.kanade.tachiyomi.data.backup.models.Backup.HISTORY
import eu.kanade.tachiyomi.data.backup.models.Backup.MANGA
import eu.kanade.tachiyomi.data.backup.models.Backup.MANGAS
import eu.kanade.tachiyomi.data.backup.models.Backup.SAVEDSEARCHES
import eu.kanade.tachiyomi.data.backup.models.Backup.TRACK
import eu.kanade.tachiyomi.data.backup.models.Backup.VERSION
import eu.kanade.tachiyomi.data.backup.models.DHistory
@ -240,6 +241,8 @@ class BackupRestoreService : Service() {
// Restore categories
json.get(CATEGORIES)?.let { restoreCategories(it) }
json.get(SAVEDSEARCHES)?.let { restoreSavedSearches(it) }
// Store source mapping for error messages
sourceMapping = BackupRestoreValidator.getSourceMapping(json)
@ -270,6 +273,13 @@ class BackupRestoreService : Service() {
showRestoreProgress(restoreProgress, restoreAmount, getString(R.string.categories))
}
private fun restoreSavedSearches(savedSearchesJson: JsonElement) {
backupManager.restoreSavedSearches(savedSearchesJson)
restoreProgress += 1
showRestoreProgress(restoreProgress, restoreAmount, getString(R.string.eh_saved_searches))
}
private fun restoreManga(mangaJson: JsonObject) {
var manga = backupManager.parser.fromJson<MangaImpl>(mangaJson.get(MANGA))
val chapters = backupManager.parser.fromJson<List<ChapterImpl>>(

View File

@ -17,6 +17,7 @@ object Backup {
const val EXTENSIONS = "extensions"
const val HISTORY = "history"
const val VERSION = "version"
const val SAVEDSEARCHES = "savedsearches"
fun getDefaultFilename(): String {
val date = SimpleDateFormat("yyyy-MM-dd_HH-mm", Locale.getDefault()).format(Date())