| Index: content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java
|
| diff --git a/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java b/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java
|
| index 8b90c9cbb6fade2a2eb8774c322542433c9a73fb..81d1eb9b1c709462da0ed08a1bcf6126f7445fa7 100644
|
| --- a/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java
|
| +++ b/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java
|
| @@ -15,6 +15,7 @@ import android.widget.NumberPicker.OnValueChangeListener;
|
| import org.chromium.content.R;
|
|
|
| import java.util.Calendar;
|
| +import java.util.TimeZone;
|
|
|
| /**
|
| * This class is heavily based on android.widget.DatePicker.
|
| @@ -51,7 +52,7 @@ public abstract class TwoFieldDatePicker extends FrameLayout {
|
| void onMonthOrWeekChanged(TwoFieldDatePicker view, int year, int positionInYear);
|
| }
|
|
|
| - public TwoFieldDatePicker(Context context, long minValue, long maxValue) {
|
| + public TwoFieldDatePicker(Context context, double minValue, double maxValue) {
|
| super(context, null, android.R.attr.datePickerStyle);
|
|
|
| LayoutInflater inflater = (LayoutInflater) context
|
| @@ -86,11 +87,11 @@ public abstract class TwoFieldDatePicker extends FrameLayout {
|
| }
|
| };
|
|
|
| - mCurrentDate = Calendar.getInstance();
|
| + mCurrentDate = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
|
| if (minValue >= maxValue) {
|
| - mMinDate = Calendar.getInstance();
|
| + mMinDate = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
|
| mMinDate.set(0, 0, 1);
|
| - mMaxDate = Calendar.getInstance();
|
| + mMaxDate = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
|
| mMaxDate.set(9999, 0, 1);
|
| } else {
|
| mMinDate = createDateFromValue(minValue);
|
| @@ -132,7 +133,12 @@ public abstract class TwoFieldDatePicker extends FrameLayout {
|
| * Subclasses know the semantics of @value, and need to return
|
| * a Calendar corresponding to it.
|
| */
|
| - protected abstract Calendar createDateFromValue(long value);
|
| + protected abstract Calendar createDateFromValue(double value);
|
| +
|
| + /**
|
| + * Converts the date to a number as defined by the HTML spec.
|
| + */
|
| + protected abstract double valueFromDate(int year, int positionInYear);
|
|
|
| /**
|
| * Updates the current date.
|
| @@ -183,6 +189,13 @@ public abstract class TwoFieldDatePicker extends FrameLayout {
|
| }
|
|
|
| /**
|
| + * @return The selected value.
|
| + */
|
| + public double getValue() {
|
| + return valueFromDate(getYear(), getPositionInYear());
|
| + }
|
| +
|
| + /**
|
| * @return The selected month or week.
|
| */
|
| public abstract int getPositionInYear();
|
|
|