Adjusted error handling to match the actual format of errors

pull/14/head
Sam Bosley 12 years ago
parent 5d7c392d39
commit 586fc12a5e

@ -7,6 +7,7 @@ package com.todoroo.astrid.actfm;
import java.util.List; import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import android.app.Activity; import android.app.Activity;
@ -287,7 +288,7 @@ public abstract class CommentsFragment extends SherlockListFragment {
} }
@Override @Override
public void runOnErrors(List<JSONObject> errors) {/**/} public void runOnErrors(List<JSONArray> errors) {/**/}
}; };
if (hasModel()) { if (hasModel()) {
performFetch(manual, doneRunnable); performFetch(manual, doneRunnable);

@ -371,12 +371,12 @@ public class TagViewFragment extends TaskListFragment {
} }
} }
@Override @Override
public void runOnErrors(List<JSONObject> errors) { public void runOnErrors(List<JSONArray> errors) {
Activity activity = getActivity(); Activity activity = getActivity();
if (activity != null && activity instanceof TaskListActivity) { if (activity != null && activity instanceof TaskListActivity) {
boolean notAuthorized = false; boolean notAuthorized = false;
for (JSONObject error : errors) { for (JSONArray error : errors) {
String errorCode = error.optString("code"); //$NON-NLS-1$ String errorCode = error.optString(1);
if ("not_authorized".equals(errorCode)) { //$NON-NLS-1$ if ("not_authorized".equals(errorCode)) { //$NON-NLS-1$
notAuthorized = true; notAuthorized = true;
break; break;
@ -391,7 +391,7 @@ public class TagViewFragment extends TaskListFragment {
public void run() { public void run() {
DialogUtilities.okCancelCustomDialog(tla, DialogUtilities.okCancelCustomDialog(tla,
tla.getString(R.string.actfm_tag_not_authorized_title), tla.getString(R.string.actfm_tag_not_authorized_title),
tla.getString(R.string.actfm_tag_not_authorized_body), tla.getString(R.string.actfm_tag_not_authorized_body, tagName),
R.string.actfm_tag_not_authorized_new_list, R.string.actfm_tag_not_authorized_new_list,
R.string.actfm_tag_not_authorized_leave_list, R.string.actfm_tag_not_authorized_leave_list,
android.R.drawable.ic_dialog_alert, android.R.drawable.ic_dialog_alert,

@ -120,7 +120,7 @@ public class ActFmSyncThread {
public static interface SyncMessageCallback { public static interface SyncMessageCallback {
public void runOnSuccess(); public void runOnSuccess();
public void runOnErrors(List<JSONObject> errors); public void runOnErrors(List<JSONArray> errors);
} }
public static enum ModelType { public static enum ModelType {
@ -282,7 +282,7 @@ public class ActFmSyncThread {
} }
@Override @Override
public void runOnErrors(List<JSONObject> errors) {/**/} public void runOnErrors(List<JSONArray> errors) {/**/}
}; };
@SuppressWarnings("nls") @SuppressWarnings("nls")
@ -382,14 +382,14 @@ public class ActFmSyncThread {
} }
Set<SyncMessageCallback> callbacksExecutedThisLoop = new HashSet<SyncMessageCallback>(); Set<SyncMessageCallback> callbacksExecutedThisLoop = new HashSet<SyncMessageCallback>();
Map<Integer, List<JSONObject>> errorMap = buildErrorMap(errors); Map<Integer, List<JSONArray>> errorMap = buildErrorMap(errors);
for (int i = 0; i < messageBatch.size(); i++) { for (int i = 0; i < messageBatch.size(); i++) {
ClientToServerMessage<?> message = messageBatch.get(i); ClientToServerMessage<?> message = messageBatch.get(i);
incrementProgress(); incrementProgress();
try { try {
SyncMessageCallback r = pendingCallbacks.remove(message); SyncMessageCallback r = pendingCallbacks.remove(message);
if (r != null && !callbacksExecutedThisLoop.contains(r)) { if (r != null && !callbacksExecutedThisLoop.contains(r)) {
List<JSONObject> errorList = errorMap.get(i); List<JSONArray> errorList = errorMap.get(i);
if (errorList == null || errorList.isEmpty()) if (errorList == null || errorList.isEmpty())
r.runOnSuccess(); r.runOnSuccess();
else else
@ -415,19 +415,18 @@ public class ActFmSyncThread {
} }
private Map<Integer, List<JSONObject>> buildErrorMap(JSONArray errors) { private Map<Integer, List<JSONArray>> buildErrorMap(JSONArray errors) {
Map<Integer, List<JSONObject>> result = new HashMap<Integer, List<JSONObject>>(); Map<Integer, List<JSONArray>> result = new HashMap<Integer, List<JSONArray>>();
if (errors != null) { if (errors != null) {
for (int i = 0; i < errors.length(); i++) { for (int i = 0; i < errors.length(); i++) {
JSONObject error = errors.optJSONObject(i); JSONArray error = errors.optJSONArray(i);
if (error != null && error.has("index")) { //$NON-NLS-1$ if (error != null && error.length() > 0) {
int index = error.optInt("index"); //$NON-NLS-1$ int index = error.optInt(0);
List<JSONObject> errorList = result.get(index); List<JSONArray> errorList = result.get(index);
if (errorList == null) { if (errorList == null) {
errorList = new LinkedList<JSONObject>(); errorList = new LinkedList<JSONArray>();
result.put(index, errorList); result.put(index, errorList);
} }
error.remove("index"); //$NON-NLS-1$
errorList.add(error); errorList.add(error);
} }
} }

@ -12,6 +12,7 @@ import java.util.Date;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import android.app.Activity; import android.app.Activity;
@ -431,7 +432,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene
} }
} }
@Override @Override
public void runOnErrors(List<JSONObject> errors) {/**/} public void runOnErrors(List<JSONArray> errors) {/**/}
}; };
ActFmSyncThread.getInstance().enqueueMessage(new BriefMe<UserActivity>(UserActivity.class, null, task.getValue(Task.USER_ACTIVITIES_PUSHED_AT), BriefMe.TASK_ID_KEY, task.getUuid()), callback); ActFmSyncThread.getInstance().enqueueMessage(new BriefMe<UserActivity>(UserActivity.class, null, task.getValue(Task.USER_ACTIVITIES_PUSHED_AT), BriefMe.TASK_ID_KEY, task.getUuid()), callback);

@ -7,7 +7,7 @@ package com.todoroo.astrid.people;
import java.util.List; import java.util.List;
import org.json.JSONObject; import org.json.JSONArray;
import android.app.Activity; import android.app.Activity;
import android.content.ContentValues; import android.content.ContentValues;
@ -222,7 +222,7 @@ public class PersonViewFragment extends TaskListFragment {
} }
} }
@Override @Override
public void runOnErrors(List<JSONObject> errors) {/**/} public void runOnErrors(List<JSONArray> errors) {/**/}
}; };
ActFmSyncThread.getInstance().enqueueMessage(new BriefMe<User>(User.class, user.getValue(User.UUID), user.getValue(User.PUSHED_AT)), callback); ActFmSyncThread.getInstance().enqueueMessage(new BriefMe<User>(User.class, user.getValue(User.UUID), user.getValue(User.PUSHED_AT)), callback);
} }

@ -370,7 +370,7 @@
<string name="actfm_logged_in_different_user_processing">Processing existing data...</string> <string name="actfm_logged_in_different_user_processing">Processing existing data...</string>
<string name="actfm_tag_not_authorized_title">Not authorized</string> <string name="actfm_tag_not_authorized_title">Not authorized</string>
<string name="actfm_tag_not_authorized_body">You are no longer authorized to view this list (you may have been removed). Would you like to create a new list with the same name?</string> <string name="actfm_tag_not_authorized_body">You are no longer authorized to view list %s (you may have been removed). Would you like to create a new list with the same name?</string>
<string name="actfm_tag_not_authorized_new_list">Create new list</string> <string name="actfm_tag_not_authorized_new_list">Create new list</string>
<string name="actfm_tag_not_authorized_leave_list">Leave list</string> <string name="actfm_tag_not_authorized_leave_list">Leave list</string>

Loading…
Cancel
Save