Fixed several cases where logging out would not clear table pushed_at values

pull/14/head
Sam Bosley 13 years ago
parent 27ddeb6e23
commit b9a768a470

@ -70,6 +70,7 @@ import com.todoroo.astrid.actfm.sync.ActFmInvoker;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.actfm.sync.ActFmServiceException; import com.todoroo.astrid.actfm.sync.ActFmServiceException;
import com.todoroo.astrid.actfm.sync.ActFmSyncMonitor; import com.todoroo.astrid.actfm.sync.ActFmSyncMonitor;
import com.todoroo.astrid.actfm.sync.ActFmSyncThread;
import com.todoroo.astrid.actfm.sync.messages.ConstructOutstandingTableFromMasterTable; import com.todoroo.astrid.actfm.sync.messages.ConstructOutstandingTableFromMasterTable;
import com.todoroo.astrid.actfm.sync.messages.ConstructTaskOutstandingTableFromMasterTable; import com.todoroo.astrid.actfm.sync.messages.ConstructTaskOutstandingTableFromMasterTable;
import com.todoroo.astrid.actfm.sync.messages.NameMaps; import com.todoroo.astrid.actfm.sync.messages.NameMaps;
@ -650,6 +651,7 @@ public class ActFmLoginActivity extends FragmentActivity implements AuthListener
new DialogInterface.OnClickListener() { new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
ActFmSyncThread.clearTablePushedAtValues();
deleteDatabase(database.getName()); deleteDatabase(database.getName());
finishSignIn(result, token, true); finishSignIn(result, token, true);
} }
@ -708,7 +710,7 @@ public class ActFmLoginActivity extends FragmentActivity implements AuthListener
// Generate new uuids for all tasks/tags/user activity/task list metadata and update links // Generate new uuids for all tasks/tags/user activity/task list metadata and update links
generateNewUuids(); generateNewUuids();
clearTablePushedAtValues(); ActFmSyncThread.clearTablePushedAtValues();
constructOutstandingTables(); constructOutstandingTables();
} }
@ -816,13 +818,6 @@ public class ActFmLoginActivity extends FragmentActivity implements AuthListener
} }
private void clearTablePushedAtValues() {
String[] pushedAtPrefs = new String[] { NameMaps.PUSHED_AT_TASKS, NameMaps.PUSHED_AT_TAGS,
NameMaps.PUSHED_AT_ACTIVITY, NameMaps.PUSHED_AT_USERS, NameMaps.PUSHED_AT_TASK_LIST_METADATA };
for (String key : pushedAtPrefs)
Preferences.clear(key);
}
private <T extends RemoteModel> void mapUuids(RemoteModelDao<T> dao, HashMap<String, String> map) { private <T extends RemoteModel> void mapUuids(RemoteModelDao<T> dao, HashMap<String, String> map) {
TodorooCursor<T> items = dao.query(Query.select(RemoteModel.UUID_PROPERTY)); TodorooCursor<T> items = dao.query(Query.select(RemoteModel.UUID_PROPERTY));
try { try {

@ -195,6 +195,13 @@ public class ActFmSyncThread {
} }
}; };
public static void clearTablePushedAtValues() {
String[] pushedAtPrefs = new String[] { NameMaps.PUSHED_AT_TASKS, NameMaps.PUSHED_AT_TAGS,
NameMaps.PUSHED_AT_ACTIVITY, NameMaps.PUSHED_AT_USERS, NameMaps.PUSHED_AT_TASK_LIST_METADATA };
for (String key : pushedAtPrefs)
Preferences.clear(key);
}
public synchronized void enqueueMessage(ClientToServerMessage<?> message, Runnable callback) { public synchronized void enqueueMessage(ClientToServerMessage<?> message, Runnable callback) {
if (!RemoteModelDao.getOutstandingEntryFlag(RemoteModelDao.OUTSTANDING_ENTRY_FLAG_ENQUEUE_MESSAGES)) if (!RemoteModelDao.getOutstandingEntryFlag(RemoteModelDao.OUTSTANDING_ENTRY_FLAG_ENQUEUE_MESSAGES))
return; return;

@ -71,6 +71,7 @@ public class ActFmSyncV2Provider extends SyncV2Provider {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
Preferences.clear(ActFmPreferenceService.PREF_USER_ID); // As though no one has ever logged in Preferences.clear(ActFmPreferenceService.PREF_USER_ID); // As though no one has ever logged in
ActFmSyncThread.clearTablePushedAtValues();
activity.deleteDatabase(database.getName()); activity.deleteDatabase(database.getName());
RemoteModelDao.setOutstandingEntryFlags(RemoteModelDao.OUTSTANDING_FLAG_UNINITIALIZED); RemoteModelDao.setOutstandingEntryFlags(RemoteModelDao.OUTSTANDING_FLAG_UNINITIALIZED);
System.exit(0); System.exit(0);

Loading…
Cancel
Save