diff --git a/app/src/main/java/io/heckel/ntfy/util/Util.kt b/app/src/main/java/io/heckel/ntfy/util/Util.kt
index 5622cb5..f224abb 100644
--- a/app/src/main/java/io/heckel/ntfy/util/Util.kt
+++ b/app/src/main/java/io/heckel/ntfy/util/Util.kt
@@ -7,7 +7,6 @@ import android.net.Uri
 import android.provider.OpenableColumns
 import android.view.Window
 import io.heckel.ntfy.data.Notification
-import io.heckel.ntfy.data.PROGRESS_NONE
 import io.heckel.ntfy.data.Subscription
 import java.security.SecureRandom
 import java.text.DateFormat
@@ -112,12 +111,9 @@ fun formatTitle(notification: Notification): String {
 }
 
 // Checks in the most horrible way if a content URI exists; I couldn't find a better way
-fun fileExists(context: Context, uri: String?): Boolean {
-    if (uri == null) return false
-    val resolver = context.applicationContext.contentResolver
+fun fileExists(context: Context, contentUri: String?): Boolean {
     return try {
-        val fileIS = resolver.openInputStream(Uri.parse(uri))
-        fileIS?.close()
+        queryFilenameInternal(context, contentUri) // Throws if the file does not exist
         true
     } catch (_: Exception) {
         false
@@ -126,19 +122,21 @@ fun fileExists(context: Context, uri: String?): Boolean {
 
 // Queries the filename of a content URI
 fun queryFilename(context: Context, contentUri: String?, fallbackName: String): String {
-    if (contentUri == null) {
-        return fallbackName
-    }
-    try {
-        val resolver = context.applicationContext.contentResolver
-        val cursor = resolver.query(Uri.parse(contentUri), null, null, null, null) ?: return fallbackName
-        return cursor.use { c ->
-            val nameIndex = c.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME)
-            c.moveToFirst()
-            c.getString(nameIndex)
-        }
+    return try {
+        queryFilenameInternal(context, contentUri)
     } catch (_: Exception) {
-        return fallbackName
+        fallbackName
+    }
+}
+
+fun queryFilenameInternal(context: Context, contentUri: String?): String {
+    if (contentUri == null) throw Exception("URI is null")
+    val resolver = context.applicationContext.contentResolver
+    val cursor = resolver.query(Uri.parse(contentUri), null, null, null, null) ?: throw Exception("Query returned null")
+    return cursor.use { c ->
+        val nameIndex = c.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME)
+        c.moveToFirst()
+        c.getString(nameIndex)
     }
 }