diff --git a/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksIndentActionTest.java b/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksIndentActionTest.java index 18f0ce468..925dceea0 100644 --- a/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksIndentActionTest.java +++ b/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksIndentActionTest.java @@ -27,6 +27,7 @@ public class GtasksIndentActionTest extends DatabaseTestCase { @Inject GtasksTaskListUpdater gtasksTaskListUpdater; @Inject MetadataService metadataService; @Inject TaskService taskService; + @Inject GtasksMetadata gtasksMetadata; private Task task; private StoreObject storeList; @@ -155,7 +156,7 @@ public class GtasksIndentActionTest extends DatabaseTestCase { private Task taskWithMetadata(long order, int indentation) { Task newTask = new Task(); taskService.save(newTask); - Metadata metadata = GtasksMetadata.createEmptyMetadata(newTask.getId()); + Metadata metadata = gtasksMetadata.createEmptyMetadata(newTask.getId()); metadata.setValue(GtasksMetadata.INDENT, indentation); metadata.setValue(GtasksMetadata.ORDER, order); metadata.setValue(GtasksMetadata.LIST_ID, "list"); diff --git a/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksMetadataServiceTest.java b/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksMetadataServiceTest.java index 26b180833..c83ed7100 100644 --- a/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksMetadataServiceTest.java +++ b/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksMetadataServiceTest.java @@ -49,6 +49,7 @@ public class GtasksMetadataServiceTest extends DatabaseTestCase { @Inject GtasksMetadataService gtasksMetadataService; @Inject MetadataService metadataService; @Inject TaskService taskService; + @Inject GtasksMetadata gtasksMetadata; private Task task; private Metadata metadata; @@ -171,7 +172,7 @@ public class GtasksMetadataServiceTest extends DatabaseTestCase { Task task = new Task(); task.setTitle("cats"); taskService.save(task); - Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId()); + Metadata metadata = gtasksMetadata.createEmptyMetadata(task.getId()); if (id != null) metadata.setValue(GtasksMetadata.ID, id); metadata.setTask(task.getId()); diff --git a/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdaterTest.java b/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdaterTest.java index 7778a3e6e..045e1576b 100644 --- a/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdaterTest.java +++ b/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdaterTest.java @@ -27,6 +27,7 @@ public class GtasksTaskListUpdaterTest extends DatabaseTestCase { @Inject GtasksMetadataService gtasksMetadataService; @Inject MetadataService metadataService; @Inject TaskService taskService; + @Inject GtasksMetadata gtasksMetadata; public void testBasicParentComputation() { Task[] tasks = givenTasksABCDE(); @@ -169,7 +170,7 @@ public class GtasksTaskListUpdaterTest extends DatabaseTestCase { Task task = new Task(); task.setTitle(title); taskService.save(task); - Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId()); + Metadata metadata = gtasksMetadata.createEmptyMetadata(task.getId()); metadata.setValue(GtasksMetadata.LIST_ID, "1"); if(order != GtasksMetadata.VALUE_UNSET) metadata.setValue(GtasksMetadata.ORDER, order); diff --git a/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksTaskMovingTest.java b/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksTaskMovingTest.java index 282b1104b..806dc8f51 100644 --- a/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksTaskMovingTest.java +++ b/astrid/src/androidTest/java/com/todoroo/astrid/gtasks/GtasksTaskMovingTest.java @@ -27,6 +27,7 @@ public class GtasksTaskMovingTest extends DatabaseTestCase { @Inject GtasksTaskListUpdater gtasksTaskListUpdater; @Inject MetadataService metadataService; @Inject TaskService taskService; + @Inject GtasksMetadata gtasksMetadata; private Task A, B, C, D, E, F; private StoreObject list; @@ -278,7 +279,7 @@ public class GtasksTaskMovingTest extends DatabaseTestCase { Task task = new Task(); task.setTitle(title); taskService.save(task); - Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId()); + Metadata metadata = gtasksMetadata.createEmptyMetadata(task.getId()); metadata.setValue(GtasksMetadata.LIST_ID, "1"); if(order != GtasksMetadata.VALUE_UNSET) metadata.setValue(GtasksMetadata.ORDER, order); diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksCustomFilterCriteriaExposer.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksCustomFilterCriteriaExposer.java index e203212ab..b089ac4b0 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksCustomFilterCriteriaExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksCustomFilterCriteriaExposer.java @@ -36,6 +36,7 @@ public class GtasksCustomFilterCriteriaExposer extends InjectingBroadcastReceive @Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksListService gtasksListService; + @Inject GtasksMetadata gtasksMetadata; @Override public void onReceive(Context context, Intent intent) { @@ -61,7 +62,7 @@ public class GtasksCustomFilterCriteriaExposer extends InjectingBroadcastReceive } ContentValues values = new ContentValues(); - values.putAll(GtasksMetadata.createEmptyMetadata(AbstractModel.NO_ID).getMergedValues()); + values.putAll(gtasksMetadata.createEmptyMetadata(AbstractModel.NO_ID).getMergedValues()); values.remove(Metadata.TASK.name); values.put(GtasksMetadata.LIST_ID.name, "?"); diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java index 16efc473e..353a5ff27 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java @@ -51,13 +51,14 @@ public class GtasksFilterExposer extends InjectingBroadcastReceiver implements A @Inject GtasksListService gtasksListService; @Inject GtasksPreferenceService gtasksPreferenceService; @Inject @ForApplication Context context; + @Inject GtasksMetadata gtasksMetadata; private StoreObject[] lists; - public static Filter filterFromList(Context context, StoreObject list) { + public static Filter filterFromList(GtasksMetadata gtasksMetadata, Context context, StoreObject list) { String listName = list.getValue(GtasksList.NAME); ContentValues values = new ContentValues(); - values.putAll(GtasksMetadata.createEmptyMetadata(AbstractModel.NO_ID).getMergedValues()); + values.putAll(gtasksMetadata.createEmptyMetadata(AbstractModel.NO_ID).getMergedValues()); values.remove(Metadata.TASK.name); values.put(GtasksMetadata.LIST_ID.name, list.getValue(GtasksList.REMOTE_ID)); values.put(GtasksMetadata.ORDER.name, PermaSql.VALUE_NOW); @@ -105,7 +106,7 @@ public class GtasksFilterExposer extends InjectingBroadcastReceiver implements A Filter[] listFilters = new Filter[lists.length]; for(int i = 0; i < lists.length; i++) { - listFilters[i] = filterFromList(context, lists[i]); + listFilters[i] = filterFromList(gtasksMetadata, context, lists[i]); } FilterCategoryWithNewButton listsCategory = new FilterCategoryWithNewButton(context.getString(R.string.gtasks_FEx_header), diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java index ef6b91fa7..515601890 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java @@ -31,6 +31,7 @@ public class GtasksListAdder extends InjectingActivity { @Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksListService gtasksListService; @Inject GtasksTokenValidator gtasksTokenValidator; + @Inject GtasksMetadata gtasksMetadata; @Override protected void onCreate(Bundle savedInstanceState) { @@ -65,7 +66,7 @@ public class GtasksListAdder extends InjectingActivity { } StoreObject newList = gtasksListService.addNewList(service.createGtaskList(title)); if (newList != null) { - FilterWithCustomIntent listFilter = (FilterWithCustomIntent) GtasksFilterExposer.filterFromList(activity, newList); + FilterWithCustomIntent listFilter = (FilterWithCustomIntent) GtasksFilterExposer.filterFromList(gtasksMetadata, activity, newList); listFilter.start(activity, 0); } diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksMetadata.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksMetadata.java index 4a275b533..650139efa 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksMetadata.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksMetadata.java @@ -10,14 +10,17 @@ import com.todoroo.andlib.data.Property.IntegerProperty; import com.todoroo.andlib.data.Property.LongProperty; import com.todoroo.andlib.data.Property.StringProperty; import com.todoroo.andlib.utility.DateUtilities; -import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.data.Metadata; +import javax.inject.Inject; +import javax.inject.Singleton; + /** * Metadata entries for a GTasks Task * @author Tim Su * */ +@Singleton public class GtasksMetadata { static final int VALUE_UNSET = -1; @@ -47,17 +50,23 @@ public class GtasksMetadata { public static final LongProperty LAST_SYNC = new LongProperty(Metadata.TABLE, Metadata.VALUE7.name); + private final GtasksPreferenceService gtasksPreferenceService; + + @Inject + public GtasksMetadata(GtasksPreferenceService gtasksPreferenceService) { + this.gtasksPreferenceService = gtasksPreferenceService; + } /** * Creates default GTasks metadata item * @param taskId if > 0, will set metadata task field */ - public static Metadata createEmptyMetadata(long taskId) { + public Metadata createEmptyMetadata(long taskId) { Metadata metadata = new Metadata(); metadata.setKey(GtasksMetadata.METADATA_KEY); metadata.setValue(ID, ""); //$NON-NLS-1$ - String defaultList = Preferences.getStringValue(GtasksPreferenceService.PREF_DEFAULT_LIST); + String defaultList = gtasksPreferenceService.getDefaultList(); if(defaultList == null) { defaultList = "@default"; //$NON-NLS-1$ } @@ -71,5 +80,4 @@ public class GtasksMetadata { } return metadata; } - } diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferenceService.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferenceService.java index ba6185169..74ca19adf 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferenceService.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksPreferenceService.java @@ -58,7 +58,7 @@ public class GtasksPreferenceService extends SyncProviderUtilities { } /** GTasks user's default list id */ - public static final String PREF_DEFAULT_LIST = IDENTIFIER + "_defaultlist"; //$NON-NLS-1$ + private static final String PREF_DEFAULT_LIST = IDENTIFIER + "_defaultlist"; //$NON-NLS-1$ /** GTasks user name */ public static final String PREF_USER_NAME = IDENTIFIER + "_user"; //$NON-NLS-1$ diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java index 7526cb37d..ce31c2ac7 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java @@ -48,15 +48,19 @@ public class GtasksTaskListUpdater extends OrderedMetadataListUpdater operationQueue = new LinkedBlockingQueue<>(); @@ -248,7 +251,7 @@ public class GtasksSyncService { if (gtasksMetadata == null || !gtasksMetadata.containsNonNullValue(GtasksMetadata.ID) || TextUtils.isEmpty(gtasksMetadata.getValue(GtasksMetadata.ID))) { //Create case if (gtasksMetadata == null) { - gtasksMetadata = GtasksMetadata.createEmptyMetadata(task.getId()); + gtasksMetadata = gtasksMetadataFactory.createEmptyMetadata(task.getId()); } if (gtasksMetadata.containsNonNullValue(GtasksMetadata.LIST_ID)) { listId = gtasksMetadata.getValue(GtasksMetadata.LIST_ID); diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java index 6ae105b91..56c32cbab 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java @@ -67,12 +67,13 @@ public class GtasksSyncV2Provider extends SyncV2Provider { private final Context context; private final Preferences preferences; private final GtasksTokenValidator gtasksTokenValidator; + private final GtasksMetadata gtasksMetadataFactory; @Inject public GtasksSyncV2Provider(TaskService taskService, MetadataService metadataService, StoreObjectDao storeObjectDao, GtasksPreferenceService gtasksPreferenceService, GtasksSyncService gtasksSyncService, GtasksListService gtasksListService, GtasksMetadataService gtasksMetadataService, GtasksTaskListUpdater gtasksTaskListUpdater, @ForApplication Context context, Preferences preferences, - GtasksTokenValidator gtasksTokenValidator) { + GtasksTokenValidator gtasksTokenValidator, GtasksMetadata gtasksMetadata) { this.taskService = taskService; this.metadataService = metadataService; this.storeObjectDao = storeObjectDao; @@ -84,6 +85,7 @@ public class GtasksSyncV2Provider extends SyncV2Provider { this.context = context; this.preferences = preferences; this.gtasksTokenValidator = gtasksTokenValidator; + this.gtasksMetadataFactory = gtasksMetadata; } @Override @@ -318,7 +320,7 @@ public class GtasksSyncV2Provider extends SyncV2Provider { task.setDueDate(createdDate); task.setNotes(remoteTask.getNotes()); - Metadata gtasksMetadata = GtasksMetadata.createEmptyMetadata(AbstractModel.NO_ID); + Metadata gtasksMetadata = gtasksMetadataFactory.createEmptyMetadata(AbstractModel.NO_ID); gtasksMetadata.setValue(GtasksMetadata.ID, remoteTask.getId()); gtasksMetadata.setValue(GtasksMetadata.LIST_ID, listId); diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksTaskContainer.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksTaskContainer.java index cedce4d34..b83cc32e6 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksTaskContainer.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksTaskContainer.java @@ -7,7 +7,6 @@ package com.todoroo.astrid.gtasks.sync; import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Task; -import com.todoroo.astrid.gtasks.GtasksMetadata; import com.todoroo.astrid.sync.SyncContainer; import java.util.ArrayList; @@ -20,9 +19,6 @@ public class GtasksTaskContainer extends SyncContainer { this.task = task; this.metadata = metadata; this.gtaskMetadata = gtaskMetadata; - if(this.gtaskMetadata == null) { - this.gtaskMetadata = GtasksMetadata.createEmptyMetadata(task.getId()); - } } @Override