diff --git a/api/src/com/todoroo/astrid/data/RemoteModel.java b/api/src/com/todoroo/astrid/data/RemoteModel.java index a61b956df..ed8adc848 100644 --- a/api/src/com/todoroo/astrid/data/RemoteModel.java +++ b/api/src/com/todoroo/astrid/data/RemoteModel.java @@ -96,6 +96,8 @@ abstract public class RemoteModel extends AbstractModel { public static String getPictureUrlFromCursor(TodorooCursor cursor, StringProperty pictureProperty, String size) { String value = cursor.get(pictureProperty); try { + if (value == null) + return null; JSONObject pictureJson = new JSONObject(value); return pictureJson.optString(size); } catch (JSONException e) { diff --git a/api/src/com/todoroo/astrid/data/UserActivity.java b/api/src/com/todoroo/astrid/data/UserActivity.java index 3f33232a4..83ce23ea2 100644 --- a/api/src/com/todoroo/astrid/data/UserActivity.java +++ b/api/src/com/todoroo/astrid/data/UserActivity.java @@ -38,7 +38,7 @@ public class UserActivity extends RemoteModel { /** Pushed at */ public static final LongProperty PUSHED_AT = new LongProperty( - TABLE, "pushed_at", Property.PROP_FLAG_DATE); + TABLE, PUSHED_AT_PROPERTY_NAME, Property.PROP_FLAG_DATE); /** User ID (activity initiator) */ public static final StringProperty USER_UUID = new StringProperty( diff --git a/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java b/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java index c20d99617..cc74138b0 100644 --- a/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/notes/EditNoteActivity.java @@ -54,6 +54,8 @@ import com.todoroo.astrid.actfm.ActFmCameraModule.CameraResultCallback; import com.todoroo.astrid.actfm.ActFmCameraModule.ClearImageCallback; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.actfm.sync.ActFmSyncService; +import com.todoroo.astrid.actfm.sync.ActFmSyncThread; +import com.todoroo.astrid.actfm.sync.messages.BriefMe; import com.todoroo.astrid.activity.TaskEditFragment; import com.todoroo.astrid.adapter.UpdateAdapter; import com.todoroo.astrid.core.PluginServices; @@ -413,6 +415,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene callback.started(); callback.incrementMax(100); } + ActFmSyncThread.getInstance().enqueueMessage(new BriefMe(Task.class, task.getUuid(), task.getValue(Task.PUSHED_AT))); // actFmSyncService.fetchUpdatesForTask(task, manual, new Runnable() { diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java index efba351e5..37c59d131 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListFragment.java @@ -972,7 +972,7 @@ public class TaskListFragment extends ListFragment implements OnScrollListener, Task.ID.eq(Field.field(TR_METADATA_JOIN + "." + Metadata.TASK.name)))).toString() //$NON-NLS-1$ + Join.left(Metadata.TABLE.as(TAGS_METADATA_JOIN), tagsJoinCriterion).toString() //$NON-NLS-1$ - + Join.left(User.TABLE.as(USER_IMAGE_JOIN), Task.USER_ID.eq(User.UUID)).toString() + + Join.left(User.TABLE.as(USER_IMAGE_JOIN), Task.USER_ID.eq(Field.field(USER_IMAGE_JOIN + "." + User.UUID.name))).toString() + filter.getSqlQuery(); sqlQueryTemplate.set(SortHelper.adjustQueryForFlagsAndSort( diff --git a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java index 480419af4..9d74cd46e 100644 --- a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java @@ -119,6 +119,8 @@ public class TaskAdapter extends CursorAdapter implements Filterable { @SuppressWarnings("nls") private static final StringProperty TAGS = new StringProperty(null, "group_concat(" + TaskListFragment.TAGS_METADATA_JOIN + "." + TaskToTagMetadata.TAG_NAME.name + ", ' | ')").as("tags"); + private static final StringProperty PICTURE = new StringProperty(User.TABLE.as(TaskListFragment.USER_IMAGE_JOIN), User.PICTURE.name); + // --- other constants /** Properties that need to be read from the action item */ @@ -142,7 +144,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { Task.USER, Task.REMINDER_LAST, Task.SOCIAL_REMINDER, - User.PICTURE, + PICTURE, TASK_RABBIT_ID, // Task rabbit metadata id (non-zero means it exists) TAGS // Concatenated list of tags }; @@ -393,7 +395,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { if (!titleOnlyLayout) { viewHolder.isTaskRabbit = (cursor.get(TASK_RABBIT_ID) > 0); viewHolder.tagsString = cursor.get(TAGS); - viewHolder.imageUrl = RemoteModel.getPictureUrlFromCursor(cursor, User.PICTURE, RemoteModel.PICTURE_THUMB); + viewHolder.imageUrl = RemoteModel.getPictureUrlFromCursor(cursor, PICTURE, RemoteModel.PICTURE_THUMB); } Task task = viewHolder.task;