Fix task creation in landscape tablet mode

pull/253/head
Alex Baker 10 years ago
parent 813eff299e
commit 0e0f21f141

@ -278,7 +278,12 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
fab.setOnClickListener(new OnClickListener() { fab.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { 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); View body = getListBody(parent);
@ -590,7 +595,9 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
if (taskAdapter != null) { if (taskAdapter != null) {
taskAdapter.flushCaches(); taskAdapter.flushCaches();
} }
taskDeleter.deleteTasksWithEmptyTitles(); TaskEditFragment taskEditFragment = ((AstridActivity) getActivity()).getTaskEditFragment();
Task model = taskEditFragment == null ? null : taskEditFragment.model;
taskDeleter.deleteTasksWithEmptyTitles(model == null ? null : model.getId());
loadTaskListContent(); loadTaskListContent();
setSyncOngoing(false); setSyncOngoing(false);
} }

@ -165,7 +165,7 @@ public class StartupService {
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
taskDeleter.deleteTasksWithEmptyTitles(); taskDeleter.deleteTasksWithEmptyTitles(null);
// if sync ongoing flag was set, clear it // if sync ongoing flag was set, clear it
gtasksPreferenceService.stopOngoing(); gtasksPreferenceService.stopOngoing();

@ -25,7 +25,7 @@ public class TaskDeleter {
/** /**
* Clean up tasks. Typically called on startup * Clean up tasks. Typically called on startup
*/ */
public void deleteTasksWithEmptyTitles() { public void deleteTasksWithEmptyTitles(Long suppress) {
TodorooCursor<Task> cursor = taskDao.query( TodorooCursor<Task> cursor = taskDao.query(
Query.select(Task.ID).where(TaskDao.TaskCriteria.hasNoTitle())); Query.select(Task.ID).where(TaskDao.TaskCriteria.hasNoTitle()));
try { try {
@ -35,7 +35,9 @@ public class TaskDeleter {
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
long id = cursor.getLong(0); long id = cursor.getLong(0);
taskDao.delete(id); if (suppress == null || suppress != id) {
taskDao.delete(id);
}
} }
} finally { } finally {
cursor.close(); cursor.close();

@ -48,19 +48,19 @@ public class QuickAddBar {
// --- quick add task logic // --- quick add task logic
public void quickAddTask() { public Task quickAddTask() {
quickAddTask(""); return quickAddTask("");
} }
/** /**
* Quick-add a new task * Quick-add a new task
*/ */
public void quickAddTask(String title) { public Task quickAddTask(String title) {
TagData tagData = fragment.getActiveTagData(); TagData tagData = fragment.getActiveTagData();
if(tagData != null && (!tagData.containsNonNullValue(TagData.NAME) || if(tagData != null && (!tagData.containsNonNullValue(TagData.NAME) ||
tagData.getName().length() == 0)) { tagData.getName().length() == 0)) {
DialogUtilities.okDialog(activity, activity.getString(R.string.tag_no_title_error), null); DialogUtilities.okDialog(activity, activity.getString(R.string.tag_no_title_error), null);
return; return null;
} }
try { try {
@ -87,9 +87,11 @@ public class QuickAddBar {
activity.onTaskListItemClicked(task.getId()); activity.onTaskListItemClicked(task.getId());
fragment.onTaskCreated(task); fragment.onTaskCreated(task);
return task;
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
return null;
} }
private void showAlertForMarkupTask(AstridActivity activity, Task task, String originalText) { private void showAlertForMarkupTask(AstridActivity activity, Task task, String originalText) {

Loading…
Cancel
Save