Only apply remote list fragment if changed

pull/898/head
Alex Baker 4 years ago
parent a3ffde6090
commit 685f5d9e43

@ -116,6 +116,7 @@ public class TaskEditControlSetFragmentManager {
TaskEditFragment taskEditFragment, Task task) {
Bundle arguments = new Bundle();
arguments.putParcelable(TaskEditControlFragment.EXTRA_TASK, task);
arguments.putBoolean(TaskEditControlFragment.EXTRA_IS_NEW, task.isNew());
List<TaskEditControlFragment> fragments = new ArrayList<>();
FragmentManager fragmentManager = taskEditFragment.getChildFragmentManager();

@ -14,6 +14,7 @@ import androidx.annotation.Nullable;
import butterknife.BindView;
import butterknife.OnClick;
import com.google.android.material.chip.Chip;
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
import com.todoroo.astrid.api.CaldavFilter;
import com.todoroo.astrid.api.Filter;
@ -164,14 +165,20 @@ public class RemoteListFragment extends TaskEditControlFragment {
@Override
public void apply(Task task) {
task.setParent(0);
task.setParentUuid(null);
taskMover.move(ImmutableList.of(task.getId()), selectedList);
if (isNew() || hasChanges()) {
task.setParent(0);
task.setParentUuid(null);
taskMover.move(ImmutableList.of(task.getId()), selectedList);
}
}
@Override
public boolean hasChanges(Task original) {
return selectedList == null ? originalList != null : !selectedList.equals(originalList);
return hasChanges();
}
private boolean hasChanges() {
return !Objects.equal(selectedList, originalList);
}
@Override

@ -16,8 +16,10 @@ import org.tasks.injection.InjectingFragment;
public abstract class TaskEditControlFragment extends InjectingFragment {
public static final String EXTRA_TASK = "extra_task";
public static final String EXTRA_IS_NEW = "extra_is_new";
protected Task task;
private boolean isNew;
@Nullable
@Override
@ -39,6 +41,7 @@ public abstract class TaskEditControlFragment extends InjectingFragment {
Bundle arguments = getArguments();
if (arguments != null) {
task = arguments.getParcelable(EXTRA_TASK);
isNew = arguments.getBoolean(EXTRA_IS_NEW);
}
}
@ -57,4 +60,8 @@ public abstract class TaskEditControlFragment extends InjectingFragment {
public boolean hasChanges(Task original) {
return false;
}
protected boolean isNew() {
return isNew;
}
}

Loading…
Cancel
Save