Merge "Always call onDateChanged() when the date picker selection changes" into lmp-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6c42ee4703
@@ -329,7 +329,6 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
|
|||||||
String fullDateText = DateUtils.formatDateTime(mContext, millis, flags);
|
String fullDateText = DateUtils.formatDateTime(mContext, millis, flags);
|
||||||
mAnimator.announceForAccessibility(fullDateText);
|
mAnimator.announceForAccessibility(fullDateText);
|
||||||
}
|
}
|
||||||
updatePickers();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setCurrentView(final int viewIndex) {
|
private void setCurrentView(final int viewIndex) {
|
||||||
@@ -369,11 +368,14 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
|
|||||||
@Override
|
@Override
|
||||||
public void init(int year, int monthOfYear, int dayOfMonth,
|
public void init(int year, int monthOfYear, int dayOfMonth,
|
||||||
DatePicker.OnDateChangedListener callBack) {
|
DatePicker.OnDateChangedListener callBack) {
|
||||||
mDateChangedListener = callBack;
|
|
||||||
mCurrentDate.set(Calendar.YEAR, year);
|
mCurrentDate.set(Calendar.YEAR, year);
|
||||||
mCurrentDate.set(Calendar.MONTH, monthOfYear);
|
mCurrentDate.set(Calendar.MONTH, monthOfYear);
|
||||||
mCurrentDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
|
mCurrentDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
|
||||||
updateDisplay(false);
|
|
||||||
|
onDateChanged(false);
|
||||||
|
|
||||||
|
// Set the listener last so that we don't call it.
|
||||||
|
mDateChangedListener = callBack;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -381,10 +383,29 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
|
|||||||
mCurrentDate.set(Calendar.YEAR, year);
|
mCurrentDate.set(Calendar.YEAR, year);
|
||||||
mCurrentDate.set(Calendar.MONTH, month);
|
mCurrentDate.set(Calendar.MONTH, month);
|
||||||
mCurrentDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
|
mCurrentDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
|
||||||
|
|
||||||
|
onDateChanged(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onDateChanged(boolean fromUser) {
|
||||||
if (mDateChangedListener != null) {
|
if (mDateChangedListener != null) {
|
||||||
mDateChangedListener.onDateChanged(mDelegator, year, month, dayOfMonth);
|
final int year = mCurrentDate.get(Calendar.YEAR);
|
||||||
|
final int monthOfYear = mCurrentDate.get(Calendar.MONTH);
|
||||||
|
final int dayOfMonth = mCurrentDate.get(Calendar.DAY_OF_MONTH);
|
||||||
|
mDateChangedListener.onDateChanged(mDelegator, year, monthOfYear, dayOfMonth);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (OnDateChangedListener listener : mListeners) {
|
||||||
|
listener.onDateChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
mDayPickerView.setDate(getSelectedDay().getTimeInMillis());
|
||||||
|
|
||||||
|
updateDisplay(fromUser);
|
||||||
|
|
||||||
|
if (fromUser) {
|
||||||
|
tryVibrate();
|
||||||
}
|
}
|
||||||
updateDisplay(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -411,8 +432,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
|
|||||||
}
|
}
|
||||||
if (mCurrentDate.before(mTempDate)) {
|
if (mCurrentDate.before(mTempDate)) {
|
||||||
mCurrentDate.setTimeInMillis(minDate);
|
mCurrentDate.setTimeInMillis(minDate);
|
||||||
updatePickers();
|
onDateChanged(false);
|
||||||
updateDisplay(false);
|
|
||||||
}
|
}
|
||||||
mMinDate.setTimeInMillis(minDate);
|
mMinDate.setTimeInMillis(minDate);
|
||||||
mDayPickerView.setMinDate(minDate);
|
mDayPickerView.setMinDate(minDate);
|
||||||
@@ -433,8 +453,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
|
|||||||
}
|
}
|
||||||
if (mCurrentDate.after(mTempDate)) {
|
if (mCurrentDate.after(mTempDate)) {
|
||||||
mCurrentDate.setTimeInMillis(maxDate);
|
mCurrentDate.setTimeInMillis(maxDate);
|
||||||
updatePickers();
|
onDateChanged(false);
|
||||||
updateDisplay(false);
|
|
||||||
}
|
}
|
||||||
mMaxDate.setTimeInMillis(maxDate);
|
mMaxDate.setTimeInMillis(maxDate);
|
||||||
mDayPickerView.setMaxDate(maxDate);
|
mDayPickerView.setMaxDate(maxDate);
|
||||||
@@ -573,9 +592,10 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
|
|||||||
public void onYearSelected(int year) {
|
public void onYearSelected(int year) {
|
||||||
adjustDayInMonthIfNeeded(mCurrentDate.get(Calendar.MONTH), year);
|
adjustDayInMonthIfNeeded(mCurrentDate.get(Calendar.MONTH), year);
|
||||||
mCurrentDate.set(Calendar.YEAR, year);
|
mCurrentDate.set(Calendar.YEAR, year);
|
||||||
updatePickers();
|
onDateChanged(true);
|
||||||
|
|
||||||
|
// Auto-advance to month and day view.
|
||||||
setCurrentView(MONTH_AND_DAY_VIEW);
|
setCurrentView(MONTH_AND_DAY_VIEW);
|
||||||
updateDisplay(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the newly selected month / year does not contain the currently selected day number,
|
// If the newly selected month / year does not contain the currently selected day number,
|
||||||
@@ -612,14 +632,6 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePickers() {
|
|
||||||
for (OnDateChangedListener listener : mListeners) {
|
|
||||||
listener.onDateChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
mDayPickerView.setDate(getSelectedDay().getTimeInMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerOnDateChangedListener(OnDateChangedListener listener) {
|
public void registerOnDateChangedListener(OnDateChangedListener listener) {
|
||||||
mListeners.add(listener);
|
mListeners.add(listener);
|
||||||
@@ -653,11 +665,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
|
|||||||
@Override
|
@Override
|
||||||
public void onDaySelected(DayPickerView view, Calendar day) {
|
public void onDaySelected(DayPickerView view, Calendar day) {
|
||||||
mCurrentDate.setTimeInMillis(day.getTimeInMillis());
|
mCurrentDate.setTimeInMillis(day.getTimeInMillis());
|
||||||
|
onDateChanged(true);
|
||||||
updatePickers();
|
|
||||||
updateDisplay(true);
|
|
||||||
|
|
||||||
tryVibrate();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user