| Index: content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java
|
| diff --git a/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java b/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java
|
| index 01e636eb10168ed3e9ff3e584d8edb3d94623eb0..3956aa04c50c34cf1613fb15f1a5b44e9a30ef85 100644
|
| --- a/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java
|
| +++ b/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java
|
| @@ -13,8 +13,6 @@ import android.util.AttributeSet;
|
| import android.util.SparseArray;
|
| import android.view.LayoutInflater;
|
| import android.view.accessibility.AccessibilityEvent;
|
| -import android.widget.DatePicker;
|
| -import android.widget.FrameLayout;
|
| import android.widget.NumberPicker;
|
| import android.widget.NumberPicker.OnValueChangeListener;
|
|
|
| @@ -22,39 +20,22 @@ import java.text.DateFormatSymbols;
|
| import java.util.Arrays;
|
| import java.util.Calendar;
|
| import java.util.Locale;
|
| -import java.util.TimeZone;
|
|
|
| import org.chromium.content.R;
|
|
|
| // This class is heavily based on android.widget.DatePicker.
|
| -public class MonthPicker extends FrameLayout {
|
| -
|
| - private static final int DEFAULT_START_YEAR = 1900;
|
| -
|
| - private static final int DEFAULT_END_YEAR = 2100;
|
| -
|
| - private static final boolean DEFAULT_ENABLED_STATE = true;
|
| +public class MonthPicker extends BaseDatePicker {
|
|
|
| private final NumberPicker mMonthSpinner;
|
|
|
| private final NumberPicker mYearSpinner;
|
|
|
| - private Locale mCurrentLocale;
|
| -
|
| private OnMonthChangedListener mMonthChangedListener;
|
|
|
| private String[] mShortMonths;
|
|
|
| private int mNumberOfMonths;
|
|
|
| - private Calendar mMinDate;
|
| -
|
| - private Calendar mMaxDate;
|
| -
|
| - private Calendar mCurrentDate;
|
| -
|
| - private boolean mIsEnabled = DEFAULT_ENABLED_STATE;
|
| -
|
| /**
|
| * The callback used to indicate the user changes\d the date.
|
| */
|
| @@ -82,12 +63,6 @@ public class MonthPicker extends FrameLayout {
|
| public MonthPicker(Context context, AttributeSet attrs, int defStyle) {
|
| super(context, attrs, defStyle);
|
|
|
| - // initialization based on locale
|
| - setCurrentLocale(Locale.getDefault());
|
| -
|
| - int startYear = DEFAULT_START_YEAR;
|
| - int endYear = DEFAULT_END_YEAR;
|
| -
|
| LayoutInflater inflater = (LayoutInflater) context
|
| .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
| inflater.inflate(R.layout.month_picker, this, true);
|
| @@ -133,88 +108,11 @@ public class MonthPicker extends FrameLayout {
|
| mYearSpinner.setOnLongPressUpdateInterval(100);
|
| mYearSpinner.setOnValueChangedListener(onChangeListener);
|
|
|
| - Calendar tempDate = getCalendarForLocale(null, mCurrentLocale);
|
| - tempDate.set(startYear, 0, 1);
|
| -
|
| - setMinDate(tempDate.getTimeInMillis());
|
| - tempDate.set(endYear, 11, 31);
|
| - setMaxDate(tempDate.getTimeInMillis());
|
| -
|
| // initialize to current date
|
| mCurrentDate.setTimeInMillis(System.currentTimeMillis());
|
| init(mCurrentDate.get(Calendar.YEAR), mCurrentDate.get(Calendar.MONTH), null);
|
| }
|
|
|
| - /**
|
| - * Gets the minimal date supported by this {@link DatePicker} in
|
| - * milliseconds since January 1, 1970 00:00:00 in
|
| - * {@link TimeZone#getDefault()} time zone.
|
| - * <p>
|
| - * Note: The default minimal date is 01/01/1900.
|
| - * <p>
|
| - *
|
| - * @return The minimal supported date.
|
| - */
|
| - public long getMinDate() {
|
| - return mMinDate.getTimeInMillis();
|
| - }
|
| -
|
| - /**
|
| - * Sets the minimal date supported by this {@link NumberPicker} in
|
| - * milliseconds since January 1, 1970 00:00:00 in
|
| - * {@link TimeZone#getDefault()} time zone.
|
| - *
|
| - * @param minDate The minimal supported date.
|
| - */
|
| - public void setMinDate(long minDate) {
|
| - Calendar tempDate = getCalendarForLocale(null, mCurrentLocale);
|
| - tempDate.setTimeInMillis(minDate);
|
| - if (tempDate.get(Calendar.YEAR) == mMinDate.get(Calendar.YEAR)
|
| - && tempDate.get(Calendar.DAY_OF_YEAR) != mMinDate.get(Calendar.DAY_OF_YEAR)) {
|
| - return;
|
| - }
|
| - mMinDate.setTimeInMillis(minDate);
|
| - if (mCurrentDate.before(mMinDate)) {
|
| - mCurrentDate.setTimeInMillis(mMinDate.getTimeInMillis());
|
| - }
|
| - updateSpinners();
|
| - }
|
| -
|
| - /**
|
| - * Gets the maximal date supported by this {@link DatePicker} in
|
| - * milliseconds since January 1, 1970 00:00:00 in
|
| - * {@link TimeZone#getDefault()} time zone.
|
| - * <p>
|
| - * Note: The default maximal date is 12/31/2100.
|
| - * <p>
|
| - *
|
| - * @return The maximal supported date.
|
| - */
|
| - public long getMaxDate() {
|
| - return mMaxDate.getTimeInMillis();
|
| - }
|
| -
|
| - /**
|
| - * Sets the maximal date supported by this {@link DatePicker} in
|
| - * milliseconds since January 1, 1970 00:00:00 in
|
| - * {@link TimeZone#getDefault()} time zone.
|
| - *
|
| - * @param maxDate The maximal supported date.
|
| - */
|
| - public void setMaxDate(long maxDate) {
|
| - Calendar tempDate = getCalendarForLocale(null, mCurrentLocale);
|
| - tempDate.setTimeInMillis(maxDate);
|
| - if (tempDate.get(Calendar.YEAR) == mMaxDate.get(Calendar.YEAR)
|
| - && tempDate.get(Calendar.DAY_OF_YEAR) != mMaxDate.get(Calendar.DAY_OF_YEAR)) {
|
| - return;
|
| - }
|
| - mMaxDate.setTimeInMillis(maxDate);
|
| - if (mCurrentDate.after(mMaxDate)) {
|
| - mCurrentDate.setTimeInMillis(mMaxDate.getTimeInMillis());
|
| - }
|
| - updateSpinners();
|
| - }
|
| -
|
| @Override
|
| public void setEnabled(boolean enabled) {
|
| if (mIsEnabled == enabled) {
|
| @@ -223,12 +121,6 @@ public class MonthPicker extends FrameLayout {
|
| super.setEnabled(enabled);
|
| mMonthSpinner.setEnabled(enabled);
|
| mYearSpinner.setEnabled(enabled);
|
| - mIsEnabled = enabled;
|
| - }
|
| -
|
| - @Override
|
| - public boolean isEnabled() {
|
| - return mIsEnabled;
|
| }
|
|
|
| @Override
|
| @@ -253,20 +145,13 @@ public class MonthPicker extends FrameLayout {
|
| setCurrentLocale(newConfig.locale);
|
| }
|
|
|
| - /**
|
| - * Sets the current locale.
|
| - *
|
| - * @param locale The current locale.
|
| - */
|
| - private void setCurrentLocale(Locale locale) {
|
| + @Override
|
| + protected void setCurrentLocale(Locale locale) {
|
| if (locale.equals(mCurrentLocale)) {
|
| return;
|
| }
|
|
|
| - mCurrentLocale = locale;
|
| - mMinDate = getCalendarForLocale(mMinDate, locale);
|
| - mMaxDate = getCalendarForLocale(mMaxDate, locale);
|
| - mCurrentDate = getCalendarForLocale(mCurrentDate, locale);
|
| + super.setCurrentLocale(locale);
|
|
|
| mShortMonths =
|
| DateFormatSymbols.getInstance(mCurrentLocale).getShortMonths();
|
| @@ -274,23 +159,6 @@ public class MonthPicker extends FrameLayout {
|
| }
|
|
|
| /**
|
| - * 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;
|
| - }
|
| - }
|
| -
|
| - /**
|
| * Updates the current date.
|
| *
|
| * @param year The year.
|
|
|