Trying to load saved-search as much as possible even though filterList might changed
This commit is contained in:
parent
3610f4a6f2
commit
d45eb34d1a
2 changed files with 15 additions and 5 deletions
|
|
@ -7,7 +7,6 @@ import kotlinx.coroutines.Dispatchers
|
|||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.JsonArray
|
||||
import tachiyomi.core.common.util.lang.withIOContext
|
||||
|
|
@ -43,13 +42,14 @@ class GetExhSavedSearch(
|
|||
}
|
||||
|
||||
private fun loadSearch(search: SavedSearch, getFilterList: () -> FilterList): EXHSavedSearch {
|
||||
val originalFilters = getFilterList()
|
||||
val filters = getFilters(search.filtersJson)
|
||||
|
||||
return EXHSavedSearch(
|
||||
id = search.id,
|
||||
name = search.name,
|
||||
query = search.query?.nullIfBlank(),
|
||||
filterList = filters?.let { deserializeFilters(it, getFilterList) },
|
||||
filterList = filters?.let { deserializeFilters(it, originalFilters) },
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -61,9 +61,8 @@ class GetExhSavedSearch(
|
|||
}.getOrNull()
|
||||
}
|
||||
|
||||
private fun deserializeFilters(filters: JsonArray, getFilterList: () -> FilterList): FilterList? {
|
||||
private fun deserializeFilters(filters: JsonArray, originalFilters: FilterList): FilterList? {
|
||||
return runCatching {
|
||||
val originalFilters = getFilterList()
|
||||
filterSerializer.deserialize(originalFilters, filters)
|
||||
originalFilters
|
||||
}.onFailure {
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@ import kotlinx.serialization.json.jsonPrimitive
|
|||
import kotlinx.serialization.json.long
|
||||
import kotlinx.serialization.json.put
|
||||
import kotlinx.serialization.json.putJsonObject
|
||||
import logcat.LogPriority
|
||||
import logcat.asLog
|
||||
import tachiyomi.core.common.util.system.logcat
|
||||
import kotlin.reflect.KMutableProperty1
|
||||
import kotlin.reflect.full.isSubclassOf
|
||||
|
||||
|
|
@ -69,7 +72,15 @@ class FilterSerializer {
|
|||
|
||||
fun deserialize(filters: FilterList, json: JsonArray) {
|
||||
filters.filterIsInstance<Filter<Any?>>().zip(json).forEach { (filter, obj) ->
|
||||
deserialize(filter, obj.jsonObject)
|
||||
// KMK -->
|
||||
try {
|
||||
// KMK <--
|
||||
deserialize(filter, obj.jsonObject)
|
||||
// KMK -->
|
||||
} catch (e: Exception) {
|
||||
logcat(LogPriority.ERROR) { e.asLog() }
|
||||
}
|
||||
// KMK <--
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue