Don't persist new tasks before editing

pull/618/head
Alex Baker 6 years ago
parent b3b2f6295c
commit 985b1f3485

@ -84,9 +84,9 @@ public class TestModule {
}
@Provides
public TaskDao getTaskDao(Database database, Preferences preferences) {
public TaskDao getTaskDao(Database database) {
TaskDao taskDao = database.getTaskDao();
taskDao.initialize(context, preferences);
taskDao.initialize(context);
return taskDao;
}

@ -48,6 +48,8 @@ import com.todoroo.astrid.gtasks.api.GtasksInvoker;
import com.todoroo.astrid.gtasks.api.HttpNotFoundException;
import com.todoroo.astrid.gtasks.sync.GtasksSyncService;
import com.todoroo.astrid.gtasks.sync.GtasksTaskContainer;
import com.todoroo.astrid.helper.UUIDHelper;
import com.todoroo.astrid.service.TaskCreator;
import com.todoroo.astrid.utility.Constants;
import org.tasks.LocalBroadcastManager;
@ -388,24 +390,19 @@ public class GoogleTaskSyncAdapter extends InjectingAbstractThreadedSyncAdapter
} else { // Set default importance and reminders for remotely created tasks
task.task.setImportance(preferences.getIntegerFromString(
R.string.p_default_importance_key, Task.IMPORTANCE_SHOULD_DO));
TaskDao.setDefaultReminders(preferences, task.task);
TaskCreator.setDefaultReminders(preferences, task.task);
task.task.setUuid(UUIDHelper.newUUID());
taskDao.createNew(task.task);
}
if (!TextUtils.isEmpty(task.task.getTitle())) {
task.task.putTransitory(SyncFlags.GTASKS_SUPPRESS_SYNC, true);
task.task.putTransitory(TaskDao.TRANS_SUPPRESS_REFRESH, true);
saveTaskAndMetadata(task);
task.prepareForSaving();
taskDao.save(task.task);
synchronizeMetadata(task.task.getId(), task.metadata);
}
}
/**
* Saves a task and its metadata
*/
private void saveTaskAndMetadata(GtasksTaskContainer task) {
task.prepareForSaving();
taskDao.save(task.task);
synchronizeMetadata(task.task.getId(), task.metadata);
}
/**
* Synchronize metadata for given task id. Deletes rows in database that
* are not identical to those in the metadata list, creates rows that

@ -54,9 +54,13 @@ public class GoogleTaskListFragment extends TaskEditControlFragment {
originalList = savedInstanceState.getParcelable(EXTRA_ORIGINAL_LIST);
selectedList = savedInstanceState.getParcelable(EXTRA_SELECTED_LIST);
} else {
GoogleTask googleTask = googleTaskDao.getByTaskId(task.getId());
if (googleTask != null) {
originalList = gtasksListService.getList(googleTask.getListId());
if (task.isNew()) {
originalList = gtasksListService.getList(task.getTransitory(GoogleTask.KEY));
} else {
GoogleTask googleTask = googleTaskDao.getByTaskId(task.getId());
if (googleTask != null) {
originalList = gtasksListService.getList(googleTask.getListId());
}
}
if (originalList == null) {
originalList = gtasksListService.getList(gtasksPreferenceService.getDefaultList());

@ -14,6 +14,9 @@ import com.todoroo.andlib.data.Property.PropertyVisitor;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.data.Task;
import org.tasks.data.Tag;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
@ -316,11 +319,23 @@ public abstract class AbstractModel {
transitoryData.put(key, value);
}
private Object getTransitory(String key) {
public void setTags(ArrayList<String> tags) {
if (transitoryData == null) {
transitoryData = new HashMap<>();
}
transitoryData.put(Tag.KEY, tags);
}
public ArrayList<String> getTags() {
Object tags = getTransitory(Tag.KEY);
return tags == null ? new ArrayList<>() : (ArrayList<String>) tags;
}
public <T> T getTransitory(String key) {
if(transitoryData == null) {
return null;
}
return transitoryData.get(key);
return (T) transitoryData.get(key);
}
private Object clearTransitory(String key) {

@ -55,11 +55,10 @@ public final class ShareLinkActivity extends InjectingAppCompatActivity {
subject = "";
}
Task task = taskCreator.basicQuickAddTask(subject);
Task task = taskCreator.createWithValues(null, subject);
if (task != null) {
task.setNotes(intent.getStringExtra(Intent.EXTRA_TEXT));
taskDao.save(task);
getEditTaskStack(this, null, task.getId()).startActivities();
getEditTaskStack(this, null, task).startActivities();
}
finish();
}

@ -200,13 +200,15 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
List<TaskEditControlFragment> fragments = taskEditControlSetFragmentManager.getFragmentsInPersistOrder(getChildFragmentManager());
if (hasChanges(fragments)) {
boolean isNewTask = model.isNew();
if (isNewTask) {
taskDao.createNew(model);
}
for (TaskEditControlFragment fragment : fragments) {
fragment.apply(model);
}
taskDao.save(model);
if (Flags.check(Flags.TAGS_CHANGED)) {
if (Flags.checkAndClear(Flags.TAGS_CHANGED)) {
localBroadcastManager.broadcastRefreshList();
}
@ -291,7 +293,6 @@ public final class TaskEditFragment extends InjectingFragment implements Toolbar
.show();
}
/*
* ======================================================================
* ========================================== UI component helper classes

@ -110,6 +110,7 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
public static final String OPEN_FILTER = "open_filter"; //$NON-NLS-1$
public static final String LOAD_FILTER = "load_filter";
public static final String OPEN_TASK = "open_task"; //$NON-NLS-1$
public static final String OPEN_NEW_TASK = "open_new_task"; //$NON-NLS-1$
private int currentNightMode;
private Filter filter;
@ -156,7 +157,7 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
TaskEditFragment taskEditFragment = getTaskEditFragment();
if (taskEditFragment == null) {
hideDetailFragment();
} else if (intent.hasExtra(OPEN_FILTER) || intent.hasExtra(LOAD_FILTER) || intent.hasExtra(OPEN_TASK)) {
} else if (intent.hasExtra(OPEN_FILTER) || intent.hasExtra(LOAD_FILTER) || intent.hasExtra(OPEN_TASK) || intent.hasExtra(OPEN_NEW_TASK)) {
taskEditFragment.save();
taskEditFinished();
} else {
@ -349,6 +350,10 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
Task task = getTaskListFragment().addTask("");
onTaskListItemClicked(task);
}
} else if (intent.hasExtra(OPEN_NEW_TASK)) {
Task task = intent.getParcelableExtra(OPEN_NEW_TASK);
intent.removeExtra(OPEN_NEW_TASK);
onTaskListItemClicked(task);
}
if (intent.hasExtra(TOKEN_CREATE_NEW_LIST_NAME)) {

@ -520,11 +520,7 @@ public class TaskListFragment extends InjectingFragment implements
recognizedSpeech = recognizedSpeech.substring(0, 1).toUpperCase() +
recognizedSpeech.substring(1).toLowerCase();
Task task = addTask(recognizedSpeech);
taskCreator.addToCalendar(task);
onTaskListItemClicked(task);
loadTaskListContent();
onTaskCreated(task.getUuid());
onTaskListItemClicked(addTask(recognizedSpeech));
}
}
} else if (requestCode == REQUEST_EDIT_FILTER) {

@ -9,7 +9,6 @@ import android.arch.persistence.db.SupportSQLiteDatabase;
import android.arch.persistence.room.RoomDatabase;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteConstraintException;
import android.database.sqlite.SQLiteDatabase;
import com.todoroo.astrid.data.Task;
@ -177,20 +176,6 @@ public abstract class Database extends RoomDatabase {
return getDatabase().query(sql, null);
}
public long insert(ContentValues values) {
long result;
try {
result = getDatabase().insert(TABLE_NAME, SQLiteDatabase.CONFLICT_REPLACE, values);
} catch (SQLiteConstraintException e) { // Throw these exceptions
throw e;
} catch (Exception e) { // Suppress others
Timber.e(e, e.getMessage());
result = -1;
}
onDatabaseUpdated();
return result;
}
public int update(ContentValues values, String whereClause) {
int result = getDatabase().update(TABLE_NAME, SQLiteDatabase.CONFLICT_REPLACE, values, whereClause, null);
onDatabaseUpdated();

@ -6,6 +6,7 @@
package com.todoroo.astrid.dao;
import android.arch.persistence.room.Dao;
import android.arch.persistence.room.Insert;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
@ -16,18 +17,14 @@ import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Functions;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.PermaSql;
import com.todoroo.astrid.data.SyncFlags;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskApiDao;
import com.todoroo.astrid.helper.UUIDHelper;
import org.tasks.BuildConfig;
import org.tasks.R;
import org.tasks.jobs.AfterSaveIntentService;
import org.tasks.preferences.Preferences;
import org.tasks.receivers.PushReceiver;
import java.util.List;
@ -50,16 +47,14 @@ public abstract class TaskDao {
private final Database database;
private Preferences preferences;
private Context context;
public TaskDao(Database database) {
this.database = database;
}
public void initialize(Context context, Preferences preferences) {
public void initialize(Context context) {
this.context = context;
this.preferences = preferences;
}
public List<Task> needsRefresh() {
@ -159,7 +154,7 @@ public abstract class TaskDao {
*
*/
public void save(Task task) {
ContentValues modifiedValues = createOrUpdate(task);
ContentValues modifiedValues = saveExisting(task);
if (modifiedValues != null) {
AfterSaveIntentService.enqueue(context, task.getId(), modifiedValues);
} else if (task.checkTransitory(SyncFlags.FORCE_SYNC)) {
@ -167,91 +162,22 @@ public abstract class TaskDao {
}
}
private ContentValues createOrUpdate(Task task) {
return task.getId() == Task.NO_ID
? createNew(task)
: saveExisting(task);
}
public ContentValues createNew(Task item) {
if(!item.containsValue(Task.CREATION_DATE)) {
item.setCreationDate(now());
}
item.setModificationDate(now());
// set up task defaults
if(!item.containsValue(Task.IMPORTANCE)) {
item.setImportance(preferences.getIntegerFromString(
R.string.p_default_importance_key, Task.IMPORTANCE_SHOULD_DO));
}
if(!item.containsValue(Task.DUE_DATE)) {
int setting = preferences.getIntegerFromString(R.string.p_default_urgency_key,
Task.URGENCY_NONE);
item.setDueDate(Task.createDueDate(setting, 0));
}
createDefaultHideUntil(preferences, item);
setDefaultReminders(preferences, item);
ContentValues values = item.getSetValues();
if (!item.containsValue(Task.UUID) || Task.isUuidEmpty(item.getUuid())) {
item.setUuid(UUIDHelper.newUUID());
}
DatabaseChangeOp insert = new DatabaseChangeOp() {
@Override
public boolean makeChange() {
ContentValues mergedValues = item.getMergedValues();
mergedValues.remove(AbstractModel.ID_PROPERTY.name);
long newRow = database.insert(mergedValues);
boolean result = newRow >= 0;
if (result) {
item.setId(newRow);
}
return result;
}
@Insert
abstract long insert(Task task);
@Override
public String toString() {
return "INSERT";
}
};
if (insertOrUpdateAndRecordChanges(item, insert)) {
return values;
}
return null;
}
private static void createDefaultHideUntil(Preferences preferences, Task item) {
if(!item.containsValue(Task.HIDE_UNTIL)) {
int setting = preferences.getIntegerFromString(R.string.p_default_hideUntil_key,
Task.HIDE_UNTIL_NONE);
item.setHideUntil(item.createHideUntil(setting, 0));
}
}
/**
* Sets default reminders for the given task if reminders are not set
*/
public static void setDefaultReminders(Preferences preferences, Task item) {
if(!item.containsValue(Task.REMINDER_PERIOD)) {
item.setReminderPeriod(DateUtilities.ONE_HOUR *
preferences.getIntegerFromString(R.string.p_rmd_default_random_hours,
0));
}
if(!item.containsValue(Task.REMINDER_FLAGS)) {
item.setReminderFlags(preferences.getDefaultReminders() | preferences.getDefaultRingMode());
}
public void createNew(Task task) {
task.id = null;
task.remoteId = task.getUuid();
task.setId(insert(task));
}
private ContentValues saveExisting(Task item) {
ContentValues values = item.getSetValues();
if(values == null || values.size() == 0) {
if (values == null || values.size() == 0) {
return null;
}
if(!TaskApiDao.insignificantChange(values)) {
if(!values.containsKey(Task.MODIFICATION_DATE.name)) {
if (!TaskApiDao.insignificantChange(values)) {
if (!values.containsKey(Task.MODIFICATION_DATE.name)) {
item.setModificationDate(now());
}
}
@ -267,7 +193,7 @@ public abstract class TaskDao {
return "UPDATE";
}
};
if (insertOrUpdateAndRecordChanges(item, update)) {
if (updateAndRecordChanges(item, update)) {
return values;
}
return null;
@ -308,7 +234,7 @@ public abstract class TaskDao {
boolean makeChange();
}
private boolean insertOrUpdateAndRecordChanges(Task item, DatabaseChangeOp op) {
private boolean updateAndRecordChanges(Task item, DatabaseChangeOp op) {
final AtomicBoolean result = new AtomicBoolean(false);
synchronized(database) {
result.set(op.makeChange());

@ -4,21 +4,24 @@ import android.content.ContentValues;
import android.net.Uri;
import android.text.TextUtils;
import com.google.common.base.Strings;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.api.PermaSql;
import org.tasks.data.TagDataDao;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.SyncFlags;
import org.tasks.data.TagData;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.helper.UUIDHelper;
import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.utility.TitleParser;
import org.tasks.R;
import org.tasks.data.GoogleTask;
import org.tasks.data.GoogleTaskDao;
import org.tasks.data.Tag;
import org.tasks.data.TagDao;
import org.tasks.data.TagData;
import org.tasks.data.TagDataDao;
import org.tasks.preferences.Preferences;
import java.util.ArrayList;
@ -50,23 +53,26 @@ public class TaskCreator {
this.googleTaskDao = googleTaskDao;
}
public Task basicQuickAddTask(String title) {
public void basicQuickAddTask(String title) {
title = title.trim();
Task task = createWithValues(null, title);
addToCalendar(task);
return task;
}
taskDao.createNew(task);
public void addToCalendar(Task task) {
boolean gcalCreateEventEnabled = preferences.isDefaultCalendarSet() && task.hasDueDate(); //$NON-NLS-1$
if (!TextUtils.isEmpty(task.getTitle()) && gcalCreateEventEnabled && TextUtils.isEmpty(task.getCalendarURI())) {
Uri calendarUri = gcalHelper.createTaskEvent(task, new ContentValues());
task.setCalendarUri(calendarUri.toString());
task.putTransitory(SyncFlags.GTASKS_SUPPRESS_SYNC, true);
taskDao.save(task);
}
createTags(task);
String googleTaskList = task.getTransitory(GoogleTask.KEY);
if (!Strings.isNullOrEmpty(googleTaskList)) {
googleTaskDao.insert(new GoogleTask(task.getId(), googleTaskList));
}
taskDao.save(task);
}
/**
@ -79,6 +85,8 @@ public class TaskCreator {
task.setTitle(title.trim());
}
task.setUuid(UUIDHelper.newUUID());
ArrayList<String> tags = new ArrayList<>();
try {
parseQuickAddMarkup(task, tags);
@ -91,55 +99,66 @@ public class TaskCreator {
for (Map.Entry<String, Object> item : values.entrySet()) {
String key = item.getKey();
Object value = item.getValue();
if (key.equals(Tag.KEY) || key.equals(GoogleTask.KEY)) {
continue;
if (key.equals(Tag.KEY)) {
tags.add((String) value);
} else if (key.equals(GoogleTask.KEY)) {
task.putTransitory(key, value);
} else {
if (value instanceof String) {
value = PermaSql.replacePlaceholders((String) value);
}
AndroidUtilities.putInto(forTask, key, value);
}
if (value instanceof String) {
value = PermaSql.replacePlaceholders((String) value);
}
AndroidUtilities.putInto(forTask, key, value);
}
task.mergeWithoutReplacement(forTask);
}
saveWithoutPublishingFilterUpdate(task);
if (!task.containsValue(Task.IMPORTANCE)) {
task.setImportance(preferences.getIntegerFromString(R.string.p_default_importance_key, Task.IMPORTANCE_SHOULD_DO));
}
if (values != null) {
if (values.containsKey(Tag.KEY)) {
createLink(task, (String) values.get(Tag.KEY));
}
if (values.containsKey(GoogleTask.KEY)) {
GoogleTask googleTask = new GoogleTask(task.getId(), (String) values.get(GoogleTask.KEY));
googleTaskDao.insert(googleTask);
}
if(!task.containsValue(Task.DUE_DATE)) {
task.setDueDate(Task.createDueDate(
preferences.getIntegerFromString(R.string.p_default_urgency_key, Task.URGENCY_NONE), 0));
}
for(String tag : tags) {
createLink(task, tag);
if(!task.containsValue(Task.HIDE_UNTIL)) {
int setting = preferences.getIntegerFromString(R.string.p_default_hideUntil_key,
Task.HIDE_UNTIL_NONE);
task.setHideUntil(task.createHideUntil(setting, 0));
}
setDefaultReminders(preferences, task);
task.setTags(tags);
return task;
}
private void saveWithoutPublishingFilterUpdate(Task item) {
taskDao.save(item);
}
public static void setDefaultReminders(Preferences preferences, Task task) {
if(!task.containsValue(Task.REMINDER_PERIOD)) {
task.setReminderPeriod(DateUtilities.ONE_HOUR *
preferences.getIntegerFromString(R.string.p_rmd_default_random_hours,
0));
}
private void createLink(Task task, String tagName) {
TagData tagData = tagDataDao.getTagByName(tagName);
if (tagData == null) {
tagData = new TagData();
tagData.setName(tagName);
tagDataDao.persist(tagData);
if(!task.containsValue(Task.REMINDER_FLAGS)) {
task.setReminderFlags(preferences.getDefaultReminders() | preferences.getDefaultRingMode());
}
createLink(task, tagData.getName(), tagData.getRemoteId());
}
private void createLink(Task task, String tagName, String tagUuid) {
Tag link = new Tag(task.getId(), task.getUuid(), tagName, tagUuid);
tagDao.insert(link);
public void createTags(Task task) {
for (String tag : task.getTags()) {
TagData tagData = tagDataDao.getTagByName(tag);
if (tagData == null) {
tagData = new TagData();
tagData.setName(tag);
tagDataDao.persist(tagData);
}
Tag link = new Tag(task.getId(), task.getUuid(), tagData.getName(), tagData.getRemoteId());
tagDao.insert(link);
}
}
/**

@ -1,11 +1,10 @@
package com.todoroo.astrid.service;
import com.google.common.collect.Lists;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.SyncFlags;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.helper.UUIDHelper;
import org.tasks.LocalBroadcastManager;
import org.tasks.data.GoogleTask;
@ -18,6 +17,9 @@ import java.util.List;
import javax.inject.Inject;
import static com.google.common.collect.Lists.transform;
import static com.todoroo.andlib.utility.DateUtilities.now;
public class TaskDuplicator {
private final GCalHelper gcalHelper;
@ -39,32 +41,30 @@ public class TaskDuplicator {
public List<Task> duplicate(List<Task> tasks) {
List<Task> result = new ArrayList<>();
for (Task task : tasks) {
result.add(clone(taskDao.fetch(task.getId())));
result.add(clone(task));
}
localBroadcastManager.broadcastRefresh();
return result;
}
private Task clone(Task clone) {
long originalId = clone.getId();
clone.setCreationDate(DateUtilities.now());
clone.setCreationDate(now());
clone.setModificationDate(now());
clone.setCompletionDate(0L);
clone.setDeletionDate(0L);
clone.setCalendarUri("");
clone.clearValue(Task.ID);
clone.clearValue(Task.UUID);
clone.setUuid(UUIDHelper.newUUID());
GoogleTask googleTask = googleTaskDao.getByTaskId(originalId);
List<Tag> tags = tagDao.getTagsForTask(clone.getId());
GoogleTask googleTask = googleTaskDao.getByTaskId(clone.getId());
if (googleTask != null) {
clone.putTransitory(SyncFlags.GTASKS_SUPPRESS_SYNC, true);
}
clone.putTransitory(TaskDao.TRANS_SUPPRESS_REFRESH, true);
taskDao.save(clone);
taskDao.createNew(clone);
tagDao.insert(Lists.transform(
tagDao.getTagsForTask(originalId),
tagDao.insert(transform(tags,
tag -> new Tag(clone.getId(), clone.getUuid(), tag.getName(), tag.getTagUid())));
if (googleTask != null) {
@ -73,6 +73,8 @@ public class TaskDuplicator {
gcalHelper.createTaskEventIfEnabled(clone);
taskDao.save(clone); // TODO: delete me
return clone;
}
}

@ -143,7 +143,10 @@ public final class TagsControlSet extends TaskEditControlFragment {
selectedTags = savedInstanceState.getParcelableArrayList(EXTRA_SELECTED_TAGS);
newTags = savedInstanceState.getStringArrayList(EXTRA_NEW_TAGS);
} else {
selectedTags = tagService.getTagDataForTask(task.getId());
selectedTags = new ArrayList<>();
selectedTags.addAll(task.isNew()
? transform(task.getTags(), tagDataDao::getTagByName)
: tagService.getTagDataForTask(task.getId()));
newTags = newArrayList();
}
allTags = tagService.getTagList();

@ -166,7 +166,8 @@ public class EditTitleControlSet extends TaskEditControlFragment {
@Override
public boolean hasChanges(Task original) {
return !title.equals(original.getTitle()) ||
isComplete != original.isCompleted();
isComplete != original.isCompleted() ||
(original.isNew() && !Strings.isNullOrEmpty(title));
}
@Override

@ -22,7 +22,6 @@ import org.tasks.data.UserActivityDao;
import org.tasks.db.Migrations;
import org.tasks.locale.Locale;
import org.tasks.notifications.NotificationDao;
import org.tasks.preferences.Preferences;
import java.util.concurrent.Executor;
@ -136,9 +135,9 @@ public class ApplicationModule {
@Provides
@ApplicationScope
public TaskDao getTaskDao(Database database, Preferences preferences) {
public TaskDao getTaskDao(Database database) {
TaskDao taskDao = database.getTaskDao();
taskDao.initialize(context, preferences);
taskDao.initialize(context);
return taskDao;
}
}

@ -7,11 +7,20 @@ import android.support.v4.app.TaskStackBuilder;
import com.google.common.base.Strings;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.data.Task;
public class TaskIntents {
public static TaskStackBuilder getEditTaskStack(Context context, final Filter filter, Task task) {
Intent intent = getTaskListIntent(context, filter);
intent.putExtra(TaskListActivity.OPEN_NEW_TASK, task);
return TaskStackBuilder.create(context).addNextIntent(intent);
}
public static TaskStackBuilder getEditTaskStack(Context context, final Filter filter, final long taskId) {
return TaskStackBuilder.create(context).addNextIntent(getEditTaskIntent(context, filter, taskId));
Intent intent = getTaskListIntent(context, filter);
intent.putExtra(TaskListActivity.OPEN_TASK, taskId);
return TaskStackBuilder.create(context).addNextIntent(intent);
}
public static Intent getNewTaskIntent(Context context, String filterId) {
@ -24,12 +33,6 @@ public class TaskIntents {
return taskListIntent;
}
private static Intent getEditTaskIntent(Context context, final Filter filter, final long taskId) {
Intent taskListIntent = getTaskListIntent(context, filter);
taskListIntent.putExtra(TaskListActivity.OPEN_TASK, taskId);
return taskListIntent;
}
public static Intent getTaskListIntent(Context context, final Filter filter) {
Intent intent = new Intent(context, TaskListActivity.class);
if (filter != null) {

@ -71,6 +71,9 @@ public class TaskerTaskCreator {
task.setNotes(bundle.getDescription());
taskDao.save(task);
taskDao.createNew(task);
taskDao.save(task); // TODO: delete me
taskCreator.createTags(task);
}
}

Loading…
Cancel
Save