package by.istin.android.xcore.test.vk; import android.content.ContentValues; import android.provider.BaseColumns; import by.istin.android.xcore.annotations.*; import by.istin.android.xcore.db.impl.DBHelper; import by.istin.android.xcore.db.entity.IBeforeArrayUpdate; import by.istin.android.xcore.db.IDBConnection; import by.istin.android.xcore.db.entity.IMerge; import by.istin.android.xcore.source.DataSourceRequest; import by.istin.android.xcore.utils.HashUtils; public class Dialog implements BaseColumns, IMerge, IBeforeArrayUpdate { @dbLong public static final String ID = _ID; @dbLong public static final String MID = "mid"; @dbLong public static final String UID = "uid"; @dbLong public static final String ADMIN_ID = "admin_id"; @dbLong public static final String CHAT_ID = "chat_id"; @dbLong public static final String DATE = "date"; @dbByte public static final String OUT = "out"; @dbByte public static final String READ_STATE = "read_state"; @dbByte public static final String EMOJI = "emoji"; @dbString public static final String TITLE = "title"; @dbString public static final String BODY = "body"; @dbString public static final String CHAT_ACTIVE = "chat_active"; @dbInteger public static final String USER_COUNT = "user_count"; @dbEntity(clazz = Attachment.class) public static final String ATTACHMENT = "attachment"; @dbEntities(clazz = Attachment.class, contentValuesKey="entities_attachments") public static final String ATTACHMENTS = "attachments"; @dbEntities(clazz = FwdMessage.class, contentValuesKey="entities_fwdmessage") public static final String FWD_MESSAGES = "fwd_messages"; //local fields @dbString public static final String FULL_NAME = "full_name"; @dbString public static final String SEARCH_VALUE = "search_value"; @dbInteger public static final String POSITION = "position"; @Override public void merge(DBHelper dbHelper, IDBConnection db, DataSourceRequest dataSourceRequest, ContentValues oldValues, ContentValues newValues) { if (newValues.getAsInteger(POSITION) == null) { newValues.put(POSITION, oldValues.getAsInteger(POSITION)); } } @Override public void onBeforeListUpdate(DBHelper dbHelper, IDBConnection db, DataSourceRequest dataSourceRequest, int position, ContentValues contentValues) { contentValues.put(POSITION, position); contentValues.put(ID, HashUtils.generateId(contentValues.getAsLong(UID) + "_" + contentValues.getAsLong(CHAT_ID))); } }