diff --git a/api/src/com/todoroo/astrid/data/Task.java b/api/src/com/todoroo/astrid/data/Task.java index a677bd757..bf50dcae2 100644 --- a/api/src/com/todoroo/astrid/data/Task.java +++ b/api/src/com/todoroo/astrid/data/Task.java @@ -171,6 +171,9 @@ public final class Task extends RemoteModel { /** whether task is read-only */ public static final int FLAG_IS_READONLY = 1 << 2; + /** whether a task is public */ + public static final int FLAG_PUBLIC = 1 << 3; + // --- user id special values /** user id = doesn't exist/ignore it. For filtering in tags */ 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 a49cbd909..f34ed0015 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -1404,6 +1404,9 @@ public final class ActFmSyncService { model.setFlag(Task.FLAGS, Task.FLAG_REPEAT_AFTER_COMPLETION, true); else model.setFlag(Task.FLAGS, Task.FLAG_REPEAT_AFTER_COMPLETION, false); + + String privacy = json.optString("privacy"); + model.setFlag(Task.FLAGS, Task.FLAG_PUBLIC, privacy.equals("public")); model.setValue(Task.NOTES, json.optString("notes", "")); model.setValue(Task.DETAILS_DATE, 0L); model.setValue(Task.LAST_SYNC, DateUtilities.now() + 1000L); diff --git a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java index 7daddd0de..2c28aecbd 100644 --- a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java @@ -1048,7 +1048,8 @@ public class TaskAdapter extends CursorAdapter implements Filterable { return; long taskId = viewHolder.task.getId(); - if (!viewHolder.task.getFlag(Task.FLAGS, Task.FLAG_IS_READONLY)) { + if (!viewHolder.task.getFlag(Task.FLAGS, Task.FLAG_IS_READONLY) && + !(viewHolder.task.getFlag(Task.FLAGS, Task.FLAG_PUBLIC) && viewHolder.task.getValue(Task.USER_ID) != Task.USER_ID_SELF)) { editTask(taskId); } }