diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java index ef3a15911..513e2d188 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java @@ -17,17 +17,11 @@ import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.FrameLayout; -import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.GtasksFilter; -import com.todoroo.astrid.api.PermaSql; import com.todoroo.astrid.api.TagFilter; - -import org.tasks.data.GoogleTaskList; -import org.tasks.data.TagDataDao; import com.todoroo.astrid.dao.TaskDao; -import org.tasks.data.TagData; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.gtasks.GtasksListService; import com.todoroo.astrid.gtasks.GtasksSubtaskListFragment; @@ -43,6 +37,9 @@ import org.tasks.R; import org.tasks.activities.TagSettingsActivity; import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracking; +import org.tasks.data.GoogleTaskList; +import org.tasks.data.TagData; +import org.tasks.data.TagDataDao; import org.tasks.dialogs.SortDialog; import org.tasks.fragments.CommentBarFragment; import org.tasks.gtasks.GoogleTaskListSelectionHandler; @@ -63,8 +60,6 @@ import org.tasks.ui.EmptyTaskEditFragment; import org.tasks.ui.NavigationDrawerFragment; import org.tasks.ui.PriorityControlSet; -import java.util.Map; - import javax.inject.Inject; import butterknife.BindView; @@ -344,10 +339,15 @@ public class TaskListActivity extends InjectingAppCompatActivity implements intent.removeExtra(OPEN_TASK); navigationDrawer.closeDrawer(); if (taskId > 0) { - onTaskListItemClicked(taskId); + Task task = taskDao.fetch(taskId); + if (task != null) { + onTaskListItemClicked(task); + } else { + Timber.e("Failed to find task %s", taskId); + } } else { Task task = getTaskListFragment().addTask(""); - onTaskListItemClicked(task.getId()); + onTaskListItemClicked(task); } } @@ -361,18 +361,17 @@ public class TaskListActivity extends InjectingAppCompatActivity implements } @Override - public void onTaskListItemClicked(long taskId) { + public void onTaskListItemClicked(Task task) { + if (task == null) { + return; + } + TaskEditFragment taskEditFragment = getTaskEditFragment(); if (taskEditFragment != null) { taskEditFragment.save(); } - Task task = loadItem(taskId); - if (task == null) { - Timber.e(new NullPointerException(), "Failed to load task id %s", taskId); - return; - } boolean isNewTask = task.getTitle().length() == 0; loadTaskEditFragment(newTaskEditFragment(isNewTask, task)); } @@ -412,36 +411,6 @@ public class TaskListActivity extends InjectingAppCompatActivity implements .findFragmentByTag(TaskEditFragment.TAG_TASKEDIT_FRAGMENT); } - /** - * Loads action item from the given intent - */ - private Task loadItem(long taskId) { - Task model = null; - - if (taskId> -1L) { - model = taskDao.fetch(taskId); - } - - // not found by id or was never passed an id - if (model == null) { - Intent intent = getIntent(); - String valuesAsString = intent.getStringExtra(TaskEditFragment.TOKEN_VALUES); - Map values = null; - try { - if (valuesAsString != null) { - valuesAsString = PermaSql.replacePlaceholders(valuesAsString); - values = AndroidUtilities.mapFromSerializedString(valuesAsString); - } - } catch (Exception e) { - // oops, can't serialize - Timber.e(e, e.getMessage()); - } - model = taskCreator.createWithValues(values, null); - } - - return model; - } - @Override public void onPriorityChange(int priority) { getTaskEditFragment().onPriorityChange(priority); diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index 51a32b1cf..4d1eb00f9 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -162,7 +162,7 @@ public class TaskListFragment extends InjectingFragment implements * does during the onAttach() callback */ public interface TaskListFragmentCallbackHandler { - void onTaskListItemClicked(long taskId); + void onTaskListItemClicked(Task task); void onNavigationIconClicked(); } @@ -329,8 +329,7 @@ public class TaskListFragment extends InjectingFragment implements @OnClick(R.id.fab) void createNewTask() { - Task task = addTask(""); - onTaskListItemClicked(task.getId()); + onTaskListItemClicked(addTask("")); } public Task addTask(String title) { @@ -513,7 +512,7 @@ public class TaskListFragment extends InjectingFragment implements Task task = addTask(recognizedSpeech); taskCreator.addToCalendar(task); - onTaskListItemClicked(task.getId()); + onTaskListItemClicked(task); loadTaskListContent(); onTaskCreated(task.getUUID()); } @@ -539,8 +538,8 @@ public class TaskListFragment extends InjectingFragment implements public boolean onContextItemSelected(android.view.MenuItem item) { return onOptionsItemSelected(item); } - public void onTaskListItemClicked(long taskId) { - callbacks.onTaskListItemClicked(taskId); + public void onTaskListItemClicked(Task task) { + callbacks.onTaskListItemClicked(task); } protected boolean hasDraggableOption() { diff --git a/app/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java b/app/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java index dbad80ef9..d2658eff4 100644 --- a/app/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java +++ b/app/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java @@ -126,8 +126,7 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter im @Override public void onClick(ViewHolder viewHolder) { if (mode == null) { - Task task = viewHolder.task; - taskList.onTaskListItemClicked(task.getId()); + taskList.onTaskListItemClicked(viewHolder.task); } else { toggle(viewHolder); }