Skip to content

Commit e090a8f

Browse files
committed
use java.util.Locale.ROOT
use Locale.ROOT in normalizeTextToLowercase() for consistent case folding The search index and matching must be independent of the user's UI language. Using BaseSettings.REVANCED_LANGUAGE.get().getLocale() can break case-insensitive matching in certain locales (e.g., Turkish 'tr_TR' where 'İ'.toLowerCase() → 'i' without dot, while 'i'.toUpperCase() → 'İ' — causing mismatches). Locale.ROOT provides standardized, locale-neutral case conversion: - 'İ' → 'i' (correct) - 'ß' → 'ss' - Consistent behavior across all languages This ensures reliable search for Korean, Arabic, Vietnamese, and Latin scripts regardless of the selected ReVanced language. Fixes incorrect search behavior when UI language is Turkish, German, etc.
1 parent d2d7a30 commit e090a8f

File tree

1 file changed

+2
-3
lines changed
  • extensions/shared/library/src/main/java/app/revanced/extension/shared

1 file changed

+2
-3
lines changed

extensions/shared/library/src/main/java/app/revanced/extension/shared/Utils.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -994,9 +994,8 @@ public static String removePunctuationToLowercase(@Nullable CharSequence origina
994994
*/
995995
public static String normalizeTextToLowercase(CharSequence original) {
996996
if (original == null) return "";
997-
String normalized = Normalizer.normalize(original.toString(), Normalizer.Form.NFD);
998-
return normalized.replaceAll("\\p{M}", "")
999-
.toLowerCase(BaseSettings.REVANCED_LANGUAGE.get().getLocale());
997+
return Normalizer.normalize(original.toString(), Normalizer.Form.NFD)
998+
.replaceAll("\\p{M}", "").toLowerCase(Locale.ROOT);
1000999
}
10011000

10021001
/**

0 commit comments

Comments
 (0)