private void updateProject(TracksAction act) { final boolean badcert = _prefs.getBoolean(PreferenceConstants.BADCERT, false); final String username = _prefs.getString(PreferenceConstants.USERNAME, null); final String password = _prefs.getString(PreferenceConstants.PASSWORD, null); Project p = (Project) act.target; Log.d(TAG, "Updating project " + String.valueOf(p.getId())); StringBuilder xml = new StringBuilder("<project>"); xml.append("<name>"); xml.append(p.getName()); xml.append("</name>"); xml.append("<description>"); xml.append(p.getDescription() == null ? "" : p.getDescription()); xml.append("</description>"); xml.append("</project>"); Log.v(TAG, "Sending: " + xml.toString()); try { HttpResponse r; int resp; if (p.getId() < 0) { Log.v(TAG, "Posting to contexts.xml to create new context"); r = HttpConnection.post( PreferenceUtils.getUri(_prefs, "projects.xml"), username, password, xml.toString(), badcert); } else { Log.v(TAG, "Putting to update existing context"); r = HttpConnection.put( PreferenceUtils.getUri(_prefs, "projects/" + String.valueOf(p.getId()) + ".xml"), username, password, xml.toString(), badcert); } resp = r.getStatusLine().getStatusCode(); if (resp == 200) { Log.d(TAG, "Successfully updated context"); act.notify.sendEmptyMessage(SUCCESS_CODE); } else if (resp == 201) { Log.d(TAG, "Successfully created context."); String got = r.getFirstHeader("Location").getValue(); got = got.substring(got.lastIndexOf('/') + 1); int pno = Integer.parseInt(got); p.setId(pno); Log.d(TAG, "ID of new project is: " + String.valueOf(pno)); act.notify.sendEmptyMessage(SUCCESS_CODE); } else { Log.w(TAG, "Unexpected response from server: " + String.valueOf(resp)); act.notify.sendEmptyMessage(UPDATE_FAIL_CODE); } } catch (Exception e) { Log.w(TAG, "Error updating context", e); act.notify.sendEmptyMessage(UPDATE_FAIL_CODE); } }
private void updateTask(TracksAction act) { final boolean badcert = _prefs.getBoolean(PreferenceConstants.BADCERT, false); final String username = _prefs.getString(PreferenceConstants.USERNAME, null); final String password = _prefs.getString(PreferenceConstants.PASSWORD, null); Task t = (Task) act.target; Log.d(TAG, "Updating task " + String.valueOf(t.getId())); StringBuilder xml = new StringBuilder("<todo>"); xml.append("<description>"); xml.append(t.getDescription()); xml.append("</description>"); xml.append("<notes>"); xml.append(t.getNotes() == null ? "" : t.getNotes()); xml.append("</notes>"); xml.append("<context-id type=\"integer\">"); xml.append(String.valueOf(t.getContext().getId())); xml.append("</context-id>"); xml.append("<project-id type=\"integer\""); if (t.getProject() == null) { xml.append(" nil=\"true\"></project-id>"); } else { xml.append(">"); xml.append(String.valueOf(t.getProject().getId())); xml.append("</project-id>"); } xml.append("<due type=\"datetime\""); if (t.getDue() == null) { xml.append(" nil=\"true\"></due>"); } else { xml.append(">"); xml.append(DATEFORM.format(t.getDue())); xml.append("</due>"); } xml.append("<show-from type=\"datetime\""); if (t.getShowFrom() == null) { xml.append(" nil=\"true\"></show-from>"); } else { xml.append(">"); xml.append(DATEFORM.format(t.getShowFrom())); xml.append("</show-from>"); } xml.append("</todo>"); Log.v(TAG, "Sending: " + xml.toString()); try { HttpResponse r; int resp; if (t.getId() < 0) { Log.v(TAG, "Posting to todos.xml to create new task"); r = HttpConnection.post( PreferenceUtils.getUri(_prefs, "todos.xml"), username, password, xml.toString(), badcert); } else { Log.v(TAG, "Putting to update existing task"); r = HttpConnection.put( PreferenceUtils.getUri(_prefs, "todos/" + String.valueOf(t.getId()) + ".xml"), username, password, xml.toString(), badcert); } resp = r.getStatusLine().getStatusCode(); if (resp == 200) { Log.d(TAG, "Successfully updated task"); act.notify.sendEmptyMessage(SUCCESS_CODE); } else if (resp == 201) { Log.d(TAG, "Successfully created task."); String got = r.getFirstHeader("Location").getValue(); got = got.substring(got.lastIndexOf('/') + 1); int tno = Integer.parseInt(got); t.setId(tno); Log.d(TAG, "ID of new task is: " + String.valueOf(tno)); act.notify.sendEmptyMessage(SUCCESS_CODE); } else { Log.w(TAG, "Unexpected response from server: " + String.valueOf(resp)); act.notify.sendEmptyMessage(UPDATE_FAIL_CODE); } } catch (Exception e) { Log.w(TAG, "Error updating task", e); act.notify.sendEmptyMessage(UPDATE_FAIL_CODE); } }