summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;