Fixed minor bugs with delete not working, blank tasks being created

pull/14/head
Tim Su 16 years ago
parent 807b8ffa9f
commit acccf78cd0

@ -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="2.14.4" android:versionCode="135">
android:versionName="3.0.0-beta" android:versionCode="136">
<!-- ================================================== Used Permissions = -->

@ -112,6 +112,9 @@
<!-- Button for canceling out of this page -->
<string name="DLG_cancel">Cancel</string>
<!-- Progress dialog shown when doing something slow -->
<string name="DLG_wait">Please wait...</string>
<!-- ============================= Widgets ============================= -->
<!-- Label for DateButtons with no value -->
@ -287,16 +290,16 @@ to the plugin creator for fastest service.
<string name="TEA_repeat_value_unset">No Repeat Set</string>
<!-- Reminder header label -->
<string name="TEA_reminder_label">Remind me when...</string>
<string name="TEA_reminder_label">Remind me...</string>
<!-- Reminder @ deadline -->
<string name="TEA_reminder_due">it\'s time to start the task</string>
<string name="TEA_reminder_due">... when it\'s time to start the task</string>
<!-- Reminder after deadline -->
<string name="TEA_reminder_overdue">task is overdue</string>
<string name="TEA_reminder_overdue">... when task is overdue</string>
<!-- Reminder at random times (%s => time plural)-->
<string name="TEA_reminder_random">randomly every %s</string>
<string name="TEA_reminder_random">... randomly every %s</string>
<!-- Reminder alarm clock label -->
<string name="TEA_reminder_alarm_label">Ring/Vibrate Type:</string>

@ -338,14 +338,6 @@ public final class TaskEditActivity extends TabActivity {
/** Save task model from values in UI components */
private void save() {
// don't save if user accidentally created a new task
if(title.getText().length() == 0) {
if(model.isSaved())
taskService.delete(model);
showCancelToast();
return;
}
for(TaskEditControlSet controlSet : controls)
controlSet.writeToModel();
@ -368,6 +360,10 @@ public final class TaskEditActivity extends TabActivity {
* precision
*/
private void showSaveToast() {
// if we have no title, don't show a message
if(isNewTask())
return;
int stringResource;
long due = model.getValue(Task.DUE_DATE);
@ -492,6 +488,14 @@ public final class TaskEditActivity extends TabActivity {
protected void onStop() {
super.onStop();
FlurryAgent.onEndSession(this);
// don't save if user accidentally created a new task
if(title.getText().length() == 0) {
if(model.isSaved())
taskService.delete(model);
showCancelToast();
return;
}
}
/* ======================================================================

@ -320,8 +320,9 @@ public class TaskListActivity extends ListActivity implements OnScrollListener {
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// if(requestCode == ACTIVITY_EDIT_TASK && resultCode != TaskEditActivity.RESULT_CODE_DISCARDED)
// loadTaskListContent(true);
taskService.cleanup();
if(requestCode == ACTIVITY_EDIT_TASK && resultCode != TaskEditActivity.RESULT_CODE_DISCARDED)
loadTaskListContent(true);
}
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
@ -367,6 +368,7 @@ public class TaskListActivity extends ListActivity implements OnScrollListener {
taskCursor.requery();
taskAdapter.notifyDataSetChanged();
}
startManagingCursor(taskCursor);
if(oldListItemSelected != ListView.INVALID_POSITION &&
oldListItemSelected < taskCursor.getCount())

@ -57,6 +57,7 @@ public class TaskAdapter extends CursorAdapter {
Task.DUE_DATE,
Task.COMPLETION_DATE,
Task.HIDE_UNTIL,
Task.DELETION_DATE,
};
private static int[] IMPORTANCE_COLORS = null;
@ -197,6 +198,8 @@ public class TaskAdapter extends CursorAdapter {
final TextView nameView = viewHolder.nameView; {
String nameValue = task.getValue(Task.TITLE);
long hiddenUntil = task.getValue(Task.HIDE_UNTIL);
if(task.getValue(Task.DELETION_DATE) > 0)
nameValue = r.getString(R.string.TAd_deletedFormat, nameValue);
if(hiddenUntil > DateUtilities.now())
nameValue = r.getString(R.string.TAd_hiddenFormat, nameValue);
nameView.setText(nameValue);

@ -4,6 +4,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.Map.Entry;
import android.app.ProgressDialog;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
@ -11,6 +12,7 @@ import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log;
import com.timsu.astrid.R;
import com.timsu.astrid.data.AbstractController;
import com.timsu.astrid.data.alerts.Alert;
import com.timsu.astrid.data.task.AbstractTaskModel;
@ -23,6 +25,7 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.alarms.Alarm;
import com.todoroo.astrid.alarms.AlarmDatabase;
import com.todoroo.astrid.dao.Database;
@ -58,6 +61,9 @@ public class Astrid2To3UpgradeHelper {
@Autowired
private String alertsTable;
@Autowired
private DialogUtilities dialogUtilities;
// --- implementation
public Astrid2To3UpgradeHelper() {
@ -93,6 +99,9 @@ public class Astrid2To3UpgradeHelper {
public void upgrade2To3() {
Context context = ContextManager.getContext();
// pop up a progress dialog
ProgressDialog dialog = dialogUtilities.progressDialog(context, context.getString(R.string.DLG_wait));
// initiate a backup
try {
TasksXmlExporter exporter = new TasksXmlExporter(true);
@ -149,6 +158,8 @@ public class Astrid2To3UpgradeHelper {
metadataService.cleanup();
database.close();
dialog.dismiss();
}
// --- database upgrade helpers

@ -91,6 +91,7 @@ public class AstridDependencyInjector implements AbstractDependencyInjector {
// com.todoroo.astrid.service
injectables.put("taskService", TaskService.class);
injectables.put("metadataService", MetadataService.class);
injectables.put("upgradeService", UpgradeService.class);
// com.timsu.astrid.data
injectables.put("tasksTable", "tasks");

@ -21,8 +21,10 @@ import com.timsu.astrid.utilities.BackupService;
import com.timsu.astrid.utilities.Notifications;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.service.ExceptionService;
import com.todoroo.andlib.service.ExceptionService.TodorooUncaughtExceptionHandler;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.utility.Preferences;
@ -39,6 +41,10 @@ public class StartupService extends BroadcastReceiver {
AstridDependencyInjector.initialize();
}
public StartupService() {
DependencyInjectionService.getInstance().inject(this);
}
// --- system startup
@Override
@ -56,6 +62,12 @@ public class StartupService extends BroadcastReceiver {
@Autowired
UpgradeService upgradeService;
@Autowired
TaskService taskService;
@Autowired
Database database;
/**
* bit to prevent multiple initializations
*/
@ -110,6 +122,9 @@ public class StartupService extends BroadcastReceiver {
// start backup service
BackupService.scheduleService(context);
database.openForWriting();
taskService.cleanup();
}
}).start();

@ -73,9 +73,15 @@ public class TaskService {
public void delete(Task item) {
if(!item.isSaved())
return;
item.clear();
item.setValue(Task.DELETION_DATE, DateUtilities.now());
taskDao.save(item, false);
else if(item.containsValue(Task.TITLE) && item.getValue(Task.TITLE).length() == 0) {
taskDao.delete(item.getId());
} else {
long id = item.getId();
item.clear();
item.setId(id);
item.setValue(Task.DELETION_DATE, DateUtilities.now());
taskDao.save(item, false);
}
}
/**

Loading…
Cancel
Save