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;
}
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
{
long timeSinceLastInvocation = System.currentTimeMillis() - lastInvocation;
@ -208,16 +213,6 @@ public class Invoker {
final HttpGet request = new HttpGet("http://" + ServiceImpl.SERVER_HOST_NAME + requestUri.toString());
request.setHeader(new BasicHeader(HTTP.CHARSET_PARAM, ENCODING));
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;
try
@ -229,6 +224,17 @@ public class Invoker {
if (statusCode != HttpStatus.SC_OK)
{
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());
}

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

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

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

Loading…
Cancel
Save