From 7179a2fb30f47d65ef33d91b4878210c22bab947 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Wed, 8 Jun 2011 23:34:56 -0700 Subject: [PATCH] ability to delete tag data and transmit that to the server --- .../com/todoroo/astrid/actfm/sync/ActFmInvoker.java | 3 +++ .../todoroo/astrid/actfm/sync/ActFmSyncService.java | 4 ++++ .../com/todoroo/astrid/core/PluginServices.java | 2 +- .../com/todoroo/astrid/tags/TagFilterExposer.java | 10 ++++++++-- astrid/res/values/strings-actfm.xml | 2 +- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmInvoker.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmInvoker.java index 70eba973c..2d1bd8c5f 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmInvoker.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmInvoker.java @@ -32,6 +32,8 @@ public class ActFmInvoker { public static final String PROVIDER_GOOGLE= "google"; public static final String PROVIDER_PASSWORD = "password"; + private static final int API_VERSION = 1; + @Autowired private RestClient restClient; private String token = null; @@ -159,6 +161,7 @@ public class ActFmInvoker { } params.add(new Pair("app_id", APP_ID)); params.add(new Pair("time", System.currentTimeMillis() / 1000L)); + params.add(new Pair("api", API_VERSION)); if(token != null) params.add(new Pair("token", token)); diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java index 5778d747a..eea360692 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -302,6 +302,10 @@ public final class ActFmSyncService { params.add("name"); params.add(tagData.getValue(TagData.NAME)); } + if(values.containsKey(TagData.DELETION_DATE.name)) { + params.add("deleted_at"); params.add(tagData.getValue(TagData.DELETION_DATE)); + } + if(values.containsKey(TagData.MEMBERS.name)) { params.add("members"); try { diff --git a/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java b/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java index 3b2bdd9e0..b366713a8 100644 --- a/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java +++ b/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java @@ -65,7 +65,7 @@ public final class PluginServices { return getInstance().taskService; } - public static TagDataService getProjectService() { + public static TagDataService getTagDataService() { return getInstance().tagDataService; } diff --git a/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java b/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java index 4a4c62408..400c1aa71 100644 --- a/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/tags/TagFilterExposer.java @@ -17,6 +17,7 @@ import android.content.res.Resources; import android.graphics.Color; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; +import android.text.TextUtils; import android.widget.EditText; import android.widget.Toast; @@ -28,6 +29,7 @@ import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.QueryTemplate; +import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.astrid.actfm.TagViewActivity; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; @@ -38,6 +40,7 @@ import com.todoroo.astrid.api.FilterCategory; import com.todoroo.astrid.api.FilterListHeader; import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterWithCustomIntent; +import com.todoroo.astrid.core.PluginServices; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.TagData; @@ -158,7 +161,7 @@ public class TagFilterExposer extends BroadcastReceiver { // find all tag data not in active tag list TodorooCursor cursor = tagDataService.query(Query.select( - TagData.NAME, TagData.TASK_COUNT, TagData.REMOTE_ID)); + TagData.NAME, TagData.TASK_COUNT, TagData.REMOTE_ID).where(TagData.DELETION_DATE.eq(0))); ArrayList notListed = new ArrayList(); try { ArrayList sharedTags = new ArrayList(); @@ -184,7 +187,7 @@ public class TagFilterExposer extends BroadcastReceiver { Tag[] inactiveTags = tagService.getGroupedTags(TagService.GROUPED_TAGS_BY_ALPHA, Criterion.and(TaskCriteria.notDeleted(), Criterion.not(TaskCriteria.activeAndVisible()))); for(Tag tag : inactiveTags) { - if(!tagNames.contains(tag.tag)) { + if(!tagNames.contains(tag.tag) && !TextUtils.isEmpty(tag.tag)) { notListed.add(tag); tag.count = 0; } @@ -290,6 +293,9 @@ public class TagFilterExposer extends BroadcastReceiver { @Override protected boolean ok() { int deleted = tagService.delete(tag); + TagData tagData = PluginServices.getTagDataService().getTag(tag, TagData.ID, TagData.DELETION_DATE); + tagData.setValue(TagData.DELETION_DATE, DateUtilities.now()); + PluginServices.getTagDataService().save(tagData); Toast.makeText(this, getString(R.string.TEA_tags_deleted, tag, deleted), Toast.LENGTH_SHORT).show(); return true; diff --git a/astrid/res/values/strings-actfm.xml b/astrid/res/values/strings-actfm.xml index 393344371..2443082e8 100644 --- a/astrid/res/values/strings-actfm.xml +++ b/astrid/res/values/strings-actfm.xml @@ -20,7 +20,7 @@ Save Unsuccessful - Please view shared tags to rename or delete them. + Sorry, this operation is not yet supported for shared tags. Take a Picture