diff options
| author | Alan Viverette <alanv@google.com> | 2014-12-15 17:38:19 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2014-12-15 17:38:19 +0000 |
| commit | 37ea640fa9e8de304ce5f9c9576e370baa85929e (patch) | |
| tree | 40fda0bd37262abd190b163d71c3739f3531f294 | |
| parent | 7f2116d1dbe1099fc44c0ad57cd5efdc4a9583d9 (diff) | |
| parent | 2311ded6a3da117aee221c0cf1168c24160d9041 (diff) | |
| download | frameworks_base-37ea640fa9e8de304ce5f9c9576e370baa85929e.zip frameworks_base-37ea640fa9e8de304ce5f9c9576e370baa85929e.tar.gz frameworks_base-37ea640fa9e8de304ce5f9c9576e370baa85929e.tar.bz2 | |
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
| -rw-r--r-- | core/java/android/widget/DatePickerCalendarDelegate.java | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/core/java/android/widget/DatePickerCalendarDelegate.java b/core/java/android/widget/DatePickerCalendarDelegate.java index 54c4505..e75643ab 100644 --- a/core/java/android/widget/DatePickerCalendarDelegate.java +++ b/core/java/android/widget/DatePickerCalendarDelegate.java @@ -372,10 +372,9 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i mCurrentDate.set(Calendar.MONTH, monthOfYear); mCurrentDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); - onDateChanged(false); - - // Set the listener last so that we don't call it. mDateChangedListener = callBack; + + onDateChanged(false, false); } @Override @@ -384,11 +383,11 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i mCurrentDate.set(Calendar.MONTH, month); mCurrentDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); - onDateChanged(false); + onDateChanged(false, true); } - private void onDateChanged(boolean fromUser) { - if (mDateChangedListener != null) { + private void onDateChanged(boolean fromUser, boolean callbackToClient) { + if (callbackToClient && mDateChangedListener != null) { final int year = mCurrentDate.get(Calendar.YEAR); final int monthOfYear = mCurrentDate.get(Calendar.MONTH); final int dayOfMonth = mCurrentDate.get(Calendar.DAY_OF_MONTH); @@ -432,7 +431,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i } if (mCurrentDate.before(mTempDate)) { mCurrentDate.setTimeInMillis(minDate); - onDateChanged(false); + onDateChanged(false, true); } mMinDate.setTimeInMillis(minDate); mDayPickerView.setMinDate(minDate); @@ -453,7 +452,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i } if (mCurrentDate.after(mTempDate)) { mCurrentDate.setTimeInMillis(maxDate); - onDateChanged(false); + onDateChanged(false, true); } mMaxDate.setTimeInMillis(maxDate); mDayPickerView.setMaxDate(maxDate); @@ -592,7 +591,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i public void onYearSelected(int year) { adjustDayInMonthIfNeeded(mCurrentDate.get(Calendar.MONTH), year); mCurrentDate.set(Calendar.YEAR, year); - onDateChanged(true); + onDateChanged(true, true); // Auto-advance to month and day view. setCurrentView(MONTH_AND_DAY_VIEW); @@ -665,7 +664,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate i @Override public void onDaySelected(DayPickerView view, Calendar day) { mCurrentDate.setTimeInMillis(day.getTimeInMillis()); - onDateChanged(true); + onDateChanged(true, true); } }; |
