Cleaned up the refresh code, not doing a refresh when you do timer or postponing.

pull/14/head
Tim Su 17 years ago
parent b07086e5f8
commit 33a3f2e1df

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.timsu.astrid" package="com.timsu.astrid"
android:versionCode="92" android:versionCode="93"
android:versionName="2.4.7"> android:versionName="2.4.8">
<meta-data android:name="com.a0soft.gphone.aTrackDog.webURL" <meta-data android:name="com.a0soft.gphone.aTrackDog.webURL"
android:value="http://www.weloveastrid.com" /> android:value="http://www.weloveastrid.com" />

@ -232,7 +232,7 @@ public class TaskListAdapter extends ArrayAdapter<TaskModelForList> {
final ImageView timer = ((ImageView)view.findViewById(R.id.imageLeft)); final ImageView timer = ((ImageView)view.findViewById(R.id.imageLeft));
if(task.getTimerStart() != null) { if(task.getTimerStart() != null) {
timer.setImageDrawable(r.getDrawable(R.drawable.icon_timer)); timer.setImageDrawable(r.getDrawable(R.drawable.icon_timer));
view.setMinimumHeight(80); view.setMinimumHeight(90);
} else { } else {
timer.setImageDrawable(null); timer.setImageDrawable(null);
view.setMinimumHeight(45); view.setMinimumHeight(45);
@ -547,6 +547,14 @@ public class TaskListAdapter extends ArrayAdapter<TaskModelForList> {
} }
public void refreshItem(ListView listView, int position) {
View view = listView.getChildAt(position);
TaskModelForList task = hooks.getTaskArray().get(position);
task.clearCache();
setupView(view, task);
}
/** Set listeners for this view. This is called once total */ /** Set listeners for this view. This is called once total */
private void addListeners(View view) { private void addListeners(View view) {
final CheckBox progress = ((CheckBox)view.findViewById(R.id.cb1)); final CheckBox progress = ((CheckBox)view.findViewById(R.id.cb1));

@ -132,7 +132,8 @@ public class TaskListSubActivity extends SubActivity {
private TaskModelForList selectedTask = null; private TaskModelForList selectedTask = null;
private Handler handler = null; private Handler handler = null;
private Thread loadingThread = null; private Thread loadingThread = null;
private Thread reLoadThread = null; private Runnable reLoadRunnable = null;
private TaskListAdapter listAdapter = null;
// display filters // display filters
private static boolean filterShowHidden = false; private static boolean filterShowHidden = false;
@ -170,7 +171,7 @@ public class TaskListSubActivity extends SubActivity {
setupUIComponents(); setupUIComponents();
reLoadThread = new Thread(new Runnable() { reLoadRunnable = new Runnable() {
@Override @Override
public void run() { public void run() {
suppressReload = true; suppressReload = true;
@ -178,13 +179,12 @@ public class TaskListSubActivity extends SubActivity {
@Override @Override
public void run() { public void run() {
loadingText.setVisibility(View.VISIBLE); loadingText.setVisibility(View.VISIBLE);
listView.setAdapter(null);
} }
}); });
fillData(); fillData();
} }
}); };
// time to go! // time to go!
loadingThread = new Thread(new Runnable() { loadingThread = new Thread(new Runnable() {
@ -218,7 +218,6 @@ public class TaskListSubActivity extends SubActivity {
} }
}); });
} }
loadingThread = null;
} }
}); });
loadingThread.start(); loadingThread.start();
@ -624,16 +623,16 @@ public class TaskListSubActivity extends SubActivity {
/** Set up the adapter for our task list */ /** Set up the adapter for our task list */
private void setUpListUI() { private void setUpListUI() {
// set up our adapter // set up our adapter
TaskListAdapter tasks = new TaskListAdapter(getParent(), listAdapter = new TaskListAdapter(getParent(),
R.layout.task_list_row, taskArray, new TaskListHooks()); R.layout.task_list_row, taskArray, new TaskListHooks());
listView.setAdapter(tasks); listView.setAdapter(listAdapter);
listView.setItemsCanFocus(true); listView.setItemsCanFocus(true);
if(selectedTask != null) { if(selectedTask != null) {
try { try {
int selectedPosition = tasks.getPosition(selectedTask); int selectedPosition = listAdapter.getPosition(selectedTask);
View v = listView.getChildAt(selectedPosition); View v = listView.getChildAt(selectedPosition);
tasks.setExpanded(v, selectedTask, true); listAdapter.setExpanded(v, selectedTask, true);
listView.setSelection(selectedPosition); listView.setSelection(selectedPosition);
} catch (Exception e) { } catch (Exception e) {
Log.e("astrid", "error with selected task", e); Log.e("astrid", "error with selected task", e);
@ -712,7 +711,7 @@ public class TaskListSubActivity extends SubActivity {
@Override @Override
protected void onSaveInstanceState(Bundle outState) { protected void onSaveInstanceState(Bundle outState) {
if(loadingThread != null) if(loadingThread.isAlive())
loadingThread.stop(); loadingThread.stop();
} }
@ -727,7 +726,8 @@ public class TaskListSubActivity extends SubActivity {
R.string.sync_no_synchronizers), null); R.string.sync_no_synchronizers), null);
return; return;
} }
fillData(); loadingThread = new Thread(reLoadRunnable);
loadingThread.start();
} }
}); });
} else if(requestCode == ACTIVITY_TAGS) } else if(requestCode == ACTIVITY_TAGS)
@ -768,7 +768,8 @@ public class TaskListSubActivity extends SubActivity {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
getTaskController().deleteTask(taskId); getTaskController().deleteTask(taskId);
fillData(); loadingThread = new Thread(reLoadRunnable);
loadingThread.start();
} }
}) })
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
@ -791,7 +792,7 @@ public class TaskListSubActivity extends SubActivity {
task.stopTimerAndUpdateElapsedTime(); task.stopTimerAndUpdateElapsedTime();
} }
getTaskController().saveTask(task); getTaskController().saveTask(task);
fillData(); listAdapter.refreshItem(listView, taskArray.indexOf(task));
} }
/** Show the tags view */ /** Show the tags view */
@ -799,6 +800,12 @@ public class TaskListSubActivity extends SubActivity {
switchToActivity(TaskList.AC_TAG_LIST, null); switchToActivity(TaskList.AC_TAG_LIST, null);
} }
@Override
public void launchActivity(Intent intent, int requestCode) {
suppressReload = false;
super.launchActivity(intent, requestCode);
}
/** Save the sorting mode to the preferences */ /** Save the sorting mode to the preferences */
private void saveTaskListSort() { private void saveTaskListSort() {
int sortId = sortMode.ordinal() + 1; int sortId = sortMode.ordinal() + 1;
@ -844,7 +851,7 @@ public class TaskListSubActivity extends SubActivity {
} }
@Override @Override
public boolean onMenuItemSelected(int featureId, MenuItem item) { public boolean onMenuItemSelected(int featureId, final MenuItem item) {
final TaskModelForList task; final TaskModelForList task;
Resources r = getResources(); Resources r = getResources();
@ -901,6 +908,7 @@ public class TaskListSubActivity extends SubActivity {
case TaskListAdapter.CONTEXT_TIMER_ID: case TaskListAdapter.CONTEXT_TIMER_ID:
task = taskArray.get(item.getGroupId()); task = taskArray.get(item.getGroupId());
toggleTimer(task); toggleTimer(task);
suppressReload = true;
return true; return true;
case TaskListAdapter.CONTEXT_POSTPONE_ID: case TaskListAdapter.CONTEXT_POSTPONE_ID:
task = taskArray.get(item.getGroupId()); task = taskArray.get(item.getGroupId());
@ -918,7 +926,8 @@ public class TaskListSubActivity extends SubActivity {
task.getHiddenUntil(), postponeMillis, false)); task.getHiddenUntil(), postponeMillis, false));
getTaskController().saveTask(task); getTaskController().saveTask(task);
fillData(); suppressReload = true;
listAdapter.refreshItem(listView, item.getGroupId());
} }
}); });
return true; return true;
@ -927,12 +936,14 @@ public class TaskListSubActivity extends SubActivity {
case CONTEXT_FILTER_HIDDEN: case CONTEXT_FILTER_HIDDEN:
TaskListSubActivity.filterShowHidden = !filterShowHidden; TaskListSubActivity.filterShowHidden = !filterShowHidden;
saveTaskListSort(); saveTaskListSort();
reLoadThread.start(); loadingThread = new Thread(reLoadRunnable);
loadingThread.start();
return true; return true;
case CONTEXT_FILTER_DONE: case CONTEXT_FILTER_DONE:
TaskListSubActivity.filterShowDone = !filterShowDone; TaskListSubActivity.filterShowDone = !filterShowDone;
saveTaskListSort(); saveTaskListSort();
reLoadThread.start(); loadingThread = new Thread(reLoadRunnable);
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);
@ -943,7 +954,8 @@ public class TaskListSubActivity extends SubActivity {
TaskListSubActivity.sortReverse = false; TaskListSubActivity.sortReverse = false;
TaskListSubActivity.sortMode = SortMode.AUTO; TaskListSubActivity.sortMode = SortMode.AUTO;
saveTaskListSort(); saveTaskListSort();
fillData(); loadingThread = new Thread(reLoadRunnable);
loadingThread.start();
return true; return true;
case CONTEXT_SORT_ALPHA: case CONTEXT_SORT_ALPHA:
if(sortMode == SortMode.ALPHA) if(sortMode == SortMode.ALPHA)
@ -951,7 +963,8 @@ public class TaskListSubActivity extends SubActivity {
TaskListSubActivity.sortReverse = false; TaskListSubActivity.sortReverse = false;
TaskListSubActivity.sortMode = SortMode.ALPHA; TaskListSubActivity.sortMode = SortMode.ALPHA;
saveTaskListSort(); saveTaskListSort();
fillData(); loadingThread = new Thread(reLoadRunnable);
loadingThread.start();
return true; return true;
case CONTEXT_SORT_DUEDATE: case CONTEXT_SORT_DUEDATE:
if(sortMode == SortMode.DUEDATE) if(sortMode == SortMode.DUEDATE)
@ -959,12 +972,14 @@ public class TaskListSubActivity extends SubActivity {
TaskListSubActivity.sortReverse = false; TaskListSubActivity.sortReverse = false;
TaskListSubActivity.sortMode = SortMode.DUEDATE; TaskListSubActivity.sortMode = SortMode.DUEDATE;
saveTaskListSort(); saveTaskListSort();
fillData(); loadingThread = new Thread(reLoadRunnable);
loadingThread.start();
return true; return true;
case CONTEXT_SORT_REVERSE: case CONTEXT_SORT_REVERSE:
TaskListSubActivity.sortReverse = !sortReverse; TaskListSubActivity.sortReverse = !sortReverse;
saveTaskListSort(); saveTaskListSort();
fillData(); loadingThread = new Thread(reLoadRunnable);
loadingThread.start();
return true; return true;
} }

@ -108,6 +108,9 @@ public class TaskModelForList extends AbstractTaskModel {
public void putCachedLabel(int key, String value) { public void putCachedLabel(int key, String value) {
displayLabels.put(key, value); displayLabels.put(key, value);
} }
public void clearCache() {
displayLabels.clear();
}
// --- constructors // --- constructors

Loading…
Cancel
Save