79 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			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;
 | |
|     }
 | |
| }
 |