Use a flag to indicate that sync migration is ongoing

pull/14/head
Sam Bosley 12 years ago
parent a4db2d0085
commit 4247b89ed0

@ -41,6 +41,7 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskOutstanding;
import com.todoroo.astrid.data.UserActivity;
import com.todoroo.astrid.data.UserActivityOutstanding;
import com.todoroo.astrid.utility.Flags;
public class ActFmSyncThread {
@ -256,7 +257,7 @@ public class ActFmSyncThread {
}
private boolean timeForBackgroundSync() {
return false;
return !Flags.check(Flags.SYNC_MIGRATION_ONGOING);
}
private void repopulateQueueFromOutstandingTables() {

@ -36,6 +36,7 @@ import com.todoroo.astrid.helper.UUIDHelper;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.tags.TaskToTagMetadata;
import com.todoroo.astrid.utility.Flags;
@SuppressWarnings("nls")
public class AstridNewSyncMigrator {
@ -59,6 +60,7 @@ public class AstridNewSyncMigrator {
@SuppressWarnings("deprecation")
public void performMigration() {
Flags.set(Flags.SYNC_MIGRATION_ONGOING);
// --------------
// First ensure that a TagData object exists for each tag metadata
// --------------
@ -223,6 +225,7 @@ public class AstridNewSyncMigrator {
} catch (Exception e) {
Log.e(LOG_TAG, "Error validating task to tag metadata", e);
}
Flags.checkAndClear(Flags.SYNC_MIGRATION_ONGOING);
}
private interface UUIDAssertionExtras<TYPE extends RemoteModel> {

@ -36,6 +36,12 @@ public class Flags {
*/
public static final int TLFP_NO_INTERCEPT_TOUCH = 1 << 7;
/**
* If set, indicates that the new sync migration is ongoing and the sync thread should block until it is finished
* Only set once.
*/
public static final int SYNC_MIGRATION_ONGOING = 1 << 8;
public static boolean checkAndClear(int flag) {
boolean set = (state & flag) > 0;
state &= ~flag;

Loading…
Cancel
Save