Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(487)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java

Issue 15057004: Week picker for android (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed week_year. Added BaseDatePicker. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698