1616
1717package org .gnucash .android .ui .transaction ;
1818
19- import android .app .DatePickerDialog ;
20- import android .app .DatePickerDialog .OnDateSetListener ;
21- import android .app .TimePickerDialog ;
22- import android .app .TimePickerDialog .OnTimeSetListener ;
2319import android .content .Context ;
2420import android .content .SharedPreferences ;
2521import android .database .Cursor ;
2622import android .os .Bundle ;
2723import android .preference .PreferenceManager ;
28- import android .support .v4 .app .DialogFragment ;
2924import android .support .v4 .app .FragmentManager ;
3025import android .support .v4 .app .FragmentTransaction ;
3126import android .support .v4 .widget .SimpleCursorAdapter ;
4136import android .widget .AutoCompleteTextView ;
4237import android .widget .Button ;
4338import android .widget .CheckBox ;
44- import android .widget .DatePicker ;
4539import android .widget .EditText ;
4640import android .widget .FilterQueryProvider ;
4741import android .widget .Spinner ;
4842import android .widget .TextView ;
49- import android .widget .TimePicker ;
5043import android .widget .Toast ;
5144
5245import com .actionbarsherlock .app .ActionBar ;
5346import com .actionbarsherlock .app .SherlockFragment ;
5447import com .actionbarsherlock .view .Menu ;
5548import com .actionbarsherlock .view .MenuInflater ;
5649import com .actionbarsherlock .view .MenuItem ;
50+ import com .doomonafireball .betterpickers .calendardatepicker .CalendarDatePickerDialog ;
51+ import com .doomonafireball .betterpickers .radialtimepicker .RadialTimePickerDialog ;
5752import com .doomonafireball .betterpickers .recurrencepicker .EventRecurrence ;
5853import com .doomonafireball .betterpickers .recurrencepicker .EventRecurrenceFormatter ;
5954import com .doomonafireball .betterpickers .recurrencepicker .RecurrencePickerDialog ;
7065import org .gnucash .android .model .Transaction ;
7166import org .gnucash .android .model .TransactionType ;
7267import org .gnucash .android .ui .UxArgument ;
73- import org .gnucash .android .ui .transaction .dialog .DatePickerDialogFragment ;
7468import org .gnucash .android .ui .transaction .dialog .SplitEditorDialogFragment ;
75- import org .gnucash .android .ui .transaction .dialog .TimePickerDialogFragment ;
7669import org .gnucash .android .ui .util .AmountInputFormatter ;
7770import org .gnucash .android .ui .util .RecurrenceParser ;
7871import org .gnucash .android .ui .util .TransactionTypeToggleButton ;
9083import java .util .GregorianCalendar ;
9184import java .util .List ;
9285import java .util .Locale ;
93- import java .util .Objects ;
9486
9587/**
9688 * Fragment for creating or editing transactions
9789 * @author Ngewi Fet <ngewif@gmail.com>
9890 */
9991public class TransactionFormFragment extends SherlockFragment implements
100- OnDateSetListener , OnTimeSetListener , RecurrencePickerDialog .OnRecurrenceSetListener {
92+ CalendarDatePickerDialog .OnDateSetListener , RadialTimePickerDialog .OnTimeSetListener ,
93+ RecurrencePickerDialog .OnRecurrenceSetListener {
10194
10295 public static final String FRAGMENT_TAG_SPLITS_EDITOR = "splits_editor" ;
10396 private static final String FRAGMENT_TAG_RECURRENCE_PICKER = "recurrence_picker" ;
@@ -570,17 +563,22 @@ public void onClick(View view) {
570563
571564 @ Override
572565 public void onClick (View v ) {
573- FragmentTransaction ft = getFragmentManager ().beginTransaction ();
574-
575566 long dateMillis = 0 ;
576567 try {
577568 Date date = DATE_FORMATTER .parse (mDateTextView .getText ().toString ());
578569 dateMillis = date .getTime ();
579570 } catch (ParseException e ) {
580571 Log .e (getTag (), "Error converting input time to Date object" );
581572 }
582- DialogFragment newFragment = DatePickerDialogFragment .newInstance (TransactionFormFragment .this , dateMillis );
583- newFragment .show (ft , "date_dialog" );
573+ Calendar calendar = Calendar .getInstance ();
574+ calendar .setTimeInMillis (dateMillis );
575+
576+ int year = calendar .get (Calendar .YEAR );
577+ int monthOfYear = calendar .get (Calendar .MONTH );
578+ int dayOfMonth = calendar .get (Calendar .DAY_OF_MONTH );
579+ CalendarDatePickerDialog datePickerDialog = CalendarDatePickerDialog .newInstance (TransactionFormFragment .this ,
580+ year , monthOfYear , dayOfMonth );
581+ datePickerDialog .show (getFragmentManager (), "date_picker_fragment" );
584582 }
585583 });
586584
@@ -596,8 +594,14 @@ public void onClick(View v) {
596594 } catch (ParseException e ) {
597595 Log .e (getTag (), "Error converting input time to Date object" );
598596 }
599- DialogFragment fragment = TimePickerDialogFragment .newInstance (TransactionFormFragment .this , timeMillis );
600- fragment .show (ft , "time_dialog" );
597+
598+ Calendar calendar = Calendar .getInstance ();
599+ calendar .setTimeInMillis (timeMillis );
600+
601+ RadialTimePickerDialog timePickerDialog = RadialTimePickerDialog .newInstance (
602+ TransactionFormFragment .this , calendar .get (Calendar .HOUR_OF_DAY ),
603+ calendar .get (Calendar .MINUTE ), true );
604+ timePickerDialog .show (getFragmentManager (), "time_picker_dialog_fragment" );
601605 }
602606 });
603607
@@ -894,29 +898,22 @@ private void finish() {
894898 }
895899 }
896900
897- /**
898- * Callback when the date is set in the {@link DatePickerDialog}
899- */
900- @ Override
901- public void onDateSet (DatePicker view , int year , int monthOfYear ,
902- int dayOfMonth ) {
903- Calendar cal = new GregorianCalendar (year , monthOfYear , dayOfMonth );
904- mDateTextView .setText (DATE_FORMATTER .format (cal .getTime ()));
905- mDate .set (Calendar .YEAR , year );
906- mDate .set (Calendar .MONTH , monthOfYear );
907- mDate .set (Calendar .DAY_OF_MONTH , dayOfMonth );
908- }
901+ @ Override
902+ public void onDateSet (CalendarDatePickerDialog calendarDatePickerDialog , int year , int monthOfYear , int dayOfMonth ) {
903+ Calendar cal = new GregorianCalendar (year , monthOfYear , dayOfMonth );
904+ mDateTextView .setText (DATE_FORMATTER .format (cal .getTime ()));
905+ mDate .set (Calendar .YEAR , year );
906+ mDate .set (Calendar .MONTH , monthOfYear );
907+ mDate .set (Calendar .DAY_OF_MONTH , dayOfMonth );
908+ }
909909
910- /**
911- * Callback when the time is set in the {@link TimePickerDialog}
912- */
913- @ Override
914- public void onTimeSet (TimePicker view , int hourOfDay , int minute ) {
915- Calendar cal = new GregorianCalendar (0 , 0 , 0 , hourOfDay , minute );
916- mTimeTextView .setText (TIME_FORMATTER .format (cal .getTime ()));
917- mTime .set (Calendar .HOUR_OF_DAY , hourOfDay );
918- mTime .set (Calendar .MINUTE , minute );
919- }
910+ @ Override
911+ public void onTimeSet (RadialTimePickerDialog radialTimePickerDialog , int hourOfDay , int minute ) {
912+ Calendar cal = new GregorianCalendar (0 , 0 , 0 , hourOfDay , minute );
913+ mTimeTextView .setText (TIME_FORMATTER .format (cal .getTime ()));
914+ mTime .set (Calendar .HOUR_OF_DAY , hourOfDay );
915+ mTime .set (Calendar .MINUTE , minute );
916+ }
920917
921918 /**
922919 * Strips formatting from a currency string.
0 commit comments