Loading core/java/android/widget/DatePicker.java +24 −10 Original line number Diff line number Diff line Loading @@ -348,9 +348,13 @@ public class DatePicker extends FrameLayout { } /** * Gets whether the {@link CalendarView} is shown. * Returns whether the {@link CalendarView} is shown. * <p> * <strong>Note:</strong> This method returns {@code false} when the * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set * to {@code calendar}. * * @return True if the calendar view is shown. * @return {@code true} if the calendar view is shown * @see #getCalendarView() */ public boolean getCalendarViewShown() { Loading @@ -358,13 +362,13 @@ public class DatePicker extends FrameLayout { } /** * Gets the {@link CalendarView}. * Returns the {@link CalendarView} used by this picker. * <p> * This method returns {@code null} when the * <strong>Note:</strong> This method returns {@code null} when the * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set * to {@code calendar}. * * @return The calendar view. * @return the calendar view * @see #getCalendarViewShown() */ public CalendarView getCalendarView() { Loading @@ -374,20 +378,25 @@ public class DatePicker extends FrameLayout { /** * Sets whether the {@link CalendarView} is shown. * <p> * Calling this method has no effect when the * <strong>Note:</strong> Calling this method has no effect when the * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set * to {@code calendar}. * * @param shown True if the calendar view is to be shown. * @param shown {@code true} to show the calendar view, {@code false} to * hide it */ public void setCalendarViewShown(boolean shown) { mDelegate.setCalendarViewShown(shown); } /** * Gets whether the spinners are shown. * Returns whether the spinners are shown. * <p> * T<strong>Note:</strong> his method returns {@code false} when the * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set * to {@code calendar}. * * @return True if the spinners are shown. * @return {@code true} if the spinners are shown */ public boolean getSpinnersShown() { return mDelegate.getSpinnersShown(); Loading @@ -395,8 +404,13 @@ public class DatePicker extends FrameLayout { /** * Sets whether the spinners are shown. * <p> * Calling this method has no effect when the * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set * to {@code calendar}. * * @param shown True if the spinners are to be shown. * @param shown {@code true} to show the spinners, {@code false} to hide * them */ public void setSpinnersShown(boolean shown) { mDelegate.setSpinnersShown(shown); Loading core/java/android/widget/DatePickerCalendarDelegate.java +8 −67 Original line number Diff line number Diff line Loading @@ -61,10 +61,6 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { private static final int ANIMATION_DURATION = 300; private static final int MONTH_INDEX = 0; private static final int DAY_INDEX = 1; private static final int YEAR_INDEX = 2; public static final int[] ATTRS_TEXT_COLOR = new int[]{com.android.internal.R.attr.textColor}; public static final int[] ATTRS_DISABLED_ALPHA = new int[]{ Loading Loading @@ -93,10 +89,10 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { private int mCurrentView = UNINITIALIZED; private Calendar mCurrentDate; private Calendar mTempDate; private Calendar mMinDate; private Calendar mMaxDate; private final Calendar mCurrentDate; private final Calendar mTempDate; private final Calendar mMinDate; private final Calendar mMaxDate; private int mFirstDayOfWeek = USE_LOCALE; Loading @@ -105,10 +101,10 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { super(delegator, context); final Locale locale = mCurrentLocale; mMinDate = getCalendarForLocale(mMinDate, locale); mMaxDate = getCalendarForLocale(mMaxDate, locale); mTempDate = getCalendarForLocale(mMaxDate, locale); mCurrentDate = getCalendarForLocale(mCurrentDate, locale); mCurrentDate = Calendar.getInstance(locale); mTempDate = Calendar.getInstance(locale); mMinDate = Calendar.getInstance(locale); mMaxDate = Calendar.getInstance(locale); mMinDate.set(DEFAULT_START_YEAR, Calendar.JANUARY, 1); mMaxDate.set(DEFAULT_END_YEAR, Calendar.DECEMBER, 31); Loading Loading @@ -315,61 +311,6 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { } }; /** * Gets a calendar for locale bootstrapped with the value of a given calendar. * * @param oldCalendar The old calendar. * @param locale The locale. */ private Calendar getCalendarForLocale(Calendar oldCalendar, Locale locale) { if (oldCalendar == null) { return Calendar.getInstance(locale); } else { final long currentTimeMillis = oldCalendar.getTimeInMillis(); Calendar newCalendar = Calendar.getInstance(locale); newCalendar.setTimeInMillis(currentTimeMillis); return newCalendar; } } /** * Compute the array representing the order of Month / Day / Year views in their layout. * Will be used for I18N purpose as the order of them depends on the Locale. */ private int[] getMonthDayYearIndexes(String pattern) { int[] result = new int[3]; final String filteredPattern = pattern.replaceAll("'.*?'", ""); final int dayIndex = filteredPattern.indexOf('d'); final int monthMIndex = filteredPattern.indexOf("M"); final int monthIndex = (monthMIndex != -1) ? monthMIndex : filteredPattern.indexOf("L"); final int yearIndex = filteredPattern.indexOf("y"); if (yearIndex < monthIndex) { result[YEAR_INDEX] = 0; if (monthIndex < dayIndex) { result[MONTH_INDEX] = 1; result[DAY_INDEX] = 2; } else { result[MONTH_INDEX] = 2; result[DAY_INDEX] = 1; } } else { result[YEAR_INDEX] = 2; if (monthIndex < dayIndex) { result[MONTH_INDEX] = 0; result[DAY_INDEX] = 1; } else { result[MONTH_INDEX] = 1; result[DAY_INDEX] = 0; } } return result; } @Override protected void onLocaleChanged(Locale locale) { final TextView headerYear = mHeaderYear; Loading Loading
core/java/android/widget/DatePicker.java +24 −10 Original line number Diff line number Diff line Loading @@ -348,9 +348,13 @@ public class DatePicker extends FrameLayout { } /** * Gets whether the {@link CalendarView} is shown. * Returns whether the {@link CalendarView} is shown. * <p> * <strong>Note:</strong> This method returns {@code false} when the * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set * to {@code calendar}. * * @return True if the calendar view is shown. * @return {@code true} if the calendar view is shown * @see #getCalendarView() */ public boolean getCalendarViewShown() { Loading @@ -358,13 +362,13 @@ public class DatePicker extends FrameLayout { } /** * Gets the {@link CalendarView}. * Returns the {@link CalendarView} used by this picker. * <p> * This method returns {@code null} when the * <strong>Note:</strong> This method returns {@code null} when the * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set * to {@code calendar}. * * @return The calendar view. * @return the calendar view * @see #getCalendarViewShown() */ public CalendarView getCalendarView() { Loading @@ -374,20 +378,25 @@ public class DatePicker extends FrameLayout { /** * Sets whether the {@link CalendarView} is shown. * <p> * Calling this method has no effect when the * <strong>Note:</strong> Calling this method has no effect when the * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set * to {@code calendar}. * * @param shown True if the calendar view is to be shown. * @param shown {@code true} to show the calendar view, {@code false} to * hide it */ public void setCalendarViewShown(boolean shown) { mDelegate.setCalendarViewShown(shown); } /** * Gets whether the spinners are shown. * Returns whether the spinners are shown. * <p> * T<strong>Note:</strong> his method returns {@code false} when the * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set * to {@code calendar}. * * @return True if the spinners are shown. * @return {@code true} if the spinners are shown */ public boolean getSpinnersShown() { return mDelegate.getSpinnersShown(); Loading @@ -395,8 +404,13 @@ public class DatePicker extends FrameLayout { /** * Sets whether the spinners are shown. * <p> * Calling this method has no effect when the * {@link android.R.styleable#DatePicker_datePickerMode} attribute is set * to {@code calendar}. * * @param shown True if the spinners are to be shown. * @param shown {@code true} to show the spinners, {@code false} to hide * them */ public void setSpinnersShown(boolean shown) { mDelegate.setSpinnersShown(shown); Loading
core/java/android/widget/DatePickerCalendarDelegate.java +8 −67 Original line number Diff line number Diff line Loading @@ -61,10 +61,6 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { private static final int ANIMATION_DURATION = 300; private static final int MONTH_INDEX = 0; private static final int DAY_INDEX = 1; private static final int YEAR_INDEX = 2; public static final int[] ATTRS_TEXT_COLOR = new int[]{com.android.internal.R.attr.textColor}; public static final int[] ATTRS_DISABLED_ALPHA = new int[]{ Loading Loading @@ -93,10 +89,10 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { private int mCurrentView = UNINITIALIZED; private Calendar mCurrentDate; private Calendar mTempDate; private Calendar mMinDate; private Calendar mMaxDate; private final Calendar mCurrentDate; private final Calendar mTempDate; private final Calendar mMinDate; private final Calendar mMaxDate; private int mFirstDayOfWeek = USE_LOCALE; Loading @@ -105,10 +101,10 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { super(delegator, context); final Locale locale = mCurrentLocale; mMinDate = getCalendarForLocale(mMinDate, locale); mMaxDate = getCalendarForLocale(mMaxDate, locale); mTempDate = getCalendarForLocale(mMaxDate, locale); mCurrentDate = getCalendarForLocale(mCurrentDate, locale); mCurrentDate = Calendar.getInstance(locale); mTempDate = Calendar.getInstance(locale); mMinDate = Calendar.getInstance(locale); mMaxDate = Calendar.getInstance(locale); mMinDate.set(DEFAULT_START_YEAR, Calendar.JANUARY, 1); mMaxDate.set(DEFAULT_END_YEAR, Calendar.DECEMBER, 31); Loading Loading @@ -315,61 +311,6 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { } }; /** * Gets a calendar for locale bootstrapped with the value of a given calendar. * * @param oldCalendar The old calendar. * @param locale The locale. */ private Calendar getCalendarForLocale(Calendar oldCalendar, Locale locale) { if (oldCalendar == null) { return Calendar.getInstance(locale); } else { final long currentTimeMillis = oldCalendar.getTimeInMillis(); Calendar newCalendar = Calendar.getInstance(locale); newCalendar.setTimeInMillis(currentTimeMillis); return newCalendar; } } /** * Compute the array representing the order of Month / Day / Year views in their layout. * Will be used for I18N purpose as the order of them depends on the Locale. */ private int[] getMonthDayYearIndexes(String pattern) { int[] result = new int[3]; final String filteredPattern = pattern.replaceAll("'.*?'", ""); final int dayIndex = filteredPattern.indexOf('d'); final int monthMIndex = filteredPattern.indexOf("M"); final int monthIndex = (monthMIndex != -1) ? monthMIndex : filteredPattern.indexOf("L"); final int yearIndex = filteredPattern.indexOf("y"); if (yearIndex < monthIndex) { result[YEAR_INDEX] = 0; if (monthIndex < dayIndex) { result[MONTH_INDEX] = 1; result[DAY_INDEX] = 2; } else { result[MONTH_INDEX] = 2; result[DAY_INDEX] = 1; } } else { result[YEAR_INDEX] = 2; if (monthIndex < dayIndex) { result[MONTH_INDEX] = 0; result[DAY_INDEX] = 1; } else { result[MONTH_INDEX] = 1; result[DAY_INDEX] = 0; } } return result; } @Override protected void onLocaleChanged(Locale locale) { final TextView headerYear = mHeaderYear; Loading