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.TaskService;
import com.todoroo.astrid.service.abtesting.ABTestEventReportingService; import com.todoroo.astrid.service.abtesting.ABTestEventReportingService;
import com.todoroo.astrid.subtasks.SubtasksHelper; import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.subtasks.SubtasksUpdater;
import com.todoroo.astrid.sync.SyncV2Provider.SyncExceptionHandler; import com.todoroo.astrid.sync.SyncV2Provider.SyncExceptionHandler;
import com.todoroo.astrid.tags.TagService; import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.tags.reusable.FeaturedListFilterExposer; import com.todoroo.astrid.tags.reusable.FeaturedListFilterExposer;
@ -635,6 +634,14 @@ public final class ActFmSyncService {
return false; return false;
} }
public boolean cancelFilterOrderingPush(String filterId) {
if (pushOrderQueue.contains(filterId)) {
pushOrderQueue.remove(filterId);
return true;
}
return false;
}
private void pushTagOrdering(TagData tagData) { private void pushTagOrdering(TagData tagData) {
if (!checkForToken()) if (!checkForToken())
return; return;
@ -687,15 +694,10 @@ public final class ActFmSyncService {
} }
} }
public void fetchFilterOrders() { public void fetchFilterOrder(String localFilterId) {
if (!checkForToken()) if (!checkForToken())
return; return;
fetchFilterOrder(SubtasksUpdater.ACTIVE_TASKS_ORDER);
fetchFilterOrder(SubtasksUpdater.TODAY_TASKS_ORDER);
}
private void fetchFilterOrder(String localFilterId) {
String filterId = SubtasksHelper.serverFilterOrderId(localFilterId); String filterId = SubtasksHelper.serverFilterOrderId(localFilterId);
ArrayList<Object> params = new ArrayList<Object>(); ArrayList<Object> params = new ArrayList<Object>();
params.add("filter"); params.add(filterId); 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.MetadataService;
import com.todoroo.astrid.service.TagDataService; import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksUpdater;
import com.todoroo.astrid.sync.SyncResultCallback; import com.todoroo.astrid.sync.SyncResultCallback;
import com.todoroo.astrid.sync.SyncV2Provider; import com.todoroo.astrid.sync.SyncV2Provider;
import com.todoroo.astrid.tags.TagService; import com.todoroo.astrid.tags.TagService;
@ -315,12 +316,23 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
/** @return runnable to fetch changes to tags */ /** @return runnable to fetch changes to tags */
private void startTaskFetcher(final boolean manual, final SyncResultCallback callback, private void startTaskFetcher(final boolean manual, final SyncResultCallback callback,
final AtomicInteger finisher) { 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() { actFmSyncService.fetchActiveTasks(manual, handler, new Runnable() {
@Override @Override
public void run() { public void run() {
pushQueuedTasks(callback, finisher); 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); callback.incrementProgress(30);
if(finisher.decrementAndGet() == 0) { if(finisher.decrementAndGet() == 0) {

Loading…
Cancel
Save