diff options
| author | 2017-06-14 19:35:55 +0000 | |
|---|---|---|
| committer | 2017-06-14 19:35:55 +0000 | |
| commit | 02dba53fe7e3957fd035bb1083048915a50240bf (patch) | |
| tree | ff70f599a981030df006a735d1b2d9cfff636e0d | |
| parent | 0c8607489581f5bd3f97589a65ec216e62d6ca4b (diff) | |
| parent | 852f4b1fa72bc2e44213107845db52a42bdcd0fb (diff) | |
Merge "DayPickerView - clamp date to min/max" into oc-dev am: 511c95a022 am: 37aa78bfab
am: 852f4b1fa7
Change-Id: I317b1c2891426225863711e4815a470d1902a9a2
| -rw-r--r-- | core/java/android/widget/DayPickerView.java | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/core/java/android/widget/DayPickerView.java b/core/java/android/widget/DayPickerView.java index 1e8207a2e7b3..f712d5fa65ca 100644 --- a/core/java/android/widget/DayPickerView.java +++ b/core/java/android/widget/DayPickerView.java @@ -293,9 +293,19 @@ class DayPickerView extends ViewGroup { * @param setSelected whether to set the specified day as selected */ private void setDate(long timeInMillis, boolean animate, boolean setSelected) { + boolean dateClamped = false; + // Clamp the target day in milliseconds to the min or max if outside the range. + if (timeInMillis < mMinDate.getTimeInMillis()) { + timeInMillis = mMinDate.getTimeInMillis(); + dateClamped = true; + } else if (timeInMillis > mMaxDate.getTimeInMillis()) { + timeInMillis = mMaxDate.getTimeInMillis(); + dateClamped = true; + } + getTempCalendarForTime(timeInMillis); - if (setSelected) { + if (setSelected || dateClamped) { mSelectedDay.setTimeInMillis(timeInMillis); } @@ -353,13 +363,6 @@ class DayPickerView extends ViewGroup { public void onRangeChanged() { mAdapter.setRange(mMinDate, mMaxDate); - // Clamp the selected day to the new min/max. - if (mSelectedDay.before(mMinDate)) { - mSelectedDay.setTimeInMillis(mMinDate.getTimeInMillis()); - } else if (mSelectedDay.after(mMaxDate)) { - mSelectedDay.setTimeInMillis(mMaxDate.getTimeInMillis()); - } - // Changing the min/max date changes the selection position since we // don't really have stable IDs. Jumps immediately to the new position. setDate(mSelectedDay.getTimeInMillis(), false, false); |