From 6914850ab64e984c9163dd62142025c122da3db4 Mon Sep 17 00:00:00 2001 From: "charles.anderson" Date: Fri, 10 Apr 2015 14:35:53 -0400 Subject: [PATCH] Add year only option. --- .../fourmob/datetimepicker/date/DatePickerDialog.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/datetimepicker-library/src/com/fourmob/datetimepicker/date/DatePickerDialog.java b/datetimepicker-library/src/com/fourmob/datetimepicker/date/DatePickerDialog.java index 1698147..f829869 100644 --- a/datetimepicker-library/src/com/fourmob/datetimepicker/date/DatePickerDialog.java +++ b/datetimepicker-library/src/com/fourmob/datetimepicker/date/DatePickerDialog.java @@ -59,6 +59,8 @@ public class DatePickerDialog extends DialogFragment implements View.OnClickList private HashSet mListeners = new HashSet(); private OnDateSetListener mCallBack; + private boolean mYearOnly = false; + private AccessibleDateAnimator mAnimator; private boolean mDelayAnimation = true; private long mLastVibrate; @@ -108,6 +110,7 @@ public static DatePickerDialog newInstance(OnDateSetListener onDateSetListener, return datePickerDialog; } + public void setYearOnly(boolean yearOnly) { mYearOnly = yearOnly; } public void setVibrate(boolean vibrate) { mVibrate = vibrate; @@ -314,6 +317,7 @@ public void onClick(View view) { mYearPickerView.postSetSelectionFromTop(listPosition, listPositionOffset); } } + setCurrentView(mYearOnly ? YEAR_VIEW : MONTH_AND_DAY_VIEW); return view; } @@ -348,9 +352,9 @@ public void onSaveInstanceState(Bundle bundle) { bundle.putInt(KEY_CURRENT_VIEW, mCurrentView); int listPosition = -1; - if (mCurrentView == 0) { + if (mCurrentView == MONTH_AND_DAY_VIEW) { listPosition = mDayPickerView.getMostVisiblePosition(); - } if (mCurrentView == 1) { + } if (mCurrentView == YEAR_VIEW) { listPosition = mYearPickerView.getFirstVisiblePosition(); bundle.putInt(KEY_LIST_POSITION_OFFSET, mYearPickerView.getFirstPositionOffset()); } @@ -362,6 +366,8 @@ public void onYearSelected(int year) { adjustDayInMonthIfNeeded(mCalendar.get(Calendar.MONTH), year); mCalendar.set(Calendar.YEAR, year); updatePickers(); + if (mYearOnly) + onDoneButtonClick(); setCurrentView(MONTH_AND_DAY_VIEW); updateDisplay(true); }