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. |