From 2d53e51978f2d3f77770f12340f0bd2df416008a Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Wed, 3 Jun 2015 12:21:46 -0500 Subject: [PATCH] Use DateAndTimePickerActivity in ReminderControlSet --- .../astrid/activity/TaskEditFragment.java | 12 +++- .../astrid/ui/HideUntilControlSet.java | 3 - .../todoroo/astrid/ui/ReminderControlSet.java | 35 ++++------ .../dialogs/DateAndTimePickerDialog.java | 70 ------------------- 4 files changed, 24 insertions(+), 96 deletions(-) delete mode 100644 src/main/java/org/tasks/dialogs/DateAndTimePickerDialog.java diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index 643285f98..a44503cbe 100755 --- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -79,8 +79,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.activities.DateAndTimePickerActivity; -import org.tasks.activities.TimePickerActivity; -import org.tasks.dialogs.DateAndTimePickerDialog; import org.tasks.injection.InjectingFragment; import org.tasks.location.GeofenceService; import org.tasks.notifications.NotificationManager; @@ -187,6 +185,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { private TimerActionControlSet timerAction; private EditNoteActivity editNotes; private HideUntilControlSet hideUntilControls; + private ReminderControlSet reminderControlSet; @InjectView(R.id.title) EditText title; @InjectView(R.id.pager) ViewPager mPager; @@ -387,7 +386,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { controlSetMap.put(getString(R.string.TEA_ctrl_notes_pref), notesControlSet); - ReminderControlSet reminderControlSet = new ReminderControlSet(alarmService, geofenceService, this); + reminderControlSet = new ReminderControlSet(alarmService, geofenceService, this); controls.add(reminderControlSet); controlSetMap.put(getString(R.string.TEA_ctrl_reminders_pref), reminderControlSet); @@ -921,6 +920,13 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { log.error("Invalid timestamp"); } return; + } else if (requestCode == ReminderControlSet.REQUEST_NEW_ALARM && resultCode == Activity.RESULT_OK) { + long timestamp = data.getLongExtra(DateAndTimePickerActivity.EXTRA_TIMESTAMP, 0L); + if (timestamp > 0) { + reminderControlSet.addAlarmRow(timestamp); + } else { + log.error("Invalid timestamp"); + } } else if (editNotes != null && editNotes.activityResult(requestCode, resultCode, data)) { return; } else if (requestCode == REQUEST_CODE_RECORD && resultCode == Activity.RESULT_OK) { diff --git a/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java b/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java index bafefe760..1806f57a9 100644 --- a/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java +++ b/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.java @@ -5,7 +5,6 @@ */ package com.todoroo.astrid.ui; -import android.content.DialogInterface; import android.content.Intent; import android.view.View; import android.view.View.OnClickListener; @@ -23,12 +22,10 @@ import com.todoroo.astrid.helper.TaskEditControlSetBase; import org.joda.time.DateTime; import org.tasks.R; import org.tasks.activities.DateAndTimePickerActivity; -import org.tasks.dialogs.DateAndTimePickerDialog; import java.util.Date; import static org.tasks.date.DateTimeUtils.newDate; -import static org.tasks.date.DateTimeUtils.newDateTime; /** * Control set for specifying when a task should be hidden diff --git a/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java b/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java index 6b3af6b9c..1f6586cfb 100644 --- a/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java +++ b/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java @@ -5,6 +5,7 @@ */ package com.todoroo.astrid.ui; +import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; @@ -28,7 +29,7 @@ import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tasks.R; -import org.tasks.dialogs.DateAndTimePickerDialog; +import org.tasks.activities.DateAndTimePickerActivity; import org.tasks.dialogs.LocationPickerDialog; import org.tasks.location.Geofence; import org.tasks.location.GeofenceService; @@ -53,6 +54,8 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte private static final Logger log = LoggerFactory.getLogger(ReminderControlSet.class); private static final String FRAG_TAG_LOCATION_PICKER = "frag_tag_location_picker"; + public static final int REQUEST_NEW_ALARM = 12152; + private Spinner mode; private Spinner addSpinner; private TextView modeDisplay; @@ -95,32 +98,24 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte } private void addNewAlarm() { - pickNewAlarm(newDateTime().withMillisOfDay(0), new DateAndTimePickerDialog.OnDateTimePicked() { - @Override - public void onDateTimePicked(DateTime dateTime) { - addAlarmRow(dateTime.getMillis()); - } - }); - } - - private void pickNewAlarm(DateTime initial, DateAndTimePickerDialog.OnDateTimePicked onDateTimePicked) { - DateAndTimePickerDialog.dateAndTimePickerDialog(taskEditFragment.getFragmentManager(), - taskEditFragment.getActivity(), initial, onDateTimePicked, null); + taskEditFragment.startActivityForResult(new Intent(taskEditFragment.getActivity(), DateAndTimePickerActivity.class) {{ + putExtra(DateAndTimePickerActivity.EXTRA_TIMESTAMP, newDateTime().withMillisOfDay(0).getMillis()); + }}, REQUEST_NEW_ALARM); } - private void addAlarmRow(final Long timestamp) { + public void addAlarmRow(final Long timestamp) { final View alertItem = addAlarmRow(getDisplayString(timestamp), timestamp, null); TextView display = (TextView) alertItem.findViewById(R.id.alarm_string); display.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - pickNewAlarm(newDateTime(timestamp), new DateAndTimePickerDialog.OnDateTimePicked() { - @Override - public void onDateTimePicked(DateTime dateTime) { - long millis = dateTime.getMillis(); - addAlarmRow(alertItem, getDisplayString(millis), millis, null); - } - }); +// pickNewAlarm(newDateTime(timestamp), new DateAndTimePickerDialog.OnDateTimePicked() { +// @Override +// public void onDateTimePicked(DateTime dateTime) { +// long millis = dateTime.getMillis(); +// addAlarmRow(alertItem, getDisplayString(millis), millis, null); +// } +// }); } }); } diff --git a/src/main/java/org/tasks/dialogs/DateAndTimePickerDialog.java b/src/main/java/org/tasks/dialogs/DateAndTimePickerDialog.java deleted file mode 100644 index 72086fea0..000000000 --- a/src/main/java/org/tasks/dialogs/DateAndTimePickerDialog.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.tasks.dialogs; - -import android.content.Context; -import android.content.DialogInterface; -import android.support.v4.app.FragmentManager; -import android.text.format.DateFormat; - -import com.fourmob.datetimepicker.date.DatePickerDialog; -import com.sleepbot.datetimepicker.time.RadialPickerLayout; -import com.sleepbot.datetimepicker.time.TimePickerDialog; - -import org.joda.time.DateTime; - -import static org.tasks.date.DateTimeUtils.newDateTime; - -public class DateAndTimePickerDialog { - - public interface OnDatePicked { - void onDatePicked(DateTime date); - } - - public interface OnTimePicked { - void onTimePicked(int millisOfDay); - } - - public interface OnDateTimePicked { - void onDateTimePicked(DateTime dateTime); - } - - private static final String FRAG_TAG_DATE_PICKER = "frag_tag_date_picker"; - private static final String FRAG_TAG_TIME_PICKER = "frag_tag_time_picker"; - - public static void datePickerDialog(FragmentManager fragmentManager, DateTime initial, final OnDatePicked onDatePicked, DialogInterface.OnDismissListener dismissed) { - MyDatePickerDialog dialog = new MyDatePickerDialog(); - dialog.initialize(new DatePickerDialog.OnDateSetListener() { - @Override - public void onDateSet(DatePickerDialog datePickerDialog, int year, int month, int day) { - onDatePicked.onDatePicked(newDateTime().withYear(year).withMonthOfYear(month + 1).withDayOfMonth(day).withMillisOfDay(0)); - } - }, initial.getYear(), initial.getMonthOfYear() - 1, initial.getDayOfMonth(), false); - dialog.setOnDismissListener(dismissed); - dialog.show(fragmentManager, FRAG_TAG_DATE_PICKER); - } - - public static void timePickerDialog(FragmentManager fragmentManager, Context context, DateTime initial, final OnTimePicked onTimePicked, DialogInterface.OnDismissListener dismissed) { - MyTimePickerDialog dialog = new MyTimePickerDialog(); - dialog.initialize(new TimePickerDialog.OnTimeSetListener() { - @Override - public void onTimeSet(RadialPickerLayout radialPickerLayout, int hours, int minutes) { - onTimePicked.onTimePicked(newDateTime().withMillisOfDay(0).withHourOfDay(hours).withMinuteOfHour(minutes).getMillisOfDay()); - } - }, initial.getHourOfDay(), initial.getMinuteOfHour(), DateFormat.is24HourFormat(context), false); - dialog.setOnDismissListener(dismissed); - dialog.show(fragmentManager, FRAG_TAG_TIME_PICKER); - } - - public static void dateAndTimePickerDialog(final FragmentManager fragmentManager, final Context context, final DateTime dateTime, final OnDateTimePicked dateTimePicked, final DialogInterface.OnDismissListener dismissed) { - datePickerDialog(fragmentManager, dateTime, new OnDatePicked() { - @Override - public void onDatePicked(final DateTime date) { - timePickerDialog(fragmentManager, context, dateTime, new OnTimePicked() { - @Override - public void onTimePicked(int millisOfDay) { - dateTimePicked.onDateTimePicked(date.withMillisOfDay(millisOfDay)); - } - }, dismissed); - } - }, dismissed); - } -}