Procházet zdrojové kódy

Fix FileNotFoundException from FileUriSource

cooperku_kdanmobile před 5 roky
rodič
revize
067869bfd2

+ 14 - 5
src/main/java/com/kdanmobile/reader/copyfile/FileUriSource.kt

@@ -4,6 +4,7 @@ import android.content.Context
 import android.net.Uri
 import android.support.v4.provider.DocumentFile
 import java.io.File
+import java.io.FileNotFoundException
 import java.io.InputStream
 import java.lang.Exception
 import java.net.URI
@@ -24,13 +25,21 @@ class FileUriSource(private val context: Context, private val uri: Uri): CopyFil
     }
 
     override fun getFileSize(): Long? {
-        val assetFileDescriptor = context.contentResolver.openAssetFileDescriptor(uri, "r")
-        val fileSize = assetFileDescriptor?.length
-        assetFileDescriptor?.close()
-        return fileSize
+        return try {
+            val assetFileDescriptor = context.contentResolver.openAssetFileDescriptor(uri, "r")
+            val fileSize = assetFileDescriptor?.length
+            assetFileDescriptor?.close()
+            fileSize
+        } catch (e: FileNotFoundException) {
+            null
+        }
     }
 
     override fun getInputStream(): InputStream? {
-        return context.contentResolver.openInputStream(uri)
+        return try {
+            context.contentResolver.openInputStream(uri)
+        } catch (e: FileNotFoundException) {
+            null
+        }
     }
 }