Use DateAndTimePickerActivity in ReminderControlSet

pull/281/head
Alex Baker 9 years ago
parent 090bf5e645
commit 2d53e51978

@ -79,8 +79,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.DateAndTimePickerActivity; import org.tasks.activities.DateAndTimePickerActivity;
import org.tasks.activities.TimePickerActivity;
import org.tasks.dialogs.DateAndTimePickerDialog;
import org.tasks.injection.InjectingFragment; import org.tasks.injection.InjectingFragment;
import org.tasks.location.GeofenceService; import org.tasks.location.GeofenceService;
import org.tasks.notifications.NotificationManager; import org.tasks.notifications.NotificationManager;
@ -187,6 +185,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
private TimerActionControlSet timerAction; private TimerActionControlSet timerAction;
private EditNoteActivity editNotes; private EditNoteActivity editNotes;
private HideUntilControlSet hideUntilControls; private HideUntilControlSet hideUntilControls;
private ReminderControlSet reminderControlSet;
@InjectView(R.id.title) EditText title; @InjectView(R.id.title) EditText title;
@InjectView(R.id.pager) ViewPager mPager; @InjectView(R.id.pager) ViewPager mPager;
@ -387,7 +386,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
controlSetMap.put(getString(R.string.TEA_ctrl_notes_pref), controlSetMap.put(getString(R.string.TEA_ctrl_notes_pref),
notesControlSet); notesControlSet);
ReminderControlSet reminderControlSet = new ReminderControlSet(alarmService, geofenceService, this); reminderControlSet = new ReminderControlSet(alarmService, geofenceService, this);
controls.add(reminderControlSet); controls.add(reminderControlSet);
controlSetMap.put(getString(R.string.TEA_ctrl_reminders_pref), reminderControlSet); controlSetMap.put(getString(R.string.TEA_ctrl_reminders_pref), reminderControlSet);
@ -921,6 +920,13 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
log.error("Invalid timestamp"); log.error("Invalid timestamp");
} }
return; 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)) { } else if (editNotes != null && editNotes.activityResult(requestCode, resultCode, data)) {
return; return;
} else if (requestCode == REQUEST_CODE_RECORD && resultCode == Activity.RESULT_OK) { } else if (requestCode == REQUEST_CODE_RECORD && resultCode == Activity.RESULT_OK) {

@ -5,7 +5,6 @@
*/ */
package com.todoroo.astrid.ui; package com.todoroo.astrid.ui;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@ -23,12 +22,10 @@ import com.todoroo.astrid.helper.TaskEditControlSetBase;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.DateAndTimePickerActivity; import org.tasks.activities.DateAndTimePickerActivity;
import org.tasks.dialogs.DateAndTimePickerDialog;
import java.util.Date; import java.util.Date;
import static org.tasks.date.DateTimeUtils.newDate; import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime;
/** /**
* Control set for specifying when a task should be hidden * Control set for specifying when a task should be hidden

@ -5,6 +5,7 @@
*/ */
package com.todoroo.astrid.ui; package com.todoroo.astrid.ui;
import android.content.Intent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@ -28,7 +29,7 @@ import org.joda.time.DateTime;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DateAndTimePickerDialog; import org.tasks.activities.DateAndTimePickerActivity;
import org.tasks.dialogs.LocationPickerDialog; import org.tasks.dialogs.LocationPickerDialog;
import org.tasks.location.Geofence; import org.tasks.location.Geofence;
import org.tasks.location.GeofenceService; 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 Logger log = LoggerFactory.getLogger(ReminderControlSet.class);
private static final String FRAG_TAG_LOCATION_PICKER = "frag_tag_location_picker"; 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 mode;
private Spinner addSpinner; private Spinner addSpinner;
private TextView modeDisplay; private TextView modeDisplay;
@ -95,32 +98,24 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
} }
private void addNewAlarm() { private void addNewAlarm() {
pickNewAlarm(newDateTime().withMillisOfDay(0), new DateAndTimePickerDialog.OnDateTimePicked() { taskEditFragment.startActivityForResult(new Intent(taskEditFragment.getActivity(), DateAndTimePickerActivity.class) {{
@Override putExtra(DateAndTimePickerActivity.EXTRA_TIMESTAMP, newDateTime().withMillisOfDay(0).getMillis());
public void onDateTimePicked(DateTime dateTime) { }}, REQUEST_NEW_ALARM);
addAlarmRow(dateTime.getMillis());
}
});
}
private void pickNewAlarm(DateTime initial, DateAndTimePickerDialog.OnDateTimePicked onDateTimePicked) {
DateAndTimePickerDialog.dateAndTimePickerDialog(taskEditFragment.getFragmentManager(),
taskEditFragment.getActivity(), initial, onDateTimePicked, null);
} }
private void addAlarmRow(final Long timestamp) { public void addAlarmRow(final Long timestamp) {
final View alertItem = addAlarmRow(getDisplayString(timestamp), timestamp, null); final View alertItem = addAlarmRow(getDisplayString(timestamp), timestamp, null);
TextView display = (TextView) alertItem.findViewById(R.id.alarm_string); TextView display = (TextView) alertItem.findViewById(R.id.alarm_string);
display.setOnClickListener(new OnClickListener() { display.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
pickNewAlarm(newDateTime(timestamp), new DateAndTimePickerDialog.OnDateTimePicked() { // pickNewAlarm(newDateTime(timestamp), new DateAndTimePickerDialog.OnDateTimePicked() {
@Override // @Override
public void onDateTimePicked(DateTime dateTime) { // public void onDateTimePicked(DateTime dateTime) {
long millis = dateTime.getMillis(); // long millis = dateTime.getMillis();
addAlarmRow(alertItem, getDisplayString(millis), millis, null); // addAlarmRow(alertItem, getDisplayString(millis), millis, 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);
}
}
Loading…
Cancel
Save