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