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

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

Issue 15533003: [Android] Implement min/max on all supported date types (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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/DateTimePickerDialog.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java b/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java
index f8383199096e968f5fbfc7b8c76f98cc494501dd..4012b220deb96a1fe87f971bb30afebf0cb9101e 100644
--- a/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java
+++ b/content/public/android/java/src/org/chromium/content/browser/input/DateTimePickerDialog.java
@@ -9,6 +9,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Build;
+import android.text.format.Time;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.DatePicker;
@@ -32,6 +33,9 @@ class DateTimePickerDialog extends AlertDialog implements OnClickListener,
private final TimePicker mTimePicker;
private final OnDateTimeSetListener mCallBack;
+ private final long mMinTimeMillis;
+ private final long mMaxTimeMillis;
+
/**
* The callback used to indicate the user is done filling in the date.
*/
@@ -63,9 +67,13 @@ class DateTimePickerDialog extends AlertDialog implements OnClickListener,
int year,
int monthOfYear,
int dayOfMonth,
- int hourOfDay, int minute, boolean is24HourView) {
+ int hourOfDay, int minute, boolean is24HourView,
+ long min, long max) {
super(context, 0);
+ mMinTimeMillis = min;
+ mMaxTimeMillis = max;
+
mCallBack = callBack;
setButton(BUTTON_POSITIVE, context.getText(
@@ -80,13 +88,16 @@ class DateTimePickerDialog extends AlertDialog implements OnClickListener,
View view = inflater.inflate(R.layout.date_time_picker_dialog, null);
setView(view);
mDatePicker = (DatePicker) view.findViewById(R.id.date_picker);
- mDatePicker.init(year, monthOfYear, dayOfMonth, this);
+ DateDialogNormalizer.normalize(mDatePicker, this,
+ year, monthOfYear, dayOfMonth, hourOfDay, minute, min, max);
mTimePicker = (TimePicker) view.findViewById(R.id.time_picker);
mTimePicker.setIs24HourView(is24HourView);
mTimePicker.setCurrentHour(hourOfDay);
mTimePicker.setCurrentMinute(minute);
mTimePicker.setOnTimeChangedListener(this);
+ onTimeChanged(mTimePicker, mTimePicker.getCurrentHour(),
+ mTimePicker.getCurrentMinute());
}
@Override
@@ -118,30 +129,27 @@ class DateTimePickerDialog extends AlertDialog implements OnClickListener,
@Override
public void onDateChanged(DatePicker view, int year,
int month, int day) {
- mDatePicker.init(year, month, day, null);
+ // Signal a time change so the max/min checks can be applied.
+ if (mTimePicker != null) {
+ onTimeChanged(mTimePicker, mTimePicker.getCurrentHour(),
+ mTimePicker.getCurrentMinute());
+ }
}
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
- /* do nothing */
- }
-
- /**
- * Gets the {@link DatePicker} contained in this dialog.
- *
- * @return The DatePicker view.
- */
- public DatePicker getDatePicker() {
- return mDatePicker;
- }
-
- /**
- * Gets the {@link TimePicker} contained in this dialog.
- *
- * @return The TimePicker view.
- */
- public TimePicker getTimePicker() {
- return mTimePicker;
+ Time time = new Time();
+ time.set(0, mTimePicker.getCurrentMinute(),
+ mTimePicker.getCurrentHour(), mDatePicker.getDayOfMonth(),
+ mDatePicker.getMonth(), mDatePicker.getYear());
+
+ if (time.toMillis(true) < mMinTimeMillis) {
+ time.set(mMinTimeMillis);
+ } else if (time.toMillis(true) > mMaxTimeMillis) {
+ time.set(mMaxTimeMillis);
+ }
+ mTimePicker.setCurrentHour(time.hour);
+ mTimePicker.setCurrentMinute(time.minute);
}
/**

Powered by Google App Engine
This is Rietveld 408576698