When filtering list by assigned, order and indent should be ignored

pull/14/head
Sam Bosley 13 years ago
parent 182e892ec1
commit aa29b74554

@ -5,6 +5,8 @@
*/
package com.todoroo.astrid.actfm;
import java.util.concurrent.atomic.AtomicBoolean;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@ -99,7 +101,9 @@ public class TagViewFragment extends TaskListFragment {
private boolean dataLoaded = false;
private long currentId;
private long currentId = Task.USER_ID_IGNORE;
protected AtomicBoolean isBeingFiltered = new AtomicBoolean(false);
private Filter originalFilter;
@ -428,6 +432,7 @@ public class TagViewFragment extends TaskListFragment {
else
filterByAssigned.setText(getString(R.string.actfm_TVA_filtered_by_assign, displayName));
}
isBeingFiltered.set(true);
setUpTaskList();
}
}
@ -443,6 +448,7 @@ public class TagViewFragment extends TaskListFragment {
private void resetAssignedFilter() {
currentId = Task.USER_ID_IGNORE;
isBeingFiltered.set(false);
filter = originalFilter;
View filterAssigned = getView().findViewById(R.id.filter_assigned);
if (filterAssigned != null)

@ -21,7 +21,7 @@ public class SubtasksTagListFragment extends TagViewFragment {
public SubtasksTagListFragment() {
super();
helper = new AstridOrderedListFragmentHelper<TagData>(this, new SubtasksTagUpdater());
helper = new AstridOrderedListFragmentHelper<TagData>(this, new SubtasksTagUpdater(isBeingFiltered));
}
@Override

@ -1,13 +1,21 @@
package com.todoroo.astrid.subtasks;
import java.util.concurrent.atomic.AtomicBoolean;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.data.TagData;
public class SubtasksTagUpdater extends SubtasksUpdater<TagData> {
private final AtomicBoolean isBeingFiltered;
public SubtasksTagUpdater(AtomicBoolean isBeingFiltered) {
this.isBeingFiltered = isBeingFiltered;
}
@Override
protected String getSerializedTree(TagData list, Filter filter) {
if (list == null)
if (list == null || isBeingFiltered.get())
return "[]"; //$NON-NLS-1$
String order = list.getValue(TagData.TAG_ORDERING);
if (order == null || "null".equals(order)) //$NON-NLS-1$
@ -18,10 +26,19 @@ public class SubtasksTagUpdater extends SubtasksUpdater<TagData> {
@Override
protected void writeSerialization(TagData list, String serialized, boolean shouldQueueSync) {
list.setValue(TagData.TAG_ORDERING, serialized);
tagDataService.save(list);
if (shouldQueueSync)
actFmSyncService.pushTagOrderingOnSave(list.getId());
if (!isBeingFiltered.get()) {
list.setValue(TagData.TAG_ORDERING, serialized);
tagDataService.save(list);
if (shouldQueueSync)
actFmSyncService.pushTagOrderingOnSave(list.getId());
}
}
@Override
public int getIndentForTask(long targetTaskId) {
if (isBeingFiltered.get())
return 0;
return super.getIndentForTask(targetTaskId);
}
}

Loading…
Cancel
Save