@Override public void onDateChanged() { mAdapter.notifyDataSetChanged(); postSetSelectionCentered(mController.getSelectedDay().year - mController.getMinYear()); }
public void setController(DatePickerController controller) { mController = controller; mController.registerOnDateChangedListener(this); refreshAdapter(); onDateChanged(); }
public MonthAdapter(Context context, DatePickerController controller) { mContext = context; mController = controller; init(); setSelectedDay(mController.getSelectedDay()); }
/** * Creates a new adapter if necessary and sets up its parameters. Override * this method to provide a custom adapter. */ protected void refreshAdapter() { if (mAdapter == null) { mAdapter = createMonthAdapter(getContext(), mController); } else { mAdapter.setSelectedDay(mSelectedDay); } // refresh the view with the new parameters setAdapter(mAdapter); }
/** * 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); } }
/** * Called when the user clicks on a day. Handles callbacks to the * {@link OnDayClickListener} if one is set. * * @param day The day that was clicked */ private void onDayClick(int day) { if (mOnDayClickListener != null) { mOnDayClickListener.onDayClick(this, new CalendarDay(mYear, mMonth, day)); } // This is a no-op if accessibility is turned off. mTouchHelper.sendEventForVirtualView(day, AccessibilityEvent.TYPE_VIEW_CLICKED); }
public void postSetSelection(final int position) { clearFocus(); post(new Runnable() { @Override public void run() { setSelection(position); } }); onScrollStateChanged(this, OnScrollListener.SCROLL_STATE_IDLE); }
@Override protected void onDraw(Canvas canvas) { drawMonthTitle(canvas); drawMonthDayLabels(canvas); drawMonthNums(canvas); }
@Override public void onClick(View v) { tryVibrate(); if (mCallBack != null) { mCallBack.onDateCleared(DatePickerDialog.this); } dismiss(); } });
/** * @return The date that has accessibility focus, or {@code null} if no date * has focus */ public CalendarDay getAccessibilityFocus() { final int day = mTouchHelper.getFocusedVirtualView(); if (day >= 0) { return new CalendarDay(mYear, mMonth, day); } return null; }
@Override public void onDateChanged() { goTo(mController.getSelectedDay(), false, true, true); }
@Override public void run() { setSelectionFromTop(position, offset); requestLayout(); } });
public DayPickerView(Context context, DatePickerController controller) { super(context); init(context); setController(controller); }
@Override public void run() { setSelection(position); } });
private int calculateNumRows() { int offset = findDayOffset(); int dividend = (offset + mNumCells) / mNumDays; int remainder = (offset + mNumCells) % mNumDays; return (dividend + (remainder > 0 ? 1 : 0)); }
/** * Sets the month displayed at the top of this view based on time. Override * to add custom events when the title is changed. */ protected void setMonthDisplayed(CalendarDay date) { mCurrentMonthDisplayed = date.month; invalidateViews(); }
/** * Updates the selected day and related parameters. * * @param day The day to highlight */ public void setSelectedDay(CalendarDay day) { mSelectedDay = day; notifyDataSetChanged(); }
@Override protected int getVirtualViewAt(float x, float y) { final int day = getDayFromLocation(x, y); if (day >= 0) { return day; } return ExploreByTouchHelper.INVALID_ID; }
@Override public void onScrollStateChanged(AbsListView view, int scrollState) { // use a post to prevent re-entering onScrollStateChanged before it // exits mScrollStateChangedRunnable.doScrollStateChange(view, scrollState); }
@Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { mWidth = w; // Invalidate cached accessibility information. mTouchHelper.invalidateRoot(); }