diff options
author | Fabrice Di Meglio <fdimeglio@google.com> | 2011-08-24 18:26:14 -0700 |
---|---|---|
committer | Fabrice Di Meglio <fdimeglio@google.com> | 2011-08-25 18:43:37 -0700 |
commit | 7810b5f8cffb3c2c98fd0df579f4da5a9ac6cc73 (patch) | |
tree | 044c603b00cf5c90ee2f85d8f5884e58976d40f1 /core/java/android/util | |
parent | a646145c335ba821f01d9e4f8be2583eb9fd7266 (diff) | |
download | frameworks_base-7810b5f8cffb3c2c98fd0df579f4da5a9ac6cc73.zip frameworks_base-7810b5f8cffb3c2c98fd0df579f4da5a9ac6cc73.tar.gz frameworks_base-7810b5f8cffb3c2c98fd0df579f4da5a9ac6cc73.tar.bz2 |
Fix bug #5199577 TextView with android:password="true" is showing the "dots" on the left even if the password chars are RTL
- force TextView to LOCALE text heuristic when in "password" mode
- remove TEXT_LAYOUT_DIRECTION_UNKNOWN_DO_NOT_USE
- LocaleUtils.getLayoutDirectionFromLocale() returns "LTR" is locale is NULL or ROOT
Change-Id: I182c46aaf2d73c8b18967fffa230bfabec91ed06
Diffstat (limited to 'core/java/android/util')
-rw-r--r-- | core/java/android/util/LocaleUtil.java | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/core/java/android/util/LocaleUtil.java b/core/java/android/util/LocaleUtil.java index 74a930f..763af73 100644 --- a/core/java/android/util/LocaleUtil.java +++ b/core/java/android/util/LocaleUtil.java @@ -32,11 +32,6 @@ public class LocaleUtil { /** * @hide Do not use. Implementation not finished. */ - public static final int TEXT_LAYOUT_DIRECTION_UNDEFINED_DO_NOT_USE = -1; - - /** - * @hide Do not use. Implementation not finished. - */ public static final int TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE = 0; /** @@ -54,7 +49,6 @@ public class LocaleUtil { * * @param locale the Locale for which we want the layout direction. Can be null. * @return the layout direction. This may be one of: - * {@link #TEXT_LAYOUT_DIRECTION_UNDEFINED_DO_NOT_USE} or * {@link #TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE} or * {@link #TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE}. * @@ -63,17 +57,16 @@ public class LocaleUtil { * @hide */ public static int getLayoutDirectionFromLocale(Locale locale) { - if (locale == null || locale.equals(Locale.ROOT)) { - return TEXT_LAYOUT_DIRECTION_UNDEFINED_DO_NOT_USE; - } - - final String scriptSubtag = ICU.getScript(ICU.addLikelySubtags(locale.toString())); - if (scriptSubtag == null) return getLayoutDirectionFromFirstChar(locale); + if (locale != null && !locale.equals(Locale.ROOT)) { + 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)) { - return TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE; + if (scriptSubtag.equalsIgnoreCase(ARAB_SCRIPT_SUBTAG) || + scriptSubtag.equalsIgnoreCase(HEBR_SCRIPT_SUBTAG)) { + return TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE; + } } + return TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE; } @@ -84,7 +77,6 @@ public class LocaleUtil { * * @param locale * @return the layout direction. This may be one of: - * {@link #TEXT_LAYOUT_DIRECTION_UNDEFINED_DO_NOT_USE} or * {@link #TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE} or * {@link #TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE}. * @@ -94,13 +86,13 @@ public class LocaleUtil { */ private static int getLayoutDirectionFromFirstChar(Locale locale) { switch(Character.getDirectionality(locale.getDisplayName(locale).charAt(0))) { - case Character.DIRECTIONALITY_LEFT_TO_RIGHT: - return TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE; case Character.DIRECTIONALITY_RIGHT_TO_LEFT: case Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC: return TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE; + + case Character.DIRECTIONALITY_LEFT_TO_RIGHT: default: - return TEXT_LAYOUT_DIRECTION_UNDEFINED_DO_NOT_USE; + return TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE; } } } |