diff --git a/astrid/res/values/strings-reminders.xml b/astrid/res/values/strings-reminders.xml index 9c34ff6e6..b2e353a07 100644 --- a/astrid/res/values/strings-reminders.xml +++ b/astrid/res/values/strings-reminders.xml @@ -37,11 +37,17 @@ Until I dismiss alarm - When due + when + + due + + overdue - When overdue + randomly - Randomly + Remind me %s + + Remind %s diff --git a/astrid/src/com/todoroo/astrid/ui/ReminderControlSet.java b/astrid/src/com/todoroo/astrid/ui/ReminderControlSet.java index d9203b24c..ac49e3103 100644 --- a/astrid/src/com/todoroo/astrid/ui/ReminderControlSet.java +++ b/astrid/src/com/todoroo/astrid/ui/ReminderControlSet.java @@ -9,7 +9,6 @@ import java.util.ArrayList; import java.util.List; import android.app.Activity; -import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; @@ -162,30 +161,50 @@ public class ReminderControlSet extends PopupControlSet { @Override protected void refreshDisplayView() { + int reminderCount = 0; + StringBuilder reminderString = new StringBuilder(); + + // Has random reminder? + if ((randomControlSet != null && randomControlSet.hasRandomReminder()) || (randomControlSet == null && model.getValue(Task.REMINDER_PERIOD) > 0)) { + reminderString.append(activity.getString(R.string.TEA_reminder_randomly_short)); + reminderCount++; + } + int value; if (initialized) value = getValue(); else value = model.getValue(Task.REMINDER_FLAGS); - StringBuilder sb = new StringBuilder(); - if ((value & Task.NOTIFY_AT_DEADLINE) > 0) - sb.append(activity.getString(R.string.TEA_reminder_due_short)); + boolean appendedWhen = false; + if ((value & Task.NOTIFY_AT_DEADLINE) > 0) { + if (reminderCount > 0) + reminderString.append(" & "); //$NON-NLS-1$ - if ((value & Task.NOTIFY_AFTER_DEADLINE) > 0) { - if (sb.length() > 0) - sb.append(" / "); //$NON-NLS-1$ - sb.append(activity.getString(R.string.TEA_reminder_overdue_short)); + reminderString.append(activity.getString(R.string.TEA_reminder_when)).append(" "); //$NON-NLS-1$ + reminderString.append(activity.getString(R.string.TEA_reminder_due_short)); + reminderCount++; + appendedWhen = true; } - if ((randomControlSet != null && randomControlSet.hasRandomReminder()) || (randomControlSet == null && model.getValue(Task.REMINDER_PERIOD) > 0)) { - if (sb.length() > 0) - sb.append(" / "); //$NON-NLS-1$ - sb.append(activity.getString(R.string.TEA_reminder_randomly_short)); + if ((value & Task.NOTIFY_AFTER_DEADLINE) > 0 && reminderCount < 2) { + if (reminderCount > 0) + reminderString.append(" & "); //$NON-NLS-1$ + + if (!appendedWhen) + reminderString.append(activity.getString(R.string.TEA_reminder_when)).append(" "); //$NON-NLS-1$ + reminderString.append(activity.getString(R.string.TEA_reminder_overdue_short)); + reminderCount++; } - String toDisplay = sb.toString(); - if (!TextUtils.isEmpty(toDisplay)) { + if (reminderCount > 0) { + String toDisplay; + if (reminderCount == 1) { + toDisplay = activity.getString(R.string.TEA_reminder_display_one, reminderString.toString()); + } else { + toDisplay = activity.getString(R.string.TEA_reminder_display_multiple, reminderString.toString()); + } + label.setText(toDisplay); label.setTextColor(themeColor); image.setImageResource(ThemeService.getTaskEditDrawable(R.drawable.tea_icn_reminder, R.drawable.tea_icn_reminder_lightblue));