mirror of https://github.com/tasks/tasks
Move task adapter subclasses to separate files
parent
30943b9e64
commit
ed434a3e83
@ -0,0 +1,71 @@
|
||||
package com.todoroo.astrid.adapter;
|
||||
|
||||
import com.todoroo.astrid.api.Filter;
|
||||
import com.todoroo.astrid.data.Task;
|
||||
import com.todoroo.astrid.subtasks.SubtasksFilterUpdater;
|
||||
import org.tasks.data.TaskListMetadata;
|
||||
import timber.log.Timber;
|
||||
|
||||
public final class AstridTaskAdapter extends TaskAdapter {
|
||||
|
||||
private final TaskListMetadata list;
|
||||
private final Filter filter;
|
||||
private final SubtasksFilterUpdater updater;
|
||||
|
||||
public AstridTaskAdapter(TaskListMetadata list, Filter filter, SubtasksFilterUpdater updater) {
|
||||
this.list = list;
|
||||
this.filter = filter;
|
||||
this.updater = updater;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getIndent(Task task) {
|
||||
return updater.getIndentForTask(task.getUuid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canIndent(int position, Task task) {
|
||||
String parentUuid = getItemUuid(position - 1);
|
||||
int parentIndent = updater.getIndentForTask(parentUuid);
|
||||
return getIndent(task) <= parentIndent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isManuallySorted() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moved(int from, int to) {
|
||||
String targetTaskId = getItemUuid(from);
|
||||
if (!Task.isValidUuid(targetTaskId)) {
|
||||
return; // This can happen with gestures on empty parts of the list (e.g. extra space below
|
||||
// tasks)
|
||||
}
|
||||
|
||||
try {
|
||||
if (to >= getCount()) {
|
||||
updater.moveTo(list, filter, targetTaskId, "-1"); // $NON-NLS-1$
|
||||
} else {
|
||||
String destinationTaskId = getItemUuid(to);
|
||||
updater.moveTo(list, filter, targetTaskId, destinationTaskId);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Timber.e(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void indented(int which, int delta) {
|
||||
String targetTaskId = getItemUuid(which);
|
||||
if (!Task.isValidUuid(targetTaskId)) {
|
||||
return; // This can happen with gestures on empty parts of the list (e.g. extra space below
|
||||
// tasks)
|
||||
}
|
||||
try {
|
||||
updater.indent(list, filter, targetTaskId, delta);
|
||||
} catch (Exception e) {
|
||||
Timber.e(e);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,67 @@
|
||||
package com.todoroo.astrid.adapter;
|
||||
|
||||
import com.todoroo.astrid.data.Task;
|
||||
import com.todoroo.astrid.gtasks.GtasksTaskListUpdater;
|
||||
import org.tasks.data.GoogleTaskList;
|
||||
import timber.log.Timber;
|
||||
|
||||
public final class GoogleTaskAdapter extends TaskAdapter {
|
||||
|
||||
private final GoogleTaskList list;
|
||||
private final GtasksTaskListUpdater updater;
|
||||
|
||||
public GoogleTaskAdapter(GoogleTaskList list, GtasksTaskListUpdater updater) {
|
||||
this.list = list;
|
||||
this.updater = updater;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getIndent(Task task) {
|
||||
return task.getIndent();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canIndent(int position, Task task) {
|
||||
Task parent = getTask(position - 1);
|
||||
return parent != null && getIndent(task) == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isManuallySorted() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moved(int from, int to) {
|
||||
long targetTaskId = getTaskId(from);
|
||||
if (targetTaskId <= 0) {
|
||||
return; // This can happen with gestures on empty parts of the list (e.g. extra space below
|
||||
// tasks)
|
||||
}
|
||||
|
||||
try {
|
||||
if (to >= getCount()) {
|
||||
updater.moveTo(list, targetTaskId, -1);
|
||||
} else {
|
||||
long destinationTaskId = getTaskId(to);
|
||||
updater.moveTo(list, targetTaskId, destinationTaskId);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Timber.e(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void indented(int which, int delta) {
|
||||
long targetTaskId = getTaskId(which);
|
||||
if (targetTaskId <= 0) {
|
||||
return; // This can happen with gestures on empty parts of the list (e.g. extra space below
|
||||
// tasks)
|
||||
}
|
||||
try {
|
||||
updater.indent(list, targetTaskId, delta);
|
||||
} catch (Exception e) {
|
||||
Timber.e(e);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue