Inject GtasksMetadata

pull/189/head
Alex Baker 12 years ago
parent 37b7ee456a
commit 9d178dd3a0

@ -27,6 +27,7 @@ public class GtasksIndentActionTest extends DatabaseTestCase {
@Inject GtasksTaskListUpdater gtasksTaskListUpdater; @Inject GtasksTaskListUpdater gtasksTaskListUpdater;
@Inject MetadataService metadataService; @Inject MetadataService metadataService;
@Inject TaskService taskService; @Inject TaskService taskService;
@Inject GtasksMetadata gtasksMetadata;
private Task task; private Task task;
private StoreObject storeList; private StoreObject storeList;
@ -155,7 +156,7 @@ public class GtasksIndentActionTest extends DatabaseTestCase {
private Task taskWithMetadata(long order, int indentation) { private Task taskWithMetadata(long order, int indentation) {
Task newTask = new Task(); Task newTask = new Task();
taskService.save(newTask); taskService.save(newTask);
Metadata metadata = GtasksMetadata.createEmptyMetadata(newTask.getId()); Metadata metadata = gtasksMetadata.createEmptyMetadata(newTask.getId());
metadata.setValue(GtasksMetadata.INDENT, indentation); metadata.setValue(GtasksMetadata.INDENT, indentation);
metadata.setValue(GtasksMetadata.ORDER, order); metadata.setValue(GtasksMetadata.ORDER, order);
metadata.setValue(GtasksMetadata.LIST_ID, "list"); metadata.setValue(GtasksMetadata.LIST_ID, "list");

@ -49,6 +49,7 @@ public class GtasksMetadataServiceTest extends DatabaseTestCase {
@Inject GtasksMetadataService gtasksMetadataService; @Inject GtasksMetadataService gtasksMetadataService;
@Inject MetadataService metadataService; @Inject MetadataService metadataService;
@Inject TaskService taskService; @Inject TaskService taskService;
@Inject GtasksMetadata gtasksMetadata;
private Task task; private Task task;
private Metadata metadata; private Metadata metadata;
@ -171,7 +172,7 @@ public class GtasksMetadataServiceTest extends DatabaseTestCase {
Task task = new Task(); Task task = new Task();
task.setTitle("cats"); task.setTitle("cats");
taskService.save(task); taskService.save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId()); Metadata metadata = gtasksMetadata.createEmptyMetadata(task.getId());
if (id != null) if (id != null)
metadata.setValue(GtasksMetadata.ID, id); metadata.setValue(GtasksMetadata.ID, id);
metadata.setTask(task.getId()); metadata.setTask(task.getId());

@ -27,6 +27,7 @@ public class GtasksTaskListUpdaterTest extends DatabaseTestCase {
@Inject GtasksMetadataService gtasksMetadataService; @Inject GtasksMetadataService gtasksMetadataService;
@Inject MetadataService metadataService; @Inject MetadataService metadataService;
@Inject TaskService taskService; @Inject TaskService taskService;
@Inject GtasksMetadata gtasksMetadata;
public void testBasicParentComputation() { public void testBasicParentComputation() {
Task[] tasks = givenTasksABCDE(); Task[] tasks = givenTasksABCDE();
@ -169,7 +170,7 @@ public class GtasksTaskListUpdaterTest extends DatabaseTestCase {
Task task = new Task(); Task task = new Task();
task.setTitle(title); task.setTitle(title);
taskService.save(task); taskService.save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId()); Metadata metadata = gtasksMetadata.createEmptyMetadata(task.getId());
metadata.setValue(GtasksMetadata.LIST_ID, "1"); metadata.setValue(GtasksMetadata.LIST_ID, "1");
if(order != GtasksMetadata.VALUE_UNSET) if(order != GtasksMetadata.VALUE_UNSET)
metadata.setValue(GtasksMetadata.ORDER, order); metadata.setValue(GtasksMetadata.ORDER, order);

@ -27,6 +27,7 @@ public class GtasksTaskMovingTest extends DatabaseTestCase {
@Inject GtasksTaskListUpdater gtasksTaskListUpdater; @Inject GtasksTaskListUpdater gtasksTaskListUpdater;
@Inject MetadataService metadataService; @Inject MetadataService metadataService;
@Inject TaskService taskService; @Inject TaskService taskService;
@Inject GtasksMetadata gtasksMetadata;
private Task A, B, C, D, E, F; private Task A, B, C, D, E, F;
private StoreObject list; private StoreObject list;
@ -278,7 +279,7 @@ public class GtasksTaskMovingTest extends DatabaseTestCase {
Task task = new Task(); Task task = new Task();
task.setTitle(title); task.setTitle(title);
taskService.save(task); taskService.save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId()); Metadata metadata = gtasksMetadata.createEmptyMetadata(task.getId());
metadata.setValue(GtasksMetadata.LIST_ID, "1"); metadata.setValue(GtasksMetadata.LIST_ID, "1");
if(order != GtasksMetadata.VALUE_UNSET) if(order != GtasksMetadata.VALUE_UNSET)
metadata.setValue(GtasksMetadata.ORDER, order); metadata.setValue(GtasksMetadata.ORDER, order);

@ -36,6 +36,7 @@ public class GtasksCustomFilterCriteriaExposer extends InjectingBroadcastReceive
@Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksPreferenceService gtasksPreferenceService;
@Inject GtasksListService gtasksListService; @Inject GtasksListService gtasksListService;
@Inject GtasksMetadata gtasksMetadata;
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
@ -61,7 +62,7 @@ public class GtasksCustomFilterCriteriaExposer extends InjectingBroadcastReceive
} }
ContentValues values = new ContentValues(); 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.remove(Metadata.TASK.name);
values.put(GtasksMetadata.LIST_ID.name, "?"); values.put(GtasksMetadata.LIST_ID.name, "?");

@ -51,13 +51,14 @@ public class GtasksFilterExposer extends InjectingBroadcastReceiver implements A
@Inject GtasksListService gtasksListService; @Inject GtasksListService gtasksListService;
@Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksPreferenceService gtasksPreferenceService;
@Inject @ForApplication Context context; @Inject @ForApplication Context context;
@Inject GtasksMetadata gtasksMetadata;
private StoreObject[] lists; 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); String listName = list.getValue(GtasksList.NAME);
ContentValues values = new ContentValues(); 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.remove(Metadata.TASK.name);
values.put(GtasksMetadata.LIST_ID.name, list.getValue(GtasksList.REMOTE_ID)); values.put(GtasksMetadata.LIST_ID.name, list.getValue(GtasksList.REMOTE_ID));
values.put(GtasksMetadata.ORDER.name, PermaSql.VALUE_NOW); 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]; Filter[] listFilters = new Filter[lists.length];
for(int i = 0; i < lists.length; i++) { 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), FilterCategoryWithNewButton listsCategory = new FilterCategoryWithNewButton(context.getString(R.string.gtasks_FEx_header),

@ -31,6 +31,7 @@ public class GtasksListAdder extends InjectingActivity {
@Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksPreferenceService gtasksPreferenceService;
@Inject GtasksListService gtasksListService; @Inject GtasksListService gtasksListService;
@Inject GtasksTokenValidator gtasksTokenValidator; @Inject GtasksTokenValidator gtasksTokenValidator;
@Inject GtasksMetadata gtasksMetadata;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -65,7 +66,7 @@ public class GtasksListAdder extends InjectingActivity {
} }
StoreObject newList = gtasksListService.addNewList(service.createGtaskList(title)); StoreObject newList = gtasksListService.addNewList(service.createGtaskList(title));
if (newList != null) { if (newList != null) {
FilterWithCustomIntent listFilter = (FilterWithCustomIntent) GtasksFilterExposer.filterFromList(activity, newList); FilterWithCustomIntent listFilter = (FilterWithCustomIntent) GtasksFilterExposer.filterFromList(gtasksMetadata, activity, newList);
listFilter.start(activity, 0); listFilter.start(activity, 0);
} }

@ -10,14 +10,17 @@ import com.todoroo.andlib.data.Property.IntegerProperty;
import com.todoroo.andlib.data.Property.LongProperty; import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.StringProperty; import com.todoroo.andlib.data.Property.StringProperty;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import javax.inject.Inject;
import javax.inject.Singleton;
/** /**
* Metadata entries for a GTasks Task * Metadata entries for a GTasks Task
* @author Tim Su <tim@todoroo.com> * @author Tim Su <tim@todoroo.com>
* *
*/ */
@Singleton
public class GtasksMetadata { public class GtasksMetadata {
static final int VALUE_UNSET = -1; static final int VALUE_UNSET = -1;
@ -47,17 +50,23 @@ public class GtasksMetadata {
public static final LongProperty LAST_SYNC = new LongProperty(Metadata.TABLE, public static final LongProperty LAST_SYNC = new LongProperty(Metadata.TABLE,
Metadata.VALUE7.name); Metadata.VALUE7.name);
private final GtasksPreferenceService gtasksPreferenceService;
@Inject
public GtasksMetadata(GtasksPreferenceService gtasksPreferenceService) {
this.gtasksPreferenceService = gtasksPreferenceService;
}
/** /**
* Creates default GTasks metadata item * Creates default GTasks metadata item
* @param taskId if > 0, will set metadata task field * @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 metadata = new Metadata();
metadata.setKey(GtasksMetadata.METADATA_KEY); metadata.setKey(GtasksMetadata.METADATA_KEY);
metadata.setValue(ID, ""); //$NON-NLS-1$ metadata.setValue(ID, ""); //$NON-NLS-1$
String defaultList = Preferences.getStringValue(GtasksPreferenceService.PREF_DEFAULT_LIST); String defaultList = gtasksPreferenceService.getDefaultList();
if(defaultList == null) { if(defaultList == null) {
defaultList = "@default"; //$NON-NLS-1$ defaultList = "@default"; //$NON-NLS-1$
} }
@ -71,5 +80,4 @@ public class GtasksMetadata {
} }
return metadata; return metadata;
} }
} }

@ -58,7 +58,7 @@ public class GtasksPreferenceService extends SyncProviderUtilities {
} }
/** GTasks user's default list id */ /** 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 */ /** GTasks user name */
public static final String PREF_USER_NAME = IDENTIFIER + "_user"; //$NON-NLS-1$ public static final String PREF_USER_NAME = IDENTIFIER + "_user"; //$NON-NLS-1$

@ -48,15 +48,19 @@ public class GtasksTaskListUpdater extends OrderedMetadataListUpdater<StoreObjec
private final GtasksSyncService gtasksSyncService; private final GtasksSyncService gtasksSyncService;
private final MetadataDao metadataDao; private final MetadataDao metadataDao;
private final MetadataService metadataService; private final MetadataService metadataService;
private final GtasksMetadata gtasksMetadata;
@Inject @Inject
public GtasksTaskListUpdater(GtasksListService gtasksListService, GtasksMetadataService gtasksMetadataService, GtasksSyncService gtasksSyncService, MetadataDao metadataDao, MetadataService metadataService) { public GtasksTaskListUpdater(GtasksListService gtasksListService, GtasksMetadataService gtasksMetadataService,
GtasksSyncService gtasksSyncService, MetadataDao metadataDao, MetadataService metadataService,
GtasksMetadata gtasksMetadata) {
super(metadataService); super(metadataService);
this.gtasksListService = gtasksListService; this.gtasksListService = gtasksListService;
this.gtasksMetadataService = gtasksMetadataService; this.gtasksMetadataService = gtasksMetadataService;
this.gtasksSyncService = gtasksSyncService; this.gtasksSyncService = gtasksSyncService;
this.metadataDao = metadataDao; this.metadataDao = metadataDao;
this.metadataService = metadataService; this.metadataService = metadataService;
this.gtasksMetadata = gtasksMetadata;
} }
// --- overrides // --- overrides
@ -82,7 +86,7 @@ public class GtasksTaskListUpdater extends OrderedMetadataListUpdater<StoreObjec
} }
@Override @Override
protected Metadata createEmptyMetadata(StoreObject list, long taskId) { protected Metadata createEmptyMetadata(StoreObject list, long taskId) {
Metadata metadata = GtasksMetadata.createEmptyMetadata(taskId); Metadata metadata = gtasksMetadata.createEmptyMetadata(taskId);
metadata.setValue(GtasksMetadata.LIST_ID, list.getValue(GtasksList.REMOTE_ID)); metadata.setValue(GtasksMetadata.LIST_ID, list.getValue(GtasksList.REMOTE_ID));
return metadata; return metadata;
} }

@ -47,17 +47,20 @@ public class GtasksSyncService {
private final TaskDao taskDao; private final TaskDao taskDao;
private final GtasksPreferenceService gtasksPreferenceService; private final GtasksPreferenceService gtasksPreferenceService;
private final GtasksTokenValidator gtasksTokenValidator; private final GtasksTokenValidator gtasksTokenValidator;
private final GtasksMetadata gtasksMetadataFactory;
@Inject @Inject
public GtasksSyncService(MetadataService metadataService, MetadataDao metadataDao, public GtasksSyncService(MetadataService metadataService, MetadataDao metadataDao,
GtasksMetadataService gtasksMetadataService, TaskDao taskDao, GtasksMetadataService gtasksMetadataService, TaskDao taskDao,
GtasksPreferenceService gtasksPreferenceService, GtasksTokenValidator gtasksTokenValidator) { GtasksPreferenceService gtasksPreferenceService,
GtasksTokenValidator gtasksTokenValidator, GtasksMetadata gtasksMetadataFactory) {
this.metadataService = metadataService; this.metadataService = metadataService;
this.metadataDao = metadataDao; this.metadataDao = metadataDao;
this.gtasksMetadataService = gtasksMetadataService; this.gtasksMetadataService = gtasksMetadataService;
this.taskDao = taskDao; this.taskDao = taskDao;
this.gtasksPreferenceService = gtasksPreferenceService; this.gtasksPreferenceService = gtasksPreferenceService;
this.gtasksTokenValidator = gtasksTokenValidator; this.gtasksTokenValidator = gtasksTokenValidator;
this.gtasksMetadataFactory = gtasksMetadataFactory;
} }
private final LinkedBlockingQueue<SyncOnSaveOperation> operationQueue = new LinkedBlockingQueue<>(); private final LinkedBlockingQueue<SyncOnSaveOperation> operationQueue = new LinkedBlockingQueue<>();
@ -248,7 +251,7 @@ public class GtasksSyncService {
if (gtasksMetadata == null || !gtasksMetadata.containsNonNullValue(GtasksMetadata.ID) || if (gtasksMetadata == null || !gtasksMetadata.containsNonNullValue(GtasksMetadata.ID) ||
TextUtils.isEmpty(gtasksMetadata.getValue(GtasksMetadata.ID))) { //Create case TextUtils.isEmpty(gtasksMetadata.getValue(GtasksMetadata.ID))) { //Create case
if (gtasksMetadata == null) { if (gtasksMetadata == null) {
gtasksMetadata = GtasksMetadata.createEmptyMetadata(task.getId()); gtasksMetadata = gtasksMetadataFactory.createEmptyMetadata(task.getId());
} }
if (gtasksMetadata.containsNonNullValue(GtasksMetadata.LIST_ID)) { if (gtasksMetadata.containsNonNullValue(GtasksMetadata.LIST_ID)) {
listId = gtasksMetadata.getValue(GtasksMetadata.LIST_ID); listId = gtasksMetadata.getValue(GtasksMetadata.LIST_ID);

@ -67,12 +67,13 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
private final Context context; private final Context context;
private final Preferences preferences; private final Preferences preferences;
private final GtasksTokenValidator gtasksTokenValidator; private final GtasksTokenValidator gtasksTokenValidator;
private final GtasksMetadata gtasksMetadataFactory;
@Inject @Inject
public GtasksSyncV2Provider(TaskService taskService, MetadataService metadataService, StoreObjectDao storeObjectDao, GtasksPreferenceService gtasksPreferenceService, public GtasksSyncV2Provider(TaskService taskService, MetadataService metadataService, StoreObjectDao storeObjectDao, GtasksPreferenceService gtasksPreferenceService,
GtasksSyncService gtasksSyncService, GtasksListService gtasksListService, GtasksMetadataService gtasksMetadataService, GtasksSyncService gtasksSyncService, GtasksListService gtasksListService, GtasksMetadataService gtasksMetadataService,
GtasksTaskListUpdater gtasksTaskListUpdater, @ForApplication Context context, Preferences preferences, GtasksTaskListUpdater gtasksTaskListUpdater, @ForApplication Context context, Preferences preferences,
GtasksTokenValidator gtasksTokenValidator) { GtasksTokenValidator gtasksTokenValidator, GtasksMetadata gtasksMetadata) {
this.taskService = taskService; this.taskService = taskService;
this.metadataService = metadataService; this.metadataService = metadataService;
this.storeObjectDao = storeObjectDao; this.storeObjectDao = storeObjectDao;
@ -84,6 +85,7 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
this.context = context; this.context = context;
this.preferences = preferences; this.preferences = preferences;
this.gtasksTokenValidator = gtasksTokenValidator; this.gtasksTokenValidator = gtasksTokenValidator;
this.gtasksMetadataFactory = gtasksMetadata;
} }
@Override @Override
@ -318,7 +320,7 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
task.setDueDate(createdDate); task.setDueDate(createdDate);
task.setNotes(remoteTask.getNotes()); 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.ID, remoteTask.getId());
gtasksMetadata.setValue(GtasksMetadata.LIST_ID, listId); gtasksMetadata.setValue(GtasksMetadata.LIST_ID, listId);

@ -7,7 +7,6 @@ package com.todoroo.astrid.gtasks.sync;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.GtasksMetadata;
import com.todoroo.astrid.sync.SyncContainer; import com.todoroo.astrid.sync.SyncContainer;
import java.util.ArrayList; import java.util.ArrayList;
@ -20,9 +19,6 @@ public class GtasksTaskContainer extends SyncContainer {
this.task = task; this.task = task;
this.metadata = metadata; this.metadata = metadata;
this.gtaskMetadata = gtaskMetadata; this.gtaskMetadata = gtaskMetadata;
if(this.gtaskMetadata == null) {
this.gtaskMetadata = GtasksMetadata.createEmptyMetadata(task.getId());
}
} }
@Override @Override

Loading…
Cancel
Save