From bdd28776c4880dd25f9a3b1debd8e1b90347fa02 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 8 Dec 2011 16:27:46 -0800 Subject: [PATCH] Workaround for a google bug that could give us invalid list ids. could this be the cause of all the 400 errors? --- astrid/AndroidManifest.xml | 2 +- .../todoroo/astrid/gtasks/api/GtasksApiUtilities.java | 7 ------- .../com/todoroo/astrid/gtasks/api/GtasksService.java | 2 +- .../astrid/gtasks/sync/GtasksSyncProvider.java | 11 +++++------ 4 files changed, 7 insertions(+), 15 deletions(-) diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 523d2e94b..3eb31acef 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -1,7 +1,7 @@ diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java index 078454429..37b3e0c44 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java @@ -4,7 +4,6 @@ import java.util.Date; import java.util.TimeZone; import com.google.api.client.util.DateTime; -import com.google.api.services.tasks.model.Task; @SuppressWarnings("nls") public class GtasksApiUtilities { @@ -78,10 +77,4 @@ public class GtasksApiUtilities { // return gtasksDueTime.getValue(); // } - public static String extractListIdFromSelfLink(Task task) { - String selfLink = task.getSelfLink(); - String [] urlComponents = selfLink.split("/"); - int listIdIndex = urlComponents.length - 3; - return urlComponents[listIdIndex]; - } } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/GtasksService.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/GtasksService.java index 12d61c930..f001a3fc4 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/GtasksService.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/GtasksService.java @@ -190,7 +190,7 @@ public class GtasksService { handleException(e); toReturn = service.tasks.get(listId, taskId).execute(); } finally { - log("Get gtask, id: " + taskId, toReturn); + log("Get gtask, id: " + taskId + ", list id: " + listId, toReturn); } return toReturn; } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java index 579819ce2..109d18671 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java @@ -344,7 +344,7 @@ public class GtasksSyncProvider extends SyncProvider { if(Constants.DEBUG) Log.e("gtasks-debug", "ACTION: getTasks, " + listId); List remoteTasks = taskService.getAllGtasksFromListId(listId, includeDeleted, includeHidden).getItems(); - addRemoteTasksToList(remoteTasks, list); + addRemoteTasksToList(remoteTasks, listId, list); } catch (Exception e) { handleException("read-remotes", e, false); } finally { @@ -362,8 +362,7 @@ public class GtasksSyncProvider extends SyncProvider { return list; } - private void addRemoteTasksToList(List remoteTasks, - ArrayList list) { + private void addRemoteTasksToList(List remoteTasks, String listId, ArrayList list) { if (remoteTasks != null) { long order = 0; @@ -382,7 +381,7 @@ public class GtasksSyncProvider extends SyncProvider { if(TextUtils.isEmpty(remoteTask.getTitle())) continue; - GtasksTaskContainer container = parseRemoteTask(remoteTask); + GtasksTaskContainer container = parseRemoteTask(remoteTask, listId); String id = remoteTask.getId(); // update parents, prior sibling @@ -533,7 +532,7 @@ public class GtasksSyncProvider extends SyncProvider { /** Create a task container for the given remote task * @throws JSONException */ - private GtasksTaskContainer parseRemoteTask(com.google.api.services.tasks.model.Task remoteTask) { + private GtasksTaskContainer parseRemoteTask(com.google.api.services.tasks.model.Task remoteTask, String listId) { Task task = new Task(); ArrayList metadata = new ArrayList(); @@ -555,7 +554,7 @@ public class GtasksSyncProvider extends SyncProvider { Metadata gtasksMetadata = GtasksMetadata.createEmptyMetadata(AbstractModel.NO_ID); gtasksMetadata.setValue(GtasksMetadata.ID, remoteTask.getId()); - gtasksMetadata.setValue(GtasksMetadata.LIST_ID, GtasksApiUtilities.extractListIdFromSelfLink(remoteTask)); + gtasksMetadata.setValue(GtasksMetadata.LIST_ID, listId); GtasksTaskContainer container = new GtasksTaskContainer(task, metadata, gtasksMetadata);