Use a flag to indicate that sync migration is ongoing

pull/14/head
Sam Bosley 13 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.TaskOutstanding;
import com.todoroo.astrid.data.UserActivity; import com.todoroo.astrid.data.UserActivity;
import com.todoroo.astrid.data.UserActivityOutstanding; import com.todoroo.astrid.data.UserActivityOutstanding;
import com.todoroo.astrid.utility.Flags;
public class ActFmSyncThread { public class ActFmSyncThread {
@ -256,7 +257,7 @@ public class ActFmSyncThread {
} }
private boolean timeForBackgroundSync() { private boolean timeForBackgroundSync() {
return false; return !Flags.check(Flags.SYNC_MIGRATION_ONGOING);
} }
private void repopulateQueueFromOutstandingTables() { private void repopulateQueueFromOutstandingTables() {

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

@ -36,6 +36,12 @@ public class Flags {
*/ */
public static final int TLFP_NO_INTERCEPT_TOUCH = 1 << 7; 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) { public static boolean checkAndClear(int flag) {
boolean set = (state & flag) > 0; boolean set = (state & flag) > 0;
state &= ~flag; state &= ~flag;

Loading…
Cancel
Save