Update getLayoutDirectionFromLocale() for using ICU
- now relying on ICU.getScript() and ICU.addLikelySubtags() for getting the locale script
- clean unit tests imports
Change-Id: Icdc45fa78490d1e2dde0e83bca0feea8aa205cdf
diff --git a/core/java/android/util/LocaleUtil.java b/core/java/android/util/LocaleUtil.java
index e767a85..74a930f 100644
--- a/core/java/android/util/LocaleUtil.java
+++ b/core/java/android/util/LocaleUtil.java
@@ -67,17 +67,8 @@
return TEXT_LAYOUT_DIRECTION_UNDEFINED_DO_NOT_USE;
}
- final String localeWithSubtags = ICU.addLikelySubtags(locale.toString());
- if (localeWithSubtags == null) return getLayoutDirectionFromFirstChar(locale);
-
- // Need to check if we can extract the script subtag. For example, "Latn" in "en_Latn_US"
- if (localeWithSubtags.length() <= 7
- || localeWithSubtags.charAt(2) != UNDERSCORE_CHAR
- || localeWithSubtags.charAt(7) != UNDERSCORE_CHAR) {
- return getLayoutDirectionFromFirstChar(locale);
- }
- // Extract the script subtag
- final String scriptSubtag = localeWithSubtags.substring(3, 7);
+ final String scriptSubtag = ICU.getScript(ICU.addLikelySubtags(locale.toString()));
+ if (scriptSubtag == null) return getLayoutDirectionFromFirstChar(locale);
if (scriptSubtag.equalsIgnoreCase(ARAB_SCRIPT_SUBTAG) ||
scriptSubtag.equalsIgnoreCase(HEBR_SCRIPT_SUBTAG)) {
diff --git a/core/tests/coretests/src/android/util/LocaleUtilTest.java b/core/tests/coretests/src/android/util/LocaleUtilTest.java
index 5aa99c1..203781f 100644
--- a/core/tests/coretests/src/android/util/LocaleUtilTest.java
+++ b/core/tests/coretests/src/android/util/LocaleUtilTest.java
@@ -18,14 +18,12 @@
import java.util.Locale;
-import android.content.res.Configuration;
import android.test.AndroidTestCase;
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetNew;
-import static android.util.LocaleUtil.TEXT_LAYOUT_DIRECTION_UNDEFINED_DO_NOT_USE;
import static android.util.LocaleUtil.TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE;
-import static android.util.LocaleUtil.TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE;
+import static android.util.LocaleUtil.TEXT_LAYOUT_DIRECTION_UNDEFINED_DO_NOT_USE;
public class LocaleUtilTest extends AndroidTestCase {