Workaround for a google bug that could give us invalid list ids. could this be the cause of all the 400 errors?

pull/14/head
Sam Bosley 13 years ago
parent 4cd6321fa3
commit bdd28776c4

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.timsu.astrid"
android:versionName="3.9-rc3"
android:versionName="3.9-rc4"
android:versionCode="201">
<!-- widgets, alarms, and services will break if Astrid is installed on SD card -->

@ -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];
}
}

@ -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;
}

@ -344,7 +344,7 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
if(Constants.DEBUG)
Log.e("gtasks-debug", "ACTION: getTasks, " + listId);
List<com.google.api.services.tasks.model.Task> 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<GtasksTaskContainer> {
return list;
}
private void addRemoteTasksToList(List<com.google.api.services.tasks.model.Task> remoteTasks,
ArrayList<GtasksTaskContainer> list) {
private void addRemoteTasksToList(List<com.google.api.services.tasks.model.Task> remoteTasks, String listId, ArrayList<GtasksTaskContainer> list) {
if (remoteTasks != null) {
long order = 0;
@ -382,7 +381,7 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
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<GtasksTaskContainer> {
/** 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> metadata = new ArrayList<Metadata>();
@ -555,7 +554,7 @@ public class GtasksSyncProvider extends SyncProvider<GtasksTaskContainer> {
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);

Loading…
Cancel
Save