@Override public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(KEY_SELECTED_YEAR, mCalendar.get(Calendar.YEAR)); outState.putInt(KEY_SELECTED_MONTH, mCalendar.get(Calendar.MONTH)); outState.putInt(KEY_SELECTED_DAY, mCalendar.get(Calendar.DAY_OF_MONTH)); outState.putInt(KEY_WEEK_START, mWeekStart); outState.putInt(KEY_YEAR_START, mMinYear); outState.putInt(KEY_YEAR_END, mMaxYear); outState.putInt(KEY_CURRENT_VIEW, mCurrentView); outState.putInt(KEY_SELECTED_YEAR_END, mCalendarEnd.get(Calendar.YEAR)); outState.putInt(KEY_SELECTED_MONTH_END, mCalendarEnd.get(Calendar.MONTH)); outState.putInt(KEY_SELECTED_DAY_END, mCalendarEnd.get(Calendar.DAY_OF_MONTH)); outState.putInt(KEY_WEEK_START_END, mWeekStartEnd); outState.putInt(KEY_YEAR_START_END, mMinYear); outState.putInt(KEY_YEAR_END_END, mMaxYear); outState.putInt(KEY_CURRENT_VIEW_END, mCurrentViewEnd); int listPosition = -1; int listPositionEnd = -1; if (mCurrentView == MONTH_AND_DAY_VIEW || mCurrentViewEnd == MONTH_AND_DAY_VIEW) { listPosition = mDayPickerView.getMostVisiblePosition(); listPositionEnd = mDayPickerViewEnd.getMostVisiblePosition(); } else if (mCurrentView == YEAR_VIEW || mCurrentViewEnd == YEAR_VIEW) { listPosition = mYearPickerView.getFirstVisiblePosition(); listPositionEnd = mYearPickerViewEnd.getFirstVisiblePosition(); outState.putInt(KEY_LIST_POSITION_OFFSET, mYearPickerView.getFirstPositionOffset()); outState.putInt(KEY_LIST_POSITION_OFFSET_END, mYearPickerViewEnd.getFirstPositionOffset()); } outState.putInt(KEY_LIST_POSITION, listPosition); outState.putInt(KEY_LIST_POSITION_END, listPositionEnd); outState.putSerializable(KEY_MIN_DATE, mMinDate); outState.putSerializable(KEY_MAX_DATE, mMaxDate); outState.putSerializable(KEY_MIN_DATE_END, mMinDateEnd); outState.putSerializable(KEY_MAX_DATE_END, mMaxDateEnd); outState.putSerializable(KEY_HIGHLIGHTED_DAYS, highlightedDays); outState.putSerializable(KEY_SELECTABLE_DAYS, selectableDays); outState.putSerializable(KEY_HIGHLIGHTED_DAYS_END, highlightedDaysEnd); outState.putSerializable(KEY_SELECTABLE_DAYS_END, selectableDaysEnd); outState.putBoolean(KEY_THEME_DARK, mThemeDark); outState.putInt(KEY_ACCENT, mAccentColor); outState.putBoolean(KEY_VIBRATE, mVibrate); outState.putBoolean(KEY_DISMISS, mDismissOnPause); }