diff --git a/library/src/main/java/com/codetroopers/betterpickers/OnDialogDismissListener.java b/library/src/main/java/com/codetroopers/betterpickers/OnDialogDismissListener.java new file mode 100644 index 00000000..951aa5d9 --- /dev/null +++ b/library/src/main/java/com/codetroopers/betterpickers/OnDialogDismissListener.java @@ -0,0 +1,8 @@ +package com.codetroopers.betterpickers; + +import android.content.DialogInterface; + +public interface OnDialogDismissListener { + + void onDialogDismiss(DialogInterface dialoginterface); +} diff --git a/library/src/main/java/com/codetroopers/betterpickers/calendardatepicker/CalendarDatePickerDialogFragment.java b/library/src/main/java/com/codetroopers/betterpickers/calendardatepicker/CalendarDatePickerDialogFragment.java index cb2fff88..641424a3 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/calendardatepicker/CalendarDatePickerDialogFragment.java +++ b/library/src/main/java/com/codetroopers/betterpickers/calendardatepicker/CalendarDatePickerDialogFragment.java @@ -41,6 +41,7 @@ import android.widget.TextView; import com.codetroopers.betterpickers.HapticFeedbackController; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.R; import com.codetroopers.betterpickers.Utils; import com.codetroopers.betterpickers.calendardatepicker.MonthAdapter.CalendarDay; @@ -144,11 +145,6 @@ public interface OnDateChangedListener { public void onDateChanged(); } - public static interface OnDialogDismissListener { - - public abstract void onDialogDismiss(DialogInterface dialoginterface); - } - public CalendarDatePickerDialogFragment() { // Empty constructor required for dialog fragment. mStyleResId = R.style.BetterPickersRadialTimePickerDialog_PrimaryColor; diff --git a/library/src/main/java/com/codetroopers/betterpickers/datepicker/DatePickerBuilder.java b/library/src/main/java/com/codetroopers/betterpickers/datepicker/DatePickerBuilder.java index bd0dff2f..2c20bd7c 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/datepicker/DatePickerBuilder.java +++ b/library/src/main/java/com/codetroopers/betterpickers/datepicker/DatePickerBuilder.java @@ -5,6 +5,7 @@ import android.support.v4.app.FragmentTransaction; import android.util.Log; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.datepicker.DatePickerDialogFragment.DatePickerDialogHandler; import java.util.Vector; @@ -23,6 +24,7 @@ public class DatePickerBuilder { private Boolean yearOptional = false; private int mReference = -1; private Vector mDatePickerDialogHandlers = new Vector(); + private OnDialogDismissListener mOnDismissListener; /** * Attach a FragmentManager. This is required for creation of the Fragment. @@ -141,6 +143,12 @@ public DatePickerBuilder removeDatePickerDialogHandler(DatePickerDialogHandler h return this; } + + public DatePickerBuilder setOnDismissListener(OnDialogDismissListener onDismissListener) { + this.mOnDismissListener = onDismissListener; + return this; + } + /** * Instantiate and show the Picker */ @@ -163,6 +171,7 @@ public void show() { fragment.setTargetFragment(targetFragment, 0); } fragment.setDatePickerDialogHandlers(mDatePickerDialogHandlers); + fragment.setOnDismissListener(mOnDismissListener); fragment.show(ft, "date_dialog"); } } diff --git a/library/src/main/java/com/codetroopers/betterpickers/datepicker/DatePickerDialogFragment.java b/library/src/main/java/com/codetroopers/betterpickers/datepicker/DatePickerDialogFragment.java index 6019ab35..64a5e92e 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/datepicker/DatePickerDialogFragment.java +++ b/library/src/main/java/com/codetroopers/betterpickers/datepicker/DatePickerDialogFragment.java @@ -1,6 +1,7 @@ package com.codetroopers.betterpickers.datepicker; import android.app.Activity; +import android.content.DialogInterface; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.os.Bundle; @@ -11,6 +12,7 @@ import android.view.ViewGroup; import android.widget.Button; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.R; import java.util.Vector; @@ -40,6 +42,7 @@ public class DatePickerDialogFragment extends DialogFragment { private ColorStateList mTextColor; private int mDialogBackgroundResId; private Vector mDatePickerDialogHandlers = new Vector(); + private OnDialogDismissListener mDismissCallback; /** * Create an instance of the Picker (used internally) @@ -52,7 +55,7 @@ public class DatePickerDialogFragment extends DialogFragment { * @return a Picker! */ public static DatePickerDialogFragment newInstance(int reference, int themeResId, Integer monthOfYear, - Integer dayOfMonth, Integer year, Boolean yearOptional) { + Integer dayOfMonth, Integer year, Boolean yearOptional) { final DatePickerDialogFragment frag = new DatePickerDialogFragment(); Bundle args = new Bundle(); args.putInt(REFERENCE_KEY, reference); @@ -160,12 +163,16 @@ public void onClick(View view) { return view; } - /** - * This interface allows objects to register for the Picker's set action. - */ - public interface DatePickerDialogHandler { + @Override + public void onDismiss(DialogInterface dialoginterface) { + super.onDismiss(dialoginterface); + if (mDismissCallback != null) { + mDismissCallback.onDialogDismiss(dialoginterface); + } + } - void onDialogDateSet(int reference, int year, int monthOfYear, int dayOfMonth); + public void setOnDismissListener(OnDialogDismissListener ondialogdismisslistener) { + mDismissCallback = ondialogdismisslistener; } /** @@ -176,4 +183,12 @@ public interface DatePickerDialogHandler { public void setDatePickerDialogHandlers(Vector handlers) { mDatePickerDialogHandlers = handlers; } + + /** + * This interface allows objects to register for the Picker's set action. + */ + public interface DatePickerDialogHandler { + + void onDialogDateSet(int reference, int year, int monthOfYear, int dayOfMonth); + } } \ No newline at end of file diff --git a/library/src/main/java/com/codetroopers/betterpickers/expirationpicker/ExpirationPickerBuilder.java b/library/src/main/java/com/codetroopers/betterpickers/expirationpicker/ExpirationPickerBuilder.java index 1ce5055d..50e769b4 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/expirationpicker/ExpirationPickerBuilder.java +++ b/library/src/main/java/com/codetroopers/betterpickers/expirationpicker/ExpirationPickerBuilder.java @@ -5,6 +5,7 @@ import android.support.v4.app.FragmentTransaction; import android.util.Log; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.expirationpicker.ExpirationPickerDialogFragment.ExpirationPickerDialogHandler; import java.util.Vector; @@ -22,6 +23,7 @@ public class ExpirationPickerBuilder { private Integer year; private int mReference = -1; private Vector mExpirationPickerDialogHandlers = new Vector(); + private OnDialogDismissListener mOnDismissListener; /** * Attach a FragmentManager. This is required for creation of the Fragment. @@ -150,6 +152,12 @@ public void show() { fragment.setTargetFragment(targetFragment, 0); } fragment.setExpirationPickerDialogHandlers(mExpirationPickerDialogHandlers); + fragment.setOnDismissListener(mOnDismissListener); fragment.show(ft, "expiration_dialog"); } + + public ExpirationPickerBuilder setOnDismissListener(OnDialogDismissListener onDismissListener) { + this.mOnDismissListener = onDismissListener; + return this; + } } diff --git a/library/src/main/java/com/codetroopers/betterpickers/expirationpicker/ExpirationPickerDialogFragment.java b/library/src/main/java/com/codetroopers/betterpickers/expirationpicker/ExpirationPickerDialogFragment.java index 05121fd3..52a8dd21 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/expirationpicker/ExpirationPickerDialogFragment.java +++ b/library/src/main/java/com/codetroopers/betterpickers/expirationpicker/ExpirationPickerDialogFragment.java @@ -1,6 +1,7 @@ package com.codetroopers.betterpickers.expirationpicker; import android.app.Activity; +import android.content.DialogInterface; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.os.Bundle; @@ -11,6 +12,7 @@ import android.view.ViewGroup; import android.widget.Button; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.R; import java.util.Vector; @@ -37,6 +39,7 @@ public class ExpirationPickerDialogFragment extends DialogFragment { private int mDialogBackgroundResId; private Vector mExpirationPickerDialogHandlers = new Vector(); private ColorStateList mTextColor; + private OnDialogDismissListener mDismissCallback; /** * Create an instance of the Picker (used internally) @@ -161,6 +164,19 @@ public void onClick(View view) { return view; } + + @Override + public void onDismiss(DialogInterface dialoginterface) { + super.onDismiss(dialoginterface); + if (mDismissCallback != null) { + mDismissCallback.onDialogDismiss(dialoginterface); + } + } + + public void setOnDismissListener(OnDialogDismissListener ondialogdismisslistener) { + mDismissCallback = ondialogdismisslistener; + } + /** * This interface allows objects to register for the Picker's set action. */ diff --git a/library/src/main/java/com/codetroopers/betterpickers/hmspicker/HmsPickerBuilder.java b/library/src/main/java/com/codetroopers/betterpickers/hmspicker/HmsPickerBuilder.java index 1545347b..581cf9bf 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/hmspicker/HmsPickerBuilder.java +++ b/library/src/main/java/com/codetroopers/betterpickers/hmspicker/HmsPickerBuilder.java @@ -5,6 +5,8 @@ import android.support.v4.app.FragmentTransaction; import android.util.Log; +import com.codetroopers.betterpickers.OnDialogDismissListener; + import java.util.Vector; /** @@ -21,6 +23,7 @@ public class HmsPickerBuilder { private int mMinutes; private int mSeconds; private Integer plusMinusVisibility; + private OnDialogDismissListener mOnDismissListener; /** * Set the visibility of the +/- button. This takes an int corresponding to Android's View.VISIBLE, View.INVISIBLE, @@ -171,11 +174,16 @@ public void show() { if ((mHours | mMinutes | mSeconds) != 0) { fragment.setTime(mHours, mMinutes, mSeconds); } - + fragment.setOnDismissListener(mOnDismissListener); fragment.show(ft, "hms_dialog"); } private static int bounded(int i, int min, int max) { return Math.min(Math.max(i, min), max); } + + public HmsPickerBuilder setOnDismissListener(OnDialogDismissListener onDismissListener) { + this.mOnDismissListener = onDismissListener; + return this; + } } diff --git a/library/src/main/java/com/codetroopers/betterpickers/hmspicker/HmsPickerDialogFragment.java b/library/src/main/java/com/codetroopers/betterpickers/hmspicker/HmsPickerDialogFragment.java index 40fab513..0ab44032 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/hmspicker/HmsPickerDialogFragment.java +++ b/library/src/main/java/com/codetroopers/betterpickers/hmspicker/HmsPickerDialogFragment.java @@ -1,6 +1,7 @@ package com.codetroopers.betterpickers.hmspicker; import android.app.Activity; +import android.content.DialogInterface; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.os.Bundle; @@ -11,6 +12,7 @@ import android.view.ViewGroup; import android.widget.Button; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.R; import java.util.Vector; @@ -18,7 +20,7 @@ /** * Dialog to set alarm time. */ - public class HmsPickerDialogFragment extends DialogFragment { +public class HmsPickerDialogFragment extends DialogFragment { private static final String REFERENCE_KEY = "HmsPickerDialogFragment_ReferenceKey"; private static final String THEME_RES_ID_KEY = "HmsPickerDialogFragment_ThemeResIdKey"; @@ -35,6 +37,7 @@ public class HmsPickerDialogFragment extends DialogFragment { private int mMinutes; private int mSeconds; private int mPlusMinusVisibility = View.INVISIBLE; + private OnDialogDismissListener mDismissCallback; /** * Create an instance of the Picker (used internally) @@ -102,7 +105,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, cancelButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - dismiss(); + HmsPickerDialogFragment.this.dismiss(); } }); doneButton.setTextColor(mTextColor); @@ -141,6 +144,19 @@ public void onClick(View view) { return view; } + + @Override + public void onDismiss(DialogInterface dialoginterface) { + super.onDismiss(dialoginterface); + if (mDismissCallback != null) { + mDismissCallback.onDialogDismiss(dialoginterface); + } + } + + public void setOnDismissListener(OnDialogDismissListener ondialogdismisslistener) { + mDismissCallback = ondialogdismisslistener; + } + public interface HmsPickerDialogHandlerV2 { void onDialogHmsSet(int reference, boolean isNegative, int hours, int minutes, int seconds); @@ -148,7 +164,7 @@ public interface HmsPickerDialogHandlerV2 { /** * @param handlers a Vector of handlers - * Attach a Vector of handlers to be notified in addition to the Fragment's Activity and target Fragment. + * Attach a Vector of handlers to be notified in addition to the Fragment's Activity and target Fragment. */ public void setHmsPickerDialogHandlersV2(Vector handlers) { mHmsPickerDialogHandlerV2s = handlers; diff --git a/library/src/main/java/com/codetroopers/betterpickers/numberpicker/NumberPickerBuilder.java b/library/src/main/java/com/codetroopers/betterpickers/numberpicker/NumberPickerBuilder.java index 371d2a0e..8d3cdbfd 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/numberpicker/NumberPickerBuilder.java +++ b/library/src/main/java/com/codetroopers/betterpickers/numberpicker/NumberPickerBuilder.java @@ -5,6 +5,7 @@ import android.support.v4.app.FragmentTransaction; import android.util.Log; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.numberpicker.NumberPickerDialogFragment.NumberPickerDialogHandlerV2; import java.math.BigDecimal; @@ -28,6 +29,7 @@ public class NumberPickerBuilder { private Integer currentNumberValue; private Double currentDecimalValue; private Integer currentSignValue; + private OnDialogDismissListener mOnDismissListener; /** * Attach a FragmentManager. This is required for creation of the Fragment. @@ -220,6 +222,12 @@ public void show() { fragment.setTargetFragment(targetFragment, 0); } fragment.setNumberPickerDialogHandlersV2(mNumberPickerDialogHandlersV2); + fragment.setOnDismissListener(mOnDismissListener); fragment.show(ft, "number_dialog"); } + + public NumberPickerBuilder setOnDismissListener(OnDialogDismissListener onDismissListener) { + this.mOnDismissListener = onDismissListener; + return this; + } } diff --git a/library/src/main/java/com/codetroopers/betterpickers/numberpicker/NumberPickerDialogFragment.java b/library/src/main/java/com/codetroopers/betterpickers/numberpicker/NumberPickerDialogFragment.java index 5fd8e63a..765c3866 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/numberpicker/NumberPickerDialogFragment.java +++ b/library/src/main/java/com/codetroopers/betterpickers/numberpicker/NumberPickerDialogFragment.java @@ -1,6 +1,7 @@ package com.codetroopers.betterpickers.numberpicker; import android.app.Activity; +import android.content.DialogInterface; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.os.Bundle; @@ -11,6 +12,7 @@ import android.view.ViewGroup; import android.widget.Button; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.R; import java.math.BigDecimal; @@ -49,6 +51,8 @@ public class NumberPickerDialogFragment extends DialogFragment { private int mPlusMinusVisibility = View.VISIBLE; private int mDecimalVisibility = View.VISIBLE; private Vector mNumberPickerDialogHandlersV2 = new Vector(); + private OnDialogDismissListener mDismissCallback; + /** * Create an instance of the Picker (used internally) @@ -237,6 +241,18 @@ private boolean isSmaller(BigDecimal number) { return number.compareTo(mMinNumber) < 0; } + @Override + public void onDismiss(DialogInterface dialoginterface) { + super.onDismiss(dialoginterface); + if (mDismissCallback != null) { + mDismissCallback.onDialogDismiss(dialoginterface); + } + } + + public void setOnDismissListener(OnDialogDismissListener ondialogdismisslistener) { + mDismissCallback = ondialogdismisslistener; + } + /** * This interface allows objects to register for the Picker's set action. */ @@ -252,4 +268,9 @@ public interface NumberPickerDialogHandlerV2 { public void setNumberPickerDialogHandlersV2(Vector handlers) { this.mNumberPickerDialogHandlersV2 = handlers; } + + @Override + public void onCancel(DialogInterface dialog) { + super.onCancel(dialog); + } } \ No newline at end of file diff --git a/library/src/main/java/com/codetroopers/betterpickers/radialtimepicker/RadialTimePickerDialogFragment.java b/library/src/main/java/com/codetroopers/betterpickers/radialtimepicker/RadialTimePickerDialogFragment.java index bde18cca..9beaccfa 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/radialtimepicker/RadialTimePickerDialogFragment.java +++ b/library/src/main/java/com/codetroopers/betterpickers/radialtimepicker/RadialTimePickerDialogFragment.java @@ -39,6 +39,7 @@ import android.widget.TextView; import com.codetroopers.betterpickers.HapticFeedbackController; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.R; import com.codetroopers.betterpickers.Utils; import com.codetroopers.betterpickers.numberpicker.NumberPickerErrorTextView; @@ -81,7 +82,7 @@ public class RadialTimePickerDialogFragment extends DialogFragment implements On // Delay before starting the pulse animation, in ms. private static final int PULSE_ANIMATOR_DELAY = 300; - private OnDialogDismissListener mDimissCallback; + private OnDialogDismissListener mDismissCallback; private OnTimeSetListener mCallback; private HapticFeedbackController mHapticFeedbackController; @@ -144,11 +145,6 @@ public interface OnTimeSetListener { void onTimeSet(RadialTimePickerDialogFragment dialog, int hourOfDay, int minute); } - public static interface OnDialogDismissListener { - - public abstract void onDialogDismiss(DialogInterface dialoginterface); - } - public RadialTimePickerDialogFragment() { Calendar calendar = Calendar.getInstance(); mInitialMinute = calendar.get(Calendar.MINUTE); @@ -182,7 +178,7 @@ public boolean isThemeDark() { } public RadialTimePickerDialogFragment setOnDismissListener(OnDialogDismissListener ondialogdismisslistener) { - mDimissCallback = ondialogdismisslistener; + mDismissCallback = ondialogdismisslistener; return this; } @@ -255,8 +251,8 @@ public RadialTimePickerDialogFragment setAutodetectDateFormat(Context context) { @Override public void onDismiss(DialogInterface dialoginterface) { super.onDismiss(dialoginterface); - if (mDimissCallback != null) { - mDimissCallback.onDialogDismiss(dialoginterface); + if (mDismissCallback != null) { + mDismissCallback.onDialogDismiss(dialoginterface); } } @@ -396,8 +392,7 @@ public void onClick(View v) { cancelButton.setText(mCancelText); } cancelButton.setTextColor(buttonTextColor); - cancelButton.setOnClickListener(new OnClickListener() { - + cancelButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tryVibrate(); @@ -1177,4 +1172,5 @@ public boolean onKey(View v, int keyCode, KeyEvent event) { return event.getAction() == KeyEvent.ACTION_UP && processKeyUp(keyCode); } } + } diff --git a/library/src/main/java/com/codetroopers/betterpickers/recurrencepicker/RecurrencePickerDialogFragment.java b/library/src/main/java/com/codetroopers/betterpickers/recurrencepicker/RecurrencePickerDialogFragment.java index 48e6b453..7197be23 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/recurrencepicker/RecurrencePickerDialogFragment.java +++ b/library/src/main/java/com/codetroopers/betterpickers/recurrencepicker/RecurrencePickerDialogFragment.java @@ -18,6 +18,7 @@ import android.app.Activity; import android.content.Context; +import android.content.DialogInterface; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Build; @@ -58,6 +59,7 @@ import android.widget.Toast; import android.widget.ToggleButton; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.R; import com.codetroopers.betterpickers.calendardatepicker.CalendarDatePickerDialogFragment; @@ -88,6 +90,7 @@ public class RecurrencePickerDialogFragment extends DialogFragment implements On public static final int LAST_NTH_DAY_OF_WEEK = -1; private CalendarDatePickerDialogFragment mDatePickerDialog; + private OnDialogDismissListener mDismissCallback; private static class RecurrenceModel implements Parcelable { @@ -901,7 +904,7 @@ void onChange(int v) { Button cancelButton = (Button) mView.findViewById(R.id.cancel_button); //FIXME no text color for this one ? - cancelButton.setOnClickListener(new OnClickListener() { + cancelButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); @@ -916,6 +919,15 @@ public void onClick(View v) { return mView; } + + @Override + public void onDismiss(DialogInterface dialoginterface) { + super.onDismiss(dialoginterface); + if (mDismissCallback != null) { + mDismissCallback.onDialogDismiss(dialoginterface); + } + } + private void togglePickerOptions() { if (mModel.recurrenceState == RecurrenceModel.STATE_NO_RECURRENCE) { mFreqSpinner.setEnabled(false); @@ -1408,4 +1420,10 @@ public View getDropDownView(int position, View convertView, @NonNull ViewGroup p return v; } } + + + public RecurrencePickerDialogFragment setOnDismissListener(OnDialogDismissListener ondialogdismisslistener) { + mDismissCallback = ondialogdismisslistener; + return this; + } } diff --git a/library/src/main/java/com/codetroopers/betterpickers/timepicker/TimePickerBuilder.java b/library/src/main/java/com/codetroopers/betterpickers/timepicker/TimePickerBuilder.java index a27a61e8..1a7e28c8 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/timepicker/TimePickerBuilder.java +++ b/library/src/main/java/com/codetroopers/betterpickers/timepicker/TimePickerBuilder.java @@ -5,6 +5,7 @@ import android.support.v4.app.FragmentTransaction; import android.util.Log; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.timepicker.TimePickerDialogFragment.TimePickerDialogHandler; import java.util.Vector; @@ -19,6 +20,7 @@ public class TimePickerBuilder { private Fragment targetFragment; private int mReference = -1; private Vector mTimePickerDialogHandlers = new Vector(); + private OnDialogDismissListener mOnDismissListener; /** * Attach a FragmentManager. This is required for creation of the Fragment. @@ -110,6 +112,12 @@ public void show() { fragment.setTargetFragment(targetFragment, 0); } fragment.setTimePickerDialogHandlers(mTimePickerDialogHandlers); + fragment.setOnDismissListener(mOnDismissListener); fragment.show(ft, "time_dialog"); } + + public TimePickerBuilder setOnDismissListener(OnDialogDismissListener onDismissListener) { + this.mOnDismissListener = onDismissListener; + return this; + } } diff --git a/library/src/main/java/com/codetroopers/betterpickers/timepicker/TimePickerDialogFragment.java b/library/src/main/java/com/codetroopers/betterpickers/timepicker/TimePickerDialogFragment.java index a2cc537b..cad9598c 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/timepicker/TimePickerDialogFragment.java +++ b/library/src/main/java/com/codetroopers/betterpickers/timepicker/TimePickerDialogFragment.java @@ -1,6 +1,7 @@ package com.codetroopers.betterpickers.timepicker; import android.app.Activity; +import android.content.DialogInterface; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.os.Bundle; @@ -11,6 +12,7 @@ import android.view.ViewGroup; import android.widget.Button; +import com.codetroopers.betterpickers.OnDialogDismissListener; import com.codetroopers.betterpickers.R; import java.util.Vector; @@ -30,6 +32,7 @@ public class TimePickerDialogFragment extends DialogFragment { private ColorStateList mTextColor; private int mDialogBackgroundResId; private Vector mTimePickerDialogHandlers = new Vector(); + private OnDialogDismissListener mDismissCallback; /** * Create an instance of the Picker (used internally) @@ -123,6 +126,14 @@ public void onClick(View view) { return view; } + @Override + public void onDismiss(DialogInterface dialoginterface) { + super.onDismiss(dialoginterface); + if (mDismissCallback != null) { + mDismissCallback.onDialogDismiss(dialoginterface); + } + } + /** * This interface allows objects to register for the Picker's set action. */ @@ -139,4 +150,9 @@ public interface TimePickerDialogHandler { public void setTimePickerDialogHandlers(Vector handlers) { mTimePickerDialogHandlers = handlers; } + + + public void setOnDismissListener(OnDialogDismissListener ondialogdismisslistener) { + mDismissCallback = ondialogdismisslistener; + } } \ No newline at end of file diff --git a/library/src/main/java/com/codetroopers/betterpickers/timezonepicker/TimeZonePickerDialogFragment.java b/library/src/main/java/com/codetroopers/betterpickers/timezonepicker/TimeZonePickerDialogFragment.java index 483624bf..bc3f9b8d 100644 --- a/library/src/main/java/com/codetroopers/betterpickers/timezonepicker/TimeZonePickerDialogFragment.java +++ b/library/src/main/java/com/codetroopers/betterpickers/timezonepicker/TimeZonePickerDialogFragment.java @@ -17,6 +17,7 @@ package com.codetroopers.betterpickers.timezonepicker; import android.app.Dialog; +import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; @@ -26,6 +27,8 @@ import android.view.Window; import android.view.WindowManager; +import com.codetroopers.betterpickers.OnDialogDismissListener; + public class TimeZonePickerDialogFragment extends DialogFragment implements TimeZonePickerView.OnTimeZoneSetListener { public static final String BUNDLE_START_TIME_MILLIS = "bundle_event_start_time"; public static final String BUNDLE_TIME_ZONE = "bundle_event_time_zone"; @@ -39,6 +42,7 @@ public class TimeZonePickerDialogFragment extends DialogFragment implements Time private OnTimeZoneSetListener mTimeZoneSetListener; private TimeZonePickerView mView; private boolean mHasCachedResults = false; + private OnDialogDismissListener mDismissCallback; public interface OnTimeZoneSetListener { void onTimeZoneSet(TimeZoneInfo tzi); @@ -54,7 +58,7 @@ public TimeZonePickerDialogFragment() { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + Bundle savedInstanceState) { long timeMillis = 0; String timeZone = null; Bundle b = getArguments(); @@ -71,8 +75,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, hideFilterSearch); if (savedInstanceState != null && savedInstanceState.getBoolean(KEY_HAS_RESULTS, false)) { mView.showFilterResults(savedInstanceState.getInt(KEY_LAST_FILTER_TYPE), - savedInstanceState.getString(KEY_LAST_FILTER_STRING), - savedInstanceState.getInt(KEY_LAST_FILTER_TIME)); + savedInstanceState.getString(KEY_LAST_FILTER_STRING), + savedInstanceState.getInt(KEY_LAST_FILTER_TIME)); } return mView; } @@ -105,4 +109,18 @@ public void onTimeZoneSet(TimeZoneInfo tzi) { } dismiss(); } + + + @Override + public void onDismiss(DialogInterface dialoginterface) { + super.onDismiss(dialoginterface); + if (mDismissCallback != null) { + mDismissCallback.onDialogDismiss(dialoginterface); + } + } + + public TimeZonePickerDialogFragment setOnDismissListener(OnDialogDismissListener ondialogdismisslistener) { + this.mDismissCallback = ondialogdismisslistener; + return this; + } } diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index 6d6aab94..5bb29b3c 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ - + - + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + - - + + - - + + + + + + + + diff --git a/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/calendardatepicker/SampleCalendarDateDismissListener.java b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/calendardatepicker/SampleCalendarDateDismissListener.java new file mode 100644 index 00000000..71be19a4 --- /dev/null +++ b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/calendardatepicker/SampleCalendarDateDismissListener.java @@ -0,0 +1,62 @@ +package com.codetroopers.betterpickers.sample.activity.calendardatepicker; + +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.codetroopers.betterpickers.OnDialogDismissListener; +import com.codetroopers.betterpickers.calendardatepicker.CalendarDatePickerDialogFragment; +import com.codetroopers.betterpickers.sample.R; +import com.codetroopers.betterpickers.sample.activity.BaseSampleActivity; + +public class SampleCalendarDateDismissListener extends BaseSampleActivity + implements CalendarDatePickerDialogFragment.OnDateSetListener, OnDialogDismissListener { + + private static final String FRAG_TAG_DATE_PICKER = "fragment_date_picker_name"; + + private TextView mResultTextView; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.text_and_button_colored); + + mResultTextView = (TextView) findViewById(R.id.text); + Button button = (Button) findViewById(R.id.button); + + mResultTextView.setText(R.string.no_value); + button.setText(R.string.calendar_date_picker_set); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CalendarDatePickerDialogFragment cdp = new CalendarDatePickerDialogFragment() + .setOnDateSetListener(SampleCalendarDateDismissListener.this) + .setOnDismissListener(SampleCalendarDateDismissListener.this); + cdp.show(getSupportFragmentManager(), FRAG_TAG_DATE_PICKER); + } + }); + } + + @Override + public void onDateSet(CalendarDatePickerDialogFragment dialog, int year, int monthOfYear, int dayOfMonth) { + mResultTextView.setText(getString(R.string.calendar_date_picker_result_values, year, monthOfYear, dayOfMonth)); + } + + @Override + public void onResume() { + // Example of reattaching to the fragment + super.onResume(); + CalendarDatePickerDialogFragment calendarDatePickerDialogFragment = (CalendarDatePickerDialogFragment) getSupportFragmentManager() + .findFragmentByTag(FRAG_TAG_DATE_PICKER); + if (calendarDatePickerDialogFragment != null) { + calendarDatePickerDialogFragment.setOnDateSetListener(this); + } + } + + @Override + public void onDialogDismiss(DialogInterface dialoginterface) { + mResultTextView.setText(R.string.dialog_dismissed); + } +} diff --git a/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/datepicker/SampleDateDismissListener.java b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/datepicker/SampleDateDismissListener.java new file mode 100644 index 00000000..c9377402 --- /dev/null +++ b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/datepicker/SampleDateDismissListener.java @@ -0,0 +1,53 @@ +package com.codetroopers.betterpickers.sample.activity.datepicker; + +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.codetroopers.betterpickers.OnDialogDismissListener; +import com.codetroopers.betterpickers.datepicker.DatePickerBuilder; +import com.codetroopers.betterpickers.datepicker.DatePickerDialogFragment; +import com.codetroopers.betterpickers.sample.R; +import com.codetroopers.betterpickers.sample.activity.BaseSampleActivity; + +/** + * User: derek Date: 3/17/13 Time: 3:59 PM + */ +public class SampleDateDismissListener extends BaseSampleActivity implements DatePickerDialogFragment.DatePickerDialogHandler, OnDialogDismissListener { + + private TextView mResultTextView; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.text_and_button); + + mResultTextView = (TextView) findViewById(R.id.text); + Button button = (Button) findViewById(R.id.button); + + mResultTextView.setText(R.string.no_value); + button.setText(R.string.date_picker_set); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DatePickerBuilder dpb = new DatePickerBuilder() + .setFragmentManager(getSupportFragmentManager()) + .setStyleResId(R.style.BetterPickersDialogFragment) + .setOnDismissListener(SampleDateDismissListener.this); + dpb.show(); + } + }); + } + + @Override + public void onDialogDateSet(int reference, int year, int monthOfYear, int dayOfMonth) { + mResultTextView.setText(getString(R.string.date_picker_result_value, year, monthOfYear, dayOfMonth)); + } + + @Override + public void onDialogDismiss(DialogInterface dialoginterface) { + mResultTextView.setText(R.string.dialog_dismissed); + } +} diff --git a/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/expirationpicker/SampleExpirationDismissListener.java b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/expirationpicker/SampleExpirationDismissListener.java new file mode 100644 index 00000000..99ec55d6 --- /dev/null +++ b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/expirationpicker/SampleExpirationDismissListener.java @@ -0,0 +1,50 @@ +package com.codetroopers.betterpickers.sample.activity.expirationpicker; + +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.codetroopers.betterpickers.OnDialogDismissListener; +import com.codetroopers.betterpickers.expirationpicker.ExpirationPickerBuilder; +import com.codetroopers.betterpickers.expirationpicker.ExpirationPickerDialogFragment; +import com.codetroopers.betterpickers.sample.R; +import com.codetroopers.betterpickers.sample.activity.BaseSampleActivity; + +public class SampleExpirationDismissListener extends BaseSampleActivity implements ExpirationPickerDialogFragment.ExpirationPickerDialogHandler, OnDialogDismissListener { + + private TextView mResultTextView; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.text_and_button); + + mResultTextView = (TextView) findViewById(R.id.text); + Button button = (Button) findViewById(R.id.button); + + mResultTextView.setText(R.string.no_value); + button.setText(R.string.expiration_picker_set); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ExpirationPickerBuilder epb = new ExpirationPickerBuilder() + .setFragmentManager(getSupportFragmentManager()) + .setStyleResId(R.style.BetterPickersDialogFragment) + .setOnDismissListener(SampleExpirationDismissListener.this); + epb.show(); + } + }); + } + + @Override + public void onDialogExpirationSet(int reference, int year, int monthOfYear) { + mResultTextView.setText(getString(R.string.expiration_picker_result_value, String.format("%02d", monthOfYear), year)); + } + + @Override + public void onDialogDismiss(DialogInterface dialoginterface) { + mResultTextView.setText(R.string.dialog_dismissed); + } +} diff --git a/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/hmspicker/SampleHmsDismissListener.java b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/hmspicker/SampleHmsDismissListener.java new file mode 100644 index 00000000..294ae3bd --- /dev/null +++ b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/hmspicker/SampleHmsDismissListener.java @@ -0,0 +1,54 @@ +package com.codetroopers.betterpickers.sample.activity.hmspicker; + +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.codetroopers.betterpickers.OnDialogDismissListener; +import com.codetroopers.betterpickers.hmspicker.HmsPickerBuilder; +import com.codetroopers.betterpickers.hmspicker.HmsPickerDialogFragment; +import com.codetroopers.betterpickers.sample.R; +import com.codetroopers.betterpickers.sample.activity.BaseSampleActivity; + +/** + * User: derek Date: 3/17/13 Time: 3:59 PM + */ +public class SampleHmsDismissListener extends BaseSampleActivity implements HmsPickerDialogFragment.HmsPickerDialogHandlerV2, OnDialogDismissListener { + + private TextView mResultTextView; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.text_and_button); + + mResultTextView = (TextView) findViewById(R.id.text); + Button button = (Button) findViewById(R.id.button); + + mResultTextView.setText(R.string.no_value); + button.setText(R.string.hms_picker_set); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + HmsPickerBuilder hpb = new HmsPickerBuilder() + .setFragmentManager(getSupportFragmentManager()) + .setStyleResId(R.style.BetterPickersDialogFragment) + .addHmsPickerDialogHandler(SampleHmsDismissListener.this) + .setOnDismissListener(SampleHmsDismissListener.this); + hpb.show(); + } + }); + } + + @Override + public void onDialogHmsSet(int reference, boolean isNegative, int hours, int minutes, int seconds) { + mResultTextView.setText(getString(R.string.hms_picker_result_value_multiline, hours, minutes, seconds, isNegative)); + } + + @Override + public void onDialogDismiss(DialogInterface dialoginterface) { + mResultTextView.setText(R.string.dialog_dismissed); + } +} diff --git a/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/numberpicker/SampleNumberDismissListener.java b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/numberpicker/SampleNumberDismissListener.java new file mode 100644 index 00000000..0024565c --- /dev/null +++ b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/numberpicker/SampleNumberDismissListener.java @@ -0,0 +1,58 @@ +package com.codetroopers.betterpickers.sample.activity.numberpicker; + +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.codetroopers.betterpickers.OnDialogDismissListener; +import com.codetroopers.betterpickers.numberpicker.NumberPickerBuilder; +import com.codetroopers.betterpickers.numberpicker.NumberPickerDialogFragment; +import com.codetroopers.betterpickers.sample.R; +import com.codetroopers.betterpickers.sample.activity.BaseSampleActivity; + +import java.math.BigDecimal; +import java.math.BigInteger; + +/** + * User: derek Date: 3/17/13 Time: 3:59 PM + */ +public class SampleNumberDismissListener extends BaseSampleActivity + implements NumberPickerDialogFragment.NumberPickerDialogHandlerV2, OnDialogDismissListener { + + private TextView mResultTextView; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.text_and_button); + + mResultTextView = (TextView) findViewById(R.id.text); + Button button = (Button) findViewById(R.id.button); + + mResultTextView.setText(R.string.no_value); + button.setText(R.string.number_picker_set); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + NumberPickerBuilder npb = new NumberPickerBuilder() + .setFragmentManager(getSupportFragmentManager()) + .setStyleResId(R.style.BetterPickersDialogFragment) + .addNumberPickerDialogHandler(SampleNumberDismissListener.this) + .setOnDismissListener(SampleNumberDismissListener.this); + npb.show(); + } + }); + } + + @Override + public void onDialogNumberSet(int reference, BigInteger number, double decimal, boolean isNegative, BigDecimal fullNumber) { + mResultTextView.setText(getString(R.string.number_picker_result_value, number, decimal, isNegative, fullNumber)); + } + + @Override + public void onDialogDismiss(DialogInterface dialoginterface) { + mResultTextView.setText(R.string.dialog_dismissed); + } +} diff --git a/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/radialtimepicker/SampleRadialTimeDismissListener.java b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/radialtimepicker/SampleRadialTimeDismissListener.java new file mode 100644 index 00000000..806b663d --- /dev/null +++ b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/radialtimepicker/SampleRadialTimeDismissListener.java @@ -0,0 +1,61 @@ +package com.codetroopers.betterpickers.sample.activity.radialtimepicker; + +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.codetroopers.betterpickers.OnDialogDismissListener; +import com.codetroopers.betterpickers.radialtimepicker.RadialTimePickerDialogFragment; +import com.codetroopers.betterpickers.sample.R; +import com.codetroopers.betterpickers.sample.activity.BaseSampleActivity; + +public class SampleRadialTimeDismissListener extends BaseSampleActivity + implements RadialTimePickerDialogFragment.OnTimeSetListener, OnDialogDismissListener { + + private static final String FRAG_TAG_TIME_PICKER = "timePickerDialogFragment"; + + private TextView mResultTextView; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.text_and_button_colored); + + mResultTextView = (TextView) findViewById(R.id.text); + Button button = (Button) findViewById(R.id.button); + + mResultTextView.setText(R.string.no_value); + button.setText(R.string.radial_time_picker); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + RadialTimePickerDialogFragment rtpd = new RadialTimePickerDialogFragment() + .setOnTimeSetListener(SampleRadialTimeDismissListener.this) + .setOnDismissListener(SampleRadialTimeDismissListener.this); + rtpd.show(getSupportFragmentManager(), FRAG_TAG_TIME_PICKER); + } + }); + } + + @Override + public void onTimeSet(RadialTimePickerDialogFragment dialog, int hourOfDay, int minute) { + mResultTextView.setText(getString(R.string.radial_time_picker_result_value, hourOfDay, minute)); + } + + @Override + public void onResume() { + // Example of reattaching to the fragment + super.onResume(); + RadialTimePickerDialogFragment rtpd = (RadialTimePickerDialogFragment) getSupportFragmentManager().findFragmentByTag(FRAG_TAG_TIME_PICKER); + if (rtpd != null) { + rtpd.setOnTimeSetListener(this); + } + } + + @Override + public void onDialogDismiss(DialogInterface dialoginterface) { + mResultTextView.setText(R.string.dialog_dismissed); + } +} diff --git a/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/recurrencepicker/SampleRecurrenceDismissListener.java b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/recurrencepicker/SampleRecurrenceDismissListener.java new file mode 100644 index 00000000..1d2e16c7 --- /dev/null +++ b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/recurrencepicker/SampleRecurrenceDismissListener.java @@ -0,0 +1,104 @@ +package com.codetroopers.betterpickers.sample.activity.recurrencepicker; + +import android.content.DialogInterface; +import android.content.res.Resources; +import android.os.Bundle; +import android.support.v4.app.FragmentManager; +import android.text.TextUtils; +import android.text.format.Time; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.codetroopers.betterpickers.OnDialogDismissListener; +import com.codetroopers.betterpickers.recurrencepicker.EventRecurrence; +import com.codetroopers.betterpickers.recurrencepicker.EventRecurrenceFormatter; +import com.codetroopers.betterpickers.recurrencepicker.RecurrencePickerDialogFragment; +import com.codetroopers.betterpickers.sample.R; +import com.codetroopers.betterpickers.sample.activity.BaseSampleActivity; + +/** + * User: derek Date: 3/17/13 Time: 3:59 PM + */ +public class SampleRecurrenceDismissListener extends BaseSampleActivity + implements RecurrencePickerDialogFragment.OnRecurrenceSetListener, OnDialogDismissListener { + + private static final String FRAG_TAG_RECUR_PICKER = "recurrencePickerDialogFragment"; + private TextView mResultTextView; + private EventRecurrence mEventRecurrence = new EventRecurrence(); + private String mRrule; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.text_and_button); + + mResultTextView = (TextView) findViewById(R.id.text); + Button button = (Button) findViewById(R.id.button); + + mResultTextView.setText(R.string.no_value); + button.setText(R.string.recurrence_picker_set); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + FragmentManager fm = getSupportFragmentManager(); + Bundle bundle = new Bundle(); + Time time = new Time(); + time.setToNow(); + bundle.putLong(RecurrencePickerDialogFragment.BUNDLE_START_TIME_MILLIS, time.toMillis(false)); + bundle.putString(RecurrencePickerDialogFragment.BUNDLE_TIME_ZONE, time.timezone); + + // may be more efficient to serialize and pass in EventRecurrence + bundle.putString(RecurrencePickerDialogFragment.BUNDLE_RRULE, mRrule); + + RecurrencePickerDialogFragment rpd = (RecurrencePickerDialogFragment) fm.findFragmentByTag( + FRAG_TAG_RECUR_PICKER); + if (rpd != null) { + rpd.dismiss(); + } + rpd = new RecurrencePickerDialogFragment(); + rpd.setArguments(bundle); + rpd.setOnRecurrenceSetListener(SampleRecurrenceDismissListener.this); + rpd.setOnDismissListener(SampleRecurrenceDismissListener.this); + rpd.show(fm, FRAG_TAG_RECUR_PICKER); + } + }); + } + + @Override + public void onRecurrenceSet(String rrule) { + mRrule = rrule; + if (mRrule != null) { + mEventRecurrence.parse(mRrule); + } + populateRepeats(); + } + + @Override + public void onResume() { + // Example of reattaching to the fragment + super.onResume(); + RecurrencePickerDialogFragment rpd = (RecurrencePickerDialogFragment) getSupportFragmentManager().findFragmentByTag( + FRAG_TAG_RECUR_PICKER); + if (rpd != null) { + rpd.setOnRecurrenceSetListener(this); + } + } + + private void populateRepeats() { + Resources r = getResources(); + String repeatString = ""; + boolean enabled; + if (!TextUtils.isEmpty(mRrule)) { + repeatString = EventRecurrenceFormatter.getRepeatString(this, r, mEventRecurrence, true); + } + + mResultTextView.setText(mRrule + "\n" + repeatString); + } + + + @Override + public void onDialogDismiss(DialogInterface dialoginterface) { + mResultTextView.setText(R.string.dialog_dismissed); + } +} diff --git a/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/timepicker/SampleTimeDismissListener.java b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/timepicker/SampleTimeDismissListener.java new file mode 100644 index 00000000..b7ad17b0 --- /dev/null +++ b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/timepicker/SampleTimeDismissListener.java @@ -0,0 +1,54 @@ +package com.codetroopers.betterpickers.sample.activity.timepicker; + +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.codetroopers.betterpickers.OnDialogDismissListener; +import com.codetroopers.betterpickers.sample.R; +import com.codetroopers.betterpickers.sample.activity.BaseSampleActivity; +import com.codetroopers.betterpickers.timepicker.TimePickerBuilder; +import com.codetroopers.betterpickers.timepicker.TimePickerDialogFragment; + +/** + * User: derek Date: 3/17/13 Time: 3:59 PM + */ +public class SampleTimeDismissListener extends BaseSampleActivity implements TimePickerDialogFragment.TimePickerDialogHandler, OnDialogDismissListener { + + private TextView mResultTextView; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.text_and_button); + + mResultTextView = (TextView) findViewById(R.id.text); + Button button = (Button) findViewById(R.id.button); + + mResultTextView.setText(R.string.no_value); + button.setText(R.string.time_picker_set); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + TimePickerBuilder tpb = new TimePickerBuilder() + .setFragmentManager(getSupportFragmentManager()) + .setStyleResId(R.style.BetterPickersDialogFragment) + .setOnDismissListener(SampleTimeDismissListener.this); + tpb.show(); + } + }); + } + + @Override + public void onDialogTimeSet(int reference, int hourOfDay, int minute) { + mResultTextView.setText(getString(R.string.time_picker_result_value, String.format("%02d", hourOfDay), String.format("%02d", minute))); + } + + + @Override + public void onDialogDismiss(DialogInterface dialoginterface) { + mResultTextView.setText(R.string.dialog_dismissed); + } +} diff --git a/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/timezonepicker/SampleTimeZoneDismissListener.java b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/timezonepicker/SampleTimeZoneDismissListener.java new file mode 100644 index 00000000..23d80723 --- /dev/null +++ b/sample/src/main/java/com/codetroopers/betterpickers/sample/activity/timezonepicker/SampleTimeZoneDismissListener.java @@ -0,0 +1,68 @@ +package com.codetroopers.betterpickers.sample.activity.timezonepicker; + +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.v4.app.FragmentManager; +import android.text.format.Time; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import com.codetroopers.betterpickers.OnDialogDismissListener; +import com.codetroopers.betterpickers.sample.R; +import com.codetroopers.betterpickers.sample.activity.BaseSampleActivity; +import com.codetroopers.betterpickers.timezonepicker.TimeZoneInfo; +import com.codetroopers.betterpickers.timezonepicker.TimeZonePickerDialogFragment; + +/** + * User: derek Date: 3/17/13 Time: 3:59 PM + */ +public class SampleTimeZoneDismissListener extends BaseSampleActivity + implements TimeZonePickerDialogFragment.OnTimeZoneSetListener, OnDialogDismissListener { + + private TextView mResultTextView; + private static final String FRAG_TAG_TIME_ZONE_PICKER = "timeZonePickerDialogFragment"; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.text_and_button); + + mResultTextView = (TextView) findViewById(R.id.text); + Button button = (Button) findViewById(R.id.button); + + mResultTextView.setText(R.string.no_value); + button.setText(R.string.timezone_picker_set); + button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + FragmentManager fm = getSupportFragmentManager(); + Bundle bundle = new Bundle(); + Time time = new Time(); + time.setToNow(); + bundle.putLong(TimeZonePickerDialogFragment.BUNDLE_START_TIME_MILLIS, time.toMillis(false)); + bundle.putString(TimeZonePickerDialogFragment.BUNDLE_TIME_ZONE, time.timezone); + + TimeZonePickerDialogFragment tzpd = (TimeZonePickerDialogFragment) fm.findFragmentByTag(FRAG_TAG_TIME_ZONE_PICKER); + if (tzpd != null) { + tzpd.dismiss(); + } + tzpd = new TimeZonePickerDialogFragment(); + tzpd.setArguments(bundle); + tzpd.setOnTimeZoneSetListener(SampleTimeZoneDismissListener.this); + tzpd.setOnDismissListener(SampleTimeZoneDismissListener.this); + tzpd.show(fm, FRAG_TAG_TIME_ZONE_PICKER); + } + }); + } + + @Override + public void onTimeZoneSet(TimeZoneInfo tzi) { + mResultTextView.setText(tzi.mDisplayName); + } + + @Override + public void onDialogDismiss(DialogInterface dialoginterface) { + mResultTextView.setText(R.string.dialog_dismissed); + } +} diff --git a/sample/src/main/res/values/strings.xml b/sample/src/main/res/values/strings.xml index 64940b2d..5a44c106 100644 --- a/sample/src/main/res/values/strings.xml +++ b/sample/src/main/res/values/strings.xml @@ -27,4 +27,5 @@ Okay Nop + Dialog dismissed \ No newline at end of file