Browse Source

Show exception class in snackbar message (#9006)

* Show exception class in snackbar message

* omit IOException too
stevenyomi 2 years ago
parent
commit
589bdba0b1

+ 9 - 3
app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt

@@ -225,8 +225,7 @@ class MangaInfoScreenModel(
 
             logcat(LogPriority.ERROR, e)
             coroutineScope.launch {
-                val errorMessage = e.message.orEmpty().ifEmpty { e.toString() }
-                snackbarHostState.showSnackbar(message = errorMessage)
+                snackbarHostState.showSnackbar(message = e.snackbarMessage)
             }
         }
     }
@@ -516,7 +515,7 @@ class MangaInfoScreenModel(
                 context.getString(R.string.no_chapters_error)
             } else {
                 logcat(LogPriority.ERROR, e)
-                e.message.orEmpty().ifEmpty { e.toString() }
+                e.snackbarMessage
             }
 
             coroutineScope.launch {
@@ -1056,3 +1055,10 @@ val chapterDecimalFormat = DecimalFormat(
     DecimalFormatSymbols()
         .apply { decimalSeparator = '.' },
 )
+
+private val Throwable.snackbarMessage: String
+    get() = when (val className = this::class.simpleName) {
+        null -> message ?: ""
+        "Exception", "HttpException", "IOException" -> message ?: className
+        else -> "$className: $message"
+    }