.class public final Lcom/google/android/material/datepicker/MaterialCalendar; .super Lcom/google/android/material/datepicker/PickerFragment; .source "MaterialCalendar.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/google/android/material/datepicker/MaterialCalendar$OnDayClickListener;, Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "Lcom/google/android/material/datepicker/PickerFragment<", "TS;>;" } .end annotation # static fields .field private static final CALENDAR_CONSTRAINTS_KEY:Ljava/lang/String; = "CALENDAR_CONSTRAINTS_KEY" .field private static final CURRENT_MONTH_KEY:Ljava/lang/String; = "CURRENT_MONTH_KEY" .field private static final GRID_SELECTOR_KEY:Ljava/lang/String; = "GRID_SELECTOR_KEY" .field static final MONTHS_VIEW_GROUP_TAG:Ljava/lang/Object; .field static final NAVIGATION_NEXT_TAG:Ljava/lang/Object; .field static final NAVIGATION_PREV_TAG:Ljava/lang/Object; .field static final SELECTOR_TOGGLE_TAG:Ljava/lang/Object; .field private static final SMOOTH_SCROLL_MAX:I = 0x3 .field private static final THEME_RES_ID_KEY:Ljava/lang/String; = "THEME_RES_ID_KEY" # instance fields .field private calendarConstraints:Lcom/google/android/material/datepicker/CalendarConstraints; .field private calendarSelector:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; .field private calendarStyle:Lcom/google/android/material/datepicker/CalendarStyle; .field private current:Lcom/google/android/material/datepicker/Month; .field private dateSelector:Lcom/google/android/material/datepicker/DateSelector; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/google/android/material/datepicker/DateSelector<", "TS;>;" } .end annotation .end field .field private dayFrame:Landroid/view/View; .field private recyclerView:Landroidx/recyclerview/widget/RecyclerView; .field private themeResId:I .field private yearFrame:Landroid/view/View; .field private yearSelector:Landroidx/recyclerview/widget/RecyclerView; # direct methods .method static constructor ()V .locals 1 const-string v0, "MONTHS_VIEW_GROUP_TAG" .line 74 sput-object v0, Lcom/google/android/material/datepicker/MaterialCalendar;->MONTHS_VIEW_GROUP_TAG:Ljava/lang/Object; const-string v0, "NAVIGATION_PREV_TAG" .line 76 sput-object v0, Lcom/google/android/material/datepicker/MaterialCalendar;->NAVIGATION_PREV_TAG:Ljava/lang/Object; const-string v0, "NAVIGATION_NEXT_TAG" .line 78 sput-object v0, Lcom/google/android/material/datepicker/MaterialCalendar;->NAVIGATION_NEXT_TAG:Ljava/lang/Object; const-string v0, "SELECTOR_TOGGLE_TAG" .line 80 sput-object v0, Lcom/google/android/material/datepicker/MaterialCalendar;->SELECTOR_TOGGLE_TAG:Ljava/lang/Object; return-void .end method .method public constructor ()V .locals 0 .line 60 invoke-direct {p0}, Lcom/google/android/material/datepicker/PickerFragment;->()V return-void .end method .method static synthetic access$000(Lcom/google/android/material/datepicker/MaterialCalendar;)Landroidx/recyclerview/widget/RecyclerView; .locals 0 .line 60 iget-object p0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; return-object p0 .end method .method static synthetic access$100(Lcom/google/android/material/datepicker/MaterialCalendar;)Lcom/google/android/material/datepicker/CalendarConstraints; .locals 0 .line 60 iget-object p0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarConstraints:Lcom/google/android/material/datepicker/CalendarConstraints; return-object p0 .end method .method static synthetic access$200(Lcom/google/android/material/datepicker/MaterialCalendar;)Lcom/google/android/material/datepicker/DateSelector; .locals 0 .line 60 iget-object p0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->dateSelector:Lcom/google/android/material/datepicker/DateSelector; return-object p0 .end method .method static synthetic access$300(Lcom/google/android/material/datepicker/MaterialCalendar;)Landroidx/recyclerview/widget/RecyclerView; .locals 0 .line 60 iget-object p0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->yearSelector:Landroidx/recyclerview/widget/RecyclerView; return-object p0 .end method .method static synthetic access$400(Lcom/google/android/material/datepicker/MaterialCalendar;)Lcom/google/android/material/datepicker/CalendarStyle; .locals 0 .line 60 iget-object p0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarStyle:Lcom/google/android/material/datepicker/CalendarStyle; return-object p0 .end method .method static synthetic access$500(Lcom/google/android/material/datepicker/MaterialCalendar;)Landroid/view/View; .locals 0 .line 60 iget-object p0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->dayFrame:Landroid/view/View; return-object p0 .end method .method static synthetic access$602(Lcom/google/android/material/datepicker/MaterialCalendar;Lcom/google/android/material/datepicker/Month;)Lcom/google/android/material/datepicker/Month; .locals 0 .line 60 iput-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->current:Lcom/google/android/material/datepicker/Month; return-object p1 .end method .method private addActionsToMonthNavigation(Landroid/view/View;Lcom/google/android/material/datepicker/MonthsPagerAdapter;)V .locals 4 .line 366 sget v0, Lcom/google/android/material/R$id;->month_navigation_fragment_toggle:I invoke-virtual {p1, v0}, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object v0 check-cast v0, Lcom/google/android/material/button/MaterialButton; .line 367 sget-object v1, Lcom/google/android/material/datepicker/MaterialCalendar;->SELECTOR_TOGGLE_TAG:Ljava/lang/Object; invoke-virtual {v0, v1}, Lcom/google/android/material/button/MaterialButton;->setTag(Ljava/lang/Object;)V .line 368 new-instance v1, Lcom/google/android/material/datepicker/MaterialCalendar$5; invoke-direct {v1, p0}, Lcom/google/android/material/datepicker/MaterialCalendar$5;->(Lcom/google/android/material/datepicker/MaterialCalendar;)V invoke-static {v0, v1}, Landroidx/core/view/ViewCompat;->setAccessibilityDelegate(Landroid/view/View;Landroidx/core/view/AccessibilityDelegateCompat;)V .line 383 sget v1, Lcom/google/android/material/R$id;->month_navigation_previous:I invoke-virtual {p1, v1}, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object v1 check-cast v1, Lcom/google/android/material/button/MaterialButton; .line 384 sget-object v2, Lcom/google/android/material/datepicker/MaterialCalendar;->NAVIGATION_PREV_TAG:Ljava/lang/Object; invoke-virtual {v1, v2}, Lcom/google/android/material/button/MaterialButton;->setTag(Ljava/lang/Object;)V .line 385 sget v2, Lcom/google/android/material/R$id;->month_navigation_next:I invoke-virtual {p1, v2}, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object v2 check-cast v2, Lcom/google/android/material/button/MaterialButton; .line 386 sget-object v3, Lcom/google/android/material/datepicker/MaterialCalendar;->NAVIGATION_NEXT_TAG:Ljava/lang/Object; invoke-virtual {v2, v3}, Lcom/google/android/material/button/MaterialButton;->setTag(Ljava/lang/Object;)V .line 388 sget v3, Lcom/google/android/material/R$id;->mtrl_calendar_year_selector_frame:I invoke-virtual {p1, v3}, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object v3 iput-object v3, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->yearFrame:Landroid/view/View; .line 389 sget v3, Lcom/google/android/material/R$id;->mtrl_calendar_day_selector_frame:I invoke-virtual {p1, v3}, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object v3 iput-object v3, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->dayFrame:Landroid/view/View; .line 390 sget-object v3, Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;->DAY:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; invoke-virtual {p0, v3}, Lcom/google/android/material/datepicker/MaterialCalendar;->setSelector(Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;)V .line 391 iget-object v3, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->current:Lcom/google/android/material/datepicker/Month; invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; move-result-object p1 invoke-virtual {v3, p1}, Lcom/google/android/material/datepicker/Month;->getLongName(Landroid/content/Context;)Ljava/lang/String; move-result-object p1 invoke-virtual {v0, p1}, Lcom/google/android/material/button/MaterialButton;->setText(Ljava/lang/CharSequence;)V .line 392 iget-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; new-instance v3, Lcom/google/android/material/datepicker/MaterialCalendar$6; invoke-direct {v3, p0, p2, v0}, Lcom/google/android/material/datepicker/MaterialCalendar$6;->(Lcom/google/android/material/datepicker/MaterialCalendar;Lcom/google/android/material/datepicker/MonthsPagerAdapter;Lcom/google/android/material/button/MaterialButton;)V invoke-virtual {p1, v3}, Landroidx/recyclerview/widget/RecyclerView;->addOnScrollListener(Landroidx/recyclerview/widget/RecyclerView$OnScrollListener;)V .line 419 new-instance p1, Lcom/google/android/material/datepicker/MaterialCalendar$7; invoke-direct {p1, p0}, Lcom/google/android/material/datepicker/MaterialCalendar$7;->(Lcom/google/android/material/datepicker/MaterialCalendar;)V invoke-virtual {v0, p1}, Lcom/google/android/material/button/MaterialButton;->setOnClickListener(Landroid/view/View$OnClickListener;)V .line 427 new-instance p1, Lcom/google/android/material/datepicker/MaterialCalendar$8; invoke-direct {p1, p0, p2}, Lcom/google/android/material/datepicker/MaterialCalendar$8;->(Lcom/google/android/material/datepicker/MaterialCalendar;Lcom/google/android/material/datepicker/MonthsPagerAdapter;)V invoke-virtual {v2, p1}, Lcom/google/android/material/button/MaterialButton;->setOnClickListener(Landroid/view/View$OnClickListener;)V .line 437 new-instance p1, Lcom/google/android/material/datepicker/MaterialCalendar$9; invoke-direct {p1, p0, p2}, Lcom/google/android/material/datepicker/MaterialCalendar$9;->(Lcom/google/android/material/datepicker/MaterialCalendar;Lcom/google/android/material/datepicker/MonthsPagerAdapter;)V invoke-virtual {v1, p1}, Lcom/google/android/material/button/MaterialButton;->setOnClickListener(Landroid/view/View$OnClickListener;)V return-void .end method .method private createItemDecoration()Landroidx/recyclerview/widget/RecyclerView$ItemDecoration; .locals 1 .line 232 new-instance v0, Lcom/google/android/material/datepicker/MaterialCalendar$4; invoke-direct {v0, p0}, Lcom/google/android/material/datepicker/MaterialCalendar$4;->(Lcom/google/android/material/datepicker/MaterialCalendar;)V return-object v0 .end method .method static getDayHeight(Landroid/content/Context;)I .locals 1 .line 335 invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object p0 sget v0, Lcom/google/android/material/R$dimen;->mtrl_calendar_day_height:I invoke-virtual {p0, v0}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result p0 return p0 .end method .method public static newInstance(Lcom/google/android/material/datepicker/DateSelector;ILcom/google/android/material/datepicker/CalendarConstraints;)Lcom/google/android/material/datepicker/MaterialCalendar; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/android/material/datepicker/DateSelector<", "TT;>;I", "Lcom/google/android/material/datepicker/CalendarConstraints;", ")", "Lcom/google/android/material/datepicker/MaterialCalendar<", "TT;>;" } .end annotation .line 98 new-instance v0, Lcom/google/android/material/datepicker/MaterialCalendar; invoke-direct {v0}, Lcom/google/android/material/datepicker/MaterialCalendar;->()V .line 99 new-instance v1, Landroid/os/Bundle; invoke-direct {v1}, Landroid/os/Bundle;->()V const-string v2, "THEME_RES_ID_KEY" .line 100 invoke-virtual {v1, v2, p1}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V const-string p1, "GRID_SELECTOR_KEY" .line 101 invoke-virtual {v1, p1, p0}, Landroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V const-string p0, "CALENDAR_CONSTRAINTS_KEY" .line 102 invoke-virtual {v1, p0, p2}, Landroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V .line 103 invoke-virtual {p2}, Lcom/google/android/material/datepicker/CalendarConstraints;->getOpenAt()Lcom/google/android/material/datepicker/Month; move-result-object p0 const-string p1, "CURRENT_MONTH_KEY" invoke-virtual {v1, p1, p0}, Landroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V .line 104 invoke-virtual {v0, v1}, Lcom/google/android/material/datepicker/MaterialCalendar;->setArguments(Landroid/os/Bundle;)V return-object v0 .end method .method private postSmoothRecyclerViewScroll(I)V .locals 2 .line 450 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; new-instance v1, Lcom/google/android/material/datepicker/MaterialCalendar$10; invoke-direct {v1, p0, p1}, Lcom/google/android/material/datepicker/MaterialCalendar$10;->(Lcom/google/android/material/datepicker/MaterialCalendar;I)V invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/RecyclerView;->post(Ljava/lang/Runnable;)Z return-void .end method # virtual methods .method public addOnSelectionChangedListener(Lcom/google/android/material/datepicker/OnSelectionChangedListener;)Z .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/android/material/datepicker/OnSelectionChangedListener<", "TS;>;)Z" } .end annotation .line 466 invoke-super {p0, p1}, Lcom/google/android/material/datepicker/PickerFragment;->addOnSelectionChangedListener(Lcom/google/android/material/datepicker/OnSelectionChangedListener;)Z move-result p1 return p1 .end method .method getCalendarConstraints()Lcom/google/android/material/datepicker/CalendarConstraints; .locals 1 .line 290 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarConstraints:Lcom/google/android/material/datepicker/CalendarConstraints; return-object v0 .end method .method getCalendarStyle()Lcom/google/android/material/datepicker/CalendarStyle; .locals 1 .line 324 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarStyle:Lcom/google/android/material/datepicker/CalendarStyle; return-object v0 .end method .method getCurrentMonth()Lcom/google/android/material/datepicker/Month; .locals 1 .line 284 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->current:Lcom/google/android/material/datepicker/Month; return-object v0 .end method .method public getDateSelector()Lcom/google/android/material/datepicker/DateSelector; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lcom/google/android/material/datepicker/DateSelector<", "TS;>;" } .end annotation .line 320 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->dateSelector:Lcom/google/android/material/datepicker/DateSelector; return-object v0 .end method .method getLayoutManager()Landroidx/recyclerview/widget/LinearLayoutManager; .locals 1 .line 461 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager; move-result-object v0 check-cast v0, Landroidx/recyclerview/widget/LinearLayoutManager; return-object v0 .end method .method public onCreate(Landroid/os/Bundle;)V .locals 1 .line 119 invoke-super {p0, p1}, Lcom/google/android/material/datepicker/PickerFragment;->onCreate(Landroid/os/Bundle;)V if-nez p1, :cond_0 .line 120 invoke-virtual {p0}, Lcom/google/android/material/datepicker/MaterialCalendar;->getArguments()Landroid/os/Bundle; move-result-object p1 :cond_0 const-string v0, "THEME_RES_ID_KEY" .line 121 invoke-virtual {p1, v0}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I move-result v0 iput v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->themeResId:I const-string v0, "GRID_SELECTOR_KEY" .line 122 invoke-virtual {p1, v0}, Landroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable; move-result-object v0 check-cast v0, Lcom/google/android/material/datepicker/DateSelector; iput-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->dateSelector:Lcom/google/android/material/datepicker/DateSelector; const-string v0, "CALENDAR_CONSTRAINTS_KEY" .line 123 invoke-virtual {p1, v0}, Landroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable; move-result-object v0 check-cast v0, Lcom/google/android/material/datepicker/CalendarConstraints; iput-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarConstraints:Lcom/google/android/material/datepicker/CalendarConstraints; const-string v0, "CURRENT_MONTH_KEY" .line 124 invoke-virtual {p1, v0}, Landroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable; move-result-object p1 check-cast p1, Lcom/google/android/material/datepicker/Month; iput-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->current:Lcom/google/android/material/datepicker/Month; return-void .end method .method public onCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View; .locals 10 .line 133 new-instance p3, Landroid/view/ContextThemeWrapper; invoke-virtual {p0}, Lcom/google/android/material/datepicker/MaterialCalendar;->getContext()Landroid/content/Context; move-result-object v0 iget v1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->themeResId:I invoke-direct {p3, v0, v1}, Landroid/view/ContextThemeWrapper;->(Landroid/content/Context;I)V .line 134 new-instance v0, Lcom/google/android/material/datepicker/CalendarStyle; invoke-direct {v0, p3}, Lcom/google/android/material/datepicker/CalendarStyle;->(Landroid/content/Context;)V iput-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarStyle:Lcom/google/android/material/datepicker/CalendarStyle; .line 135 invoke-virtual {p1, p3}, Landroid/view/LayoutInflater;->cloneInContext(Landroid/content/Context;)Landroid/view/LayoutInflater; move-result-object p1 .line 137 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarConstraints:Lcom/google/android/material/datepicker/CalendarConstraints; invoke-virtual {v0}, Lcom/google/android/material/datepicker/CalendarConstraints;->getStart()Lcom/google/android/material/datepicker/Month; move-result-object v0 .line 141 invoke-static {p3}, Lcom/google/android/material/datepicker/MaterialDatePicker;->isFullscreen(Landroid/content/Context;)Z move-result v1 const/4 v2, 0x1 const/4 v3, 0x0 if-eqz v1, :cond_0 .line 142 sget v1, Lcom/google/android/material/R$layout;->mtrl_calendar_vertical:I move v9, v2 goto :goto_0 .line 145 :cond_0 sget v1, Lcom/google/android/material/R$layout;->mtrl_calendar_horizontal:I move v9, v3 .line 149 :goto_0 invoke-virtual {p1, v1, p2, v3}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View; move-result-object p1 .line 150 sget p2, Lcom/google/android/material/R$id;->mtrl_calendar_days_of_week:I invoke-virtual {p1, p2}, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object p2 check-cast p2, Landroid/widget/GridView; .line 151 new-instance v1, Lcom/google/android/material/datepicker/MaterialCalendar$1; invoke-direct {v1, p0}, Lcom/google/android/material/datepicker/MaterialCalendar$1;->(Lcom/google/android/material/datepicker/MaterialCalendar;)V invoke-static {p2, v1}, Landroidx/core/view/ViewCompat;->setAccessibilityDelegate(Landroid/view/View;Landroidx/core/view/AccessibilityDelegateCompat;)V .line 162 new-instance v1, Lcom/google/android/material/datepicker/DaysOfWeekAdapter; invoke-direct {v1}, Lcom/google/android/material/datepicker/DaysOfWeekAdapter;->()V invoke-virtual {p2, v1}, Landroid/widget/GridView;->setAdapter(Landroid/widget/ListAdapter;)V .line 163 iget v0, v0, Lcom/google/android/material/datepicker/Month;->daysInWeek:I invoke-virtual {p2, v0}, Landroid/widget/GridView;->setNumColumns(I)V .line 164 invoke-virtual {p2, v3}, Landroid/widget/GridView;->setEnabled(Z)V .line 166 sget p2, Lcom/google/android/material/R$id;->mtrl_calendar_months:I invoke-virtual {p1, p2}, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object p2 check-cast p2, Landroidx/recyclerview/widget/RecyclerView; iput-object p2, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; .line 168 new-instance p2, Lcom/google/android/material/datepicker/MaterialCalendar$2; .line 169 invoke-virtual {p0}, Lcom/google/android/material/datepicker/MaterialCalendar;->getContext()Landroid/content/Context; move-result-object v6 const/4 v8, 0x0 move-object v4, p2 move-object v5, p0 move v7, v9 invoke-direct/range {v4 .. v9}, Lcom/google/android/material/datepicker/MaterialCalendar$2;->(Lcom/google/android/material/datepicker/MaterialCalendar;Landroid/content/Context;IZI)V .line 181 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; invoke-virtual {v0, p2}, Landroidx/recyclerview/widget/RecyclerView;->setLayoutManager(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)V .line 182 iget-object p2, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; sget-object v0, Lcom/google/android/material/datepicker/MaterialCalendar;->MONTHS_VIEW_GROUP_TAG:Ljava/lang/Object; invoke-virtual {p2, v0}, Landroidx/recyclerview/widget/RecyclerView;->setTag(Ljava/lang/Object;)V .line 184 new-instance p2, Lcom/google/android/material/datepicker/MonthsPagerAdapter; iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->dateSelector:Lcom/google/android/material/datepicker/DateSelector; iget-object v1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarConstraints:Lcom/google/android/material/datepicker/CalendarConstraints; new-instance v4, Lcom/google/android/material/datepicker/MaterialCalendar$3; invoke-direct {v4, p0}, Lcom/google/android/material/datepicker/MaterialCalendar$3;->(Lcom/google/android/material/datepicker/MaterialCalendar;)V invoke-direct {p2, p3, v0, v1, v4}, Lcom/google/android/material/datepicker/MonthsPagerAdapter;->(Landroid/content/Context;Lcom/google/android/material/datepicker/DateSelector;Lcom/google/android/material/datepicker/CalendarConstraints;Lcom/google/android/material/datepicker/MaterialCalendar$OnDayClickListener;)V .line 206 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; invoke-virtual {v0, p2}, Landroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V .line 209 invoke-virtual {p3}, Landroid/view/ContextThemeWrapper;->getResources()Landroid/content/res/Resources; move-result-object v0 sget v1, Lcom/google/android/material/R$integer;->mtrl_calendar_year_selector_span:I invoke-virtual {v0, v1}, Landroid/content/res/Resources;->getInteger(I)I move-result v0 .line 210 sget v1, Lcom/google/android/material/R$id;->mtrl_calendar_year_selector_frame:I invoke-virtual {p1, v1}, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object v1 check-cast v1, Landroidx/recyclerview/widget/RecyclerView; iput-object v1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->yearSelector:Landroidx/recyclerview/widget/RecyclerView; if-eqz v1, :cond_1 .line 212 invoke-virtual {v1, v2}, Landroidx/recyclerview/widget/RecyclerView;->setHasFixedSize(Z)V .line 213 iget-object v1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->yearSelector:Landroidx/recyclerview/widget/RecyclerView; new-instance v4, Landroidx/recyclerview/widget/GridLayoutManager; invoke-direct {v4, p3, v0, v2, v3}, Landroidx/recyclerview/widget/GridLayoutManager;->(Landroid/content/Context;IIZ)V invoke-virtual {v1, v4}, Landroidx/recyclerview/widget/RecyclerView;->setLayoutManager(Landroidx/recyclerview/widget/RecyclerView$LayoutManager;)V .line 215 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->yearSelector:Landroidx/recyclerview/widget/RecyclerView; new-instance v1, Lcom/google/android/material/datepicker/YearGridAdapter; invoke-direct {v1, p0}, Lcom/google/android/material/datepicker/YearGridAdapter;->(Lcom/google/android/material/datepicker/MaterialCalendar;)V invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V .line 216 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->yearSelector:Landroidx/recyclerview/widget/RecyclerView; invoke-direct {p0}, Lcom/google/android/material/datepicker/MaterialCalendar;->createItemDecoration()Landroidx/recyclerview/widget/RecyclerView$ItemDecoration; move-result-object v1 invoke-virtual {v0, v1}, Landroidx/recyclerview/widget/RecyclerView;->addItemDecoration(Landroidx/recyclerview/widget/RecyclerView$ItemDecoration;)V .line 219 :cond_1 sget v0, Lcom/google/android/material/R$id;->month_navigation_fragment_toggle:I invoke-virtual {p1, v0}, Landroid/view/View;->findViewById(I)Landroid/view/View; move-result-object v0 if-eqz v0, :cond_2 .line 220 invoke-direct {p0, p1, p2}, Lcom/google/android/material/datepicker/MaterialCalendar;->addActionsToMonthNavigation(Landroid/view/View;Lcom/google/android/material/datepicker/MonthsPagerAdapter;)V .line 223 :cond_2 invoke-static {p3}, Lcom/google/android/material/datepicker/MaterialDatePicker;->isFullscreen(Landroid/content/Context;)Z move-result p3 if-nez p3, :cond_3 .line 224 new-instance p3, Landroidx/recyclerview/widget/PagerSnapHelper; invoke-direct {p3}, Landroidx/recyclerview/widget/PagerSnapHelper;->()V iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; invoke-virtual {p3, v0}, Landroidx/recyclerview/widget/PagerSnapHelper;->attachToRecyclerView(Landroidx/recyclerview/widget/RecyclerView;)V .line 226 :cond_3 iget-object p3, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->current:Lcom/google/android/material/datepicker/Month; invoke-virtual {p2, v0}, Lcom/google/android/material/datepicker/MonthsPagerAdapter;->getPosition(Lcom/google/android/material/datepicker/Month;)I move-result p2 invoke-virtual {p3, p2}, Landroidx/recyclerview/widget/RecyclerView;->scrollToPosition(I)V return-object p1 .end method .method public onSaveInstanceState(Landroid/os/Bundle;)V .locals 2 .line 110 invoke-super {p0, p1}, Lcom/google/android/material/datepicker/PickerFragment;->onSaveInstanceState(Landroid/os/Bundle;)V .line 111 iget v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->themeResId:I const-string v1, "THEME_RES_ID_KEY" invoke-virtual {p1, v1, v0}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V .line 112 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->dateSelector:Lcom/google/android/material/datepicker/DateSelector; const-string v1, "GRID_SELECTOR_KEY" invoke-virtual {p1, v1, v0}, Landroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V .line 113 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarConstraints:Lcom/google/android/material/datepicker/CalendarConstraints; const-string v1, "CALENDAR_CONSTRAINTS_KEY" invoke-virtual {p1, v1, v0}, Landroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V .line 114 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->current:Lcom/google/android/material/datepicker/Month; const-string v1, "CURRENT_MONTH_KEY" invoke-virtual {p1, v1, v0}, Landroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V return-void .end method .method setCurrentMonth(Lcom/google/android/material/datepicker/Month;)V .locals 6 .line 300 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object v0 check-cast v0, Lcom/google/android/material/datepicker/MonthsPagerAdapter; .line 301 invoke-virtual {v0, p1}, Lcom/google/android/material/datepicker/MonthsPagerAdapter;->getPosition(Lcom/google/android/material/datepicker/Month;)I move-result v1 .line 302 iget-object v2, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->current:Lcom/google/android/material/datepicker/Month; invoke-virtual {v0, v2}, Lcom/google/android/material/datepicker/MonthsPagerAdapter;->getPosition(Lcom/google/android/material/datepicker/Month;)I move-result v0 sub-int v0, v1, v0 .line 303 invoke-static {v0}, Ljava/lang/Math;->abs(I)I move-result v2 const/4 v3, 0x1 const/4 v4, 0x0 const/4 v5, 0x3 if-le v2, v5, :cond_0 move v2, v3 goto :goto_0 :cond_0 move v2, v4 :goto_0 if-lez v0, :cond_1 goto :goto_1 :cond_1 move v3, v4 .line 305 :goto_1 iput-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->current:Lcom/google/android/material/datepicker/Month; if-eqz v2, :cond_2 if-eqz v3, :cond_2 .line 307 iget-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; add-int/lit8 v0, v1, -0x3 invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView;->scrollToPosition(I)V .line 308 invoke-direct {p0, v1}, Lcom/google/android/material/datepicker/MaterialCalendar;->postSmoothRecyclerViewScroll(I)V goto :goto_2 :cond_2 if-eqz v2, :cond_3 .line 310 iget-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->recyclerView:Landroidx/recyclerview/widget/RecyclerView; add-int/lit8 v0, v1, 0x3 invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView;->scrollToPosition(I)V .line 311 invoke-direct {p0, v1}, Lcom/google/android/material/datepicker/MaterialCalendar;->postSmoothRecyclerViewScroll(I)V goto :goto_2 .line 313 :cond_3 invoke-direct {p0, v1}, Lcom/google/android/material/datepicker/MaterialCalendar;->postSmoothRecyclerViewScroll(I)V :goto_2 return-void .end method .method setSelector(Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;)V .locals 4 .line 339 iput-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarSelector:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; .line 340 sget-object v0, Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;->YEAR:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; const/16 v1, 0x8 const/4 v2, 0x0 if-ne p1, v0, :cond_0 .line 341 iget-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->yearSelector:Landroidx/recyclerview/widget/RecyclerView; .line 342 invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getLayoutManager()Landroidx/recyclerview/widget/RecyclerView$LayoutManager; move-result-object p1 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->yearSelector:Landroidx/recyclerview/widget/RecyclerView; .line 344 invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object v0 check-cast v0, Lcom/google/android/material/datepicker/YearGridAdapter; iget-object v3, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->current:Lcom/google/android/material/datepicker/Month; iget v3, v3, Lcom/google/android/material/datepicker/Month;->year:I invoke-virtual {v0, v3}, Lcom/google/android/material/datepicker/YearGridAdapter;->getPositionForYear(I)I move-result v0 .line 343 invoke-virtual {p1, v0}, Landroidx/recyclerview/widget/RecyclerView$LayoutManager;->scrollToPosition(I)V .line 345 iget-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->yearFrame:Landroid/view/View; invoke-virtual {p1, v2}, Landroid/view/View;->setVisibility(I)V .line 346 iget-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->dayFrame:Landroid/view/View; invoke-virtual {p1, v1}, Landroid/view/View;->setVisibility(I)V goto :goto_0 .line 347 :cond_0 sget-object v0, Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;->DAY:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; if-ne p1, v0, :cond_1 .line 348 iget-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->yearFrame:Landroid/view/View; invoke-virtual {p1, v1}, Landroid/view/View;->setVisibility(I)V .line 349 iget-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->dayFrame:Landroid/view/View; invoke-virtual {p1, v2}, Landroid/view/View;->setVisibility(I)V .line 352 iget-object p1, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->current:Lcom/google/android/material/datepicker/Month; invoke-virtual {p0, p1}, Lcom/google/android/material/datepicker/MaterialCalendar;->setCurrentMonth(Lcom/google/android/material/datepicker/Month;)V :cond_1 :goto_0 return-void .end method .method toggleVisibleSelector()V .locals 2 .line 357 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarSelector:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; sget-object v1, Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;->YEAR:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; if-ne v0, v1, :cond_0 .line 358 sget-object v0, Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;->DAY:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; invoke-virtual {p0, v0}, Lcom/google/android/material/datepicker/MaterialCalendar;->setSelector(Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;)V goto :goto_0 .line 359 :cond_0 iget-object v0, p0, Lcom/google/android/material/datepicker/MaterialCalendar;->calendarSelector:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; sget-object v1, Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;->DAY:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; if-ne v0, v1, :cond_1 .line 360 sget-object v0, Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;->YEAR:Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector; invoke-virtual {p0, v0}, Lcom/google/android/material/datepicker/MaterialCalendar;->setSelector(Lcom/google/android/material/datepicker/MaterialCalendar$CalendarSelector;)V :cond_1 :goto_0 return-void .end method