mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Converted fixExtension to kotlin
This commit is contained in:
parent
88203561e3
commit
f37501ffde
4 changed files with 40 additions and 39 deletions
|
|
@ -3,8 +3,8 @@ package fr.free.nrw.commons.upload
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import fr.free.nrw.commons.filepicker.MimeTypeMapWrapper.Companion.getExtensionFromMimeType
|
import fr.free.nrw.commons.filepicker.MimeTypeMapWrapper.Companion.getExtensionFromMimeType
|
||||||
import fr.free.nrw.commons.nearby.Place
|
import fr.free.nrw.commons.nearby.Place
|
||||||
import fr.free.nrw.commons.utils.FilenameUtils
|
|
||||||
import fr.free.nrw.commons.utils.ImageUtils
|
import fr.free.nrw.commons.utils.ImageUtils
|
||||||
|
import fr.free.nrw.commons.utils.fixExtension
|
||||||
|
|
||||||
class UploadItem(
|
class UploadItem(
|
||||||
var mediaUri: Uri?,
|
var mediaUri: Uri?,
|
||||||
|
|
@ -32,7 +32,7 @@ class UploadItem(
|
||||||
* languages have been entered, the first language is used.
|
* languages have been entered, the first language is used.
|
||||||
*/
|
*/
|
||||||
val filename: String
|
val filename: String
|
||||||
get() = FilenameUtils.fixExtension(
|
get() = fixExtension(
|
||||||
uploadMediaDetails[0].captionText,
|
uploadMediaDetails[0].captionText,
|
||||||
getExtensionFromMimeType(mimeType)
|
getExtensionFromMimeType(mimeType)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
package fr.free.nrw.commons.utils;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
public final class FilenameUtils {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds extension to filename. Converts to .jpg if system provides .jpeg, adds .jpg if no extension detected
|
|
||||||
* @param title File name
|
|
||||||
* @param extension Correct extension
|
|
||||||
* @return File with correct extension
|
|
||||||
*/
|
|
||||||
public static String fixExtension(String title, String extension) {
|
|
||||||
Pattern jpegPattern = Pattern.compile("\\.jpeg$", Pattern.CASE_INSENSITIVE);
|
|
||||||
|
|
||||||
// People are used to ".jpg" more than ".jpeg" which the system gives us.
|
|
||||||
if (extension != null && extension.toLowerCase(Locale.ENGLISH).equals("jpeg")) {
|
|
||||||
extension = "jpg";
|
|
||||||
}
|
|
||||||
title = jpegPattern.matcher(title).replaceFirst(".jpg");
|
|
||||||
if (extension != null && !title.toLowerCase(Locale.getDefault())
|
|
||||||
.endsWith("." + extension.toLowerCase(Locale.ENGLISH))) {
|
|
||||||
title += "." + extension;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If extension is still null, make it jpg. (Hotfix for https://github.com/commons-app/apps-android-commons/issues/228)
|
|
||||||
// If title has an extension in it, if won't be true
|
|
||||||
if (extension == null && title.lastIndexOf(".")<=0) {
|
|
||||||
extension = "jpg";
|
|
||||||
title += "." + extension;
|
|
||||||
}
|
|
||||||
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
38
app/src/main/java/fr/free/nrw/commons/utils/FixExtension.kt
Normal file
38
app/src/main/java/fr/free/nrw/commons/utils/FixExtension.kt
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
package fr.free.nrw.commons.utils
|
||||||
|
|
||||||
|
import java.util.Locale
|
||||||
|
import java.util.regex.Pattern
|
||||||
|
|
||||||
|
private val jpegPattern = Pattern.compile("\\.jpeg$", Pattern.CASE_INSENSITIVE)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds extension to filename. Converts to .jpg if system provides .jpeg, adds .jpg if no extension detected
|
||||||
|
* @param theTitle File name
|
||||||
|
* @param ext Correct extension
|
||||||
|
* @return File with correct extension
|
||||||
|
*/
|
||||||
|
fun fixExtension(theTitle: String, ext: String?): String {
|
||||||
|
var result = theTitle
|
||||||
|
var extension = ext
|
||||||
|
|
||||||
|
// People are used to ".jpg" more than ".jpeg" which the system gives us.
|
||||||
|
if (extension != null && extension.lowercase() == "jpeg") {
|
||||||
|
extension = "jpg"
|
||||||
|
}
|
||||||
|
|
||||||
|
result = jpegPattern.matcher(result).replaceFirst(".jpg")
|
||||||
|
if (extension != null &&
|
||||||
|
!result.lowercase(Locale.getDefault()).endsWith("." + extension.lowercase())
|
||||||
|
) {
|
||||||
|
result += ".$extension"
|
||||||
|
}
|
||||||
|
|
||||||
|
// If extension is still null, make it jpg. (Hotfix for https://github.com/commons-app/apps-android-commons/issues/228)
|
||||||
|
// If title has an extension in it, if won't be true
|
||||||
|
if (extension == null && result.lastIndexOf(".") <= 0) {
|
||||||
|
extension = "jpg"
|
||||||
|
result += ".$extension"
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package fr.free.nrw.commons.utils
|
package fr.free.nrw.commons.utils
|
||||||
|
|
||||||
import fr.free.nrw.commons.utils.FilenameUtils.fixExtension
|
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue