summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2017-04-07 19:21:51 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-04-07 19:21:56 +0000
commit91d289903c607972655a98a5a8ccd27d97f1153e (patch)
tree61d2df554e9fb5900a6d133d25578e38e557bfa3
parent2f2e3f8ad5a93bf4cfa037e4efbd8e9648092cd9 (diff)
parent9fe1c121272a469f69fb36766dc762e85a2052e1 (diff)
Merge "Special-case English for DateTime and Time key listeners" into oc-dev
-rw-r--r--core/java/android/text/method/DateTimeKeyListener.java11
-rw-r--r--core/java/android/text/method/TimeKeyListener.java11
2 files changed, 18 insertions, 4 deletions
diff --git a/core/java/android/text/method/DateTimeKeyListener.java b/core/java/android/text/method/DateTimeKeyListener.java
index 551db5560128..1593db5de641 100644
--- a/core/java/android/text/method/DateTimeKeyListener.java
+++ b/core/java/android/text/method/DateTimeKeyListener.java
@@ -68,7 +68,7 @@ public class DateTimeKeyListener extends NumberKeyListener
final LinkedHashSet<Character> chars = new LinkedHashSet<>();
// First add the digits. Then, add all the character in AM and PM markers. Finally, add all
// the non-pattern characters seen in the patterns for "yMdhms" and "yMdHms".
- boolean success = NumberKeyListener.addDigits(chars, locale)
+ final boolean success = NumberKeyListener.addDigits(chars, locale)
&& NumberKeyListener.addAmPmChars(chars, locale)
&& NumberKeyListener.addFormatCharsFromSkeleton(
chars, locale, SKELETON_12HOUR, SYMBOLS_TO_IGNORE)
@@ -76,7 +76,14 @@ public class DateTimeKeyListener extends NumberKeyListener
chars, locale, SKELETON_24HOUR, SYMBOLS_TO_IGNORE);
if (success) {
mCharacters = NumberKeyListener.collectionToArray(chars);
- mNeedsAdvancedInput = !ArrayUtils.containsAll(CHARACTERS, mCharacters);
+ if (locale != null && "en".equals(locale.getLanguage())) {
+ // For backward compatibility reasons, assume we don't need advanced input for
+ // English locales, although English locales literally also need a comma and perhaps
+ // uppercase letters for AM and PM.
+ mNeedsAdvancedInput = false;
+ } else {
+ mNeedsAdvancedInput = !ArrayUtils.containsAll(CHARACTERS, mCharacters);
+ }
} else {
mCharacters = CHARACTERS;
mNeedsAdvancedInput = false;
diff --git a/core/java/android/text/method/TimeKeyListener.java b/core/java/android/text/method/TimeKeyListener.java
index 5b1db11777dd..f11f40099d9c 100644
--- a/core/java/android/text/method/TimeKeyListener.java
+++ b/core/java/android/text/method/TimeKeyListener.java
@@ -68,7 +68,7 @@ public class TimeKeyListener extends NumberKeyListener
final LinkedHashSet<Character> chars = new LinkedHashSet<>();
// First add the digits. Then, add all the character in AM and PM markers. Finally, add all
// the non-pattern characters seen in the patterns for "hms" and "Hms".
- boolean success = NumberKeyListener.addDigits(chars, locale)
+ final boolean success = NumberKeyListener.addDigits(chars, locale)
&& NumberKeyListener.addAmPmChars(chars, locale)
&& NumberKeyListener.addFormatCharsFromSkeleton(
chars, locale, SKELETON_12HOUR, SYMBOLS_TO_IGNORE)
@@ -76,7 +76,14 @@ public class TimeKeyListener extends NumberKeyListener
chars, locale, SKELETON_24HOUR, SYMBOLS_TO_IGNORE);
if (success) {
mCharacters = NumberKeyListener.collectionToArray(chars);
- mNeedsAdvancedInput = !ArrayUtils.containsAll(CHARACTERS, mCharacters);
+ if (locale != null && "en".equals(locale.getLanguage())) {
+ // For backward compatibility reasons, assume we don't need advanced input for
+ // English locales, although English locales may need uppercase letters for
+ // AM and PM.
+ mNeedsAdvancedInput = false;
+ } else {
+ mNeedsAdvancedInput = !ArrayUtils.containsAll(CHARACTERS, mCharacters);
+ }
} else {
mCharacters = CHARACTERS;
mNeedsAdvancedInput = false;