Update reminder control

* Show full month
* Handle onClick for custom reminders
pull/281/head
Alex Baker 9 years ago
parent cf4d21cfad
commit 4e0ffaf4fe

@ -88,11 +88,10 @@ public class DateUtilities {
public static String getTimeString(Context context, Date date) {
String value;
if (is24HourFormat(context)) {
value = "H:mm";
value = "HH:mm";
} else if (date.getMinutes() == 0){
value = "h a";
}
else {
} else {
value = "h:mm a";
}
return new SimpleDateFormat(value).format(date);
@ -104,12 +103,21 @@ public class DateUtilities {
return Arrays.binarySearch(sortedValues, search) >= 0;
}
public static String getLongDateString(Date date) {
return getDateString(new SimpleDateFormat("MMMM"), date);
}
/**
* @param date date to format
* @return date, with month, day, and year
*/
public static String getDateString(Date date) {
String month = new SimpleDateFormat("MMM").format(date);
return getDateString(new SimpleDateFormat("MMM"), date);
}
private static String getDateString(SimpleDateFormat simpleDateFormat, Date date) {
String month = simpleDateFormat.format(date);
String value;
String standardDate;
Locale locale = Locale.getDefault();
@ -130,12 +138,20 @@ public class DateUtilities {
return standardDate;
}
public static String getLongDateStringHideYear(Date date) {
return getDateStringHideYear(new SimpleDateFormat("MMMM"), date);
}
/**
* @param date date to format
* @return date, with month, day, and year
*/
public static String getDateStringHideYear(Date date) {
String month = new SimpleDateFormat("MMM").format(date);
return getDateStringHideYear(new SimpleDateFormat("MMM"), date);
}
private static String getDateStringHideYear(SimpleDateFormat simpleDateFormat, Date date) {
String month = simpleDateFormat.format(date);
String value;
Locale locale = Locale.getDefault();
if (arrayBinaryContains(locale.getLanguage(), "ja", "ko", "zh")

@ -86,17 +86,45 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
return value;
}
private void addAlarmRow(Long timestamp) {
addAlarmRow(getDisplayString(timestamp), timestamp, new OnClickListener() {
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);
}
private 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);
}
});
}
});
}
private View addAlarmRow(String text, Long timestamp, final View.OnClickListener onRemove) {
private View addAlarmRow(String text, Long timestamp, final OnClickListener onRemove) {
final View alertItem = LayoutInflater.from(activity).inflate(R.layout.alarm_edit_row, null);
alertContainer.addView(alertItem);
addAlarmRow(alertItem, text, timestamp, onRemove);
return alertItem;
}
private View addAlarmRow(final View alertItem, String text, Long timestamp, final View.OnClickListener onRemove) {
alertItem.setTag(timestamp);
TextView display = (TextView) alertItem.findViewById(R.id.alarm_string);
display.setText(text);
@ -104,7 +132,9 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
@Override
public void onClick(View v) {
alertContainer.removeView(alertItem);
onRemove.onClick(v);
if (onRemove != null) {
onRemove.onClick(v);
}
updateSpinner();
}
});
@ -112,17 +142,6 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
return alertItem;
}
private void addNewAlarm() {
DateAndTimePickerDialog.dateAndTimePickerDialog(taskEditFragment.getFragmentManager(),
taskEditFragment.getActivity(), newDateTime().withMillisOfDay(0),
new DateAndTimePickerDialog.OnDateTimePicked() {
@Override
public void onDateTimePicked(DateTime dateTime) {
addAlarmRow(dateTime.getMillis());
}
}, null);
}
private void updateSpinner() {
addSpinner.setSelection(0);
spinnerOptions.clear();
@ -149,12 +168,12 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
if (spinnerOptions.size() == 2) {
addNewAlarm();
} else {
addSpinner.setOnItemSelectedListener(ReminderControlSet.this);
addSpinner.performClick();
}
}
});
addSpinner = (Spinner) getView().findViewById(R.id.alarms_add_spinner);
addSpinner.setOnItemSelectedListener(ReminderControlSet.this);
remindAdapter = new ArrayAdapter<String>(activity, R.layout.simple_spinner_item, spinnerOptions) {
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
@ -309,15 +328,14 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
DateTime dateTime = newDateTime(forDate);
Date d = dateTime.toDate();
return (dateTime.getYear() == newDateTime().getYear()
? DateUtilities.getDateStringHideYear(d)
: DateUtilities.getDateString(d)) +
? DateUtilities.getLongDateStringHideYear(d)
: DateUtilities.getLongDateString(d)) +
", " + DateUtilities.getTimeString(activity, d);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
log.info("onItemSelected({}, {}, {}, {})", parent, view, position, id);
addSpinner.setOnItemSelectedListener(null);
String selected = spinnerOptions.get(position);
if (selected.equals(taskEditFragment.getString(R.string.when_due))) {
addDue();
@ -335,6 +353,5 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
@Override
public void onNothingSelected(AdapterView<?> parent) {
addSpinner.setOnItemSelectedListener(null);
}
}

@ -37,7 +37,7 @@ public class DateAndTimePickerDialog {
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(), true);
}, initial.getYear(), initial.getMonthOfYear() - 1, initial.getDayOfMonth(), false);
dialog.setOnDismissListener(dismissed);
dialog.show(fragmentManager, FRAG_TAG_DATE_PICKER);
}
@ -49,7 +49,7 @@ public class DateAndTimePickerDialog {
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), true);
}, initial.getHourOfDay(), initial.getMinuteOfHour(), DateFormat.is24HourFormat(context), false);
dialog.setOnDismissListener(dismissed);
dialog.show(fragmentManager, FRAG_TAG_TIME_PICKER);
}

Loading…
Cancel
Save