From b85d48fa43e5f7b98492c2ee313f51c072f5ddd8 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Mon, 24 Jun 2013 16:11:19 -0700 Subject: [PATCH] Clamp date setting for the SetupWizard as well as Settings. We fixed this for Settings in 7ccfa0614caeba8eba5d3040a90541a24fa1e6c9, but @sonymobile.com point out that it's still broken for SetupWizard. Change-Id: I59348200105246f3ed7c0892e5f19b901d3e95ac --- .../android/settings/DateTimeSettings.java | 52 ++++++++----------- .../settings/DateTimeSettingsSetupWizard.java | 1 + 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/src/com/android/settings/DateTimeSettings.java b/src/com/android/settings/DateTimeSettings.java index ab875271f7f..83adf271ffd 100644 --- a/src/com/android/settings/DateTimeSettings.java +++ b/src/com/android/settings/DateTimeSettings.java @@ -233,44 +233,38 @@ public class DateTimeSettings extends SettingsPreferenceFragment @Override public Dialog onCreateDialog(int id) { - Dialog d; - + final Calendar calendar = Calendar.getInstance(); switch (id) { - case DIALOG_DATEPICKER: { - final Calendar calendar = Calendar.getInstance(); - d = new DatePickerDialog( - getActivity(), - this, - calendar.get(Calendar.YEAR), - calendar.get(Calendar.MONTH), - calendar.get(Calendar.DAY_OF_MONTH)); - // The system clock can't represent dates outside this range. - DatePickerDialog datePicker = (DatePickerDialog)d; - Calendar t = Calendar.getInstance(); - t.clear(); - t.set(1970, Calendar.JANUARY, 1); - datePicker.getDatePicker().setMinDate(t.getTimeInMillis()); - t.clear(); - t.set(2037, Calendar.DECEMBER, 31); - datePicker.getDatePicker().setMaxDate(t.getTimeInMillis()); - break; - } - case DIALOG_TIMEPICKER: { - final Calendar calendar = Calendar.getInstance(); - d = new TimePickerDialog( + case DIALOG_DATEPICKER: + DatePickerDialog d = new DatePickerDialog( + getActivity(), + this, + calendar.get(Calendar.YEAR), + calendar.get(Calendar.MONTH), + calendar.get(Calendar.DAY_OF_MONTH)); + configureDatePicker(d.getDatePicker()); + return d; + case DIALOG_TIMEPICKER: + return new TimePickerDialog( getActivity(), this, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), DateFormat.is24HourFormat(getActivity())); - break; - } default: - d = null; - break; + throw new IllegalArgumentException(); } + } - return d; + static void configureDatePicker(DatePicker datePicker) { + // The system clock can't represent dates outside this range. + Calendar t = Calendar.getInstance(); + t.clear(); + t.set(1970, Calendar.JANUARY, 1); + datePicker.setMinDate(t.getTimeInMillis()); + t.clear(); + t.set(2037, Calendar.DECEMBER, 31); + datePicker.setMaxDate(t.getTimeInMillis()); } /* diff --git a/src/com/android/settings/DateTimeSettingsSetupWizard.java b/src/com/android/settings/DateTimeSettingsSetupWizard.java index 05e0d4ec692..f4b0da5b832 100644 --- a/src/com/android/settings/DateTimeSettingsSetupWizard.java +++ b/src/com/android/settings/DateTimeSettingsSetupWizard.java @@ -141,6 +141,7 @@ public class DateTimeSettingsSetupWizard extends Activity mDatePicker = (DatePicker)findViewById(R.id.date_picker); mDatePicker.setEnabled(!autoDateTimeEnabled); mDatePicker.setCalendarViewShown(false); + DateTimeSettings.configureDatePicker(mDatePicker); mInputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);