Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a001cfe4 authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Fix unexpected DatePicker validation" into oc-dev am: cd603221...

Merge "Merge "Fix unexpected DatePicker validation" into oc-dev am: cd603221 am: 9a06d4bc" into oc-dr1-dev-plus-aosp
parents 02def68a 2a133b61
Loading
Loading
Loading
Loading
+7 −14
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package android.widget;

import static android.os.Build.VERSION_CODES.O;

import android.annotation.Nullable;
import android.content.Context;
import android.content.res.ColorStateList;
@@ -293,22 +291,10 @@ class DayPickerView extends ViewGroup {
     * @param timeInMillis the target day in milliseconds
     * @param animate whether to smooth scroll to the new position
     * @param setSelected whether to set the specified day as selected
     *
     * @throws IllegalArgumentException if the build version is greater than
     *         {@link android.os.Build.VERSION_CODES#N_MR1} and the provided timeInMillis is before
     *         the range start or after the range end.
     */
    private void setDate(long timeInMillis, boolean animate, boolean setSelected) {
        getTempCalendarForTime(timeInMillis);

        final int targetSdkVersion = mContext.getApplicationInfo().targetSdkVersion;
        if (targetSdkVersion >= O) {
            if (mTempCalendar.before(mMinDate) || mTempCalendar.after(mMaxDate)) {
                throw new IllegalArgumentException("timeInMillis must be between the values of "
                        + "getMinDate() and getMaxDate()");
            }
        }

        if (setSelected) {
            mSelectedDay.setTimeInMillis(timeInMillis);
        }
@@ -367,6 +353,13 @@ 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);