summaryrefslogtreecommitdiffstats
path: root/core/java/android/util
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2011-08-24 18:26:14 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2011-08-25 18:43:37 -0700
commit7810b5f8cffb3c2c98fd0df579f4da5a9ac6cc73 (patch)
tree044c603b00cf5c90ee2f85d8f5884e58976d40f1 /core/java/android/util
parenta646145c335ba821f01d9e4f8be2583eb9fd7266 (diff)
downloadframeworks_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.java30
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;
}
}
}