Made createNewMetadata method easier to use

pull/14/head
Tim Su 14 years ago
parent 927ba61e5a
commit 9cf8b28e17

@ -11,6 +11,7 @@ import android.content.Context;
import android.content.Intent;
import com.timsu.astrid.R;
import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;
@ -46,7 +47,7 @@ public class GtasksFilterExposer extends BroadcastReceiver {
public static Filter filterFromList(StoreObject list) {
String listName = list.getValue(GtasksList.NAME);
ContentValues values = new ContentValues();
values.putAll(GtasksMetadata.createEmptyMetadata().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));
Filter filter = new Filter(listName, listName, new QueryTemplate().join(

@ -29,8 +29,9 @@ abstract public class GtasksIndentAction extends BroadcastReceiver {
return;
Metadata metadata = gtasksMetadataService.getTaskMetadata(taskId);
if(metadata == null)
metadata = GtasksMetadata.createEmptyMetadata();
if(metadata == null) {
metadata = GtasksMetadata.createEmptyMetadata(taskId);
}
int newIndent = Math.max(0, metadata.getValue(GtasksMetadata.INDENTATION) + getDelta());
metadata.setValue(GtasksMetadata.INDENTATION, newIndent);

@ -1,5 +1,6 @@
package com.todoroo.astrid.gtasks;
import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.data.Property.IntegerProperty;
import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.StringProperty;
@ -34,7 +35,12 @@ public class GtasksMetadata {
public static final IntegerProperty ORDERING = new IntegerProperty(Metadata.TABLE,
Metadata.VALUE5.name);
public static Metadata createEmptyMetadata() {
/**
* Creates default GTasks metadata item
* @param taskId if > 0, will set metadata task field
* @return
*/
public static Metadata createEmptyMetadata(long taskId) {
Metadata metadata = new Metadata();
metadata.setValue(Metadata.KEY, GtasksMetadata.METADATA_KEY);
metadata.setValue(ID, (long)VALUE_UNSET);
@ -42,6 +48,8 @@ public class GtasksMetadata {
metadata.setValue(OWNER_ID, (long)VALUE_UNSET);
metadata.setValue(INDENTATION, 0);
metadata.setValue(ORDERING, VALUE_UNSET);
if(taskId > AbstractModel.NO_ID)
metadata.setValue(Metadata.TASK, taskId);
return metadata;
}

@ -24,7 +24,7 @@ public class GtasksTaskContainer extends SyncContainer {
this.metadata = metadata;
this.gtaskMetadata = gtaskMetadata;
if(this.gtaskMetadata == null) {
this.gtaskMetadata = GtasksMetadata.createEmptyMetadata();
this.gtaskMetadata = GtasksMetadata.createEmptyMetadata(task.getId());
}
}
@ -41,7 +41,7 @@ public class GtasksTaskContainer extends SyncContainer {
}
}
if(this.gtaskMetadata == null) {
this.gtaskMetadata = GtasksMetadata.createEmptyMetadata();
this.gtaskMetadata = GtasksMetadata.createEmptyMetadata(task.getId());
}
}

@ -71,6 +71,9 @@ public class MetadataService {
* @param metadata
*/
public void save(Metadata metadata) {
if(!metadata.containsNonNullValue(Metadata.TASK))
throw new IllegalArgumentException("metadata needs to be attached to a task: " + metadata.getMergedValues()); //$NON-NLS-1$
metadataDao.persist(metadata);
}

@ -76,7 +76,7 @@ public class GtasksDecorationExposerTest extends DatabaseTestCase {
private Task nonIndentedTask() {
Task task = new Task();
PluginServices.getTaskService().save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata();
Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId());
PluginServices.getMetadataService().save(metadata);
return task;
}
@ -99,9 +99,8 @@ public class GtasksDecorationExposerTest extends DatabaseTestCase {
private Task indentedTask(int indentation) {
Task task = new Task();
PluginServices.getTaskService().save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata();
Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId());
metadata.setValue(GtasksMetadata.INDENTATION, indentation);
metadata.setValue(Metadata.TASK, task.getId());
PluginServices.getMetadataService().save(metadata);
return task;
}

@ -63,7 +63,7 @@ public class GtasksIndentActionTest extends DatabaseTestCase {
private Task taskWithMetadata(int indentation) {
Task task = new Task();
PluginServices.getTaskService().save(task);
Metadata metadata = GtasksMetadata.createEmptyMetadata();
Metadata metadata = GtasksMetadata.createEmptyMetadata(task.getId());
metadata.setValue(GtasksMetadata.INDENTATION, indentation);
metadata.setValue(Metadata.TASK, task.getId());
PluginServices.getMetadataService().save(metadata);
@ -72,7 +72,7 @@ public class GtasksIndentActionTest extends DatabaseTestCase {
private void thenExpectIndentationLevel(int expected) {
Metadata metadata = gtasksMetadataService.getTaskMetadata(task.getId());
assertNotNull(metadata);
assertNotNull("task has metadata", metadata);
int indentation = metadata.getValue(GtasksMetadata.INDENTATION);
assertTrue("indentation: " + indentation,
indentation == expected);

Loading…
Cancel
Save