ADD week 5
This commit is contained in:
		| @@ -0,0 +1,113 @@ | ||||
| package com.google.android.material.datepicker; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import android.widget.AdapterView; | ||||
| import android.widget.LinearLayout; | ||||
| import android.widget.ListAdapter; | ||||
| import android.widget.TextView; | ||||
| import androidx.core.view.ViewCompat; | ||||
| import androidx.recyclerview.widget.RecyclerView; | ||||
| import com.google.android.material.R; | ||||
| import com.google.android.material.datepicker.MaterialCalendar; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| class MonthsPagerAdapter extends RecyclerView.Adapter<ViewHolder> { | ||||
|     private final CalendarConstraints calendarConstraints; | ||||
|     private final DateSelector<?> dateSelector; | ||||
|     private final DayViewDecorator dayViewDecorator; | ||||
|     private final int itemHeight; | ||||
|     private final MaterialCalendar.OnDayClickListener onDayClickListener; | ||||
|  | ||||
|     MonthsPagerAdapter(Context context, DateSelector<?> dateSelector, CalendarConstraints calendarConstraints, DayViewDecorator dayViewDecorator, MaterialCalendar.OnDayClickListener onDayClickListener) { | ||||
|         Month start = calendarConstraints.getStart(); | ||||
|         Month end = calendarConstraints.getEnd(); | ||||
|         Month openAt = calendarConstraints.getOpenAt(); | ||||
|         if (start.compareTo(openAt) > 0) { | ||||
|             throw new IllegalArgumentException("firstPage cannot be after currentPage"); | ||||
|         } | ||||
|         if (openAt.compareTo(end) > 0) { | ||||
|             throw new IllegalArgumentException("currentPage cannot be after lastPage"); | ||||
|         } | ||||
|         this.itemHeight = (MonthAdapter.MAXIMUM_WEEKS * MaterialCalendar.getDayHeight(context)) + (MaterialDatePicker.isFullscreen(context) ? MaterialCalendar.getDayHeight(context) : 0); | ||||
|         this.calendarConstraints = calendarConstraints; | ||||
|         this.dateSelector = dateSelector; | ||||
|         this.dayViewDecorator = dayViewDecorator; | ||||
|         this.onDayClickListener = onDayClickListener; | ||||
|         setHasStableIds(true); | ||||
|     } | ||||
|  | ||||
|     public static class ViewHolder extends RecyclerView.ViewHolder { | ||||
|         final MaterialCalendarGridView monthGrid; | ||||
|         final TextView monthTitle; | ||||
|  | ||||
|         ViewHolder(LinearLayout linearLayout, boolean z) { | ||||
|             super(linearLayout); | ||||
|             TextView textView = (TextView) linearLayout.findViewById(R.id.month_title); | ||||
|             this.monthTitle = textView; | ||||
|             ViewCompat.setAccessibilityHeading(textView, true); | ||||
|             this.monthGrid = (MaterialCalendarGridView) linearLayout.findViewById(R.id.month_grid); | ||||
|             if (z) { | ||||
|                 return; | ||||
|             } | ||||
|             textView.setVisibility(8); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.recyclerview.widget.RecyclerView.Adapter | ||||
|     public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { | ||||
|         LinearLayout linearLayout = (LinearLayout) LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.mtrl_calendar_month_labeled, viewGroup, false); | ||||
|         if (MaterialDatePicker.isFullscreen(viewGroup.getContext())) { | ||||
|             linearLayout.setLayoutParams(new RecyclerView.LayoutParams(-1, this.itemHeight)); | ||||
|             return new ViewHolder(linearLayout, true); | ||||
|         } | ||||
|         return new ViewHolder(linearLayout, false); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.recyclerview.widget.RecyclerView.Adapter | ||||
|     public void onBindViewHolder(ViewHolder viewHolder, int i) { | ||||
|         Month monthsLater = this.calendarConstraints.getStart().monthsLater(i); | ||||
|         viewHolder.monthTitle.setText(monthsLater.getLongName()); | ||||
|         final MaterialCalendarGridView materialCalendarGridView = (MaterialCalendarGridView) viewHolder.monthGrid.findViewById(R.id.month_grid); | ||||
|         if (materialCalendarGridView.getAdapter() != null && monthsLater.equals(materialCalendarGridView.getAdapter().month)) { | ||||
|             materialCalendarGridView.invalidate(); | ||||
|             materialCalendarGridView.getAdapter().updateSelectedStates(materialCalendarGridView); | ||||
|         } else { | ||||
|             MonthAdapter monthAdapter = new MonthAdapter(monthsLater, this.dateSelector, this.calendarConstraints, this.dayViewDecorator); | ||||
|             materialCalendarGridView.setNumColumns(monthsLater.daysInWeek); | ||||
|             materialCalendarGridView.setAdapter((ListAdapter) monthAdapter); | ||||
|         } | ||||
|         materialCalendarGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { // from class: com.google.android.material.datepicker.MonthsPagerAdapter.1 | ||||
|             @Override // android.widget.AdapterView.OnItemClickListener | ||||
|             public void onItemClick(AdapterView<?> adapterView, View view, int i2, long j) { | ||||
|                 if (materialCalendarGridView.getAdapter().withinMonth(i2)) { | ||||
|                     MonthsPagerAdapter.this.onDayClickListener.onDayClick(materialCalendarGridView.getAdapter().getItem(i2).longValue()); | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.recyclerview.widget.RecyclerView.Adapter | ||||
|     public long getItemId(int i) { | ||||
|         return this.calendarConstraints.getStart().monthsLater(i).getStableId(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.recyclerview.widget.RecyclerView.Adapter | ||||
|     public int getItemCount() { | ||||
|         return this.calendarConstraints.getMonthSpan(); | ||||
|     } | ||||
|  | ||||
|     CharSequence getPageTitle(int i) { | ||||
|         return getPageMonth(i).getLongName(); | ||||
|     } | ||||
|  | ||||
|     Month getPageMonth(int i) { | ||||
|         return this.calendarConstraints.getStart().monthsLater(i); | ||||
|     } | ||||
|  | ||||
|     int getPosition(Month month) { | ||||
|         return this.calendarConstraints.getStart().monthsUntil(month); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user