mirror of https://github.com/tasks/tasks
Introduced a new UserActivity table to replace the old Update table. It will be easier to just migrate and deprecate the Update table
parent
0857e89818
commit
d2e9b1407b
@ -0,0 +1,117 @@
|
||||
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.astrid.api.AstridApiConstants;
|
||||
|
||||
@SuppressWarnings("nls")
|
||||
public class UserActivity extends RemoteModel {
|
||||
|
||||
// --- table
|
||||
|
||||
/** table for this model */
|
||||
public static final Table TABLE = new Table("userActivity", UserActivity.class);
|
||||
|
||||
/** model class for entries in the outstanding table */
|
||||
public static final Class<? extends OutstandingEntry<UserActivity>> OUTSTANDING_MODEL = UserActivityOutstanding.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);
|
||||
|
||||
/** Pushed at */
|
||||
public static final LongProperty PUSHED_AT = new LongProperty(
|
||||
TABLE, "pushed_at", Property.PROP_FLAG_DATE);
|
||||
|
||||
/** User ID (activity initiator) */
|
||||
public static final StringProperty USER_UUID = new StringProperty(
|
||||
TABLE, "user_uuid");
|
||||
|
||||
/** Action */
|
||||
public static final StringProperty ACTION = new StringProperty(
|
||||
TABLE, "action");
|
||||
|
||||
/** Message */
|
||||
public static final StringProperty MESSAGE = new StringProperty(
|
||||
TABLE, "message");
|
||||
|
||||
/** Picture */
|
||||
public static final StringProperty PICTURE = new StringProperty(
|
||||
TABLE, "picture");
|
||||
|
||||
/** Target id */
|
||||
public static final StringProperty TARGET_ID = new StringProperty(
|
||||
TABLE, "target_id");
|
||||
|
||||
/** Target name */
|
||||
public static final StringProperty TARGET_NAME = new StringProperty(
|
||||
TABLE, "target_name");
|
||||
|
||||
/** Created at */
|
||||
public static final LongProperty CREATED_AT = new LongProperty(
|
||||
TABLE, "created_at", Property.PROP_FLAG_DATE);
|
||||
|
||||
/** Deleted at */
|
||||
public static final LongProperty DELETED_AT = new LongProperty(
|
||||
TABLE, "created_at", Property.PROP_FLAG_DATE);
|
||||
|
||||
|
||||
// --- helpers
|
||||
|
||||
@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(USER_UUID.name, NO_UUID);
|
||||
defaultValues.put(ACTION.name, "");
|
||||
defaultValues.put(MESSAGE.name, "");
|
||||
defaultValues.put(PICTURE.name, "");
|
||||
defaultValues.put(TARGET_ID.name, NO_UUID);
|
||||
defaultValues.put(TARGET_NAME.name, "");
|
||||
defaultValues.put(CREATED_AT.name, 0L);
|
||||
defaultValues.put(DELETED_AT.name, 0L);
|
||||
}
|
||||
|
||||
/** List of all properties for this model */
|
||||
public static final Property<?>[] PROPERTIES = generateProperties(UserActivity.class);
|
||||
|
||||
@Override
|
||||
public long getId() {
|
||||
return getIdHelper(ID);
|
||||
}
|
||||
|
||||
private static final Creator<UserActivity> CREATOR = new ModelCreator<UserActivity>(UserActivity.class);
|
||||
|
||||
@Override
|
||||
protected Creator<? extends AbstractModel> getCreator() {
|
||||
return CREATOR;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package com.todoroo.astrid.data;
|
||||
|
||||
import android.content.ContentValues;
|
||||
|
||||
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;
|
||||
|
||||
@SuppressWarnings("nls")
|
||||
public class UserActivityOutstanding extends OutstandingEntry<UserActivity> {
|
||||
|
||||
/** table for this model */
|
||||
public static final Table TABLE = new Table("user_activity_outstanding", UserActivityOutstanding.class);
|
||||
|
||||
// --- properties
|
||||
|
||||
/** ID */
|
||||
public static final LongProperty ID = new LongProperty(
|
||||
TABLE, ID_PROPERTY_NAME);
|
||||
|
||||
public static final LongProperty TASK_ID = new LongProperty(
|
||||
TABLE, ENTITY_ID_PROPERTY_NAME);
|
||||
|
||||
public static final StringProperty COLUMN_STRING = new StringProperty(
|
||||
TABLE, COLUMN_STRING_PROPERTY_NAME);
|
||||
|
||||
public static final StringProperty VALUE_STRING = new StringProperty(
|
||||
TABLE, VALUE_STRING_PROPERTY_NAME);
|
||||
|
||||
public static final LongProperty CREATED_AT = new LongProperty(
|
||||
TABLE, CREATED_AT_PROPERTY_NAME);
|
||||
|
||||
private static final ContentValues defaultValues = new ContentValues();
|
||||
|
||||
static {
|
||||
defaultValues.put(TASK_ID.name, 0);
|
||||
defaultValues.put(COLUMN_STRING.name, "");
|
||||
defaultValues.put(VALUE_STRING.name, "");
|
||||
}
|
||||
|
||||
/** List of all properties for this model */
|
||||
public static final Property<?>[] PROPERTIES = generateProperties(UserActivityOutstanding.class);
|
||||
|
||||
@Override
|
||||
public ContentValues getDefaultValues() {
|
||||
return defaultValues;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getId() {
|
||||
return getIdHelper(ID);
|
||||
}
|
||||
|
||||
public static final Creator<UserActivityOutstanding> CREATOR = new ModelCreator<UserActivityOutstanding>(UserActivityOutstanding.class);
|
||||
|
||||
@Override
|
||||
protected Creator<? extends AbstractModel> getCreator() {
|
||||
return CREATOR;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
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.actfm.sync.messages.NameMaps;
|
||||
import com.todoroo.astrid.data.UserActivity;
|
||||
|
||||
public class UserActivityDao extends RemoteModelDao<UserActivity> {
|
||||
|
||||
@Autowired
|
||||
private Database database;
|
||||
|
||||
public UserActivityDao() {
|
||||
super(UserActivity.class);
|
||||
DependencyInjectionService.getInstance().inject(this);
|
||||
setDatabase(database);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean createNew(UserActivity item) {
|
||||
if (!item.containsValue(UserActivity.CREATED_AT))
|
||||
item.setValue(UserActivity.CREATED_AT, DateUtilities.now());
|
||||
return super.createNew(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean saveExisting(UserActivity item) {
|
||||
ContentValues values = item.getSetValues();
|
||||
if(values == null || values.size() == 0)
|
||||
return false;
|
||||
return super.saveExisting(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean shouldRecordOutstandingEntry(String columnName) {
|
||||
return NameMaps.shouldRecordOutstandingColumnForTable(NameMaps.TABLE_ID_USER_ACTIVITY, columnName);
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.todoroo.astrid.dao;
|
||||
|
||||
import com.todoroo.astrid.data.UserActivityOutstanding;
|
||||
|
||||
public class UserActivityOutstandingDao extends OutstandingEntryDao<UserActivityOutstanding> {
|
||||
|
||||
public UserActivityOutstandingDao() {
|
||||
super(UserActivityOutstanding.class);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue