From 68640b68099765461d5427fddbb925beaa9d2a6a Mon Sep 17 00:00:00 2001 From: Clara Bayarri Date: Thu, 2 Jun 2016 14:56:18 +0100 Subject: [PATCH] Add setOnDateChangedListener to DatePicker Also refactor slightly the hierarchy in TimePicker to use the common parent AbstractTimePickerDelegate in the same way as DatePicker. Bug: 28310875 Change-Id: Iecaf206ba1691e26d4496014dc1d13f070c4722a --- api/current.txt | 1 + api/system-current.txt | 1 + api/test-current.txt | 1 + core/java/android/widget/DatePicker.java | 17 +++++++++++++++++ .../widget/DatePickerCalendarDelegate.java | 8 +++----- core/java/android/widget/TimePicker.java | 5 +++++ .../android/widget/TimePickerClockDelegate.java | 5 ----- .../widget/TimePickerSpinnerDelegate.java | 5 ----- 8 files changed, 28 insertions(+), 15 deletions(-) diff --git a/api/current.txt b/api/current.txt index 4f5a58ad12fb0..eae9c6ea55a9a 100644 --- a/api/current.txt +++ b/api/current.txt @@ -46533,6 +46533,7 @@ package android.widget { method public void setFirstDayOfWeek(int); method public void setMaxDate(long); method public void setMinDate(long); + method public void setOnDateChangedListener(android.widget.DatePicker.OnDateChangedListener); method public deprecated void setSpinnersShown(boolean); method public void updateDate(int, int, int); } diff --git a/api/system-current.txt b/api/system-current.txt index d5ec375c113fd..8ba36afdc1fd9 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -49888,6 +49888,7 @@ package android.widget { method public void setFirstDayOfWeek(int); method public void setMaxDate(long); method public void setMinDate(long); + method public void setOnDateChangedListener(android.widget.DatePicker.OnDateChangedListener); method public deprecated void setSpinnersShown(boolean); method public void updateDate(int, int, int); } diff --git a/api/test-current.txt b/api/test-current.txt index fc91a8e39e46b..eebb28392f190 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -46614,6 +46614,7 @@ package android.widget { method public void setFirstDayOfWeek(int); method public void setMaxDate(long); method public void setMinDate(long); + method public void setOnDateChangedListener(android.widget.DatePicker.OnDateChangedListener); method public deprecated void setSpinnersShown(boolean); method public void updateDate(int, int, int); } diff --git a/core/java/android/widget/DatePicker.java b/core/java/android/widget/DatePicker.java index 8613f9989abcc..56a8966ca03ba 100644 --- a/core/java/android/widget/DatePicker.java +++ b/core/java/android/widget/DatePicker.java @@ -159,6 +159,16 @@ public class DatePicker extends FrameLayout { mDelegate.init(year, monthOfYear, dayOfMonth, onDateChangedListener); } + /** + * Set the callback that indicates the date has been adjusted by the user. + * + * @param onDateChangedListener How user is notified date is changed by + * user, can be null. + */ + public void setOnDateChangedListener(OnDateChangedListener onDateChangedListener) { + mDelegate.setOnDateChangedListener(onDateChangedListener); + } + /** * Update the current date. * @@ -441,6 +451,8 @@ public class DatePicker extends FrameLayout { void init(int year, int monthOfYear, int dayOfMonth, OnDateChangedListener onDateChangedListener); + void setOnDateChangedListener(OnDateChangedListener onDateChangedListener); + void updateDate(int year, int month, int dayOfMonth); int getYear(); @@ -509,6 +521,11 @@ public class DatePicker extends FrameLayout { } } + @Override + public void setOnDateChangedListener(OnDateChangedListener callback) { + mOnDateChangedListener = callback; + } + @Override public void setValidationCallback(ValidationCallback callback) { mValidationCallback = callback; diff --git a/core/java/android/widget/DatePickerCalendarDelegate.java b/core/java/android/widget/DatePickerCalendarDelegate.java index 2fd52b5f1230a..9488d414314e7 100755 --- a/core/java/android/widget/DatePickerCalendarDelegate.java +++ b/core/java/android/widget/DatePickerCalendarDelegate.java @@ -82,8 +82,6 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { private String mSelectDay; private String mSelectYear; - private DatePicker.OnDateChangedListener mDateChangedListener; - private int mCurrentView = UNINITIALIZED; private final Calendar mCurrentDate; @@ -382,7 +380,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { onDateChanged(false, false); - mDateChangedListener = callBack; + mOnDateChangedListener = callBack; } @Override @@ -397,10 +395,10 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { private void onDateChanged(boolean fromUser, boolean callbackToClient) { final int year = mCurrentDate.get(Calendar.YEAR); - if (callbackToClient && mDateChangedListener != null) { + if (callbackToClient && mOnDateChangedListener != null) { final int monthOfYear = mCurrentDate.get(Calendar.MONTH); final int dayOfMonth = mCurrentDate.get(Calendar.DAY_OF_MONTH); - mDateChangedListener.onDateChanged(mDelegator, year, monthOfYear, dayOfMonth); + mOnDateChangedListener.onDateChanged(mDelegator, year, monthOfYear, dayOfMonth); } mDayPickerView.setDate(mCurrentDate.getTimeInMillis()); diff --git a/core/java/android/widget/TimePicker.java b/core/java/android/widget/TimePicker.java index f2fc617ccc33e..84165cb09cc46 100644 --- a/core/java/android/widget/TimePicker.java +++ b/core/java/android/widget/TimePicker.java @@ -305,6 +305,11 @@ public class TimePicker extends FrameLayout { mLocale = context.getResources().getConfiguration().locale; } + @Override + public void setOnTimeChangedListener(OnTimeChangedListener callback) { + mOnTimeChangedListener = callback; + } + protected static class SavedState extends View.BaseSavedState { private final int mHour; private final int mMinute; diff --git a/core/java/android/widget/TimePickerClockDelegate.java b/core/java/android/widget/TimePickerClockDelegate.java index c21f1dfe0ed13..a70f2c70f7535 100644 --- a/core/java/android/widget/TimePickerClockDelegate.java +++ b/core/java/android/widget/TimePickerClockDelegate.java @@ -480,11 +480,6 @@ class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate { return mIs24Hour; } - @Override - public void setOnTimeChangedListener(TimePicker.OnTimeChangedListener callback) { - mOnTimeChangedListener = callback; - } - @Override public void setEnabled(boolean enabled) { mHourView.setEnabled(enabled); diff --git a/core/java/android/widget/TimePickerSpinnerDelegate.java b/core/java/android/widget/TimePickerSpinnerDelegate.java index b113fd94f21d7..513e8c3d25378 100644 --- a/core/java/android/widget/TimePickerSpinnerDelegate.java +++ b/core/java/android/widget/TimePickerSpinnerDelegate.java @@ -353,11 +353,6 @@ class TimePickerSpinnerDelegate extends TimePicker.AbstractTimePickerDelegate { return mIs24HourView; } - @Override - public void setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener) { - mOnTimeChangedListener = onTimeChangedListener; - } - @Override public void setEnabled(boolean enabled) { mMinuteSpinner.setEnabled(enabled);