More updates to loading thread - stops if running and reload needed.

pull/14/head
Tim Su 17 years ago
parent 327bc1b7ae
commit 36ca13ae8d

@ -460,6 +460,9 @@ public class TaskListSubActivity extends SubActivity {
StringBuilder tagBuilder = new StringBuilder(); StringBuilder tagBuilder = new StringBuilder();
tasksById = new HashMap<Long, TaskModelForList>(); tasksById = new HashMap<Long, TaskModelForList>();
for(Iterator<TaskModelForList> i = taskArray.iterator(); i.hasNext();) { for(Iterator<TaskModelForList> i = taskArray.iterator(); i.hasNext();) {
if(Thread.interrupted())
return;
TaskModelForList task = i.next(); TaskModelForList task = i.next();
if(!filterShowDone) { if(!filterShowDone) {
@ -695,6 +698,15 @@ public class TaskListSubActivity extends SubActivity {
listView.setOnTouchListener(getGestureListener()); listView.setOnTouchListener(getGestureListener());
} }
private void reloadList() {
if(loadingThread != null && loadingThread.isAlive()) {
loadingThread.interrupt();
loadingThread.stop();
}
loadingThread = new Thread(reLoadRunnable);
loadingThread.start();
}
/* ====================================================================== /* ======================================================================
* ======================================================= event handlers * ======================================================= event handlers
* ====================================================================== */ * ====================================================================== */
@ -718,7 +730,7 @@ public class TaskListSubActivity extends SubActivity {
@Override @Override
protected void onSaveInstanceState(Bundle outState) { protected void onSaveInstanceState(Bundle outState) {
if(loadingThread.isAlive()) if(loadingThread != null && loadingThread.isAlive())
loadingThread.stop(); loadingThread.stop();
} }
@ -733,17 +745,16 @@ public class TaskListSubActivity extends SubActivity {
R.string.sync_no_synchronizers), null); R.string.sync_no_synchronizers), null);
return; return;
} }
loadingThread = new Thread(reLoadRunnable); reloadList();
loadingThread.start();
} }
}); });
} else if(requestCode == ACTIVITY_TAGS) { } else if(requestCode == ACTIVITY_TAGS) {
switchToActivity(TaskList.AC_TAG_LIST, null); switchToActivity(TaskList.AC_TAG_LIST, null);
} else if((requestCode == ACTIVITY_EDIT || requestCode == ACTIVITY_CREATE) && } else if((requestCode == ACTIVITY_EDIT || requestCode == ACTIVITY_CREATE) &&
resultCode != Constants.RESULT_DISCARD) { resultCode != Constants.RESULT_DISCARD) {
// refresh, since stuff might have changed... // refresh, since stuff might have changed...
loadingThread = new Thread(reLoadRunnable); reloadList();
loadingThread.start();
} }
} }
@ -933,14 +944,12 @@ public class TaskListSubActivity extends SubActivity {
case CONTEXT_FILTER_HIDDEN: case CONTEXT_FILTER_HIDDEN:
TaskListSubActivity.filterShowHidden = !filterShowHidden; TaskListSubActivity.filterShowHidden = !filterShowHidden;
saveTaskListSort(); saveTaskListSort();
loadingThread = new Thread(reLoadRunnable); reloadList();
loadingThread.start();
return true; return true;
case CONTEXT_FILTER_DONE: case CONTEXT_FILTER_DONE:
TaskListSubActivity.filterShowDone = !filterShowDone; TaskListSubActivity.filterShowDone = !filterShowDone;
saveTaskListSort(); saveTaskListSort();
loadingThread = new Thread(reLoadRunnable); reloadList();
loadingThread.start();
return true; return true;
case CONTEXT_FILTER_TAG: case CONTEXT_FILTER_TAG:
switchToActivity(TaskList.AC_TASK_LIST, null); switchToActivity(TaskList.AC_TASK_LIST, null);
@ -951,8 +960,7 @@ public class TaskListSubActivity extends SubActivity {
TaskListSubActivity.sortReverse = false; TaskListSubActivity.sortReverse = false;
TaskListSubActivity.sortMode = SortMode.AUTO; TaskListSubActivity.sortMode = SortMode.AUTO;
saveTaskListSort(); saveTaskListSort();
loadingThread = new Thread(reLoadRunnable); reloadList();
loadingThread.start();
return true; return true;
case CONTEXT_SORT_ALPHA: case CONTEXT_SORT_ALPHA:
if(sortMode == SortMode.ALPHA) if(sortMode == SortMode.ALPHA)
@ -960,8 +968,7 @@ public class TaskListSubActivity extends SubActivity {
TaskListSubActivity.sortReverse = false; TaskListSubActivity.sortReverse = false;
TaskListSubActivity.sortMode = SortMode.ALPHA; TaskListSubActivity.sortMode = SortMode.ALPHA;
saveTaskListSort(); saveTaskListSort();
loadingThread = new Thread(reLoadRunnable); reloadList();
loadingThread.start();
return true; return true;
case CONTEXT_SORT_DUEDATE: case CONTEXT_SORT_DUEDATE:
if(sortMode == SortMode.DUEDATE) if(sortMode == SortMode.DUEDATE)
@ -969,14 +976,12 @@ public class TaskListSubActivity extends SubActivity {
TaskListSubActivity.sortReverse = false; TaskListSubActivity.sortReverse = false;
TaskListSubActivity.sortMode = SortMode.DUEDATE; TaskListSubActivity.sortMode = SortMode.DUEDATE;
saveTaskListSort(); saveTaskListSort();
loadingThread = new Thread(reLoadRunnable); reloadList();
loadingThread.start();
return true; return true;
case CONTEXT_SORT_REVERSE: case CONTEXT_SORT_REVERSE:
TaskListSubActivity.sortReverse = !sortReverse; TaskListSubActivity.sortReverse = !sortReverse;
saveTaskListSort(); saveTaskListSort();
loadingThread = new Thread(reLoadRunnable); reloadList();
loadingThread.start();
return true; return true;
} }

Loading…
Cancel
Save