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 16 years ago
parent 38e2b692a7
commit a53c6dca03

@ -1,7 +1,7 @@
<?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:versionName="3.0.0-beta2" android:versionCode="137" android:versionName="3.0.0" android:versionCode="138"
android:installLocation="auto"> android:installLocation="auto">
<!-- ================================================== Used Permissions = --> <!-- ================================================== Used Permissions = -->

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

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

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

Loading…
Cancel
Save