|
|
|
@ -72,6 +72,9 @@ public class SmsDatabase extends MessagingDatabase {
|
|
|
|
|
public static final String SUBJECT = "subject";
|
|
|
|
|
public static final String SERVICE_CENTER = "service_center";
|
|
|
|
|
|
|
|
|
|
// Loki
|
|
|
|
|
public static final String IS_FRIEND_REQUEST = "is_friend_request";
|
|
|
|
|
|
|
|
|
|
public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + ID + " integer PRIMARY KEY, " +
|
|
|
|
|
THREAD_ID + " INTEGER, " + ADDRESS + " TEXT, " + ADDRESS_DEVICE_ID + " INTEGER DEFAULT 1, " + PERSON + " INTEGER, " +
|
|
|
|
|
DATE_RECEIVED + " INTEGER, " + DATE_SENT + " INTEGER, " + PROTOCOL + " INTEGER, " + READ + " INTEGER DEFAULT 0, " +
|
|
|
|
@ -79,7 +82,7 @@ public class SmsDatabase extends MessagingDatabase {
|
|
|
|
|
DELIVERY_RECEIPT_COUNT + " INTEGER DEFAULT 0," + SUBJECT + " TEXT, " + BODY + " TEXT, " +
|
|
|
|
|
MISMATCHED_IDENTITIES + " TEXT DEFAULT NULL, " + SERVICE_CENTER + " TEXT, " + SUBSCRIPTION_ID + " INTEGER DEFAULT -1, " +
|
|
|
|
|
EXPIRES_IN + " INTEGER DEFAULT 0, " + EXPIRE_STARTED + " INTEGER DEFAULT 0, " + NOTIFIED + " DEFAULT 0, " +
|
|
|
|
|
READ_RECEIPT_COUNT + " INTEGER DEFAULT 0, " + UNIDENTIFIED + " INTEGER DEFAULT 0);";
|
|
|
|
|
READ_RECEIPT_COUNT + " INTEGER DEFAULT 0, " + UNIDENTIFIED + " INTEGER DEFAULT 0," + IS_FRIEND_REQUEST + "INTEGER DEFAULT 0);";
|
|
|
|
|
|
|
|
|
|
public static final String[] CREATE_INDEXS = {
|
|
|
|
|
"CREATE INDEX IF NOT EXISTS sms_thread_id_index ON " + TABLE_NAME + " (" + THREAD_ID + ");",
|
|
|
|
@ -640,6 +643,7 @@ public class SmsDatabase extends MessagingDatabase {
|
|
|
|
|
contentValues.put(EXPIRES_IN, message.getExpiresIn());
|
|
|
|
|
contentValues.put(DELIVERY_RECEIPT_COUNT, Stream.of(earlyDeliveryReceipts.values()).mapToLong(Long::longValue).sum());
|
|
|
|
|
contentValues.put(READ_RECEIPT_COUNT, Stream.of(earlyReadReceipts.values()).mapToLong(Long::longValue).sum());
|
|
|
|
|
contentValues.put(IS_FRIEND_REQUEST, message.isFriendRequest() ? 1 : 0);
|
|
|
|
|
|
|
|
|
|
SQLiteDatabase db = databaseHelper.getWritableDatabase();
|
|
|
|
|
long messageId = db.insert(TABLE_NAME, ADDRESS, contentValues);
|
|
|
|
@ -866,6 +870,7 @@ public class SmsDatabase extends MessagingDatabase {
|
|
|
|
|
long expireStarted = cursor.getLong(cursor.getColumnIndexOrThrow(SmsDatabase.EXPIRE_STARTED));
|
|
|
|
|
String body = cursor.getString(cursor.getColumnIndexOrThrow(SmsDatabase.BODY));
|
|
|
|
|
boolean unidentified = cursor.getInt(cursor.getColumnIndexOrThrow(SmsDatabase.UNIDENTIFIED)) == 1;
|
|
|
|
|
boolean isFriendRequest = cursor.getInt(cursor.getColumnIndexOrThrow(SmsDatabase.IS_FRIEND_REQUEST)) == 1;
|
|
|
|
|
|
|
|
|
|
if (!TextSecurePreferences.isReadReceiptsEnabled(context)) {
|
|
|
|
|
readReceiptCount = 0;
|
|
|
|
@ -879,7 +884,7 @@ public class SmsDatabase extends MessagingDatabase {
|
|
|
|
|
addressDeviceId,
|
|
|
|
|
dateSent, dateReceived, deliveryReceiptCount, type,
|
|
|
|
|
threadId, status, mismatches, subscriptionId,
|
|
|
|
|
expiresIn, expireStarted, readReceiptCount, unidentified);
|
|
|
|
|
expiresIn, expireStarted, readReceiptCount, unidentified, isFriendRequest);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<IdentityKeyMismatch> getMismatches(String document) {
|
|
|
|
|