// Path: app/src/main/java/cn/libery/calendar/MaterialCalendar/format/DayFormatter.java
// public interface DayFormatter {
// 
//     /**
//      * Format a given day into a string
//      *
//      * @param day the day
//      * @return a label for the day
//      */
//     @NonNull
//     String format(@NonNull CalendarDay day);
// 
//     DayFormatter DEFAULT = new DateFormatDayFormatter();
// }
// 
// Path: app/src/main/java/cn/libery/calendar/MaterialCalendar/format/WeekDayFormatter.java
// public interface WeekDayFormatter {
//     /**
//      * Convert a given day of the week into a label
//      *
//      * @param dayOfWeek the day of the week as returned by {@linkplain java.util.Calendar#get(int)} for {@linkplain java.util.Calendar#DAY_OF_YEAR}
//      * @return a label for the day of week
//      */
//     CharSequence format(int dayOfWeek);
// 
//     WeekDayFormatter DEFAULT = new CalendarWeekDayFormatter(CalendarUtils.getInstance());
// }


import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.List;
import cn.libery.calendar.MaterialCalendar.format.DayFormatter;
import cn.libery.calendar.MaterialCalendar.format.WeekDayFormatter;
package cn.libery.calendar.MaterialCalendar;




/**
 * Pager adapter backing the calendar view
 */
class MonthPagerAdapter extends PagerAdapter {

    private final ArrayDeque<MonthView> currentViews;

    private final MaterialCalendarView mcv;
    private final CalendarDay today;

    //private TitleFormatter titleFormatter = null;
    private Integer color = null;
    private Integer dateTextAppearance = null;
    private Integer weekDayTextAppearance = null;
    @MaterialCalendarView.ShowOtherDates
    private int showOtherDates = MaterialCalendarView.SHOW_DEFAULTS;
    private CalendarDay minDate = null;
    private CalendarDay maxDate = null;
    private DateRangeIndex rangeIndex;
    private List<CalendarDay> selectedDates = new ArrayList<>();
    private WeekDayFormatter weekDayFormatter = WeekDayFormatter.DEFAULT;
// Path: app/src/main/java/cn/libery/calendar/MaterialCalendar/format/DayFormatter.java
// public interface DayFormatter {
// 
//     /**
//      * Format a given day into a string
//      *
//      * @param day the day
//      * @return a label for the day
//      */
//     @NonNull
//     String format(@NonNull CalendarDay day);
// 
//     DayFormatter DEFAULT = new DateFormatDayFormatter();
// }
// 
// Path: app/src/main/java/cn/libery/calendar/MaterialCalendar/format/WeekDayFormatter.java
// public interface WeekDayFormatter {
//     /**
//      * Convert a given day of the week into a label
//      *
//      * @param dayOfWeek the day of the week as returned by {@linkplain java.util.Calendar#get(int)} for {@linkplain java.util.Calendar#DAY_OF_YEAR}
//      * @return a label for the day of week
//      */
//     CharSequence format(int dayOfWeek);
// 
//     WeekDayFormatter DEFAULT = new CalendarWeekDayFormatter(CalendarUtils.getInstance());
// }


// Path: app/src/main/java/cn/libery/calendar/MaterialCalendar/MonthPagerAdapter.java
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.List;
import cn.libery.calendar.MaterialCalendar.format.DayFormatter;
import cn.libery.calendar.MaterialCalendar.format.WeekDayFormatter;

package cn.libery.calendar.MaterialCalendar;




/**
 * Pager adapter backing the calendar view
 */
class MonthPagerAdapter extends PagerAdapter {

    private final ArrayDeque<MonthView> currentViews;

    private final MaterialCalendarView mcv;
    private final CalendarDay today;

    //private TitleFormatter titleFormatter = null;
    private Integer color = null;
    private Integer dateTextAppearance = null;
    private Integer weekDayTextAppearance = null;
    @MaterialCalendarView.ShowOtherDates
    private int showOtherDates = MaterialCalendarView.SHOW_DEFAULTS;
    private CalendarDay minDate = null;
    private CalendarDay maxDate = null;
    private DateRangeIndex rangeIndex;
    private List<CalendarDay> selectedDates = new ArrayList<>();
    private WeekDayFormatter weekDayFormatter = WeekDayFormatter.DEFAULT;
    private DayFormatter dayFormatter = DayFormatter.DEFAULT;