package com.google.android.material.datepicker; import android.content.Context; import android.content.res.Resources; import android.graphics.Canvas; import android.os.Bundle; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.GridView; import android.widget.ListAdapter; import androidx.core.util.Pair; import androidx.core.view.AccessibilityDelegateCompat; import androidx.core.view.ViewCompat; import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.PagerSnapHelper; import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.R; import com.google.android.material.button.MaterialButton; import java.util.Calendar; import java.util.Iterator; /* loaded from: classes2.dex */ public final class MaterialCalendar extends PickerFragment { private static final String CALENDAR_CONSTRAINTS_KEY = "CALENDAR_CONSTRAINTS_KEY"; private static final String CURRENT_MONTH_KEY = "CURRENT_MONTH_KEY"; private static final String DAY_VIEW_DECORATOR_KEY = "DAY_VIEW_DECORATOR_KEY"; private static final String GRID_SELECTOR_KEY = "GRID_SELECTOR_KEY"; private static final int SMOOTH_SCROLL_MAX = 3; private static final String THEME_RES_ID_KEY = "THEME_RES_ID_KEY"; private CalendarConstraints calendarConstraints; private CalendarSelector calendarSelector; private CalendarStyle calendarStyle; private Month current; private DateSelector dateSelector; private View dayFrame; private DayViewDecorator dayViewDecorator; private View monthNext; private View monthPrev; private RecyclerView recyclerView; private int themeResId; private View yearFrame; private RecyclerView yearSelector; static final Object MONTHS_VIEW_GROUP_TAG = "MONTHS_VIEW_GROUP_TAG"; static final Object NAVIGATION_PREV_TAG = "NAVIGATION_PREV_TAG"; static final Object NAVIGATION_NEXT_TAG = "NAVIGATION_NEXT_TAG"; static final Object SELECTOR_TOGGLE_TAG = "SELECTOR_TOGGLE_TAG"; /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes2.dex */ public enum CalendarSelector { DAY, YEAR } /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes2.dex */ public interface OnDayClickListener { void onDayClick(long j); } /* JADX INFO: Access modifiers changed from: package-private */ public CalendarConstraints getCalendarConstraints() { return this.calendarConstraints; } /* JADX INFO: Access modifiers changed from: package-private */ public CalendarStyle getCalendarStyle() { return this.calendarStyle; } /* JADX INFO: Access modifiers changed from: package-private */ public Month getCurrentMonth() { return this.current; } @Override // com.google.android.material.datepicker.PickerFragment public DateSelector getDateSelector() { return this.dateSelector; } public static MaterialCalendar newInstance(DateSelector dateSelector, int i, CalendarConstraints calendarConstraints) { return newInstance(dateSelector, i, calendarConstraints, null); } public static MaterialCalendar newInstance(DateSelector dateSelector, int i, CalendarConstraints calendarConstraints, DayViewDecorator dayViewDecorator) { MaterialCalendar materialCalendar = new MaterialCalendar<>(); Bundle bundle = new Bundle(); bundle.putInt(THEME_RES_ID_KEY, i); bundle.putParcelable(GRID_SELECTOR_KEY, dateSelector); bundle.putParcelable(CALENDAR_CONSTRAINTS_KEY, calendarConstraints); bundle.putParcelable(DAY_VIEW_DECORATOR_KEY, dayViewDecorator); bundle.putParcelable(CURRENT_MONTH_KEY, calendarConstraints.getOpenAt()); materialCalendar.setArguments(bundle); return materialCalendar; } @Override // androidx.fragment.app.Fragment public void onSaveInstanceState(Bundle bundle) { super.onSaveInstanceState(bundle); bundle.putInt(THEME_RES_ID_KEY, this.themeResId); bundle.putParcelable(GRID_SELECTOR_KEY, this.dateSelector); bundle.putParcelable(CALENDAR_CONSTRAINTS_KEY, this.calendarConstraints); bundle.putParcelable(DAY_VIEW_DECORATOR_KEY, this.dayViewDecorator); bundle.putParcelable(CURRENT_MONTH_KEY, this.current); } @Override // androidx.fragment.app.Fragment public void onCreate(Bundle bundle) { super.onCreate(bundle); if (bundle == null) { bundle = getArguments(); } this.themeResId = bundle.getInt(THEME_RES_ID_KEY); this.dateSelector = (DateSelector) bundle.getParcelable(GRID_SELECTOR_KEY); this.calendarConstraints = (CalendarConstraints) bundle.getParcelable(CALENDAR_CONSTRAINTS_KEY); this.dayViewDecorator = (DayViewDecorator) bundle.getParcelable(DAY_VIEW_DECORATOR_KEY); this.current = (Month) bundle.getParcelable(CURRENT_MONTH_KEY); } @Override // androidx.fragment.app.Fragment public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) { int i; final int i2; ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(getContext(), this.themeResId); this.calendarStyle = new CalendarStyle(contextThemeWrapper); LayoutInflater cloneInContext = layoutInflater.cloneInContext(contextThemeWrapper); Month start = this.calendarConstraints.getStart(); if (MaterialDatePicker.isFullscreen(contextThemeWrapper)) { i = R.layout.mtrl_calendar_vertical; i2 = 1; } else { i = R.layout.mtrl_calendar_horizontal; i2 = 0; } View inflate = cloneInContext.inflate(i, viewGroup, false); inflate.setMinimumHeight(getDialogPickerHeight(requireContext())); GridView gridView = (GridView) inflate.findViewById(R.id.mtrl_calendar_days_of_week); ViewCompat.setAccessibilityDelegate(gridView, new AccessibilityDelegateCompat() { // from class: com.google.android.material.datepicker.MaterialCalendar.1 @Override // androidx.core.view.AccessibilityDelegateCompat public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) { super.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat); accessibilityNodeInfoCompat.setCollectionInfo(null); } }); int firstDayOfWeek = this.calendarConstraints.getFirstDayOfWeek(); gridView.setAdapter((ListAdapter) (firstDayOfWeek > 0 ? new DaysOfWeekAdapter(firstDayOfWeek) : new DaysOfWeekAdapter())); gridView.setNumColumns(start.daysInWeek); gridView.setEnabled(false); this.recyclerView = (RecyclerView) inflate.findViewById(R.id.mtrl_calendar_months); this.recyclerView.setLayoutManager(new SmoothCalendarLayoutManager(getContext(), i2, false) { // from class: com.google.android.material.datepicker.MaterialCalendar.2 /* JADX INFO: Access modifiers changed from: protected */ @Override // androidx.recyclerview.widget.LinearLayoutManager public void calculateExtraLayoutSpace(RecyclerView.State state, int[] iArr) { if (i2 == 0) { iArr[0] = MaterialCalendar.this.recyclerView.getWidth(); iArr[1] = MaterialCalendar.this.recyclerView.getWidth(); } else { iArr[0] = MaterialCalendar.this.recyclerView.getHeight(); iArr[1] = MaterialCalendar.this.recyclerView.getHeight(); } } }); this.recyclerView.setTag(MONTHS_VIEW_GROUP_TAG); MonthsPagerAdapter monthsPagerAdapter = new MonthsPagerAdapter(contextThemeWrapper, this.dateSelector, this.calendarConstraints, this.dayViewDecorator, new OnDayClickListener() { // from class: com.google.android.material.datepicker.MaterialCalendar.3 /* JADX WARN: Multi-variable type inference failed */ @Override // com.google.android.material.datepicker.MaterialCalendar.OnDayClickListener public void onDayClick(long j) { if (MaterialCalendar.this.calendarConstraints.getDateValidator().isValid(j)) { MaterialCalendar.this.dateSelector.select(j); Iterator> it = MaterialCalendar.this.onSelectionChangedListeners.iterator(); while (it.hasNext()) { it.next().onSelectionChanged(MaterialCalendar.this.dateSelector.getSelection()); } MaterialCalendar.this.recyclerView.getAdapter().notifyDataSetChanged(); if (MaterialCalendar.this.yearSelector != null) { MaterialCalendar.this.yearSelector.getAdapter().notifyDataSetChanged(); } } } }); this.recyclerView.setAdapter(monthsPagerAdapter); int integer = contextThemeWrapper.getResources().getInteger(R.integer.mtrl_calendar_year_selector_span); RecyclerView recyclerView = (RecyclerView) inflate.findViewById(R.id.mtrl_calendar_year_selector_frame); this.yearSelector = recyclerView; if (recyclerView != null) { recyclerView.setHasFixedSize(true); this.yearSelector.setLayoutManager(new GridLayoutManager((Context) contextThemeWrapper, integer, 1, false)); this.yearSelector.setAdapter(new YearGridAdapter(this)); this.yearSelector.addItemDecoration(createItemDecoration()); } if (inflate.findViewById(R.id.month_navigation_fragment_toggle) != null) { addActionsToMonthNavigation(inflate, monthsPagerAdapter); } if (!MaterialDatePicker.isFullscreen(contextThemeWrapper)) { new PagerSnapHelper().attachToRecyclerView(this.recyclerView); } this.recyclerView.scrollToPosition(monthsPagerAdapter.getPosition(this.current)); setUpForAccessibility(); return inflate; } private void setUpForAccessibility() { ViewCompat.setAccessibilityDelegate(this.recyclerView, new AccessibilityDelegateCompat() { // from class: com.google.android.material.datepicker.MaterialCalendar.4 @Override // androidx.core.view.AccessibilityDelegateCompat public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) { super.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat); accessibilityNodeInfoCompat.setScrollable(false); } }); } private RecyclerView.ItemDecoration createItemDecoration() { return new RecyclerView.ItemDecoration() { // from class: com.google.android.material.datepicker.MaterialCalendar.5 private final Calendar startItem = UtcDates.getUtcCalendar(); private final Calendar endItem = UtcDates.getUtcCalendar(); @Override // androidx.recyclerview.widget.RecyclerView.ItemDecoration public void onDraw(Canvas canvas, RecyclerView recyclerView, RecyclerView.State state) { int width; if ((recyclerView.getAdapter() instanceof YearGridAdapter) && (recyclerView.getLayoutManager() instanceof GridLayoutManager)) { YearGridAdapter yearGridAdapter = (YearGridAdapter) recyclerView.getAdapter(); GridLayoutManager gridLayoutManager = (GridLayoutManager) recyclerView.getLayoutManager(); for (Pair pair : MaterialCalendar.this.dateSelector.getSelectedRanges()) { if (pair.first != null && pair.second != null) { this.startItem.setTimeInMillis(pair.first.longValue()); this.endItem.setTimeInMillis(pair.second.longValue()); int positionForYear = yearGridAdapter.getPositionForYear(this.startItem.get(1)); int positionForYear2 = yearGridAdapter.getPositionForYear(this.endItem.get(1)); View findViewByPosition = gridLayoutManager.findViewByPosition(positionForYear); View findViewByPosition2 = gridLayoutManager.findViewByPosition(positionForYear2); int spanCount = positionForYear / gridLayoutManager.getSpanCount(); int spanCount2 = positionForYear2 / gridLayoutManager.getSpanCount(); int i = spanCount; while (i <= spanCount2) { View findViewByPosition3 = gridLayoutManager.findViewByPosition(gridLayoutManager.getSpanCount() * i); if (findViewByPosition3 != null) { int top = findViewByPosition3.getTop() + MaterialCalendar.this.calendarStyle.year.getTopInset(); int bottom = findViewByPosition3.getBottom() - MaterialCalendar.this.calendarStyle.year.getBottomInset(); int left = (i != spanCount || findViewByPosition == null) ? 0 : findViewByPosition.getLeft() + (findViewByPosition.getWidth() / 2); if (i == spanCount2 && findViewByPosition2 != null) { width = findViewByPosition2.getLeft() + (findViewByPosition2.getWidth() / 2); } else { width = recyclerView.getWidth(); } canvas.drawRect(left, top, width, bottom, MaterialCalendar.this.calendarStyle.rangeFill); } i++; } } } } } }; } /* JADX INFO: Access modifiers changed from: package-private */ public void setCurrentMonth(Month month) { MonthsPagerAdapter monthsPagerAdapter = (MonthsPagerAdapter) this.recyclerView.getAdapter(); int position = monthsPagerAdapter.getPosition(month); int position2 = position - monthsPagerAdapter.getPosition(this.current); boolean z = Math.abs(position2) > 3; boolean z2 = position2 > 0; this.current = month; if (z && z2) { this.recyclerView.scrollToPosition(position - 3); postSmoothRecyclerViewScroll(position); } else if (z) { this.recyclerView.scrollToPosition(position + 3); postSmoothRecyclerViewScroll(position); } else { postSmoothRecyclerViewScroll(position); } } /* JADX INFO: Access modifiers changed from: package-private */ public static int getDayHeight(Context context) { return context.getResources().getDimensionPixelSize(R.dimen.mtrl_calendar_day_height); } /* JADX INFO: Access modifiers changed from: package-private */ public void setSelector(CalendarSelector calendarSelector) { this.calendarSelector = calendarSelector; if (calendarSelector == CalendarSelector.YEAR) { this.yearSelector.getLayoutManager().scrollToPosition(((YearGridAdapter) this.yearSelector.getAdapter()).getPositionForYear(this.current.year)); this.yearFrame.setVisibility(0); this.dayFrame.setVisibility(8); this.monthPrev.setVisibility(8); this.monthNext.setVisibility(8); return; } if (calendarSelector == CalendarSelector.DAY) { this.yearFrame.setVisibility(8); this.dayFrame.setVisibility(0); this.monthPrev.setVisibility(0); this.monthNext.setVisibility(0); setCurrentMonth(this.current); } } void toggleVisibleSelector() { if (this.calendarSelector == CalendarSelector.YEAR) { setSelector(CalendarSelector.DAY); } else if (this.calendarSelector == CalendarSelector.DAY) { setSelector(CalendarSelector.YEAR); } } private void addActionsToMonthNavigation(View view, final MonthsPagerAdapter monthsPagerAdapter) { final MaterialButton materialButton = (MaterialButton) view.findViewById(R.id.month_navigation_fragment_toggle); materialButton.setTag(SELECTOR_TOGGLE_TAG); ViewCompat.setAccessibilityDelegate(materialButton, new AccessibilityDelegateCompat() { // from class: com.google.android.material.datepicker.MaterialCalendar.6 @Override // androidx.core.view.AccessibilityDelegateCompat public void onInitializeAccessibilityNodeInfo(View view2, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) { String string; super.onInitializeAccessibilityNodeInfo(view2, accessibilityNodeInfoCompat); if (MaterialCalendar.this.dayFrame.getVisibility() == 0) { string = MaterialCalendar.this.getString(R.string.mtrl_picker_toggle_to_year_selection); } else { string = MaterialCalendar.this.getString(R.string.mtrl_picker_toggle_to_day_selection); } accessibilityNodeInfoCompat.setHintText(string); } }); View findViewById = view.findViewById(R.id.month_navigation_previous); this.monthPrev = findViewById; findViewById.setTag(NAVIGATION_PREV_TAG); View findViewById2 = view.findViewById(R.id.month_navigation_next); this.monthNext = findViewById2; findViewById2.setTag(NAVIGATION_NEXT_TAG); this.yearFrame = view.findViewById(R.id.mtrl_calendar_year_selector_frame); this.dayFrame = view.findViewById(R.id.mtrl_calendar_day_selector_frame); setSelector(CalendarSelector.DAY); materialButton.setText(this.current.getLongName()); this.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { // from class: com.google.android.material.datepicker.MaterialCalendar.7 @Override // androidx.recyclerview.widget.RecyclerView.OnScrollListener public void onScrolled(RecyclerView recyclerView, int i, int i2) { int findLastVisibleItemPosition; if (i < 0) { findLastVisibleItemPosition = MaterialCalendar.this.getLayoutManager().findFirstVisibleItemPosition(); } else { findLastVisibleItemPosition = MaterialCalendar.this.getLayoutManager().findLastVisibleItemPosition(); } MaterialCalendar.this.current = monthsPagerAdapter.getPageMonth(findLastVisibleItemPosition); materialButton.setText(monthsPagerAdapter.getPageTitle(findLastVisibleItemPosition)); } @Override // androidx.recyclerview.widget.RecyclerView.OnScrollListener public void onScrollStateChanged(RecyclerView recyclerView, int i) { if (i == 0) { recyclerView.announceForAccessibility(materialButton.getText()); } } }); materialButton.setOnClickListener(new View.OnClickListener() { // from class: com.google.android.material.datepicker.MaterialCalendar.8 @Override // android.view.View.OnClickListener public void onClick(View view2) { MaterialCalendar.this.toggleVisibleSelector(); } }); this.monthNext.setOnClickListener(new View.OnClickListener() { // from class: com.google.android.material.datepicker.MaterialCalendar.9 @Override // android.view.View.OnClickListener public void onClick(View view2) { int findFirstVisibleItemPosition = MaterialCalendar.this.getLayoutManager().findFirstVisibleItemPosition() + 1; if (findFirstVisibleItemPosition < MaterialCalendar.this.recyclerView.getAdapter().getItemCount()) { MaterialCalendar.this.setCurrentMonth(monthsPagerAdapter.getPageMonth(findFirstVisibleItemPosition)); } } }); this.monthPrev.setOnClickListener(new View.OnClickListener() { // from class: com.google.android.material.datepicker.MaterialCalendar.10 @Override // android.view.View.OnClickListener public void onClick(View view2) { int findLastVisibleItemPosition = MaterialCalendar.this.getLayoutManager().findLastVisibleItemPosition() - 1; if (findLastVisibleItemPosition >= 0) { MaterialCalendar.this.setCurrentMonth(monthsPagerAdapter.getPageMonth(findLastVisibleItemPosition)); } } }); } private void postSmoothRecyclerViewScroll(final int i) { this.recyclerView.post(new Runnable() { // from class: com.google.android.material.datepicker.MaterialCalendar.11 @Override // java.lang.Runnable public void run() { MaterialCalendar.this.recyclerView.smoothScrollToPosition(i); } }); } private static int getDialogPickerHeight(Context context) { Resources resources = context.getResources(); return resources.getDimensionPixelSize(R.dimen.mtrl_calendar_navigation_height) + resources.getDimensionPixelOffset(R.dimen.mtrl_calendar_navigation_top_padding) + resources.getDimensionPixelOffset(R.dimen.mtrl_calendar_navigation_bottom_padding) + resources.getDimensionPixelSize(R.dimen.mtrl_calendar_days_of_week_height) + (MonthAdapter.MAXIMUM_WEEKS * resources.getDimensionPixelSize(R.dimen.mtrl_calendar_day_height)) + ((MonthAdapter.MAXIMUM_WEEKS - 1) * resources.getDimensionPixelOffset(R.dimen.mtrl_calendar_month_vertical_padding)) + resources.getDimensionPixelOffset(R.dimen.mtrl_calendar_bottom_padding); } LinearLayoutManager getLayoutManager() { return (LinearLayoutManager) this.recyclerView.getLayoutManager(); } @Override // com.google.android.material.datepicker.PickerFragment public boolean addOnSelectionChangedListener(OnSelectionChangedListener onSelectionChangedListener) { return super.addOnSelectionChangedListener(onSelectionChangedListener); } }