diff options
| -rw-r--r-- | core/java/android/text/method/DateTimeKeyListener.java | 11 | ||||
| -rw-r--r-- | core/java/android/text/method/TimeKeyListener.java | 11 |
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; |