2025-03-31 16:33:42 +02:00

79 lines
3.5 KiB
Java

package com.google.android.material.datepicker;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.R;
import com.google.android.material.datepicker.MaterialCalendar;
import com.google.android.material.timepicker.TimeModel;
import java.util.Calendar;
import java.util.Iterator;
import java.util.Locale;
/* loaded from: classes.dex */
class YearGridAdapter extends RecyclerView.Adapter<ViewHolder> {
private final MaterialCalendar<?> materialCalendar;
public static class ViewHolder extends RecyclerView.ViewHolder {
final TextView textView;
ViewHolder(TextView textView) {
super(textView);
this.textView = textView;
}
}
YearGridAdapter(MaterialCalendar<?> materialCalendar) {
this.materialCalendar = materialCalendar;
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
return new ViewHolder((TextView) LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.mtrl_calendar_year, viewGroup, false));
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public void onBindViewHolder(ViewHolder viewHolder, int i) {
int yearForPosition = getYearForPosition(i);
viewHolder.textView.setText(String.format(Locale.getDefault(), TimeModel.NUMBER_FORMAT, Integer.valueOf(yearForPosition)));
viewHolder.textView.setContentDescription(DateStrings.getYearContentDescription(viewHolder.textView.getContext(), yearForPosition));
CalendarStyle calendarStyle = this.materialCalendar.getCalendarStyle();
Calendar todayCalendar = UtcDates.getTodayCalendar();
CalendarItemStyle calendarItemStyle = todayCalendar.get(1) == yearForPosition ? calendarStyle.todayYear : calendarStyle.year;
Iterator<Long> it = this.materialCalendar.getDateSelector().getSelectedDays().iterator();
while (it.hasNext()) {
todayCalendar.setTimeInMillis(it.next().longValue());
if (todayCalendar.get(1) == yearForPosition) {
calendarItemStyle = calendarStyle.selectedYear;
}
}
calendarItemStyle.styleItem(viewHolder.textView);
viewHolder.textView.setOnClickListener(createYearClickListener(yearForPosition));
}
private View.OnClickListener createYearClickListener(final int i) {
return new View.OnClickListener() { // from class: com.google.android.material.datepicker.YearGridAdapter.1
@Override // android.view.View.OnClickListener
public void onClick(View view) {
YearGridAdapter.this.materialCalendar.setCurrentMonth(YearGridAdapter.this.materialCalendar.getCalendarConstraints().clamp(Month.create(i, YearGridAdapter.this.materialCalendar.getCurrentMonth().month)));
YearGridAdapter.this.materialCalendar.setSelector(MaterialCalendar.CalendarSelector.DAY);
}
};
}
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
public int getItemCount() {
return this.materialCalendar.getCalendarConstraints().getYearSpan();
}
int getPositionForYear(int i) {
return i - this.materialCalendar.getCalendarConstraints().getStart().year;
}
int getYearForPosition(int i) {
return this.materialCalendar.getCalendarConstraints().getStart().year + i;
}
}