Fixed stupid bug where complete task then tap another task resets apperance. Also, now when you restore backed up tasks, task list auto refreshes

pull/14/head
Tim Su 14 years ago
parent 38e2b692a7
commit a53c6dca03

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.timsu.astrid"
android:versionName="3.0.0-beta2" android:versionCode="137"
android:versionName="3.0.0" android:versionCode="138"
android:installLocation="auto">
<!-- ================================================== Used Permissions = -->

@ -115,6 +115,8 @@ public class BackupService extends Service {
}
};
File astridDir = backupDirectorySetting.getBackupDirectory();
if(astridDir == null)
return;
// grab all backup files, sort by modified date, delete old ones
File[] files = astridDir.listFiles(backupFileFilter);

@ -179,7 +179,6 @@ public class TaskListActivity extends ListActivity implements OnScrollListener {
}).start();
}
/**
* Create options menu (displayed when user presses menu key)
*
@ -188,7 +187,7 @@ public class TaskListActivity extends ListActivity implements OnScrollListener {
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(menu.size() > 0)
return true;
menu.clear();
MenuItem item;
@ -459,8 +458,10 @@ public class TaskListActivity extends ListActivity implements OnScrollListener {
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
loadTaskListContent(true);
taskService.cleanup();
if(resultCode != RESULT_CANCELED) {
loadTaskListContent(true);
taskService.cleanup();
}
}
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
@ -682,6 +683,10 @@ public class TaskListActivity extends ListActivity implements OnScrollListener {
case MENU_HELP_ID:
// TODO
return true;
case MENU_ADDON_INTENT_ID:
intent = item.getIntent();
AndroidUtilities.startExternalIntent(this, intent, ACTIVITY_MENU_EXTERNAL);
return true;
// context menu items

@ -97,7 +97,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
private TaskService taskService;
protected final ListActivity activity;
protected final HashMap<Long, Boolean> completedItems;
protected final HashMap<Long, Boolean> completedItems = new HashMap<Long, Boolean>();
private OnCompletedTaskListener onCompletedTaskListener = null;
public boolean isFling = false;
private final int resource;
@ -144,7 +144,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
this.activity = activity;
this.onCompletedTaskListener = onCompletedTaskListener;
completedItems = new HashMap<Long, Boolean>();
fontSize = Preferences.getIntegerFromString(R.string.p_fontSize, 20);
synchronized(TaskAdapter.class) {
@ -298,8 +297,13 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
// complete box
final CheckBox completeBox = viewHolder.completeBox; {
// show item as completed if it was recently checked
if(completedItems.containsKey(task.getId()))
task.setValue(Task.COMPLETION_DATE, DateUtilities.now());
if(completedItems.containsKey(task.getId())) {
task.setValue(Task.COMPLETION_DATE,
completedItems.get(task.getId()) ? DateUtilities.now() : 0);
}
System.err.println("look it read " + task.getId() + " was " +
task.isCompleted()
+ ", cache had " + completedItems.get(task.getId()));
completeBox.setChecked(task.isCompleted());
}
@ -565,7 +569,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
fontSize = Preferences.getIntegerFromString(R.string.p_fontSize, 20);
completedItems.clear();
}
private final View.OnClickListener completeBoxListener = new View.OnClickListener() {
@ -644,11 +647,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
* @param progress
*/
void setTaskAppearance(ViewHolder viewHolder, Task task) {
boolean state;
if(completedItems.containsKey(task.getId()))
state = completedItems.get(task.getId());
else
state = task.isCompleted();
boolean state = task.isCompleted();
viewHolder.completeBox.setChecked(state);
@ -674,16 +673,16 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
* @param completeBox
* the box that was clicked. can be null
*/
protected void completeTask(final Task actionItem, final boolean newState) {
if(actionItem == null)
protected void completeTask(final Task task, final boolean newState) {
if(task == null)
return;
if (newState != actionItem.isCompleted()) {
completedItems.put(actionItem.getId(), newState);
taskService.setComplete(actionItem, newState);
if (newState != task.isCompleted()) {
completedItems.put(task.getId(), newState);
taskService.setComplete(task, newState);
if(onCompletedTaskListener != null)
onCompletedTaskListener.onCompletedTask(actionItem, newState);
onCompletedTaskListener.onCompletedTask(task, newState);
}
}

Loading…
Cancel
Save