diff options
| author | Elliott Hughes <enh@google.com> | 2013-04-30 18:40:01 +0000 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-04-30 18:40:01 +0000 |
| commit | afe56810517a4ddfad125029ca04fd4cc5af2ef5 (patch) | |
| tree | 68ed1c1197fb08cf48634e704c9e6194ad1a614f /core/java/android/widget | |
| parent | 0bb4c701bab0f69172417b7a511acb6bdfa052db (diff) | |
| parent | 659f145278ffd85f934a435dbec47ead685caf59 (diff) | |
Merge "Fix DatePicker's spinner order in various locales."
Diffstat (limited to 'core/java/android/widget')
| -rw-r--r-- | core/java/android/widget/DatePicker.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/core/java/android/widget/DatePicker.java b/core/java/android/widget/DatePicker.java index 07d3a7a75539..d4fd98f0cfc5 100644 --- a/core/java/android/widget/DatePicker.java +++ b/core/java/android/widget/DatePicker.java @@ -45,6 +45,8 @@ import java.util.Calendar; import java.util.Locale; import java.util.TimeZone; +import libcore.icu.ICU; + /** * This class is a widget for selecting a date. The date can be selected by a * year, month, and day spinners or a {@link CalendarView}. The set of spinners @@ -508,24 +510,27 @@ public class DatePicker extends FrameLayout { */ private void reorderSpinners() { mSpinners.removeAllViews(); - char[] order = DateFormat.getDateFormatOrder(getContext()); + // We use numeric spinners for year and day, but textual months. Ask icu4c what + // order the user's locale uses for that combination. http://b/7207103. + String pattern = ICU.getBestDateTimePattern("yyyyMMMdd", Locale.getDefault().toString()); + char[] order = ICU.getDateFormatOrder(pattern); final int spinnerCount = order.length; for (int i = 0; i < spinnerCount; i++) { switch (order[i]) { - case DateFormat.DATE: + case 'd': mSpinners.addView(mDaySpinner); setImeOptions(mDaySpinner, spinnerCount, i); break; - case DateFormat.MONTH: + case 'M': mSpinners.addView(mMonthSpinner); setImeOptions(mMonthSpinner, spinnerCount, i); break; - case DateFormat.YEAR: + case 'y': mSpinners.addView(mYearSpinner); setImeOptions(mYearSpinner, spinnerCount, i); break; default: - throw new IllegalArgumentException(); + throw new IllegalArgumentException(Arrays.toString(order)); } } } |
