Persist Message.treatAsDownloadable
This commit is contained in:
parent
4db32cdc8f
commit
6bd26c987a
2 changed files with 15 additions and 2 deletions
|
@ -55,7 +55,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
|||
private static final String DATABASE_NAME = "history";
|
||||
private static final int DATABASE_VERSION = 25;
|
||||
private static final int C_TO_CPLUS_VERSION_OFFSET = 1000;
|
||||
private static final int CPLUS_DATABASE_VERSION = 2;
|
||||
private static final int CPLUS_DATABASE_VERSION = 1;
|
||||
private static final int CPLUS_DATABASE_VERSION_MULTIPLIER = 100;
|
||||
private static final int PHYSICAL_DATABASE_VERSION = DATABASE_VERSION + C_TO_CPLUS_VERSION_OFFSET + (CPLUS_DATABASE_VERSION * CPLUS_DATABASE_VERSION_MULTIPLIER);
|
||||
|
||||
|
@ -198,7 +198,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
|||
protected void onUpgradeCPlusDatabase(SQLiteDatabase db, int oldVersion, int newVersion) {
|
||||
Logging.d("db.upgrade.cplus", "Updating Conversations+ database from version '" + oldVersion + "' to '" + newVersion + "'");
|
||||
if (oldVersion != newVersion) {
|
||||
if ((oldVersion == 0 || oldVersion == 1) && newVersion == 2) {
|
||||
if (oldVersion == 0 && newVersion == 1) {
|
||||
Logging.d("db.upgrade.cplus", "Creating additional parameters table for messages.");
|
||||
db.execSQL(MessageDatabaseAccess.TABLE_ADDITIONAL_PARAMETERS_CREATE_V0);
|
||||
db.execSQL("INSERT INTO " + MessageDatabaseAccess.TABLE_NAME_ADDITIONAL_PARAMETERS + "(" + MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_MSGUUID + ") "
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.content.ContentValues;
|
|||
import android.database.Cursor;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
|
||||
import de.thedevstack.android.logcat.Logging;
|
||||
import de.thedevstack.conversationsplus.entities.Message;
|
||||
import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
|
||||
import de.thedevstack.conversationsplus.xmpp.jid.Jid;
|
||||
|
@ -15,16 +16,19 @@ public class MessageDatabaseAccess {
|
|||
static final String TABLE_NAME_ADDITIONAL_PARAMETERS = "message_parameters";
|
||||
static final String COLUMN_NAME_MSG_PARAMS_HTTPUPLOAD = "httpupload";
|
||||
static final String COLUMN_NAME_MSG_PARAMS_MSGUUID = "message_uuid";
|
||||
static final String COLUMN_NAME_MSG_PARAMS_TREATASDOWNLOADABLE_DECISION = "treatasdownloadable_decision";
|
||||
|
||||
static final String TABLE_ADDITIONAL_PARAMETERS_CREATE_V0 = "CREATE TABLE " + MessageDatabaseAccess.TABLE_NAME_ADDITIONAL_PARAMETERS + " ("
|
||||
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_MSGUUID + " TEXT, "
|
||||
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_HTTPUPLOAD + " INTEGER DEFAULT 0, "
|
||||
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_TREATASDOWNLOADABLE_DECISION + " TEXT DEFAULT 'NOT_DECIDED', "
|
||||
+ "FOREIGN KEY(" + MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_MSGUUID + ") REFERENCES " + Message.TABLENAME + "(" + Message.UUID + ") ON DELETE CASCADE)";
|
||||
|
||||
static ContentValues getAdditionalParametersContentValues(Message message) {
|
||||
ContentValues additionalParameters = new ContentValues();
|
||||
additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_MSGUUID, message.getUuid());
|
||||
additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_HTTPUPLOAD, message.isHttpUploaded() ? 1 : 0);
|
||||
additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_TREATASDOWNLOADABLE_DECISION, message.treatAsDownloadable().name());
|
||||
|
||||
return additionalParameters;
|
||||
}
|
||||
|
@ -32,6 +36,15 @@ public class MessageDatabaseAccess {
|
|||
static void populateMessageParametersFromCursor(Cursor cursor, Message message) {
|
||||
boolean isHttpUploaded = CursorHelper.getInt(cursor, COLUMN_NAME_MSG_PARAMS_HTTPUPLOAD) == 1;
|
||||
message.setHttpUploaded(isHttpUploaded);
|
||||
String downloadable = CursorHelper.getString(cursor, COLUMN_NAME_MSG_PARAMS_TREATASDOWNLOADABLE_DECISION);
|
||||
Message.Decision treatAsDownloadable = Message.Decision.NOT_DECIDED;
|
||||
try {
|
||||
treatAsDownloadable = Message.Decision.valueOf(downloadable);
|
||||
} catch (IllegalArgumentException e) {
|
||||
// Should only happen if the database is corrupted, but to be on the save side catch it here
|
||||
Logging.e("db.msg", "Unknown Decision for treatAsDownloadable found: '" + downloadable + "'");
|
||||
}
|
||||
message.setTreatAsDownloadable(treatAsDownloadable);
|
||||
}
|
||||
|
||||
static void populateMessageParameters(SQLiteDatabase db, Message message) {
|
||||
|
|
Loading…
Reference in a new issue