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
This commit is contained in:
Clara Bayarri
2016-06-02 14:56:18 +01:00
parent 8216d44ce2
commit 68640b6809
8 changed files with 28 additions and 15 deletions

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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());

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);