@@ -102,7 +102,7 @@ public static long thisMonthInUtcMilliseconds() {
102102 * <p>The text is updated when the Dialog launches and on user clicks.
103103 */
104104 public String getHeaderText () {
105- return dateSelector .getSelectionDisplayString (getContext ());
105+ return getDateSelector () .getSelectionDisplayString (getContext ());
106106 }
107107
108108 private final LinkedHashSet <MaterialPickerOnPositiveButtonClickListener <? super S >>
@@ -175,7 +175,7 @@ private int getThemeResId(Context context) {
175175 if (overrideThemeResId != 0 ) {
176176 return overrideThemeResId ;
177177 }
178- return dateSelector .getDefaultThemeResId (context );
178+ return getDateSelector () .getDefaultThemeResId (context );
179179 }
180180
181181 @ NonNull
@@ -234,7 +234,7 @@ public final View onCreateView(
234234 initHeaderToggle (context );
235235
236236 confirmButton = root .findViewById (R .id .confirm_button );
237- if (dateSelector .isSelectionComplete ()) {
237+ if (getDateSelector () .isSelectionComplete ()) {
238238 confirmButton .setEnabled (true );
239239 } else {
240240 confirmButton .setEnabled (false );
@@ -320,7 +320,7 @@ public final void onDismiss(@NonNull DialogInterface dialogInterface) {
320320 */
321321 @ Nullable
322322 public final S getSelection () {
323- return dateSelector .getSelection ();
323+ return getDateSelector () .getSelection ();
324324 }
325325
326326 private void updateHeader () {
@@ -332,10 +332,11 @@ private void updateHeader() {
332332
333333 private void startPickerFragment () {
334334 int themeResId = getThemeResId (requireContext ());
335- calendar = MaterialCalendar .newInstance (dateSelector , themeResId , calendarConstraints );
335+ calendar = MaterialCalendar .newInstance (getDateSelector () , themeResId , calendarConstraints );
336336 pickerFragment =
337337 headerToggleButton .isChecked ()
338- ? MaterialTextInputPicker .newInstance (dateSelector , themeResId , calendarConstraints )
338+ ? MaterialTextInputPicker .newInstance (
339+ getDateSelector (), themeResId , calendarConstraints )
339340 : calendar ;
340341 updateHeader ();
341342
@@ -348,7 +349,7 @@ private void startPickerFragment() {
348349 @ Override
349350 public void onSelectionChanged (S selection ) {
350351 updateHeader ();
351- confirmButton .setEnabled (dateSelector .isSelectionComplete ());
352+ confirmButton .setEnabled (getDateSelector () .isSelectionComplete ());
352353 }
353354
354355 @ Override
@@ -372,7 +373,7 @@ private void initHeaderToggle(Context context) {
372373 @ Override
373374 public void onClick (View v ) {
374375 // Update confirm button in case in progress selection has been reset
375- confirmButton .setEnabled (dateSelector .isSelectionComplete ());
376+ confirmButton .setEnabled (getDateSelector () .isSelectionComplete ());
376377
377378 headerToggleButton .toggle ();
378379 updateToggleContentDescription (headerToggleButton );
@@ -389,6 +390,13 @@ private void updateToggleContentDescription(@NonNull CheckableImageButton toggle
389390 headerToggleButton .setContentDescription (contentDescription );
390391 }
391392
393+ private DateSelector <S > getDateSelector () {
394+ if (dateSelector == null ) {
395+ dateSelector = getArguments ().getParcelable (DATE_SELECTOR_KEY );
396+ }
397+ return dateSelector ;
398+ }
399+
392400 // Create StateListDrawable programmatically for pre-lollipop support
393401 @ NonNull
394402 private static Drawable createHeaderToggleDrawable (Context context ) {
0 commit comments