Inject GtasksMetadata

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

@ -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");

@ -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());

@ -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);

@ -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);

@ -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, "?");

@ -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),

@ -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);
}

@ -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 <tim@todoroo.com>
*
*/
@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;
}
}

@ -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$

@ -48,15 +48,19 @@ public class GtasksTaskListUpdater extends OrderedMetadataListUpdater<StoreObjec
private final GtasksSyncService gtasksSyncService;
private final MetadataDao metadataDao;
private final MetadataService metadataService;
private final GtasksMetadata gtasksMetadata;
@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);
this.gtasksListService = gtasksListService;
this.gtasksMetadataService = gtasksMetadataService;
this.gtasksSyncService = gtasksSyncService;
this.metadataDao = metadataDao;
this.metadataService = metadataService;
this.gtasksMetadata = gtasksMetadata;
}
// --- overrides
@ -82,7 +86,7 @@ public class GtasksTaskListUpdater extends OrderedMetadataListUpdater<StoreObjec
}
@Override
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));
return metadata;
}

@ -47,17 +47,20 @@ public class GtasksSyncService {
private final TaskDao taskDao;
private final GtasksPreferenceService gtasksPreferenceService;
private final GtasksTokenValidator gtasksTokenValidator;
private final GtasksMetadata gtasksMetadataFactory;
@Inject
public GtasksSyncService(MetadataService metadataService, MetadataDao metadataDao,
GtasksMetadataService gtasksMetadataService, TaskDao taskDao,
GtasksPreferenceService gtasksPreferenceService, GtasksTokenValidator gtasksTokenValidator) {
GtasksPreferenceService gtasksPreferenceService,
GtasksTokenValidator gtasksTokenValidator, GtasksMetadata gtasksMetadataFactory) {
this.metadataService = metadataService;
this.metadataDao = metadataDao;
this.gtasksMetadataService = gtasksMetadataService;
this.taskDao = taskDao;
this.gtasksPreferenceService = gtasksPreferenceService;
this.gtasksTokenValidator = gtasksTokenValidator;
this.gtasksMetadataFactory = gtasksMetadataFactory;
}
private final LinkedBlockingQueue<SyncOnSaveOperation> 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);

@ -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);

@ -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

Loading…
Cancel
Save