Add Saved Searches to backup and restore
This commit is contained in:
parent
766bf0539d
commit
b6a0a807c2
@ -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.EXTENSIONS
|
||||||
import eu.kanade.tachiyomi.data.backup.models.Backup.HISTORY
|
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.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.Backup.TRACK
|
||||||
import eu.kanade.tachiyomi.data.backup.models.DHistory
|
import eu.kanade.tachiyomi.data.backup.models.DHistory
|
||||||
import eu.kanade.tachiyomi.data.backup.serializer.CategoryTypeAdapter
|
import eu.kanade.tachiyomi.data.backup.serializer.CategoryTypeAdapter
|
||||||
@ -55,6 +56,8 @@ import exh.eh.EHentaiThrottleManager
|
|||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
import uy.kohesive.injekt.Injekt
|
||||||
|
import uy.kohesive.injekt.api.get
|
||||||
import uy.kohesive.injekt.injectLazy
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
class BackupManager(val context: Context, version: Int = CURRENT_VERSION) {
|
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
|
// Backup extension ID/name mapping
|
||||||
backupExtensionInfo(extensionEntries, extensions)
|
backupExtensionInfo(extensionEntries, extensions)
|
||||||
|
|
||||||
|
root[SAVEDSEARCHES] =
|
||||||
|
Injekt.get<PreferencesHelper>().eh_savedSearches().get().joinToString(separator = "***")
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -492,6 +498,16 @@ class BackupManager(val context: Context, version: Int = CURRENT_VERSION) {
|
|||||||
return true
|
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
|
* Returns manga
|
||||||
*
|
*
|
||||||
|
@ -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.HISTORY
|
||||||
import eu.kanade.tachiyomi.data.backup.models.Backup.MANGA
|
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.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.TRACK
|
||||||
import eu.kanade.tachiyomi.data.backup.models.Backup.VERSION
|
import eu.kanade.tachiyomi.data.backup.models.Backup.VERSION
|
||||||
import eu.kanade.tachiyomi.data.backup.models.DHistory
|
import eu.kanade.tachiyomi.data.backup.models.DHistory
|
||||||
@ -240,6 +241,8 @@ class BackupRestoreService : Service() {
|
|||||||
// Restore categories
|
// Restore categories
|
||||||
json.get(CATEGORIES)?.let { restoreCategories(it) }
|
json.get(CATEGORIES)?.let { restoreCategories(it) }
|
||||||
|
|
||||||
|
json.get(SAVEDSEARCHES)?.let { restoreSavedSearches(it) }
|
||||||
|
|
||||||
// Store source mapping for error messages
|
// Store source mapping for error messages
|
||||||
sourceMapping = BackupRestoreValidator.getSourceMapping(json)
|
sourceMapping = BackupRestoreValidator.getSourceMapping(json)
|
||||||
|
|
||||||
@ -270,6 +273,13 @@ class BackupRestoreService : Service() {
|
|||||||
showRestoreProgress(restoreProgress, restoreAmount, getString(R.string.categories))
|
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) {
|
private fun restoreManga(mangaJson: JsonObject) {
|
||||||
var manga = backupManager.parser.fromJson<MangaImpl>(mangaJson.get(MANGA))
|
var manga = backupManager.parser.fromJson<MangaImpl>(mangaJson.get(MANGA))
|
||||||
val chapters = backupManager.parser.fromJson<List<ChapterImpl>>(
|
val chapters = backupManager.parser.fromJson<List<ChapterImpl>>(
|
||||||
|
@ -17,6 +17,7 @@ object Backup {
|
|||||||
const val EXTENSIONS = "extensions"
|
const val EXTENSIONS = "extensions"
|
||||||
const val HISTORY = "history"
|
const val HISTORY = "history"
|
||||||
const val VERSION = "version"
|
const val VERSION = "version"
|
||||||
|
const val SAVEDSEARCHES = "savedsearches"
|
||||||
|
|
||||||
fun getDefaultFilename(): String {
|
fun getDefaultFilename(): String {
|
||||||
val date = SimpleDateFormat("yyyy-MM-dd_HH-mm", Locale.getDefault()).format(Date())
|
val date = SimpleDateFormat("yyyy-MM-dd_HH-mm", Locale.getDefault()).format(Date())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user