Added history model and dao

pull/14/head
Sam Bosley 12 years ago
parent ffd13a9523
commit 2e8639d252

@ -0,0 +1,108 @@
package com.todoroo.astrid.data;
import android.content.ContentValues;
import android.net.Uri;
import com.todoroo.andlib.data.AbstractModel;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.StringProperty;
import com.todoroo.andlib.data.Table;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.astrid.api.AstridApiConstants;
@SuppressWarnings("nls")
public class History extends RemoteModel {
/** table for this model */
public static final Table TABLE = new Table("history", History.class);
/** content uri for this model */
public static final Uri CONTENT_URI = Uri.parse("content://" + AstridApiConstants.API_PACKAGE + "/" +
TABLE.name);
// --- properties
/** ID */
public static final LongProperty ID = new LongProperty(
TABLE, ID_PROPERTY_NAME);
/** Remote ID */
public static final StringProperty UUID = new StringProperty(
TABLE, UUID_PROPERTY_NAME);
/** Created at */
public static final LongProperty CREATED_AT = new LongProperty(
TABLE, "created_at", Property.PROP_FLAG_DATE);
/** User id */
public static final StringProperty USER_UUID = new StringProperty(
TABLE, "user_id", Property.PROP_FLAG_USER_ID);
/** Column name */
public static final StringProperty COLUMN = new StringProperty(
TABLE, "column");
/** Old value */
public static final StringProperty OLD_VALUE = new StringProperty(
TABLE, "old_value");
/** New value */
public static final StringProperty NEW_VALUE = new StringProperty(
TABLE, "new_value");
/** Table identifier */
public static final StringProperty TABLE_ID = new StringProperty(
TABLE, "table_id");
/** Target identifier */
public static final StringProperty TARGET_ID = new StringProperty(
TABLE, "target_id");
@Override
public String getUuid() {
return getUuidHelper(UUID);
}
/** Default values container */
private static final ContentValues defaultValues = new ContentValues();
@Override
public ContentValues getDefaultValues() {
return defaultValues;
}
static {
defaultValues.put(UUID.name, NO_UUID);
defaultValues.put(CREATED_AT.name, 0L);
}
@Override
public long getId() {
return getIdHelper(ID);
}
public History() {
super();
}
public History(TodorooCursor<History> cursor) {
this();
readPropertiesFromCursor(cursor);
}
public void readFromCursor(TodorooCursor<History> cursor) {
super.readPropertiesFromCursor(cursor);
}
/** List of all properties for this model */
public static final Property<?>[] PROPERTIES = generateProperties(History.class);
private static final Creator<History> CREATOR = new ModelCreator<History>(History.class);
@Override
protected Creator<? extends AbstractModel> getCreator() {
return CREATOR;
}
}

@ -15,6 +15,7 @@ import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.Table;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.astrid.data.ABTestEvent;
import com.todoroo.astrid.data.History;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.TagData;
@ -339,6 +340,7 @@ public class Database extends AbstractDatabase {
database.execSQL(createTableSql(visitor, TagMetadata.TABLE.name, TagMetadata.PROPERTIES));
database.execSQL(createTableSql(visitor, UserActivity.TABLE.name, UserActivity.PROPERTIES));
database.execSQL(createTableSql(visitor, UserActivityOutstanding.TABLE.name, UserActivityOutstanding.PROPERTIES));
database.execSQL(createTableSql(visitor, History.TABLE.name, History.PROPERTIES));
database.execSQL(addColumnSql(Task.TABLE, Task.PUSHED_AT, visitor, null));
database.execSQL(addColumnSql(Task.TABLE, Task.IS_PUBLIC, visitor, "0"));

@ -0,0 +1,35 @@
package com.todoroo.astrid.dao;
import android.content.ContentValues;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.History;
public class HistoryDao extends RemoteModelDao<History> {
@Autowired
private Database database;
public HistoryDao() {
super(History.class);
DependencyInjectionService.getInstance().inject(this);
setDatabase(database);
}
@Override
public boolean createNew(History item) {
if (!item.containsValue(History.CREATED_AT))
item.setValue(History.CREATED_AT, DateUtilities.now());
return super.createNew(item);
}
@Override
public boolean saveExisting(History item) {
ContentValues values = item.getSetValues();
if(values == null || values.size() == 0)
return false;
return super.saveExisting(item);
}
}
Loading…
Cancel
Save