Merge pull request #681 from SamWhited/searchlocalefix

Daniel Gultsch created

Use `Locale.US' for string comparisons in search

Change summary

src/main/java/eu/siacs/conversations/entities/Bookmark.java | 10 ++++--
src/main/java/eu/siacs/conversations/entities/Contact.java  | 10 ++++--
2 files changed, 14 insertions(+), 6 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Bookmark.java 🔗

@@ -2,6 +2,7 @@ package eu.siacs.conversations.entities;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 
 import eu.siacs.conversations.utils.UIHelper;
 import eu.siacs.conversations.xml.Element;
@@ -126,13 +127,16 @@ public class Bookmark extends Element implements ListItem {
 		if (needle == null) {
 			return true;
 		}
-		needle = needle.toLowerCase();
-		return getJid().toString().contains(needle) || getDisplayName().toLowerCase().contains(needle) || matchInTag(needle);
+		needle = needle.toLowerCase(Locale.US);
+		return getJid().toString().contains(needle) ||
+			getDisplayName().toLowerCase(Locale.US).contains(needle) ||
+			matchInTag(needle);
 	}
 
 	private boolean matchInTag(String needle) {
+		needle = needle.toLowerCase(Locale.US);
 		for (Tag tag : getTags()) {
-			if (tag.getName().toLowerCase().contains(needle)) {
+			if (tag.getName().toLowerCase(Locale.US).contains(needle)) {
 				return true;
 			}
 		}

src/main/java/eu/siacs/conversations/entities/Contact.java 🔗

@@ -9,6 +9,7 @@ import org.json.JSONObject;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 
 import eu.siacs.conversations.utils.UIHelper;
 import eu.siacs.conversations.xml.Element;
@@ -148,7 +149,7 @@ public class Contact implements ListItem {
 		if (needle == null || needle.isEmpty()) {
 			return true;
 		}
-		needle = needle.toLowerCase().trim();
+		needle = needle.toLowerCase(Locale.US).trim();
 		String[] parts = needle.split("\\s+");
 		if (parts.length > 1) {
 			for(int i = 0; i < parts.length; ++i) {
@@ -158,13 +159,16 @@ public class Contact implements ListItem {
 			}
 			return true;
 		} else {
-			return jid.toString().contains(needle) || getDisplayName().toLowerCase().contains(needle) || matchInTag(needle);
+			return jid.toString().contains(needle) ||
+				getDisplayName().toLowerCase(Locale.US).contains(needle) ||
+				matchInTag(needle);
 		}
 	}
 
 	private boolean matchInTag(String needle) {
+		needle = needle.toLowerCase(Locale.US);
 		for (Tag tag : getTags()) {
-			if (tag.getName().toLowerCase().contains(needle)) {
+			if (tag.getName().toLowerCase(Locale.US).contains(needle)) {
 				return true;
 			}
 		}