am 2311ded6: am 2649c58b: Merge "Avoid self-recursion if client calls init() from date listener" into lmp-mr1-dev

* commit '2311ded6a3da117aee221c0cf1168c24160d9041':
  Avoid self-recursion if client calls init() from date listener
This commit is contained in:
Alan Viverette
2014-12-15 17:38:19 +00:00
committed by Android Git Automerger

View File

@@ -372,10 +372,9 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
mCurrentDate.set(Calendar.MONTH, monthOfYear); mCurrentDate.set(Calendar.MONTH, monthOfYear);
mCurrentDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); mCurrentDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
onDateChanged(false);
// Set the listener last so that we don't call it.
mDateChangedListener = callBack; mDateChangedListener = callBack;
onDateChanged(false, false);
} }
@Override @Override
@@ -384,11 +383,11 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
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); onDateChanged(false, true);
} }
private void onDateChanged(boolean fromUser) { private void onDateChanged(boolean fromUser, boolean callbackToClient) {
if (mDateChangedListener != null) { if (callbackToClient && mDateChangedListener != null) {
final int year = mCurrentDate.get(Calendar.YEAR); final int year = mCurrentDate.get(Calendar.YEAR);
final int monthOfYear = mCurrentDate.get(Calendar.MONTH); final int monthOfYear = mCurrentDate.get(Calendar.MONTH);
final int dayOfMonth = mCurrentDate.get(Calendar.DAY_OF_MONTH); final int dayOfMonth = mCurrentDate.get(Calendar.DAY_OF_MONTH);
@@ -432,7 +431,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
} }
if (mCurrentDate.before(mTempDate)) { if (mCurrentDate.before(mTempDate)) {
mCurrentDate.setTimeInMillis(minDate); mCurrentDate.setTimeInMillis(minDate);
onDateChanged(false); onDateChanged(false, true);
} }
mMinDate.setTimeInMillis(minDate); mMinDate.setTimeInMillis(minDate);
mDayPickerView.setMinDate(minDate); mDayPickerView.setMinDate(minDate);
@@ -453,7 +452,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i
} }
if (mCurrentDate.after(mTempDate)) { if (mCurrentDate.after(mTempDate)) {
mCurrentDate.setTimeInMillis(maxDate); mCurrentDate.setTimeInMillis(maxDate);
onDateChanged(false); onDateChanged(false, true);
} }
mMaxDate.setTimeInMillis(maxDate); mMaxDate.setTimeInMillis(maxDate);
mDayPickerView.setMaxDate(maxDate); mDayPickerView.setMaxDate(maxDate);
@@ -592,7 +591,7 @@ 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);
onDateChanged(true); onDateChanged(true, true);
// Auto-advance to month and day view. // Auto-advance to month and day view.
setCurrentView(MONTH_AND_DAY_VIEW); setCurrentView(MONTH_AND_DAY_VIEW);
@@ -665,7 +664,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); onDateChanged(true, true);
} }
}; };