final int year = position / MONTHS_IN_YEAR + mController.getMinYear(); drawingParams.put(MonthView.VIEW_PARAMS_YEAR, year); drawingParams.put(MonthView.VIEW_PARAMS_MONTH, month); drawingParams.put(MonthView.VIEW_PARAMS_WEEK_START, mController.getFirstDayOfWeek()); v.setMonthParams(drawingParams); v.invalidate();
@Override public int getCount() { return ((mController.getMaxYear() - mController.getMinYear()) + 1) * MONTHS_IN_YEAR; }
@Override public void onDateChanged() { mAdapter.notifyDataSetChanged(); postSetSelectionCentered(mController.getSelectedDay().year - mController.getMinYear()); }
/** * Maintains the same hour/min/sec but moves the day to the tapped day. * * @param day The day that was tapped */ protected void onDayTapped(CalendarDay day) { mController.tryVibrate(); mController.onDayOfMonthSelected(day.year, day.month, day.day); setSelectedDay(day); } }
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mController.tryVibrate(); TextViewWithCircularIndicator clickedView = (TextViewWithCircularIndicator) view; if (clickedView != null) { if (clickedView != mSelectedView) { if (mSelectedView != null) { mSelectedView.drawIndicator(false); mSelectedView.requestLayout(); } clickedView.drawIndicator(true); clickedView.requestLayout(); mSelectedView = clickedView; } mController.onYearSelected(getYearFromTextView(clickedView)); mAdapter.notifyDataSetChanged(); } }
@Override public void onDateChanged() { goTo(mController.getSelectedDay(), false, true, true); }
public void setController(DatePickerController controller) { mController = controller; mController.registerOnDateChangedListener(this); refreshAdapter(); onDateChanged(); }
int year = firstVisiblePosition / 12 + mController.getMinYear(); CalendarDay day = new CalendarDay(year, month, 1);
private boolean isBeforeMin(int year, int month, int day) { if (mController == null) { return false; } Calendar minDate = mController.getMinDate(); if (minDate == null) { return false; } if (year < minDate.get(Calendar.YEAR)) { return true; } else if (year > minDate.get(Calendar.YEAR)) { return false; } if (month < minDate.get(Calendar.MONTH)) { return true; } else if (month > minDate.get(Calendar.MONTH)) { return false; } if (day < minDate.get(Calendar.DAY_OF_MONTH)) { return true; } else { return false; } }
private boolean isAfterMax(int year, int month, int day) { if (mController == null) { return false; } Calendar maxDate = mController.getMaxDate(); if (maxDate == null) { return false; } if (year > maxDate.get(Calendar.YEAR)) { return true; } else if (year < maxDate.get(Calendar.YEAR)) { return false; } if (month > maxDate.get(Calendar.MONTH)) { return true; } else if (month < maxDate.get(Calendar.MONTH)) { return false; } if (day > maxDate.get(Calendar.DAY_OF_MONTH)) { return true; } else { return false; } }
/** * Maintains the same hour/min/sec but moves the day to the tapped day. * * @param day The day that was tapped */ protected void onDayTapped(CalendarDay day) { mController.tryVibrate(); mController.onDayOfMonthSelected(day.year, day.month, day.day); setSelectedDay(day); } }
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mController.tryVibrate(); TextViewWithCircularIndicator clickedView = (TextViewWithCircularIndicator) view; if (clickedView != null) { if (clickedView != mSelectedView) { if (mSelectedView != null) { mSelectedView.drawIndicator(false); mSelectedView.requestLayout(); } clickedView.drawIndicator(true); clickedView.requestLayout(); mSelectedView = clickedView; } mController.onYearSelected(getYearFromTextView(clickedView)); mAdapter.notifyDataSetChanged(); } }
public MonthAdapter(Context context, DatePickerController controller) { mContext = context; mController = controller; init(); setSelectedDay(mController.getSelectedDay()); }
/** * @param context */ public YearPickerView(Context context, DatePickerController controller) { super(context); mController = controller; mController.registerOnDateChangedListener(this); ViewGroup.LayoutParams frame = new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); setLayoutParams(frame); Resources res = context.getResources(); mViewSize = res.getDimensionPixelOffset(R.dimen.date_picker_view_animator_height); mChildSize = res.getDimensionPixelOffset(R.dimen.year_label_height); setVerticalFadingEdgeEnabled(true); setFadingEdgeLength(mChildSize / 3); init(context); setOnItemClickListener(this); setSelector(new StateListDrawable()); setDividerHeight(0); onDateChanged(); }
final int position = (day.year - mController.getMinYear())
private void init(Context context) { ArrayList<String> years = new ArrayList<String>(); for (int year = mController.getMinYear(); year <= mController.getMaxYear(); year++) { years.add(String.format("%d", year)); } mAdapter = new YearAdapter(context, R.layout.year_label_text_view, years); setAdapter(mAdapter); }
@Override public void onDateChanged() { mAdapter.notifyDataSetChanged(); postSetSelectionCentered(mController.getSelectedDay().year - mController.getMinYear()); }
final int year = position / MONTHS_IN_YEAR + mController.getMinYear(); drawingParams.put(MonthView.VIEW_PARAMS_YEAR, year); drawingParams.put(MonthView.VIEW_PARAMS_MONTH, month); drawingParams.put(MonthView.VIEW_PARAMS_WEEK_START, mController.getFirstDayOfWeek()); v.setMonthParams(drawingParams); v.invalidate();
@Override public View getView(int position, View convertView, ViewGroup parent) { TextViewWithCircularIndicator v = (TextViewWithCircularIndicator) super.getView(position, convertView, parent); v.requestLayout(); int year = getYearFromTextView(v); boolean selected = mController.getSelectedDay().year == year; v.drawIndicator(selected); if (selected) { mSelectedView = v; } return v; } }
public void setController(DatePickerController controller) { mController = controller; mController.registerOnDateChangedListener(this); refreshAdapter(); onDateChanged(); }