Retry if invoke fails the first time, minor bugfixes.

pull/14/head
Tim Su 17 years ago
parent d9607f4b80
commit 7f737c7021

@ -179,7 +179,12 @@ public class Invoker {
return requestUri; return requestUri;
} }
public Element invoke(Param... params) /** Call invoke with a false repeat */
public Element invoke(Param... params) throws ServiceException {
return invoke(false, params);
}
public Element invoke(boolean repeat, Param... params)
throws ServiceException throws ServiceException
{ {
long timeSinceLastInvocation = System.currentTimeMillis() - lastInvocation; long timeSinceLastInvocation = System.currentTimeMillis() - lastInvocation;
@ -208,16 +213,6 @@ public class Invoker {
final HttpGet request = new HttpGet("http://" + ServiceImpl.SERVER_HOST_NAME + requestUri.toString()); final HttpGet request = new HttpGet("http://" + ServiceImpl.SERVER_HOST_NAME + requestUri.toString());
request.setHeader(new BasicHeader(HTTP.CHARSET_PARAM, ENCODING)); request.setHeader(new BasicHeader(HTTP.CHARSET_PARAM, ENCODING));
final String methodUri = request.getRequestLine().getUri(); final String methodUri = request.getRequestLine().getUri();
// TODO: put that back!
// if (proxyHostName != null)
// {
// // Sets an HTTP proxy and the credentials for authentication
// client.getHostConfiguration().setProxy(proxyHostName, proxyPortNumber);
// if (proxyLogin != null)
// {
// client.getState().setProxyCredentials(AuthScope.ANY, new UsernamePasswordCredentials(proxyLogin, proxyPassword));
// }
// }
Element result; Element result;
try try
@ -229,6 +224,17 @@ public class Invoker {
if (statusCode != HttpStatus.SC_OK) if (statusCode != HttpStatus.SC_OK)
{ {
Log.e(TAG, "Method failed: " + response.getStatusLine()); Log.e(TAG, "Method failed: " + response.getStatusLine());
// Tim: HTTP error. Let's wait a little bit
if(!repeat) {
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
// ignore
}
return invoke(true, params);
}
throw new ServiceInternalException("method failed: " + response.getStatusLine()); throw new ServiceInternalException("method failed: " + response.getStatusLine());
} }

@ -749,12 +749,12 @@ public class TaskList extends Activity {
long postponeMillis = (values[0] * 24 + values[1]) * long postponeMillis = (values[0] * 24 + values[1]) *
3600L * 1000; 3600L * 1000;
Date preferred = task.getPreferredDueDate(); Date preferred = task.getPreferredDueDate();
Date definite = task.getDefiniteDueDate();
if(preferred != null) { if(preferred != null) {
preferred = new Date(preferred.getTime() + preferred = new Date(preferred.getTime() +
postponeMillis); postponeMillis);
task.setPreferredDueDate(preferred); task.setPreferredDueDate(preferred);
} }
Date definite = task.getDefiniteDueDate();
if(definite != null) { if(definite != null) {
definite = new Date(definite.getTime() + definite = new Date(definite.getTime() +
postponeMillis); postponeMillis);

@ -74,6 +74,8 @@ public class TaskListAdapter extends ArrayAdapter<TaskModelForList> {
private static final int KEY_TAGS = 6; private static final int KEY_TAGS = 6;
private static final int KEY_HIDDEN = 7; private static final int KEY_HIDDEN = 7;
private static final String CACHE_TRUE = "y";
private final Activity activity; private final Activity activity;
private List<TaskModelForList> objects; private List<TaskModelForList> objects;
private int resource; private int resource;
@ -211,7 +213,7 @@ public class TaskListAdapter extends ArrayAdapter<TaskModelForList> {
} else { } else {
taskOverdue = true; taskOverdue = true;
label.append(r.getString(R.string.taskList_overdueBy)).append(" "); label.append(r.getString(R.string.taskList_overdueBy)).append(" ");
task.putCachedLabel(KEY_OVERDUE, "y"); task.putCachedLabel(KEY_OVERDUE, CACHE_TRUE);
} }
label.append(DateUtilities.getDurationString(r, label.append(DateUtilities.getDurationString(r,
(int)Math.abs(timeLeft/1000), 1)); (int)Math.abs(timeLeft/1000), 1));
@ -227,6 +229,7 @@ public class TaskListAdapter extends ArrayAdapter<TaskModelForList> {
} else { } else {
label.append(r.getString(R.string.taskList_overdueBy)).append(" "); label.append(r.getString(R.string.taskList_overdueBy)).append(" ");
deadlines.setTextColor(r.getColor(R.color.taskList_dueDateOverdue)); deadlines.setTextColor(r.getColor(R.color.taskList_dueDateOverdue));
task.putCachedLabel(KEY_OVERDUE, CACHE_TRUE);
} }
label.append(DateUtilities.getDurationString(r, label.append(DateUtilities.getDurationString(r,
(int)Math.abs(timeLeft/1000), 1)).append(" "); (int)Math.abs(timeLeft/1000), 1)).append(" ");
@ -236,7 +239,7 @@ public class TaskListAdapter extends ArrayAdapter<TaskModelForList> {
task.putCachedLabel(KEY_DEADLINE, cachedResult); task.putCachedLabel(KEY_DEADLINE, cachedResult);
} }
deadlines.setText(cachedResult); deadlines.setText(cachedResult);
if(task.getCachedLabel(KEY_OVERDUE) != null) if(CACHE_TRUE.equals(task.getCachedLabel(KEY_OVERDUE)))
deadlines.setTextColor(r.getColor(R.color.taskList_dueDateOverdue)); deadlines.setTextColor(r.getColor(R.color.taskList_dueDateOverdue));
} }
setVisibility(deadlines); setVisibility(deadlines);

@ -31,6 +31,7 @@ import android.os.Handler;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.Window;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
@ -76,6 +77,7 @@ public class TaskView extends TaskModificationActivity<TaskModelForView> {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.task_view); setContentView(R.layout.task_view);
handler = new Handler(); handler = new Handler();
@ -124,7 +126,7 @@ public class TaskView extends TaskModificationActivity<TaskModelForView> {
int secondsToDeadline = (int) ((deadline.getTime() - int secondsToDeadline = (int) ((deadline.getTime() -
System.currentTimeMillis())/1000); System.currentTimeMillis())/1000);
String text = DateUtilities.getDurationString(r, String text = DateUtilities.getDurationString(r,
Math.abs(secondsToDeadline), 2); Math.abs(secondsToDeadline), 2) + " ";
if(secondsToDeadline < 0) { if(secondsToDeadline < 0) {
view.setTextColor(r.getColor(R.color.view_table_overdue)); view.setTextColor(r.getColor(R.color.view_table_overdue));
view.setText(text + r.getString(R.string.overdue_suffix)); view.setText(text + r.getString(R.string.overdue_suffix));
@ -141,8 +143,8 @@ public class TaskView extends TaskModificationActivity<TaskModelForView> {
int secondsAgo = (int) ((System.currentTimeMillis() - date.getTime())/1000); int secondsAgo = (int) ((System.currentTimeMillis() - date.getTime())/1000);
String text = DateUtilities.getDurationString(r, String text = DateUtilities.getDurationString(r,
Math.abs(secondsAgo), 2); Math.abs(secondsAgo), 2) + " ";
view.setText(text + " " + r.getString(R.string.ago_suffix)); view.setText(text + r.getString(R.string.ago_suffix));
} }
/* ====================================================================== /* ======================================================================
@ -151,7 +153,6 @@ public class TaskView extends TaskModificationActivity<TaskModelForView> {
private void setUpUIComponents() { private void setUpUIComponents() {
Resources r = getResources(); Resources r = getResources();
setTitle(r.getString(R.string.taskView_title));
name = (TextView)findViewById(R.id.name); name = (TextView)findViewById(R.id.name);
elapsed = (TextView)findViewById(R.id.cell_elapsed); elapsed = (TextView)findViewById(R.id.cell_elapsed);

Loading…
Cancel
Save