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
@@ -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,
@@ -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)
@@ -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)