summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget/DatePickerCalendarDelegate.java
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2014-12-15 17:38:19 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-12-15 17:38:19 +0000
commit37ea640fa9e8de304ce5f9c9576e370baa85929e (patch)
tree40fda0bd37262abd190b163d71c3739f3531f294 /core/java/android/widget/DatePickerCalendarDelegate.java
parent7f2116d1dbe1099fc44c0ad57cd5efdc4a9583d9 (diff)
parent2311ded6a3da117aee221c0cf1168c24160d9041 (diff)
downloadframeworks_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
Diffstat (limited to 'core/java/android/widget/DatePickerCalendarDelegate.java')
-rw-r--r--core/java/android/widget/DatePickerCalendarDelegate.java19
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);
}
};