[android] - replace platform default implementation using nunicode for uppercasing an lowercasing with an Android specific String.java equivalent

This commit is contained in:
tobrun
2018-07-27 14:00:55 +02:00
committed by Tobrun
parent 2fccdecfb1
commit 6e171a62a9
11 changed files with 148 additions and 7 deletions

View File

@@ -0,0 +1,27 @@
package com.mapbox.mapboxsdk.utils;
import android.support.annotation.Keep;
import android.support.annotation.NonNull;
import java.text.Normalizer;
/**
* String utility class used by core from jni.
*/
@Keep
class StringUtils {
/**
* Normalises String input and strip diacritics from it.
*
* @return normalised String with stripped diacritics.
*/
@Keep
@NonNull
static String unaccent(@NonNull String value) {
return Normalizer.normalize(value, Normalizer.Form.NFD)
.replaceAll("(\\p{InCombiningDiacriticalMarks}"
+ "|\\p{InCombiningDiacriticalMarksForSymbols}"
+ "|\\p{InCombiningDiacriticalMarksSupplement})+", "");
}
}