From f770046989d5b92ee604c3a9fa97d8dde6d1d6fe Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 28 Feb 2013 16:31:58 -0800 Subject: [PATCH] Set a 'record outstanding entry' flag based on user logged in state so we don't have to record outstanding entries when a user isn't logged in --- .../actfm/sync/ActFmPreferenceService.java | 10 +++++++++ .../todoroo/astrid/core/PluginServices.java | 8 +++++++ .../com/todoroo/astrid/dao/MetadataDao.java | 3 ++- .../todoroo/astrid/dao/RemoteModelDao.java | 22 ++++++++++++++++++- .../todoroo/astrid/dao/TagMetadataDao.java | 3 ++- 5 files changed, 43 insertions(+), 3 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java index 7d99b9509..c32104f63 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmPreferenceService.java @@ -13,6 +13,7 @@ import android.text.TextUtils; import com.timsu.astrid.R; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.billing.BillingConstants; +import com.todoroo.astrid.dao.RemoteModelDao; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.sync.SyncProviderUtilities; @@ -54,6 +55,15 @@ public class ActFmPreferenceService extends SyncProviderUtilities { // --- user management + @Override + public void setToken(String setting) { + super.setToken(setting); + if (TextUtils.isEmpty(setting)) + RemoteModelDao.outstandingEntryFlag = -1; + else + RemoteModelDao.outstandingEntryFlag = 1; + } + /** * @return get user id */ diff --git a/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java b/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java index 2a88a09f1..075786c6f 100644 --- a/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java +++ b/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java @@ -10,6 +10,7 @@ import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.sql.Query; +import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.HistoryDao; import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; @@ -101,6 +102,9 @@ public final class PluginServices { @Autowired TaskListMetadataOutstandingDao taskListMetadataOutstandingDao; + @Autowired + ActFmPreferenceService actFmPreferenceService; + private static volatile PluginServices instance; static { @@ -204,6 +208,10 @@ public final class PluginServices { return getInstance().taskListMetadataOutstandingDao; } + public static ActFmPreferenceService getActFmPreferenceService() { + return getInstance().actFmPreferenceService; + } + // -- helpers /** diff --git a/astrid/src/com/todoroo/astrid/dao/MetadataDao.java b/astrid/src/com/todoroo/astrid/dao/MetadataDao.java index 52339ce40..74059fb3c 100644 --- a/astrid/src/com/todoroo/astrid/dao/MetadataDao.java +++ b/astrid/src/com/todoroo/astrid/dao/MetadataDao.java @@ -83,7 +83,8 @@ public class MetadataDao extends DatabaseDao { ((cv.containsKey(Metadata.KEY.name) && TaskToTagMetadata.KEY.equals(item.getValue(Metadata.KEY))) || (cv.containsKey(Metadata.DELETION_DATE.name) && - item.getValue(Metadata.DELETION_DATE) > 0)); + item.getValue(Metadata.DELETION_DATE) > 0)) && + RemoteModelDao.getOutstandingEntryFlag(); } @Override diff --git a/astrid/src/com/todoroo/astrid/dao/RemoteModelDao.java b/astrid/src/com/todoroo/astrid/dao/RemoteModelDao.java index 1e2d61310..221fe15da 100644 --- a/astrid/src/com/todoroo/astrid/dao/RemoteModelDao.java +++ b/astrid/src/com/todoroo/astrid/dao/RemoteModelDao.java @@ -5,6 +5,7 @@ import com.todoroo.andlib.data.DatabaseDao; import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.sql.Query; +import com.todoroo.astrid.core.PluginServices; import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.helper.UUIDHelper; @@ -29,7 +30,26 @@ public class RemoteModelDao extends DatabaseDao 0; + } + + @Override + protected boolean shouldRecordOutstanding(RTYPE item) { + return super.shouldRecordOutstanding(item) && getOutstandingEntryFlag(); + } /** * Fetch a model object by UUID diff --git a/astrid/src/com/todoroo/astrid/dao/TagMetadataDao.java b/astrid/src/com/todoroo/astrid/dao/TagMetadataDao.java index 3d82297ec..50fdb3bac 100644 --- a/astrid/src/com/todoroo/astrid/dao/TagMetadataDao.java +++ b/astrid/src/com/todoroo/astrid/dao/TagMetadataDao.java @@ -77,7 +77,8 @@ public class TagMetadataDao extends DatabaseDao { ((cv.containsKey(TagMetadata.KEY.name) && TagMemberMetadata.KEY.equals(item.getValue(TagMetadata.KEY))) || (cv.containsKey(TagMetadata.DELETION_DATE.name) && - item.getValue(TagMetadata.DELETION_DATE) > 0)); + item.getValue(TagMetadata.DELETION_DATE) > 0)) && + RemoteModelDao.getOutstandingEntryFlag(); } @Override