ADD week 5
This commit is contained in:
		| @@ -0,0 +1,395 @@ | ||||
| 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: classes.dex */ | ||||
| public final class MaterialCalendar<S> extends PickerFragment<S> { | ||||
|     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<S> 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"; | ||||
|  | ||||
|     enum CalendarSelector { | ||||
|         DAY, | ||||
|         YEAR | ||||
|     } | ||||
|  | ||||
|     interface OnDayClickListener { | ||||
|         void onDayClick(long j); | ||||
|     } | ||||
|  | ||||
|     CalendarConstraints getCalendarConstraints() { | ||||
|         return this.calendarConstraints; | ||||
|     } | ||||
|  | ||||
|     CalendarStyle getCalendarStyle() { | ||||
|         return this.calendarStyle; | ||||
|     } | ||||
|  | ||||
|     Month getCurrentMonth() { | ||||
|         return this.current; | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.datepicker.PickerFragment | ||||
|     public DateSelector<S> getDateSelector() { | ||||
|         return this.dateSelector; | ||||
|     } | ||||
|  | ||||
|     public static <T> MaterialCalendar<T> newInstance(DateSelector<T> dateSelector, int i, CalendarConstraints calendarConstraints) { | ||||
|         return newInstance(dateSelector, i, calendarConstraints, null); | ||||
|     } | ||||
|  | ||||
|     public static <T> MaterialCalendar<T> newInstance(DateSelector<T> dateSelector, int i, CalendarConstraints calendarConstraints, DayViewDecorator dayViewDecorator) { | ||||
|         MaterialCalendar<T> 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 | ||||
|             @Override // androidx.recyclerview.widget.LinearLayoutManager | ||||
|             protected 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<OnSelectionChangedListener<S>> 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<Long, Long> 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++; | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     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); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     static int getDayHeight(Context context) { | ||||
|         return context.getResources().getDimensionPixelSize(R.dimen.mtrl_calendar_day_height); | ||||
|     } | ||||
|  | ||||
|     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<S> onSelectionChangedListener) { | ||||
|         return super.addOnSelectionChangedListener(onSelectionChangedListener); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user