Fix crash if you somehow have a invalid saved search json

This commit is contained in:
Jobobby04 2021-07-22 19:29:47 -04:00
parent b769043f36
commit 0f4414e359
3 changed files with 15 additions and 3 deletions

View File

@ -416,7 +416,11 @@ class FullBackupManager(context: Context) : AbstractBackupManager(context) {
internal fun restoreSavedSearches(backupSavedSearches: List<BackupSavedSearch>) {
val currentSavedSearches = preferences.savedSearches().get().mapNotNull {
val sourceId = it.substringBefore(':').toLongOrNull() ?: return@mapNotNull null
val content = Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
val content = try {
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
} catch (e: Exception) {
return@mapNotNull null
}
BackupSavedSearch(
content.name,
content.query,

View File

@ -469,7 +469,11 @@ open class BrowseSourcePresenter(
return prefs.savedSearches().get().mapNotNull {
val id = it.substringBefore(':').toLongOrNull() ?: return@mapNotNull null
if (id != source.id) return@mapNotNull null
val content = Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
val content = try {
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
} catch (e: Exception) {
return@mapNotNull null
}
try {
val originalFilters = source.getFilterList()
filterSerializer.deserialize(originalFilters, content.filters)

View File

@ -217,7 +217,11 @@ open class IndexPresenter(
return preferences.savedSearches().get().mapNotNull {
val id = it.substringBefore(':').toLongOrNull() ?: return@mapNotNull null
if (id != source.id) return@mapNotNull null
val content = Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
val content = try {
Json.decodeFromString<JsonSavedSearch>(it.substringAfter(':'))
} catch (e: Exception) {
return@mapNotNull null
}
try {
val originalFilters = source.getFilterList()
filterSerializer.deserialize(originalFilters, content.filters)