ADD week 5
This commit is contained in:
		| @@ -0,0 +1,213 @@ | ||||
| package com.google.android.material.datepicker; | ||||
|  | ||||
| import android.os.Bundle; | ||||
| import android.os.Parcel; | ||||
| import android.os.Parcelable; | ||||
| import androidx.core.util.ObjectsCompat; | ||||
| import java.util.Arrays; | ||||
| import java.util.Objects; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class CalendarConstraints implements Parcelable { | ||||
|     public static final Parcelable.Creator<CalendarConstraints> CREATOR = new Parcelable.Creator<CalendarConstraints>() { // from class: com.google.android.material.datepicker.CalendarConstraints.1 | ||||
|         /* JADX WARN: Can't rename method to resolve collision */ | ||||
|         @Override // android.os.Parcelable.Creator | ||||
|         public CalendarConstraints createFromParcel(Parcel parcel) { | ||||
|             return new CalendarConstraints((Month) parcel.readParcelable(Month.class.getClassLoader()), (Month) parcel.readParcelable(Month.class.getClassLoader()), (DateValidator) parcel.readParcelable(DateValidator.class.getClassLoader()), (Month) parcel.readParcelable(Month.class.getClassLoader()), parcel.readInt()); | ||||
|         } | ||||
|  | ||||
|         /* JADX WARN: Can't rename method to resolve collision */ | ||||
|         @Override // android.os.Parcelable.Creator | ||||
|         public CalendarConstraints[] newArray(int i) { | ||||
|             return new CalendarConstraints[i]; | ||||
|         } | ||||
|     }; | ||||
|     private final Month end; | ||||
|     private final int firstDayOfWeek; | ||||
|     private final int monthSpan; | ||||
|     private Month openAt; | ||||
|     private final Month start; | ||||
|     private final DateValidator validator; | ||||
|     private final int yearSpan; | ||||
|  | ||||
|     public interface DateValidator extends Parcelable { | ||||
|         boolean isValid(long j); | ||||
|     } | ||||
|  | ||||
|     @Override // android.os.Parcelable | ||||
|     public int describeContents() { | ||||
|         return 0; | ||||
|     } | ||||
|  | ||||
|     public DateValidator getDateValidator() { | ||||
|         return this.validator; | ||||
|     } | ||||
|  | ||||
|     Month getEnd() { | ||||
|         return this.end; | ||||
|     } | ||||
|  | ||||
|     int getFirstDayOfWeek() { | ||||
|         return this.firstDayOfWeek; | ||||
|     } | ||||
|  | ||||
|     int getMonthSpan() { | ||||
|         return this.monthSpan; | ||||
|     } | ||||
|  | ||||
|     Month getOpenAt() { | ||||
|         return this.openAt; | ||||
|     } | ||||
|  | ||||
|     Month getStart() { | ||||
|         return this.start; | ||||
|     } | ||||
|  | ||||
|     int getYearSpan() { | ||||
|         return this.yearSpan; | ||||
|     } | ||||
|  | ||||
|     void setOpenAt(Month month) { | ||||
|         this.openAt = month; | ||||
|     } | ||||
|  | ||||
|     private CalendarConstraints(Month month, Month month2, DateValidator dateValidator, Month month3, int i) { | ||||
|         Objects.requireNonNull(month, "start cannot be null"); | ||||
|         Objects.requireNonNull(month2, "end cannot be null"); | ||||
|         Objects.requireNonNull(dateValidator, "validator cannot be null"); | ||||
|         this.start = month; | ||||
|         this.end = month2; | ||||
|         this.openAt = month3; | ||||
|         this.firstDayOfWeek = i; | ||||
|         this.validator = dateValidator; | ||||
|         if (month3 != null && month.compareTo(month3) > 0) { | ||||
|             throw new IllegalArgumentException("start Month cannot be after current Month"); | ||||
|         } | ||||
|         if (month3 != null && month3.compareTo(month2) > 0) { | ||||
|             throw new IllegalArgumentException("current Month cannot be after end Month"); | ||||
|         } | ||||
|         if (i < 0 || i > UtcDates.getUtcCalendar().getMaximum(7)) { | ||||
|             throw new IllegalArgumentException("firstDayOfWeek is not valid"); | ||||
|         } | ||||
|         this.monthSpan = month.monthsUntil(month2) + 1; | ||||
|         this.yearSpan = (month2.year - month.year) + 1; | ||||
|     } | ||||
|  | ||||
|     boolean isWithinBounds(long j) { | ||||
|         if (this.start.getDay(1) <= j) { | ||||
|             Month month = this.end; | ||||
|             if (j <= month.getDay(month.daysInMonth)) { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public long getStartMs() { | ||||
|         return this.start.timeInMillis; | ||||
|     } | ||||
|  | ||||
|     public long getEndMs() { | ||||
|         return this.end.timeInMillis; | ||||
|     } | ||||
|  | ||||
|     public Long getOpenAtMs() { | ||||
|         Month month = this.openAt; | ||||
|         if (month == null) { | ||||
|             return null; | ||||
|         } | ||||
|         return Long.valueOf(month.timeInMillis); | ||||
|     } | ||||
|  | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) { | ||||
|             return true; | ||||
|         } | ||||
|         if (!(obj instanceof CalendarConstraints)) { | ||||
|             return false; | ||||
|         } | ||||
|         CalendarConstraints calendarConstraints = (CalendarConstraints) obj; | ||||
|         return this.start.equals(calendarConstraints.start) && this.end.equals(calendarConstraints.end) && ObjectsCompat.equals(this.openAt, calendarConstraints.openAt) && this.firstDayOfWeek == calendarConstraints.firstDayOfWeek && this.validator.equals(calendarConstraints.validator); | ||||
|     } | ||||
|  | ||||
|     public int hashCode() { | ||||
|         return Arrays.hashCode(new Object[]{this.start, this.end, this.openAt, Integer.valueOf(this.firstDayOfWeek), this.validator}); | ||||
|     } | ||||
|  | ||||
|     @Override // android.os.Parcelable | ||||
|     public void writeToParcel(Parcel parcel, int i) { | ||||
|         parcel.writeParcelable(this.start, 0); | ||||
|         parcel.writeParcelable(this.end, 0); | ||||
|         parcel.writeParcelable(this.openAt, 0); | ||||
|         parcel.writeParcelable(this.validator, 0); | ||||
|         parcel.writeInt(this.firstDayOfWeek); | ||||
|     } | ||||
|  | ||||
|     Month clamp(Month month) { | ||||
|         return month.compareTo(this.start) < 0 ? this.start : month.compareTo(this.end) > 0 ? this.end : month; | ||||
|     } | ||||
|  | ||||
|     public static final class Builder { | ||||
|         private static final String DEEP_COPY_VALIDATOR_KEY = "DEEP_COPY_VALIDATOR_KEY"; | ||||
|         private long end; | ||||
|         private int firstDayOfWeek; | ||||
|         private Long openAt; | ||||
|         private long start; | ||||
|         private DateValidator validator; | ||||
|         static final long DEFAULT_START = UtcDates.canonicalYearMonthDay(Month.create(1900, 0).timeInMillis); | ||||
|         static final long DEFAULT_END = UtcDates.canonicalYearMonthDay(Month.create(2100, 11).timeInMillis); | ||||
|  | ||||
|         public Builder setEnd(long j) { | ||||
|             this.end = j; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder setFirstDayOfWeek(int i) { | ||||
|             this.firstDayOfWeek = i; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder setStart(long j) { | ||||
|             this.start = j; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder() { | ||||
|             this.start = DEFAULT_START; | ||||
|             this.end = DEFAULT_END; | ||||
|             this.validator = DateValidatorPointForward.from(Long.MIN_VALUE); | ||||
|         } | ||||
|  | ||||
|         Builder(CalendarConstraints calendarConstraints) { | ||||
|             this.start = DEFAULT_START; | ||||
|             this.end = DEFAULT_END; | ||||
|             this.validator = DateValidatorPointForward.from(Long.MIN_VALUE); | ||||
|             this.start = calendarConstraints.start.timeInMillis; | ||||
|             this.end = calendarConstraints.end.timeInMillis; | ||||
|             this.openAt = Long.valueOf(calendarConstraints.openAt.timeInMillis); | ||||
|             this.firstDayOfWeek = calendarConstraints.firstDayOfWeek; | ||||
|             this.validator = calendarConstraints.validator; | ||||
|         } | ||||
|  | ||||
|         public Builder setOpenAt(long j) { | ||||
|             this.openAt = Long.valueOf(j); | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public Builder setValidator(DateValidator dateValidator) { | ||||
|             Objects.requireNonNull(dateValidator, "validator cannot be null"); | ||||
|             this.validator = dateValidator; | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public CalendarConstraints build() { | ||||
|             Bundle bundle = new Bundle(); | ||||
|             bundle.putParcelable(DEEP_COPY_VALIDATOR_KEY, this.validator); | ||||
|             Month create = Month.create(this.start); | ||||
|             Month create2 = Month.create(this.end); | ||||
|             DateValidator dateValidator = (DateValidator) bundle.getParcelable(DEEP_COPY_VALIDATOR_KEY); | ||||
|             Long l = this.openAt; | ||||
|             return new CalendarConstraints(create, create2, dateValidator, l == null ? null : Month.create(l.longValue()), this.firstDayOfWeek); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user