Minor fix to filter order sync

pull/14/head
Sam Bosley 13 years ago
parent 476743391b
commit 0a0d8d2047

@ -76,7 +76,6 @@ import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.abtesting.ABTestEventReportingService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.subtasks.SubtasksUpdater;
import com.todoroo.astrid.sync.SyncV2Provider.SyncExceptionHandler;
import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.tags.reusable.FeaturedListFilterExposer;
@ -635,6 +634,14 @@ public final class ActFmSyncService {
return false;
}
public boolean cancelFilterOrderingPush(String filterId) {
if (pushOrderQueue.contains(filterId)) {
pushOrderQueue.remove(filterId);
return true;
}
return false;
}
private void pushTagOrdering(TagData tagData) {
if (!checkForToken())
return;
@ -687,15 +694,10 @@ public final class ActFmSyncService {
}
}
public void fetchFilterOrders() {
public void fetchFilterOrder(String localFilterId) {
if (!checkForToken())
return;
fetchFilterOrder(SubtasksUpdater.ACTIVE_TASKS_ORDER);
fetchFilterOrder(SubtasksUpdater.TODAY_TASKS_ORDER);
}
private void fetchFilterOrder(String localFilterId) {
String filterId = SubtasksHelper.serverFilterOrderId(localFilterId);
ArrayList<Object> params = new ArrayList<Object>();
params.add("filter"); params.add(filterId);

@ -39,6 +39,7 @@ import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksUpdater;
import com.todoroo.astrid.sync.SyncResultCallback;
import com.todoroo.astrid.sync.SyncV2Provider;
import com.todoroo.astrid.tags.TagService;
@ -315,12 +316,23 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
/** @return runnable to fetch changes to tags */
private void startTaskFetcher(final boolean manual, final SyncResultCallback callback,
final AtomicInteger finisher) {
final boolean pushActiveTasksOrder = actFmSyncService.cancelFilterOrderingPush(SubtasksUpdater.ACTIVE_TASKS_ORDER);
final boolean pushTodayOrder = actFmSyncService.cancelFilterOrderingPush(SubtasksUpdater.TODAY_TASKS_ORDER);
actFmSyncService.fetchActiveTasks(manual, handler, new Runnable() {
@Override
public void run() {
pushQueuedTasks(callback, finisher);
actFmSyncService.fetchFilterOrders();
if (pushActiveTasksOrder)
actFmSyncService.pushFilterOrderingImmediately(SubtasksUpdater.ACTIVE_TASKS_ORDER);
else
actFmSyncService.fetchFilterOrder(SubtasksUpdater.ACTIVE_TASKS_ORDER);
if (pushTodayOrder)
actFmSyncService.pushFilterOrderingImmediately(SubtasksUpdater.TODAY_TASKS_ORDER);
else
actFmSyncService.fetchFilterOrder(SubtasksUpdater.TODAY_TASKS_ORDER);
callback.incrementProgress(30);
if(finisher.decrementAndGet() == 0) {

Loading…
Cancel
Save