aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/thedevstack/conversationsplus/persistance/MessageDatabaseAccess.java
blob: 737c16ff2131933b65f73d017c1ac3db6cf58a65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package de.thedevstack.conversationsplus.persistance;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
import de.thedevstack.conversationsplus.xmpp.jid.Jid;

/**
 * Created by steckbrief on 15.04.2016.
 */
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 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, "
            + "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);

        return additionalParameters;
    }

    static void populateMessageParametersFromCursor(Cursor cursor, Message message) {
        boolean isHttpUploaded = CursorHelper.getInt(cursor, COLUMN_NAME_MSG_PARAMS_HTTPUPLOAD) == 1;
        message.setHttpUploaded(isHttpUploaded);
    }

    static void populateMessageParameters(SQLiteDatabase db, Message message) {
        Cursor paramsCursor = db.query(MessageDatabaseAccess.TABLE_NAME_ADDITIONAL_PARAMETERS,
                null, MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_MSGUUID + "=?",
                new String[] {message.getUuid()},
                null, null, null, null);
        paramsCursor.moveToNext();
        MessageDatabaseAccess.populateMessageParametersFromCursor(paramsCursor, message);
        paramsCursor.close();
    }
}