From 1cdc01669b69cffb478510761228776e54e49c73 Mon Sep 17 00:00:00 2001 From: flazepe <51487578+flazepe@users.noreply.github.com> Date: Thu, 27 Aug 2026 18:01:29 +0800 Subject: [PATCH] Fix potential crash on bad clipboard item mime type --- .../saucenao/ReverseSearchScreen.kt | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/moe/apex/breadboard/saucenao/ReverseSearchScreen.kt b/app/src/main/java/moe/apex/breadboard/saucenao/ReverseSearchScreen.kt index 2392a64..8d86d2c 100644 --- a/app/src/main/java/moe/apex/breadboard/saucenao/ReverseSearchScreen.kt +++ b/app/src/main/java/moe/apex/breadboard/saucenao/ReverseSearchScreen.kt @@ -205,24 +205,28 @@ fun ReverseSearchScreen( clipboard.nativeClipboard.primaryClip?.getItemAt( 0 ) - - if (clipboardItem != null) { - val uri = clipboardItem.uri - val mimeType = uri?.let { + val mimeType = + clipboardItem?.uri?.let { context.contentResolver.getType(it) } - if (mimeType?.startsWith("image/") == true) { - selectedFileUri = uri - } else { + if (mimeType?.startsWith("image/") == true) { + selectedFileUri = clipboardItem.uri + } else { + val clipboardText = + clipboardItem?.text?.toString()?.trim()?.takeIf { + it.isNotEmpty() + } + + if (clipboardText != null) { /* onValueChange does not trigger when you mutate imageUrl via code, so we still have to reset selectedFileUri here. */ selectedFileUri = null - imageUrl = clipboardItem.text.toString() + imageUrl = clipboardText + } else { + showToast(context, "Nothing on the clipboard") } - } else { - showToast(context, "Nothing on the clipboard") } } }