Load by task instead of task id

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

@ -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<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
public void onPriorityChange(int priority) {
getTaskEditFragment().onPriorityChange(priority);

@ -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() {

@ -126,8 +126,7 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter<ViewHolder> 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);
}

Loading…
Cancel
Save