Rabbit-R1/android (non root)/java/sources/com/google/android/material/datepicker/MonthsPagerAdapter.java
2024-05-21 17:08:36 -04:00

118 lines
5.7 KiB
Java

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: classes2.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;
/* JADX INFO: Access modifiers changed from: package-private */
public 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);
}
/* loaded from: classes2.dex */
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();
}
/* JADX INFO: Access modifiers changed from: package-private */
public CharSequence getPageTitle(int i) {
return getPageMonth(i).getLongName();
}
/* JADX INFO: Access modifiers changed from: package-private */
public Month getPageMonth(int i) {
return this.calendarConstraints.getStart().monthsLater(i);
}
/* JADX INFO: Access modifiers changed from: package-private */
public int getPosition(Month month) {
return this.calendarConstraints.getStart().monthsUntil(month);
}
}