From 6784269f47b957cb944c90cb13ae495297f0d6d2 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Sun, 18 Jul 2010 03:51:19 -0700 Subject: [PATCH] Fixed up task save toast to only appear when necessary, fixed bug with random repeats --- .../todoroo/astrid/gcal/GCalControlSet.java | 1 + .../astrid/activity/TaskEditActivity.java | 23 +++++++------------ .../src/com/todoroo/astrid/dao/TaskDao.java | 8 ++++--- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java b/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java index 3f2e6c9bf..4b1b2c9c3 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/gcal/GCalControlSet.java @@ -158,6 +158,7 @@ public class GCalControlSet implements TaskEditControlSet { } } + @SuppressWarnings("nls") private void createStartAndEndDate(Task task, ContentValues values) { long dueDate = task.getValue(Task.DUE_DATE); if(task.hasDueDate()) { diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java index c607f1102..16d361323 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java @@ -40,6 +40,7 @@ import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.AdapterView; import android.widget.ArrayAdapter; @@ -342,8 +343,8 @@ public final class TaskEditActivity extends TabActivity { for(TaskEditControlSet controlSet : controls) controlSet.writeToModel(model); - taskService.save(model, false); - showSaveToast(); + if(taskService.save(model, false)) + showSaveToast(); } /* ====================================================================== @@ -394,7 +395,7 @@ public final class TaskEditActivity extends TabActivity { * precision */ private void showSaveToast() { - // if we have no title, don't show a message + // if we have no title, or nothing's changed, don't show toast if(isNewTask()) return; @@ -1087,19 +1088,11 @@ public final class TaskEditActivity extends TabActivity { public RandomReminderControlSet(int settingCheckboxId, int periodButtonId) { settingCheckbox = (CheckBox)findViewById(settingCheckboxId); periodSpinner = (Spinner)findViewById(periodButtonId); - periodSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { - + periodSpinner.setOnClickListener(new OnClickListener() { @Override - public void onItemSelected(AdapterView arg0, View arg1, - int arg2, long arg3) { + public void onClick(View v) { settingCheckbox.setChecked(true); } - - @Override - public void onNothingSelected(AdapterView arg0) { - // ignore - } - }); // create adapter @@ -1120,7 +1113,7 @@ public final class TaskEditActivity extends TabActivity { public void readFromTask(Task task) { long time = task.getValue(Task.REMINDER_PERIOD); - boolean shouldDisable = time <= 0; + boolean enabled = time > 0; if(time <= 0) { time = DEFAULT_INTERVAL; } @@ -1130,7 +1123,7 @@ public final class TaskEditActivity extends TabActivity { if(hours[i] * DateUtilities.ONE_HOUR >= time) break; periodSpinner.setSelection(i); - settingCheckbox.setChecked(!shouldDisable); + settingCheckbox.setChecked(enabled); } @Override diff --git a/astrid/src/com/todoroo/astrid/dao/TaskDao.java b/astrid/src/com/todoroo/astrid/dao/TaskDao.java index 64f59d969..a6279fd3b 100644 --- a/astrid/src/com/todoroo/astrid/dao/TaskDao.java +++ b/astrid/src/com/todoroo/astrid/dao/TaskDao.java @@ -138,16 +138,18 @@ public class TaskDao extends GenericDao { * @param skipHooks * Whether pre and post hooks should run. This should be set * to true if tasks are created as part of synchronization + * @return true if save occurred, false otherwise (i.e. nothing changed) */ public boolean save(Task task, boolean skipHooks) { boolean saveSuccessful; + ContentValues values = task.getSetValues(); + if(values == null || values.size() == 0) + return false; + if (task.getId() == Task.NO_ID) { saveSuccessful = createNew(task); } else { - ContentValues values = task.getSetValues(); - if(values == null || values.size() == 0) - return true; beforeSave(task, values, skipHooks); saveSuccessful = saveExisting(task); afterSave(task, values, skipHooks);