kopia lustrzana https://github.com/ryukoposting/Signal-Android
Add unicode wildcards for equivalent latin characters in contact search.
rodzic
5a91c7e84a
commit
32d79ead15
|
@ -2600,12 +2600,72 @@ public class RecipientDatabase extends Database {
|
|||
pattern.append("[");
|
||||
pattern.append(point.toLowerCase());
|
||||
pattern.append(point.toUpperCase());
|
||||
pattern.append(getAccentuatedCharRegex(point.toLowerCase()));
|
||||
pattern.append("]");
|
||||
}
|
||||
|
||||
return "*" + pattern.toString() + "*";
|
||||
}
|
||||
|
||||
private static @NonNull String getAccentuatedCharRegex(@NonNull String query) {
|
||||
switch (query) {
|
||||
case "a" :
|
||||
return "À-Åà-åĀ-ąǍǎǞ-ǡǺ-ǻȀ-ȃȦȧȺɐ-ɒḀḁẚẠ-ặ";
|
||||
case "b" :
|
||||
return "ßƀ-ƅɃɓḂ-ḇ";
|
||||
case "c" :
|
||||
return "çÇĆ-čƆ-ƈȻȼɔḈḉ";
|
||||
case "d" :
|
||||
return "ÐðĎ-đƉ-ƍȡɖɗḊ-ḓ";
|
||||
case "e" :
|
||||
return "È-Ëè-ëĒ-ěƎ-ƐǝȄ-ȇȨȩɆɇɘ-ɞḔ-ḝẸ-ệ";
|
||||
case "f" :
|
||||
return "ƑƒḞḟ";
|
||||
case "g" :
|
||||
return "Ĝ-ģƓǤ-ǧǴǵḠḡ";
|
||||
case "h" :
|
||||
return "Ĥ-ħƕǶȞȟḢ-ḫẖ";
|
||||
case "i" :
|
||||
return "Ì-Ïì-ïĨ-ıƖƗǏǐȈ-ȋɨɪḬ-ḯỈ-ị";
|
||||
case "j" :
|
||||
return "ĴĵǰȷɈɉɟ";
|
||||
case "k" :
|
||||
return "Ķ-ĸƘƙǨǩḰ-ḵ";
|
||||
case "l" :
|
||||
return "Ĺ-łƚȴȽɫ-ɭḶ-ḽ";
|
||||
case "m" :
|
||||
return "Ɯɯ-ɱḾ-ṃ";
|
||||
case "n" :
|
||||
return "ÑñŃ-ŋƝƞǸǹȠȵɲ-ɴṄ-ṋ";
|
||||
case "o" :
|
||||
return "Ò-ÖØò-öøŌ-őƟ-ơǑǒǪ-ǭǾǿȌ-ȏȪ-ȱṌ-ṓỌ-ợ";
|
||||
case "p" :
|
||||
return "ƤƥṔ-ṗ";
|
||||
case "q" :
|
||||
return "";
|
||||
case "r" :
|
||||
return "Ŕ-řƦȐ-ȓɌɍṘ-ṟ";
|
||||
case "s" :
|
||||
return "Ś-šƧƨȘșȿṠ-ṩ";
|
||||
case "t" :
|
||||
return "Ţ-ŧƫ-ƮȚțȾṪ-ṱẗ";
|
||||
case "u" :
|
||||
return "Ù-Üù-üŨ-ųƯ-ƱǓ-ǜȔ-ȗɄṲ-ṻỤ-ự";
|
||||
case "v" :
|
||||
return "ƲɅṼ-ṿ";
|
||||
case "w" :
|
||||
return "ŴŵẀ-ẉẘ";
|
||||
case "x" :
|
||||
return "Ẋ-ẍ";
|
||||
case "y" :
|
||||
return "ÝýÿŶ-ŸƔƳƴȲȳɎɏẎẏỲ-ỹỾỿẙ";
|
||||
case "z" :
|
||||
return "Ź-žƵƶɀẐ-ẕ";
|
||||
default :
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public @NonNull List<Recipient> getRecipientsForMultiDeviceSync() {
|
||||
String subquery = "SELECT " + ThreadDatabase.TABLE_NAME + "." + ThreadDatabase.RECIPIENT_ID + " FROM " + ThreadDatabase.TABLE_NAME;
|
||||
String selection = REGISTERED + " = ? AND " +
|
||||
|
|
Ładowanie…
Reference in New Issue