Compare commits

...

3 Commits

3 changed files with 23 additions and 3 deletions

View File

@ -7,7 +7,7 @@ object MimeUtils {
"image/apng" to ".apng", "image/apng" to ".apng",
"image/avif" to ".avif", "image/avif" to ".avif",
"image/gif" to ".gif", "image/gif" to ".gif",
"image/jpeg" to ".jpeg", "image/jpeg" to ".jpg",
"image/webp" to ".webp", "image/webp" to ".webp",
) )
} }

View File

@ -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)")
} }
} }

View File

@ -1,6 +1,6 @@
name: moxxy_native name: moxxy_native
description: Interactions with the system for Moxxy description: Interactions with the system for Moxxy
version: 0.3.1 version: 0.3.2
publish_to: https://git.polynom.me/api/packages/Moxxy/pub publish_to: https://git.polynom.me/api/packages/Moxxy/pub
homepage: homepage: