diff --git a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatControlSet.java b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatControlSet.java index bee076c21..920563043 100644 --- a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatControlSet.java @@ -62,7 +62,7 @@ public class RepeatControlSet extends PopupControlSet { private static final int TYPE_COMPLETION_DATE = 1; //private final CheckBox enabled; - private boolean doRepeat = true; + private boolean doRepeat = false; private Button value; private Spinner interval; private Spinner type; @@ -343,16 +343,23 @@ public class RepeatControlSet extends PopupControlSet { return doRepeat; } + /** + * @return the recurrence display string if set, null + * if not set + */ + public String getStringForExternalDisplay() { + if (isRecurrenceSet()) { + return getRepeatString(false); + } + return null; + } + @Override protected void refreshDisplayView() { TextView repeatDisplay = (TextView) getDisplayView().findViewById(R.id.display_row_edit); ImageView repeatImage = (ImageView) getDisplayView().findViewById(R.id.repeat_image_icon); if (doRepeat) { - String[] dateAbbrev = activity.getResources().getStringArray( - R.array.repeat_interval_short); - String date = String.format("%s %s", repeatValue, dateAbbrev[intervalValue]); //$NON-NLS-1$ - String text = String.format(activity.getString(R.string.repeat_detail_duedate), date); // Every freq int - repeatDisplay.setText(text); + repeatDisplay.setText(getRepeatString(true)); TypedValue repeatIcon = new TypedValue(); activity.getTheme().resolveAttribute(R.attr.asRepeatIcon, repeatIcon, false); @@ -364,6 +371,19 @@ public class RepeatControlSet extends PopupControlSet { } } + private String getRepeatString(boolean useAbbrev) { + int arrayResource; + if (useAbbrev) + arrayResource = R.array.repeat_interval_short; + else + arrayResource = R.array.repeat_interval; + + String[] dates = activity.getResources().getStringArray( + arrayResource); + String date = String.format("%s %s", repeatValue, dates[intervalValue]); //$NON-NLS-1$ + return String.format(activity.getString(R.string.repeat_detail_duedate), date); // Every freq int + } + @Override protected Dialog buildDialog(String title, final DialogInterface.OnClickListener okListener, final DialogInterface.OnCancelListener cancelListener) { diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java index d080117a6..9dad69f7a 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java @@ -538,7 +538,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { // Order matters! DeadlineControlSet deadlineControl = new DeadlineControlSet( getActivity(), R.layout.control_set_deadline, - R.layout.control_set_default_display, + R.layout.control_set_default_display, repeatControls, repeatControls.getDisplayView(), gcalControl.getDisplayView()); controlSetMap.put(getString(R.string.TEA_ctrl_when_pref), deadlineControl); diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java index c85530898..79b268248 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java @@ -639,7 +639,7 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, deadlineControl = new DeadlineControlSet( getActivity(), R.layout.control_set_deadline, - R.layout.control_set_default_display, + R.layout.control_set_default_display, null, repeatControl.getDisplayView(), gcalControl.getDisplayView()); deadlineControl.setIsQuickadd(true); diff --git a/astrid/src/com/todoroo/astrid/ui/DeadlineControlSet.java b/astrid/src/com/todoroo/astrid/ui/DeadlineControlSet.java index 93d24d3c1..b7326477d 100644 --- a/astrid/src/com/todoroo/astrid/ui/DeadlineControlSet.java +++ b/astrid/src/com/todoroo/astrid/ui/DeadlineControlSet.java @@ -1,6 +1,7 @@ package com.todoroo.astrid.ui; import android.app.Activity; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; @@ -12,29 +13,40 @@ import android.widget.TextView; import com.timsu.astrid.R; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.astrid.data.Task; +import com.todoroo.astrid.repeats.RepeatControlSet; public class DeadlineControlSet extends PopupControlSet { private boolean isQuickadd = false; private DateAndTimePicker dateAndTimePicker; private final View[] extraViews; + private final RepeatControlSet repeatControlSet; - public DeadlineControlSet(Activity activity, int viewLayout, int displayViewLayout, View...extraViews) { + public DeadlineControlSet(Activity activity, int viewLayout, int displayViewLayout, + RepeatControlSet repeatControlSet, View...extraViews) { super(activity, viewLayout, displayViewLayout, 0); this.extraViews = extraViews; this.displayText.setText(activity.getString(R.string.TEA_when_header_label)); + this.repeatControlSet = repeatControlSet; } @Override protected void refreshDisplayView() { - String toDisplay; + StringBuilder displayString = new StringBuilder(); if (initialized) - toDisplay = dateAndTimePicker.getDisplayString(activity, isQuickadd, isQuickadd); + displayString.append(dateAndTimePicker.getDisplayString(activity, isQuickadd, isQuickadd)); else - toDisplay = DateAndTimePicker.getDisplayString(activity, model.getValue(Task.DUE_DATE), isQuickadd, isQuickadd); + displayString.append(DateAndTimePicker.getDisplayString(activity, model.getValue(Task.DUE_DATE), isQuickadd, isQuickadd)); + if (!isQuickadd && repeatControlSet != null) { + String repeatString = repeatControlSet.getStringForExternalDisplay(); + if (!TextUtils.isEmpty(repeatString)) { + displayString.append("\n"); //$NON-NLS-1$ + displayString.append(repeatString); + } + } TextView dateDisplay = (TextView) getDisplayView().findViewById(R.id.display_row_edit); - dateDisplay.setText(toDisplay); + dateDisplay.setText(displayString); } @Override