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"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.timsu.astrid"
android:versionCode="92"
android:versionName="2.4.7">
android:versionCode="93"
android:versionName="2.4.8">
<meta-data android:name="com.a0soft.gphone.aTrackDog.webURL"
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));
if(task.getTimerStart() != null) {
timer.setImageDrawable(r.getDrawable(R.drawable.icon_timer));
view.setMinimumHeight(80);
view.setMinimumHeight(90);
} else {
timer.setImageDrawable(null);
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 */
private void addListeners(View view) {
final CheckBox progress = ((CheckBox)view.findViewById(R.id.cb1));

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

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

Loading…
Cancel
Save