diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java index 7ef8dd049..9ccd357c9 100644 --- a/src/com/fsck/k9/activity/MessageCompose.java +++ b/src/com/fsck/k9/activity/MessageCompose.java @@ -1931,7 +1931,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc if (message.getSubject() != null) { final String subject = prefix.matcher(message.getSubject()).replaceFirst(""); - if (!subject.toLowerCase().startsWith("re:")) { + if (!subject.toLowerCase(Locale.US).startsWith("re:")) { mSubjectView.setText("Re: " + subject); } else { mSubjectView.setText(subject); @@ -2028,10 +2028,11 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc } } } else if (ACTION_FORWARD.equals(action)) { - if (message.getSubject() != null && !message.getSubject().toLowerCase().startsWith("fwd:")) { - mSubjectView.setText("Fwd: " + message.getSubject()); + String subject = message.getSubject(); + if (subject != null && !subject.toLowerCase(Locale.US).startsWith("fwd:")) { + mSubjectView.setText("Fwd: " + subject); } else { - mSubjectView.setText(message.getSubject()); + mSubjectView.setText(subject); } // Quote the message and setup the UI. diff --git a/src/com/fsck/k9/helper/DomainNameChecker.java b/src/com/fsck/k9/helper/DomainNameChecker.java index b46f16118..3ef74f9e1 100644 --- a/src/com/fsck/k9/helper/DomainNameChecker.java +++ b/src/com/fsck/k9/helper/DomainNameChecker.java @@ -26,6 +26,7 @@ import java.security.cert.CertificateParsingException; import java.util.Collection; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; @@ -60,7 +61,7 @@ public class DomainNameChecker { return false; } - thisDomain = thisDomain.toLowerCase(); + thisDomain = thisDomain.toLowerCase(Locale.US); if (!isIpAddress(thisDomain)) { return matchDns(certificate, thisDomain); } else { @@ -223,7 +224,7 @@ public class DomainNameChecker { return false; } - thatDomain = thatDomain.toLowerCase(); + thatDomain = thatDomain.toLowerCase(Locale.US); // (a) domain name strings are equal, ignoring case: X matches X boolean rval = thisDomain.equals(thatDomain); diff --git a/src/com/fsck/k9/helper/HtmlConverter.java b/src/com/fsck/k9/helper/HtmlConverter.java index 80da74c04..9cf3c38df 100644 --- a/src/com/fsck/k9/helper/HtmlConverter.java +++ b/src/com/fsck/k9/helper/HtmlConverter.java @@ -9,6 +9,7 @@ import java.io.IOException; import java.io.StringReader; import java.util.Collections; import java.util.HashSet; +import java.util.Locale; import java.util.Set; import java.util.regex.Matcher; @@ -64,7 +65,7 @@ public class HtmlConverter { @Override public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) { - tag = tag.toLowerCase(); + tag = tag.toLowerCase(Locale.US); if (tag.equals("hr") && opening) { // In the case of an
, replace it with a bunch of underscores. This is roughly // the behaviour of Outlook in Rich Text mode. diff --git a/src/com/fsck/k9/mail/internet/MimeMessage.java b/src/com/fsck/k9/mail/internet/MimeMessage.java index 9a89624e5..d06cf52c8 100644 --- a/src/com/fsck/k9/mail/internet/MimeMessage.java +++ b/src/com/fsck/k9/mail/internet/MimeMessage.java @@ -131,7 +131,7 @@ public class MimeMessage extends Message { @Override public String getContentType() throws MessagingException { String contentType = getFirstHeader(MimeHeader.HEADER_CONTENT_TYPE); - return (contentType == null) ? "text/plain" : contentType.toLowerCase(); + return (contentType == null) ? "text/plain" : contentType.toLowerCase(Locale.US); } public String getDisposition() throws MessagingException { diff --git a/src/com/fsck/k9/mail/internet/MimeUtility.java b/src/com/fsck/k9/mail/internet/MimeUtility.java index 1ab056482..472ac3331 100644 --- a/src/com/fsck/k9/mail/internet/MimeUtility.java +++ b/src/com/fsck/k9/mail/internet/MimeUtility.java @@ -12,6 +12,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; +import java.util.Locale; import java.util.regex.Pattern; import java.nio.charset.Charset; import java.nio.charset.IllegalCharsetNameException; @@ -940,7 +941,7 @@ public class MimeUtility { return parts[0]; } for (String part : parts) { - if (part.trim().toLowerCase().startsWith(name.toLowerCase())) { + if (part.trim().toLowerCase(Locale.US).startsWith(name.toLowerCase(Locale.US))) { String parameter = part.split("=", 2)[1].trim(); if (parameter.startsWith("\"") && parameter.endsWith("\"")) { return parameter.substring(1, parameter.length() - 1); @@ -1184,7 +1185,7 @@ public class MimeUtility { String extension = null; if (filename != null && filename.lastIndexOf('.') != -1) { - extension = filename.substring(filename.lastIndexOf('.') + 1).toLowerCase(); + extension = filename.substring(filename.lastIndexOf('.') + 1).toLowerCase(Locale.US); returnedType = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); } // If the MIME type set by the user's mailer is application/octet-stream, try to figure @@ -1263,7 +1264,7 @@ public class MimeUtility { if (charset == null || "0".equals(charset)) charset = "US-ASCII"; // No encoding, so use us-ascii, which is the standard. - charset = charset.toLowerCase(); + charset = charset.toLowerCase(Locale.US); if (charset.equals("cp932")) charset = "shift_jis"; else if (charset.equals("koi8-u")) diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java index 3b8cdbdba..557acdff9 100644 --- a/src/com/fsck/k9/mail/store/ImapStore.java +++ b/src/com/fsck/k9/mail/store/ImapStore.java @@ -1461,7 +1461,7 @@ public class ImapStore extends Store { * what type it is and bail out. */ String subType = bs.getString(i); - mp.setSubType(subType.toLowerCase()); + mp.setSubType(subType.toLowerCase(Locale.US)); break; } } @@ -1490,7 +1490,7 @@ public class ImapStore extends Store { String type = bs.getString(0); String subType = bs.getString(1); - String mimeType = (type + "/" + subType).toLowerCase(); + String mimeType = (type + "/" + subType).toLowerCase(Locale.US); ImapList bodyParams = null; if (bs.get(2) instanceof ImapList) { @@ -1546,7 +1546,7 @@ public class ImapStore extends Store { if (bodyDisposition != null && bodyDisposition.size() > 0) { if (!"NIL".equalsIgnoreCase(bodyDisposition.getString(0))) { - contentDisposition = bodyDisposition.getString(0).toLowerCase(); + contentDisposition = bodyDisposition.getString(0).toLowerCase(Locale.US); } if ((bodyDisposition.size() > 1) @@ -1558,7 +1558,7 @@ public class ImapStore extends Store { */ for (int i = 0, count = bodyDispositionParams.size(); i < count; i += 2) { contentDisposition += String.format(";\n %s=\"%s\"", - bodyDispositionParams.getString(i).toLowerCase(), + bodyDispositionParams.getString(i).toLowerCase(Locale.US), bodyDispositionParams.getString(i + 1)); } } @@ -1841,7 +1841,7 @@ public class ImapStore extends Store { // { // Log.v(K9.LOG_TAG, "Saving capability '" + capability + "' for " + getLogId()); // } - capabilities.add(((String)capability).toUpperCase()); + capabilities.add(((String)capability).toUpperCase(Locale.US)); } } @@ -2151,7 +2151,7 @@ public class ImapStore extends Store { } protected boolean hasCapability(String capability) { - return capabilities.contains(capability.toUpperCase()); + return capabilities.contains(capability.toUpperCase(Locale.US)); } public boolean isOpen() { diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java index 3f7279f8a..99aa4251d 100644 --- a/src/com/fsck/k9/mail/store/LocalStore.java +++ b/src/com/fsck/k9/mail/store/LocalStore.java @@ -1601,10 +1601,10 @@ public class LocalStore extends Store implements Serializable { String htmlContent = cursor.getString(0); String textContent = cursor.getString(1); String mimeType = cursor.getString(2); - if (mimeType != null && mimeType.toLowerCase().startsWith("multipart/")) { + if (mimeType != null && mimeType.toLowerCase(Locale.US).startsWith("multipart/")) { // If this is a multipart message, preserve both text // and html parts, as well as the subtype. - mp.setSubType(mimeType.toLowerCase().replaceFirst("^multipart/", "")); + mp.setSubType(mimeType.toLowerCase(Locale.US).replaceFirst("^multipart/", "")); if (textContent != null) { LocalTextBody body = new LocalTextBody(textContent, htmlContent); MimeBodyPart bp = new MimeBodyPart(body, "text/plain"); @@ -2144,7 +2144,7 @@ public class LocalStore extends Store implements Serializable { cv.put("sender_list", Address.pack(message.getFrom())); cv.put("date", message.getSentDate() == null ? System.currentTimeMillis() : message.getSentDate().getTime()); - cv.put("flags", Utility.combine(message.getFlags(), ',').toUpperCase()); + cv.put("flags", Utility.combine(message.getFlags(), ',').toUpperCase(Locale.US)); cv.put("deleted", message.isSet(Flag.DELETED) ? 1 : 0); cv.put("folder_id", mFolderId); cv.put("to_list", Address.pack(message.getRecipients(RecipientType.TO))); @@ -2263,7 +2263,7 @@ public class LocalStore extends Store implements Serializable { message.getSentDate() == null ? System .currentTimeMillis() : message.getSentDate() .getTime(), - Utility.combine(message.getFlags(), ',').toUpperCase(), + Utility.combine(message.getFlags(), ',').toUpperCase(Locale.US), mFolderId, Address.pack(message .getRecipients(RecipientType.TO)), @@ -2337,7 +2337,7 @@ public class LocalStore extends Store implements Serializable { db.execSQL("UPDATE messages " + "SET flags = ? " + " WHERE id = ?", new Object[] - { Utility.combine(appendedFlags.toArray(), ',').toUpperCase(), id }); + { Utility.combine(appendedFlags.toArray(), ',').toUpperCase(Locale.US), id }); } return null; } @@ -3189,7 +3189,7 @@ public class LocalStore extends Store implements Serializable { * Set the flags on the message. */ db.execSQL("UPDATE messages " + "SET flags = ? " + " WHERE id = ?", new Object[] - { Utility.combine(getFlags(), ',').toUpperCase(), mId }); + { Utility.combine(getFlags(), ',').toUpperCase(Locale.US), mId }); return null; } }); diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java index 0263124d1..0f17657f1 100644 --- a/src/com/fsck/k9/mail/store/WebDavStore.java +++ b/src/com/fsck/k9/mail/store/WebDavStore.java @@ -1590,7 +1590,7 @@ public class WebDavStore extends Store { listener.messageStarted(wdMessage.getUid(), i, count); } - try { + try { wdMessage.setFlagInternal(Flag.SEEN, uidToReadStatus.get(wdMessage.getUid())); } catch (NullPointerException e) { Log.v(K9.LOG_TAG,"Under some weird circumstances, setting the read status when syncing from webdav threw an NPE. Skipping."); @@ -1852,7 +1852,7 @@ public class WebDavStore extends Store { public void setUrl(String url) { // TODO: This is a not as ugly hack (ie, it will actually work) // XXX: prevent URLs from getting to us that are broken - if (!(url.toLowerCase().contains("http"))) { + if (!(url.toLowerCase(Locale.US).contains("http"))) { if (!(url.startsWith("/"))) { url = "/" + url; }