fix(android): Prevent filename.jpg.png
This commit is contained in:
parent
c14b3a7f58
commit
3c0db620c8
@ -21,6 +21,26 @@ import java.io.IOException
|
|||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.io.OutputStream
|
import java.io.OutputStream
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Attempt to replace the file extension in @fileName with @newExtension. If @newExtension is null,
|
||||||
|
* then @fileName is returned verbatim.
|
||||||
|
* */
|
||||||
|
private fun maybeReplaceExtension(fileName: String, newExtension: String?): String {
|
||||||
|
if (newExtension == null) {
|
||||||
|
return fileName
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(newExtension[0] == '.')
|
||||||
|
val parts = fileName.split(".")
|
||||||
|
return if (parts.size == 1) {
|
||||||
|
"$fileName$newExtension"
|
||||||
|
} else {
|
||||||
|
// Split at the ".", join all but the list end together and append the new extension
|
||||||
|
val fileNameWithoutExtension = parts.subList(0, parts.size - 1).joinToString(".")
|
||||||
|
"$fileNameWithoutExtension$newExtension"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class PickerResultListener(private val context: Context) : ActivityResultListener {
|
class PickerResultListener(private val context: Context) : ActivityResultListener {
|
||||||
/*
|
/*
|
||||||
* Attempt to deduce the filename for the URI @uri.
|
* Attempt to deduce the filename for the URI @uri.
|
||||||
@ -44,7 +64,7 @@ class PickerResultListener(private val context: Context) : ActivityResultListene
|
|||||||
|
|
||||||
// Note: This is a workaround for the Dart image library failing to parse the file
|
// Note: This is a workaround for the Dart image library failing to parse the file
|
||||||
// because displayName somehow is always ".jpg", which confuses image.
|
// because displayName somehow is always ".jpg", which confuses image.
|
||||||
result = if (fileExtension != null) "$displayName$fileExtension" else displayName
|
result = maybeReplaceExtension(displayName, fileExtension)
|
||||||
Log.d(TAG, "Returning $result as filename (MIME: $mimeType)")
|
Log.d(TAG, "Returning $result as filename (MIME: $mimeType)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user