diff --git a/android/src/main/kotlin/com/kasem/flutter_absolute_path/FileDirectory.kt b/android/src/main/kotlin/com/kasem/flutter_absolute_path/FileDirectory.kt index 47b955b..9161b12 100644 --- a/android/src/main/kotlin/com/kasem/flutter_absolute_path/FileDirectory.kt +++ b/android/src/main/kotlin/com/kasem/flutter_absolute_path/FileDirectory.kt @@ -8,6 +8,7 @@ import android.os.Build import android.os.Environment import android.provider.DocumentsContract import android.provider.MediaStore +import android.provider.OpenableColumns import java.io.* import java.util.* @@ -87,7 +88,16 @@ object FileDirectory { selectionArgs: Array?): String? { if (uri.authority != null) { - val targetFile = File(context.cacheDir, "IMG_${Date().time}.png") + // try to get file name + var filename :String? = null + context.contentResolver.query(uri, null, null, null, null)?.use { cursor -> + if (!cursor.moveToFirst()) return@use null + val nameColumIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME) + filename = cursor.getString(nameColumIndex) + cursor.close() + } + + val targetFile = File(context.cacheDir, filename ?: "IMG_${Date().time}.png") context.contentResolver.openInputStream(uri)?.use { input -> FileOutputStream(targetFile).use { fileOut -> input.copyTo(fileOut) @@ -136,4 +146,5 @@ object FileDirectory { fun isMediaDocument(uri: Uri): Boolean { return "com.android.providers.media.documents" == uri.authority } + } diff --git a/pubspec.yaml b/pubspec.yaml index 7339021..56f7514 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_absolute_path description: A flutter plugin that finds the absolute path of a file in iOS or Android devices. -version: 1.0.6 +version: 1.0.6-patch2 author: Kasem SAEED homepage: https://github.com/KasemJaffer/flutter_absolute_path