diff --git a/app/src/main/java/fr/free/nrw/commons/LicenseList.java b/app/src/main/java/fr/free/nrw/commons/LicenseList.java index 9c791109e..e94ce655d 100644 --- a/app/src/main/java/fr/free/nrw/commons/LicenseList.java +++ b/app/src/main/java/fr/free/nrw/commons/LicenseList.java @@ -7,6 +7,7 @@ import org.xmlpull.v1.XmlPullParser; import java.util.Collection; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.Set; @@ -54,7 +55,7 @@ public class LicenseList { public String nameIdForTemplate(String template) { // hack :D (converts dashes and periods to underscores) // cc-by-sa-3.0 -> cc_by_sa_3_0 - return "license_name_" + template.toLowerCase().replace("-", "_").replace(".", "_"); + return "license_name_" + template.toLowerCase(Locale.US).replace("-", "_").replace(".", "_"); } private int stringIdByName(String stringId) { diff --git a/app/src/main/java/fr/free/nrw/commons/Utils.java b/app/src/main/java/fr/free/nrw/commons/Utils.java index f07d5c8bd..bf124dbd7 100644 --- a/app/src/main/java/fr/free/nrw/commons/Utils.java +++ b/app/src/main/java/fr/free/nrw/commons/Utils.java @@ -27,6 +27,7 @@ import java.security.NoSuchAlgorithmException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Locale; import java.util.TimeZone; import java.util.concurrent.Executor; import java.util.regex.Pattern; @@ -201,7 +202,7 @@ public class Utils { } public static String capitalize(String string) { - return string.substring(0,1).toUpperCase() + string.substring(1); + return string.substring(0,1).toUpperCase(Locale.getDefault()) + string.substring(1); } public static String licenseTemplateFor(String license) { @@ -303,11 +304,11 @@ public class Utils { 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().equals("jpeg")) { + if (extension != null && extension.toLowerCase(Locale.US).equals("jpeg")) { extension = "jpg"; } title = jpegPattern.matcher(title).replaceFirst(".jpg"); - if (extension != null && !title.toLowerCase().endsWith("." + extension.toLowerCase())) { + if (extension != null && !title.toLowerCase(Locale.US).endsWith("." + extension.toLowerCase(Locale.US))) { title += "." + extension; } return title; diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java index 3dbe7377d..3e8b137f6 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java @@ -26,6 +26,7 @@ import android.widget.TextView; import android.widget.Toast; import java.io.IOException; +import java.util.Locale; import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.EventLog; @@ -220,7 +221,7 @@ public class LoginActivity extends AccountAuthenticatorActivity { private void performLogin() { String username = usernameEdit.getText().toString(); // Because Mediawiki is upercase-first-char-then-case-sensitive :) - String canonicalUsername = username.substring(0,1).toUpperCase() + username.substring(1); + String canonicalUsername = username.substring(0,1).toUpperCase(Locale.getDefault()) + username.substring(1); String password = passwordEdit.getText().toString();