Wire up user activity messages to the sync thread

pull/14/head
Sam Bosley 12 years ago
parent e9f8d1f4f8
commit 719380253a

@ -81,7 +81,8 @@ public class ActFmSyncThread {
public static enum ModelType {
TYPE_TASK,
TYPE_TAG
TYPE_TAG,
TYPE_ACTIVITY
}
private static volatile ActFmSyncThread instance;
@ -90,14 +91,14 @@ public class ActFmSyncThread {
if (instance == null) {
synchronized(ActFmSyncThread.class) {
if (instance == null) {
initializeSyncComponents(PluginServices.getTaskDao(), PluginServices.getTagDataDao());
initializeSyncComponents(PluginServices.getTaskDao(), PluginServices.getTagDataDao(), PluginServices.getUserActivityDao());
}
}
}
return instance;
}
public static ActFmSyncThread initializeSyncComponents(TaskDao taskDao, TagDataDao tagDataDao) {
public static ActFmSyncThread initializeSyncComponents(TaskDao taskDao, TagDataDao tagDataDao, UserActivityDao userActivityDao) {
if (instance == null) {
synchronized(ActFmSyncThread.class) {
if (instance == null) {
@ -108,6 +109,7 @@ public class ActFmSyncThread {
taskDao.addListener(new SyncDatabaseListener<Task>(instance, ModelType.TYPE_TASK));
tagDataDao.addListener(new SyncDatabaseListener<TagData>(instance, ModelType.TYPE_TAG));
userActivityDao.addListener(new SyncDatabaseListener<UserActivity>(instance, ModelType.TYPE_ACTIVITY));
instance.startSyncThread();
}
@ -172,6 +174,7 @@ public class ActFmSyncThread {
Flags.checkAndClear(Flags.BG_SYNC);
messageBatch.add(BriefMe.instantiateBriefMeForClass(Task.class, NameMaps.PUSHED_AT_TASKS));
messageBatch.add(BriefMe.instantiateBriefMeForClass(TagData.class, NameMaps.PUSHED_AT_TAGS));
messageBatch.add(BriefMe.instantiateBriefMeForClass(UserActivity.class, NameMaps.PUSHED_AT_ACTIVITY));
}
if (!messageBatch.isEmpty() && checkForToken()) {

@ -27,6 +27,8 @@ import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.TagOutstanding;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskOutstanding;
import com.todoroo.astrid.data.UserActivity;
import com.todoroo.astrid.data.UserActivityOutstanding;
@SuppressWarnings("nls")
public class ChangesHappened<TYPE extends RemoteModel, OE extends OutstandingEntry<TYPE>> extends ClientToServerMessage<TYPE> {
@ -47,6 +49,9 @@ public class ChangesHappened<TYPE extends RemoteModel, OE extends OutstandingEnt
case TYPE_TAG:
return new ChangesHappened<TagData, TagOutstanding>(id, TagData.class,
PluginServices.getTagDataDao(), PluginServices.getTagOutstandingDao());
case TYPE_ACTIVITY:
return new ChangesHappened<UserActivity, UserActivityOutstanding>(id, UserActivity.class,
PluginServices.getUserActivityDao(), PluginServices.getUserActivityOutstandingDao());
default:
return null;
}

@ -52,6 +52,7 @@ import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.dao.UserActivityDao;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task;
@ -102,6 +103,8 @@ public class StartupService {
@Autowired TagDataDao tagDataDao;
@Autowired UserActivityDao userActivityDao;
@Autowired MetadataService metadataService;
@Autowired Database database;
@ -215,7 +218,7 @@ public class StartupService {
abTestInvoker.reportAcquisition();
initializeDatabaseListeners();
ActFmSyncThread.initializeSyncComponents(taskDao, tagDataDao);
ActFmSyncThread.initializeSyncComponents(taskDao, tagDataDao, userActivityDao);
// perform startup activities in a background thread
new Thread(new Runnable() {

Loading…
Cancel
Save