@@ -1423,27 +1423,67 @@ class MmsDatabase(context: Context, databaseHelper: SQLCipherOpenHelper) : Messa
14231423 const val QUOTE_MISSING : String = " quote_missing"
14241424 const val SHARED_CONTACTS : String = " shared_contacts"
14251425 const val LINK_PREVIEWS : String = " previews"
1426+
1427+
1428+ private const val IS_DELETED_COLUMN_DEF = """
1429+ $IS_DELETED GENERATED ALWAYS AS (
1430+ ($MESSAGE_BOX & ${MmsSmsColumns .Types .BASE_TYPE_MASK } ) IN (${MmsSmsColumns .Types .BASE_DELETED_OUTGOING_TYPE } , ${MmsSmsColumns .Types .BASE_DELETED_INCOMING_TYPE } )
1431+ ) VIRTUAL
1432+ """
1433+
14261434 const val CREATE_TABLE : String =
1427- " CREATE TABLE " + TABLE_NAME + " (" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
1428- THREAD_ID + " INTEGER, " + DATE_SENT + " INTEGER, " + DATE_RECEIVED + " INTEGER, " + MESSAGE_BOX + " INTEGER, " +
1429- READ + " INTEGER DEFAULT 0, " + " m_id" + " TEXT, " + " sub" + " TEXT, " +
1430- " sub_cs" + " INTEGER, " + BODY + " TEXT, " + PART_COUNT + " INTEGER, " +
1431- " ct_t" + " TEXT, " + CONTENT_LOCATION + " TEXT, " + ADDRESS + " TEXT, " +
1432- ADDRESS_DEVICE_ID + " INTEGER, " +
1433- EXPIRY + " INTEGER, " + " m_cls" + " TEXT, " + MESSAGE_TYPE + " INTEGER, " +
1434- " v" + " INTEGER, " + MESSAGE_SIZE + " INTEGER, " + " pri" + " INTEGER, " +
1435- " rr" + " INTEGER, " + " rpt_a" + " INTEGER, " + " resp_st" + " INTEGER, " +
1436- STATUS + " INTEGER, " + TRANSACTION_ID + " TEXT, " + " retr_st" + " INTEGER, " +
1437- " retr_txt" + " TEXT, " + " retr_txt_cs" + " INTEGER, " + " read_status" + " INTEGER, " +
1438- " ct_cls" + " INTEGER, " + " resp_txt" + " TEXT, " + " d_tm" + " INTEGER, " +
1439- DELIVERY_RECEIPT_COUNT + " INTEGER DEFAULT 0, " + MISMATCHED_IDENTITIES + " TEXT DEFAULT NULL, " +
1440- NETWORK_FAILURE + " TEXT DEFAULT NULL," + " d_rpt" + " INTEGER, " +
1441- SUBSCRIPTION_ID + " INTEGER DEFAULT -1, " + EXPIRES_IN + " INTEGER DEFAULT 0, " +
1442- EXPIRE_STARTED + " INTEGER DEFAULT 0, " + NOTIFIED + " INTEGER DEFAULT 0, " +
1443- READ_RECEIPT_COUNT + " INTEGER DEFAULT 0, " + QUOTE_ID + " INTEGER DEFAULT 0, " +
1444- QUOTE_AUTHOR + " TEXT, " + QUOTE_BODY + " TEXT, " + QUOTE_ATTACHMENT + " INTEGER DEFAULT -1, " +
1445- QUOTE_MISSING + " INTEGER DEFAULT 0, " + SHARED_CONTACTS + " TEXT, " + UNIDENTIFIED + " INTEGER DEFAULT 0, " +
1446- LINK_PREVIEWS + " TEXT);"
1435+ """ CREATE TABLE $TABLE_NAME (
1436+ $ID INTEGER PRIMARY KEY AUTOINCREMENT,
1437+ $THREAD_ID INTEGER,
1438+ $DATE_SENT INTEGER,
1439+ $DATE_RECEIVED INTEGER,
1440+ $MESSAGE_BOX INTEGER,
1441+ $READ INTEGER DEFAULT 0,
1442+ m_id TEXT,
1443+ sub TEXT,
1444+ sub_cs INTEGER,
1445+ $BODY TEXT,
1446+ $PART_COUNT INTEGER,
1447+ ct_t TEXT,
1448+ $CONTENT_LOCATION TEXT,
1449+ $ADDRESS TEXT,
1450+ $ADDRESS_DEVICE_ID INTEGER,
1451+ $EXPIRY INTEGER,
1452+ m_cls TEXT,
1453+ $MESSAGE_TYPE INTEGER,
1454+ v INTEGER,
1455+ $MESSAGE_SIZE INTEGER,
1456+ pri INTEGER,
1457+ rr INTEGER,
1458+ rpt_a INTEGER,
1459+ resp_st INTEGER,
1460+ $STATUS INTEGER,
1461+ $TRANSACTION_ID TEXT,
1462+ retr_st INTEGER,
1463+ retr_txt TEXT,
1464+ retr_txt_cs INTEGER,
1465+ read_status INTEGER,
1466+ ct_cls INTEGER,
1467+ resp_txt TEXT,
1468+ d_tm INTEGER,
1469+ $DELIVERY_RECEIPT_COUNT INTEGER DEFAULT 0,
1470+ $MISMATCHED_IDENTITIES TEXT DEFAULT NULL,
1471+ $NETWORK_FAILURE TEXT DEFAULT NULL,
1472+ d_rpt INTEGER,
1473+ $SUBSCRIPTION_ID INTEGER DEFAULT -1,
1474+ $EXPIRES_IN INTEGER DEFAULT 0,
1475+ $EXPIRE_STARTED INTEGER DEFAULT 0,
1476+ $NOTIFIED INTEGER DEFAULT 0,
1477+ $READ_RECEIPT_COUNT INTEGER DEFAULT 0,
1478+ $QUOTE_ID INTEGER DEFAULT 0,
1479+ $QUOTE_AUTHOR TEXT,
1480+ $QUOTE_BODY TEXT,
1481+ $QUOTE_ATTACHMENT INTEGER DEFAULT -1,
1482+ $QUOTE_MISSING INTEGER DEFAULT 0,
1483+ $SHARED_CONTACTS TEXT,
1484+ $UNIDENTIFIED INTEGER DEFAULT 0,
1485+ $LINK_PREVIEWS TEXT,
1486+ $IS_DELETED_COLUMN_DEF );"""
14471487
14481488 @JvmField
14491489 val CREATE_INDEXS : Array <String > = arrayOf(
@@ -1454,6 +1494,9 @@ class MmsDatabase(context: Context, databaseHelper: SQLCipherOpenHelper) : Messa
14541494 " CREATE INDEX IF NOT EXISTS mms_date_sent_index ON $TABLE_NAME ($DATE_SENT );" ,
14551495 " CREATE INDEX IF NOT EXISTS mms_thread_date_index ON $TABLE_NAME ($THREAD_ID , $DATE_RECEIVED );"
14561496 )
1497+
1498+ const val ADD_IS_DELETED_COLUMN : String = " ALTER TABLE $TABLE_NAME ADD COLUMN $IS_DELETED_COLUMN_DEF "
1499+
14571500 private val MMS_PROJECTION : Array <String > = arrayOf(
14581501 " $TABLE_NAME .$ID AS $ID " ,
14591502 THREAD_ID ,
0 commit comments