diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index ff6e64cb8..31444d371 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -278,7 +278,12 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel fab.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - ((AstridActivity) getActivity()).startEditActivity(getNewTaskIntent(getActivity(), filter)); + if (ActivityPreferences.isTabletSized(context)) { + Task task = quickAddBar.quickAddTask(); + onTaskListItemClicked(task.getId()); + } else { + ((AstridActivity) getActivity()).startEditActivity(getNewTaskIntent(getActivity(), filter)); + } } }); View body = getListBody(parent); @@ -590,7 +595,9 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel if (taskAdapter != null) { taskAdapter.flushCaches(); } - taskDeleter.deleteTasksWithEmptyTitles(); + TaskEditFragment taskEditFragment = ((AstridActivity) getActivity()).getTaskEditFragment(); + Task model = taskEditFragment == null ? null : taskEditFragment.model; + taskDeleter.deleteTasksWithEmptyTitles(model == null ? null : model.getId()); loadTaskListContent(); setSyncOngoing(false); } diff --git a/src/main/java/com/todoroo/astrid/service/StartupService.java b/src/main/java/com/todoroo/astrid/service/StartupService.java index f03d43fca..c436112ff 100644 --- a/src/main/java/com/todoroo/astrid/service/StartupService.java +++ b/src/main/java/com/todoroo/astrid/service/StartupService.java @@ -165,7 +165,7 @@ public class StartupService { new Thread(new Runnable() { @Override public void run() { - taskDeleter.deleteTasksWithEmptyTitles(); + taskDeleter.deleteTasksWithEmptyTitles(null); // if sync ongoing flag was set, clear it gtasksPreferenceService.stopOngoing(); diff --git a/src/main/java/com/todoroo/astrid/service/TaskDeleter.java b/src/main/java/com/todoroo/astrid/service/TaskDeleter.java index 064feeb67..3144dfcf8 100644 --- a/src/main/java/com/todoroo/astrid/service/TaskDeleter.java +++ b/src/main/java/com/todoroo/astrid/service/TaskDeleter.java @@ -25,7 +25,7 @@ public class TaskDeleter { /** * Clean up tasks. Typically called on startup */ - public void deleteTasksWithEmptyTitles() { + public void deleteTasksWithEmptyTitles(Long suppress) { TodorooCursor cursor = taskDao.query( Query.select(Task.ID).where(TaskDao.TaskCriteria.hasNoTitle())); try { @@ -35,7 +35,9 @@ public class TaskDeleter { for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { long id = cursor.getLong(0); - taskDao.delete(id); + if (suppress == null || suppress != id) { + taskDao.delete(id); + } } } finally { cursor.close(); diff --git a/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java b/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java index 88bd30b15..24555c2cb 100644 --- a/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java +++ b/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java @@ -48,19 +48,19 @@ public class QuickAddBar { // --- quick add task logic - public void quickAddTask() { - quickAddTask(""); + public Task quickAddTask() { + return quickAddTask(""); } /** * Quick-add a new task */ - public void quickAddTask(String title) { + public Task quickAddTask(String title) { TagData tagData = fragment.getActiveTagData(); if(tagData != null && (!tagData.containsNonNullValue(TagData.NAME) || tagData.getName().length() == 0)) { DialogUtilities.okDialog(activity, activity.getString(R.string.tag_no_title_error), null); - return; + return null; } try { @@ -87,9 +87,11 @@ public class QuickAddBar { activity.onTaskListItemClicked(task.getId()); fragment.onTaskCreated(task); + return task; } catch (Exception e) { log.error(e.getMessage(), e); } + return null; } private void showAlertForMarkupTask(AstridActivity activity, Task task, String originalText) {