Roll back repeat SMTWRFS displaying for non-weekly frequencies

pull/14/head
Tim Su 16 years ago
parent 098faf2af8
commit 7f2a17de89

@ -12,13 +12,13 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams; import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.CompoundButton.OnCheckedChangeListener;
import com.google.ical.values.Frequency; import com.google.ical.values.Frequency;
import com.google.ical.values.RRule; import com.google.ical.values.RRule;
@ -62,6 +62,7 @@ public class RepeatControlSet implements TaskEditControlSet {
private final LinearLayout repeatContainer; private final LinearLayout repeatContainer;
private final LinearLayout daysOfWeekContainer; private final LinearLayout daysOfWeekContainer;
private final CompoundButton[] daysOfWeek = new CompoundButton[7]; private final CompoundButton[] daysOfWeek = new CompoundButton[7];
private Task model;
@Autowired @Autowired
ExceptionService exceptionService; ExceptionService exceptionService;
@ -118,17 +119,17 @@ public class RepeatControlSet implements TaskEditControlSet {
interval.setOnItemSelectedListener(new OnItemSelectedListener() { interval.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override @Override
public void onItemSelected(AdapterView<?> parentView, View view, int position, long id) { public void onItemSelected(AdapterView<?> parentView, View view, int position, long id) {
if(setInterval) { daysOfWeekContainer.setVisibility(position == INTERVAL_WEEKS ? View.VISIBLE : View.GONE);
setInterval = false;
return;
}
if(position == INTERVAL_WEEKS) { if(position == INTERVAL_WEEKS) {
int dayOfWeek = new Date().getDay(); Date date;
if(model.getValue(Task.DUE_DATE) == 0)
date = new Date();
else
date = new Date(model.getValue(Task.DUE_DATE));
int dayOfWeek = date.getDay();
for(int i = 0; i < 7; i++) for(int i = 0; i < 7; i++)
daysOfWeek[i].setChecked(i == dayOfWeek); daysOfWeek[i].setChecked(i == dayOfWeek);
} else {
for(int i = 0; i < 7; i++)
daysOfWeek[i].setChecked(true);
} }
} }
@ -137,7 +138,7 @@ public class RepeatControlSet implements TaskEditControlSet {
// //
} }
}); });
daysOfWeekContainer.setVisibility(View.VISIBLE); daysOfWeekContainer.setVisibility(View.GONE);
} }
/** Set up the repeat value button */ /** Set up the repeat value button */
@ -172,6 +173,8 @@ public class RepeatControlSet implements TaskEditControlSet {
@Override @Override
public void readFromTask(Task task) { public void readFromTask(Task task) {
model = task;
String recurrence = task.getValue(Task.RECURRENCE); String recurrence = task.getValue(Task.RECURRENCE);
if(recurrence == null) if(recurrence == null)
recurrence = ""; //$NON-NLS-1$ recurrence = ""; //$NON-NLS-1$
@ -244,6 +247,12 @@ public class RepeatControlSet implements TaskEditControlSet {
break; break;
case INTERVAL_WEEKS: { case INTERVAL_WEEKS: {
rrule.setFreq(Frequency.WEEKLY); rrule.setFreq(Frequency.WEEKLY);
ArrayList<WeekdayNum> days = new ArrayList<WeekdayNum>();
for(int i = 0; i < daysOfWeek.length; i++)
if(daysOfWeek[i].isChecked())
days.add(new WeekdayNum(0, (Weekday)daysOfWeek[i].getTag()));
rrule.setByDay(days);
break; break;
} }
case INTERVAL_MONTHS: case INTERVAL_MONTHS:
@ -253,12 +262,6 @@ public class RepeatControlSet implements TaskEditControlSet {
rrule.setFreq(Frequency.HOURLY); rrule.setFreq(Frequency.HOURLY);
} }
ArrayList<WeekdayNum> days = new ArrayList<WeekdayNum>();
for(int i = 0; i < daysOfWeek.length; i++)
if(daysOfWeek[i].isChecked())
days.add(new WeekdayNum(0, (Weekday)daysOfWeek[i].getTag()));
rrule.setByDay(days);
result = rrule.toIcal(); result = rrule.toIcal();
} }
task.setValue(Task.RECURRENCE, result); task.setValue(Task.RECURRENCE, result);

@ -3,7 +3,6 @@ package com.todoroo.astrid.repeats;
import java.text.ParseException; import java.text.ParseException;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.TimeZone; import java.util.TimeZone;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
@ -17,7 +16,6 @@ import com.google.ical.values.DateValue;
import com.google.ical.values.DateValueImpl; import com.google.ical.values.DateValueImpl;
import com.google.ical.values.Frequency; import com.google.ical.values.Frequency;
import com.google.ical.values.RRule; import com.google.ical.values.RRule;
import com.google.ical.values.WeekdayNum;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.PluginServices; import com.todoroo.astrid.core.PluginServices;
@ -102,9 +100,7 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver {
// handle the iCalendar "byDay" field differently depending on if // handle the iCalendar "byDay" field differently depending on if
// we are weekly or otherwise // we are weekly or otherwise
List<WeekdayNum> byDay = null;
if(rrule.getFreq() != Frequency.WEEKLY) { if(rrule.getFreq() != Frequency.WEEKLY) {
byDay = rrule.getByDay();
rrule.setByDay(Collections.EMPTY_LIST); rrule.setByDay(Collections.EMPTY_LIST);
} }
@ -147,20 +143,6 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver {
if(newDueDate == -1) if(newDueDate == -1)
return -1; return -1;
// what we do with the by day information is to add days until
// weekday equals one of this list
if(byDay != null && byDay.size() > 0) {
Date newDueDateDate = new Date(newDueDate);
outer: for(int i = 0; i < 7; i++) {
int weekday = newDueDateDate.getDay();
for(WeekdayNum wdn : byDay)
if(wdn.wday.jsDayNum == weekday)
break outer;
newDueDateDate.setDate(newDueDateDate.getDate() + 1);
}
newDueDate = newDueDateDate.getTime();
}
return newDueDate; return newDueDate;
} }

@ -27,14 +27,14 @@ import java.util.List;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.DatePickerDialog; import android.app.DatePickerDialog;
import android.app.TabActivity;
import android.app.DatePickerDialog.OnDateSetListener; import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TabActivity;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.DialogInterface.OnCancelListener;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
@ -45,6 +45,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams; import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
@ -59,7 +60,6 @@ import android.widget.TabHost;
import android.widget.TimePicker; import android.widget.TimePicker;
import android.widget.Toast; import android.widget.Toast;
import android.widget.ToggleButton; import android.widget.ToggleButton;
import android.widget.AdapterView.OnItemSelectedListener;
import com.flurry.android.FlurryAgent; import com.flurry.android.FlurryAgent;
import com.timsu.astrid.R; import com.timsu.astrid.R;
@ -793,6 +793,7 @@ public final class TaskEditActivity extends TabActivity {
datePicker.show(); datePicker.show();
} else { } else {
previousSetting = position; previousSetting = position;
model.setValue(Task.DUE_DATE, item.dueDate);
} }
} }
@ -840,6 +841,7 @@ public final class TaskEditActivity extends TabActivity {
private void customDateFinished() { private void customDateFinished() {
long time = model.createDueDate(customSetting, customDate.getTime()); long time = model.createDueDate(customSetting, customDate.getTime());
model.setValue(Task.DUE_DATE, time);
createUrgencyList(time); createUrgencyList(time);
} }

Loading…
Cancel
Save