Merge "DayPickerView - clamp date to min/max" into oc-dev

am: 511c95a022

Change-Id: I57eafe97328ee10bd0ccee296586307baa02cc6d
This commit is contained in:
Andrei Stingaceanu
2017-06-14 17:46:59 +00:00
committed by android-build-merger

View File

@@ -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);