summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2015-03-23 21:36:07 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-03-23 21:36:08 +0000
commit167fa2fdb72d2cd73f6439e32ac91a6ff659437c (patch)
treee6cc86db17e1183c65e5aa317d7b4f2dc7c52ad4
parentbb522cb33604ae29afe65ec1bdbe496e052e8f0c (diff)
parent452fe349841476e4c7d17ab0652bdd4d45ce4595 (diff)
downloadframeworks_base-167fa2fdb72d2cd73f6439e32ac91a6ff659437c.zip
frameworks_base-167fa2fdb72d2cd73f6439e32ac91a6ff659437c.tar.gz
frameworks_base-167fa2fdb72d2cd73f6439e32ac91a6ff659437c.tar.bz2
Merge "Clean up date picker"
-rw-r--r--core/java/android/widget/DatePicker.java34
-rwxr-xr-xcore/java/android/widget/DatePickerCalendarDelegate.java75
2 files changed, 32 insertions, 77 deletions
diff --git a/core/java/android/widget/DatePicker.java b/core/java/android/widget/DatePicker.java
index 19ae6e2..636826f 100644
--- a/core/java/android/widget/DatePicker.java
+++ b/core/java/android/widget/DatePicker.java
@@ -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() {
@@ -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() {
@@ -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();
@@ -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);
diff --git a/core/java/android/widget/DatePickerCalendarDelegate.java b/core/java/android/widget/DatePickerCalendarDelegate.java
index de43b2f..7b8a979 100755
--- a/core/java/android/widget/DatePickerCalendarDelegate.java
+++ b/core/java/android/widget/DatePickerCalendarDelegate.java
@@ -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[]{
@@ -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;
@@ -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);
@@ -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;