Load by task instead of task id

pull/618/head
Alex Baker 8 years ago
parent 7c0cdbeddb
commit 42f9f59a46

@ -17,17 +17,11 @@ import android.view.View;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.api.GtasksFilter; import com.todoroo.astrid.api.GtasksFilter;
import com.todoroo.astrid.api.PermaSql;
import com.todoroo.astrid.api.TagFilter; import com.todoroo.astrid.api.TagFilter;
import org.tasks.data.GoogleTaskList;
import org.tasks.data.TagDataDao;
import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.dao.TaskDao;
import org.tasks.data.TagData;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.GtasksListService; import com.todoroo.astrid.gtasks.GtasksListService;
import com.todoroo.astrid.gtasks.GtasksSubtaskListFragment; import com.todoroo.astrid.gtasks.GtasksSubtaskListFragment;
@ -43,6 +37,9 @@ import org.tasks.R;
import org.tasks.activities.TagSettingsActivity; import org.tasks.activities.TagSettingsActivity;
import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking; 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.dialogs.SortDialog;
import org.tasks.fragments.CommentBarFragment; import org.tasks.fragments.CommentBarFragment;
import org.tasks.gtasks.GoogleTaskListSelectionHandler; import org.tasks.gtasks.GoogleTaskListSelectionHandler;
@ -63,8 +60,6 @@ import org.tasks.ui.EmptyTaskEditFragment;
import org.tasks.ui.NavigationDrawerFragment; import org.tasks.ui.NavigationDrawerFragment;
import org.tasks.ui.PriorityControlSet; import org.tasks.ui.PriorityControlSet;
import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
import butterknife.BindView; import butterknife.BindView;
@ -344,10 +339,15 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
intent.removeExtra(OPEN_TASK); intent.removeExtra(OPEN_TASK);
navigationDrawer.closeDrawer(); navigationDrawer.closeDrawer();
if (taskId > 0) { 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 { } else {
Task task = getTaskListFragment().addTask(""); Task task = getTaskListFragment().addTask("");
onTaskListItemClicked(task.getId()); onTaskListItemClicked(task);
} }
} }
@ -361,18 +361,17 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
} }
@Override @Override
public void onTaskListItemClicked(long taskId) { public void onTaskListItemClicked(Task task) {
if (task == null) {
return;
}
TaskEditFragment taskEditFragment = getTaskEditFragment(); TaskEditFragment taskEditFragment = getTaskEditFragment();
if (taskEditFragment != null) { if (taskEditFragment != null) {
taskEditFragment.save(); 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; boolean isNewTask = task.getTitle().length() == 0;
loadTaskEditFragment(newTaskEditFragment(isNewTask, task)); loadTaskEditFragment(newTaskEditFragment(isNewTask, task));
} }
@ -412,36 +411,6 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
.findFragmentByTag(TaskEditFragment.TAG_TASKEDIT_FRAGMENT); .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<String, Object> 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 @Override
public void onPriorityChange(int priority) { public void onPriorityChange(int priority) {
getTaskEditFragment().onPriorityChange(priority); getTaskEditFragment().onPriorityChange(priority);

@ -162,7 +162,7 @@ public class TaskListFragment extends InjectingFragment implements
* does during the onAttach() callback * does during the onAttach() callback
*/ */
public interface TaskListFragmentCallbackHandler { public interface TaskListFragmentCallbackHandler {
void onTaskListItemClicked(long taskId); void onTaskListItemClicked(Task task);
void onNavigationIconClicked(); void onNavigationIconClicked();
} }
@ -329,8 +329,7 @@ public class TaskListFragment extends InjectingFragment implements
@OnClick(R.id.fab) @OnClick(R.id.fab)
void createNewTask() { void createNewTask() {
Task task = addTask(""); onTaskListItemClicked(addTask(""));
onTaskListItemClicked(task.getId());
} }
public Task addTask(String title) { public Task addTask(String title) {
@ -513,7 +512,7 @@ public class TaskListFragment extends InjectingFragment implements
Task task = addTask(recognizedSpeech); Task task = addTask(recognizedSpeech);
taskCreator.addToCalendar(task); taskCreator.addToCalendar(task);
onTaskListItemClicked(task.getId()); onTaskListItemClicked(task);
loadTaskListContent(); loadTaskListContent();
onTaskCreated(task.getUUID()); onTaskCreated(task.getUUID());
} }
@ -539,8 +538,8 @@ public class TaskListFragment extends InjectingFragment implements
public boolean onContextItemSelected(android.view.MenuItem item) { public boolean onContextItemSelected(android.view.MenuItem item) {
return onOptionsItemSelected(item); return onOptionsItemSelected(item);
} }
public void onTaskListItemClicked(long taskId) { public void onTaskListItemClicked(Task task) {
callbacks.onTaskListItemClicked(taskId); callbacks.onTaskListItemClicked(task);
} }
protected boolean hasDraggableOption() { protected boolean hasDraggableOption() {

@ -126,8 +126,7 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter<ViewHolder> im
@Override @Override
public void onClick(ViewHolder viewHolder) { public void onClick(ViewHolder viewHolder) {
if (mode == null) { if (mode == null) {
Task task = viewHolder.task; taskList.onTaskListItemClicked(viewHolder.task);
taskList.onTaskListItemClicked(task.getId());
} else { } else {
toggle(viewHolder); toggle(viewHolder);
} }

Loading…
Cancel
Save