Migrate to shared class hierarchy for unit based database tests.

This commit is contained in:
Cody Henthorne
2025-02-28 09:31:19 -05:00
committed by Greyson Parrelli
parent d5e18a8bd5
commit d0b6d6fdeb
138 changed files with 394 additions and 436 deletions

View File

@@ -559,6 +559,7 @@ dependencies {
implementation(libs.lottie.compose)
implementation(libs.signal.android.database.sqlcipher)
implementation(libs.androidx.sqlite)
testImplementation(libs.androidx.sqlite.framework)
implementation(libs.google.ez.vcard) {
exclude(group = "com.fasterxml.jackson.core")
exclude(group = "org.freemarker")

View File

@@ -17,6 +17,7 @@ import org.signal.core.util.requireNonNullString
import org.thoughtcrime.securesms.database.helpers.SignalDatabaseMigrations
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.testing.SignalActivityRule
import org.thoughtcrime.securesms.database.SQLiteDatabase as SignalSQLiteDatabase
/**
* A test that guarantees that a freshly-created database looks the same as one that went through the upgrade path.
@@ -128,7 +129,7 @@ class DatabaseConsistencyTest {
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
SignalDatabaseMigrations.migrate(application, db, 181, SignalDatabaseMigrations.DATABASE_VERSION)
SignalDatabaseMigrations.migrate(application, SignalSQLiteDatabase(db), 181, SignalDatabaseMigrations.DATABASE_VERSION)
}
/**

View File

@@ -16,6 +16,7 @@ import org.thoughtcrime.securesms.database.model.DistributionListId
import org.thoughtcrime.securesms.testing.SignalDatabaseRule
import org.whispersystems.signalservice.api.push.DistributionId
import java.util.UUID
import org.thoughtcrime.securesms.database.SQLiteDatabase as SignalSQLiteDatabase
@RunWith(AndroidJUnit4::class)
class MyStoryMigrationTest {
@@ -111,7 +112,7 @@ class MyStoryMigrationTest {
private fun runMigration() {
V151_MyStoryMigration.migrate(
InstrumentationRegistry.getInstrumentation().targetContext.applicationContext as Application,
SignalDatabase.rawDatabase,
SignalSQLiteDatabase(SignalDatabase.rawDatabase),
0,
1
)

View File

@@ -33,7 +33,7 @@ class ChatFolderTables(context: Context?, databaseHelper: SignalDatabase?) : Dat
@JvmField
val CREATE_INDEXES: Array<String> = ChatFolderTable.CREATE_INDEX + ChatFolderMembershipTable.CREATE_INDEXES
fun insertInitialChatFoldersAtCreationTime(db: net.zetetic.database.sqlcipher.SQLiteDatabase) {
fun insertInitialChatFoldersAtCreationTime(db: SQLiteDatabase) {
db.insert(ChatFolderTable.TABLE_NAME, null, getAllChatsFolderContentValues())
}

View File

@@ -50,7 +50,7 @@ class DistributionListTables constructor(context: Context?, databaseHelper: Sign
const val LIST_TABLE_NAME = ListTable.TABLE_NAME
const val PRIVACY_MODE = ListTable.PRIVACY_MODE
fun insertInitialDistributionListAtCreationTime(db: net.zetetic.database.sqlcipher.SQLiteDatabase) {
fun insertInitialDistributionListAtCreationTime(db: SQLiteDatabase) {
val recipientId = db.insert(
RecipientTable.TABLE_NAME,
null,

View File

@@ -14,7 +14,6 @@ import androidx.sqlite.db.SupportSQLiteQuery;
import net.zetetic.database.sqlcipher.SQLiteStatement;
import net.zetetic.database.sqlcipher.SQLiteTransactionListener;
import org.signal.core.util.logging.Log;
import org.signal.core.util.tracing.Tracer;
import java.io.IOException;
@@ -354,7 +353,7 @@ public class SQLiteDatabase implements SupportSQLiteDatabase {
return traceSql("rawQuery(2a)", sql, false, () -> wrapped.rawQuery(sql, selectionArgs));
}
public Cursor rawQuery(String sql, Object[] args) {
public Cursor rawQuery(String sql, Object... args) {
DatabaseMonitor.onSql(sql, args);
return traceSql("rawQuery(2b)", sql, false,() -> wrapped.rawQuery(sql, args));
}

View File

@@ -6,6 +6,7 @@ import android.content.Context
import android.database.Cursor
import android.database.sqlite.SQLiteException
import android.text.TextUtils
import androidx.sqlite.db.SupportSQLiteDatabase
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.intellij.lang.annotations.Language
import org.signal.core.util.SqlUtil
@@ -270,7 +271,7 @@ class SearchTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
* Drops all tables and recreates them.
*/
@JvmOverloads
fun fullyResetTables(db: SQLiteDatabase = writableDatabase.sqlCipherDatabase, useTransaction: Boolean = true) {
fun fullyResetTables(db: SupportSQLiteDatabase = writableDatabase.sqlCipherDatabase, useTransaction: Boolean = true) {
if (useTransaction) {
db.beginTransaction()
}

View File

@@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.database
import android.app.Application
import android.content.Context
import androidx.annotation.VisibleForTesting
import androidx.sqlite.db.SupportSQLiteDatabase
import net.zetetic.database.sqlcipher.SQLiteOpenHelper
import org.signal.core.util.SqlUtil
import org.signal.core.util.logging.Log
@@ -22,6 +23,7 @@ import org.thoughtcrime.securesms.migrations.LegacyMigrationJob.DatabaseUpgradeL
import org.thoughtcrime.securesms.service.KeyCachingService
import org.thoughtcrime.securesms.util.TextSecurePreferences
import java.io.File
import org.thoughtcrime.securesms.database.SQLiteDatabase as SignalSQLiteDatabase
open class SignalDatabase(private val context: Application, databaseSecret: DatabaseSecret, attachmentSecret: AttachmentSecret, name: String = DATABASE_NAME) :
SQLiteOpenHelper(
@@ -84,6 +86,29 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
}
override fun onCreate(db: net.zetetic.database.sqlcipher.SQLiteDatabase) {
val signalDb = SignalSQLiteDatabase(db)
onCreateTablesIndexesAndTriggers(signalDb)
// Requires FTS5
executeStatements(signalDb, SearchTable.CREATE_TABLE)
executeStatements(signalDb, SearchTable.CREATE_TRIGGERS)
if (context.getDatabasePath(ClassicOpenHelper.NAME).exists()) {
val legacyHelper = ClassicOpenHelper(context)
val legacyDb = legacyHelper.writableDatabase
SQLCipherMigrationHelper.migratePlaintext(context, legacyDb, db)
val masterSecret = KeyCachingService.getMasterSecret(context)
if (masterSecret != null) SQLCipherMigrationHelper.migrateCiphertext(context, masterSecret, legacyDb, db, null) else TextSecurePreferences.setNeedsSqlCipherMigration(context, true)
if (!PreKeyMigrationHelper.migratePreKeys(context, db)) {
PreKeysSyncJob.enqueue()
}
SessionStoreMigrationHelper.migrateSessions(context, db)
PreKeyMigrationHelper.cleanUpPreKeys(context)
}
}
@VisibleForTesting
fun onCreateTablesIndexesAndTriggers(db: SignalSQLiteDatabase) {
db.execSQL(MessageTable.CREATE_TABLE)
db.execSQL(AttachmentTable.CREATE_TABLE)
db.execSQL(ThreadTable.CREATE_TABLE)
@@ -117,7 +142,6 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
executeStatements(db, NameCollisionTables.CREATE_TABLE)
db.execSQL(InAppPaymentTable.CREATE_TABLE)
db.execSQL(InAppPaymentSubscriberTable.CREATE_TABLE)
executeStatements(db, SearchTable.CREATE_TABLE)
executeStatements(db, RemappedRecordTables.CREATE_TABLE)
executeStatements(db, MessageSendLogTables.CREATE_TABLE)
executeStatements(db, NotificationProfileTables.CREATE_TABLE)
@@ -148,24 +172,10 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
executeStatements(db, ChatFolderTables.CREATE_INDEXES)
executeStatements(db, NameCollisionTables.CREATE_INDEXES)
executeStatements(db, SearchTable.CREATE_TRIGGERS)
executeStatements(db, MessageSendLogTables.CREATE_TRIGGERS)
DistributionListTables.insertInitialDistributionListAtCreationTime(db)
ChatFolderTables.insertInitialChatFoldersAtCreationTime(db)
if (context.getDatabasePath(ClassicOpenHelper.NAME).exists()) {
val legacyHelper = ClassicOpenHelper(context)
val legacyDb = legacyHelper.writableDatabase
SQLCipherMigrationHelper.migratePlaintext(context, legacyDb, db)
val masterSecret = KeyCachingService.getMasterSecret(context)
if (masterSecret != null) SQLCipherMigrationHelper.migrateCiphertext(context, masterSecret, legacyDb, db, null) else TextSecurePreferences.setNeedsSqlCipherMigration(context, true)
if (!PreKeyMigrationHelper.migratePreKeys(context, db)) {
PreKeysSyncJob.enqueue()
}
SessionStoreMigrationHelper.migrateSessions(context, db)
PreKeyMigrationHelper.cleanUpPreKeys(context)
}
}
override fun onUpgrade(db: net.zetetic.database.sqlcipher.SQLiteDatabase, oldVersion: Int, newVersion: Int) {
@@ -178,7 +188,7 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
db.setForeignKeyConstraintsEnabled(false)
try {
// Transactions and version bumps are handled in the migrate method
SignalDatabaseMigrations.migrate(context, db, oldVersion, newVersion)
SignalDatabaseMigrations.migrate(context, SignalSQLiteDatabase(db), oldVersion, newVersion)
} finally {
db.setForeignKeyConstraintsEnabled(true)
@@ -202,11 +212,11 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
open val rawWritableDatabase: net.zetetic.database.sqlcipher.SQLiteDatabase
get() = super.writableDatabase
open val signalReadableDatabase: SQLiteDatabase
get() = SQLiteDatabase(super.readableDatabase)
open val signalReadableDatabase: SignalSQLiteDatabase
get() = SignalSQLiteDatabase(super.readableDatabase)
open val signalWritableDatabase: SQLiteDatabase
get() = SQLiteDatabase(super.writableDatabase)
open val signalWritableDatabase: SignalSQLiteDatabase
get() = SignalSQLiteDatabase(super.writableDatabase)
override fun getSqlCipherDatabase(): net.zetetic.database.sqlcipher.SQLiteDatabase {
return super.writableDatabase
@@ -216,7 +226,7 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
db.version = SignalDatabaseMigrations.DATABASE_VERSION
}
private fun executeStatements(db: net.zetetic.database.sqlcipher.SQLiteDatabase, statements: Array<String>) {
private fun executeStatements(db: SupportSQLiteDatabase, statements: Array<String>) {
for (statement in statements) db.execSQL(statement)
}
@@ -251,11 +261,11 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
get() = instance!!.rawWritableDatabase
@JvmStatic
val readableDatabase: SQLiteDatabase
val readableDatabase: SignalSQLiteDatabase
get() = instance!!.signalReadableDatabase
@JvmStatic
val writableDatabase: SQLiteDatabase
val writableDatabase: SignalSQLiteDatabase
get() = instance!!.signalWritableDatabase
@JvmStatic
@@ -361,7 +371,7 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
}
@JvmStatic
fun <T> runInTransaction(block: (SQLiteDatabase) -> T): T {
fun <T> runInTransaction(block: (SignalSQLiteDatabase) -> T): T {
return instance!!.signalWritableDatabase.withinTransaction {
block(it)
}

View File

@@ -5,9 +5,8 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.database.SQLiteDatabase;
import org.thoughtcrime.securesms.util.DelimiterUtil;
import java.util.HashSet;

View File

@@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.database.helpers
import android.app.Application
import android.content.Context
import android.database.sqlite.SQLiteException
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.areForeignKeyConstraintsEnabled
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SignalDatabase
@@ -123,6 +122,7 @@ import org.thoughtcrime.securesms.database.helpers.migration.V264_FixGroupAddMem
import org.thoughtcrime.securesms.database.helpers.migration.V265_FixFtsTriggers
import org.thoughtcrime.securesms.database.helpers.migration.V266_UniqueThreadPinOrder
import org.thoughtcrime.securesms.database.helpers.migration.V267_FixGroupInvitationDeclinedUpdate
import org.thoughtcrime.securesms.database.SQLiteDatabase as SignalSqliteDatabase
/**
* Contains all of the database migrations for [SignalDatabase]. Broken into a separate file for cleanliness.
@@ -255,7 +255,7 @@ object SignalDatabaseMigrations {
const val DATABASE_VERSION = 267
@JvmStatic
fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
fun migrate(context: Application, db: SignalSqliteDatabase, oldVersion: Int, newVersion: Int) {
val initialForeignKeyState = db.areForeignKeyConstraintsEnabled()
for (migrationData in migrations) {

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Simple interface for allowing database migrations to live outside of [org.thoughtcrime.securesms.database.helpers.SignalDatabaseMigrations].

View File

@@ -14,7 +14,6 @@ import android.preference.PreferenceManager
import android.text.TextUtils
import androidx.core.content.contentValuesOf
import com.annimon.stream.Stream
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.Base64
import org.signal.core.util.CursorUtil
import org.signal.core.util.Hex
@@ -29,6 +28,7 @@ import org.thoughtcrime.securesms.conversation.colors.ChatColors
import org.thoughtcrime.securesms.conversation.colors.ChatColorsMapper
import org.thoughtcrime.securesms.database.KeyValueDatabase
import org.thoughtcrime.securesms.database.RecipientTable
import org.thoughtcrime.securesms.database.SQLiteDatabase
import org.thoughtcrime.securesms.database.helpers.PreKeyMigrationHelper
import org.thoughtcrime.securesms.database.helpers.RecipientIdCleanupHelper
import org.thoughtcrime.securesms.database.helpers.RecipientIdMigrationHelper
@@ -222,14 +222,14 @@ object V149_LegacyMigrations : SignalDatabaseMigration {
db.execSQL("CREATE TABLE signed_prekeys (_id INTEGER PRIMARY KEY, key_id INTEGER UNIQUE, public_key TEXT NOT NULL, private_key TEXT NOT NULL, signature TEXT NOT NULL, timestamp INTEGER DEFAULT 0)")
db.execSQL("CREATE TABLE one_time_prekeys (_id INTEGER PRIMARY KEY, key_id INTEGER UNIQUE, public_key TEXT NOT NULL, private_key TEXT NOT NULL)")
if (!PreKeyMigrationHelper.migratePreKeys(context, db)) {
if (!PreKeyMigrationHelper.migratePreKeys(context, db.sqlCipherDatabase)) {
PreKeysSyncJob.enqueue()
}
}
if (oldVersion < MIGRATE_SESSIONS_VERSION) {
db.execSQL("CREATE TABLE sessions (_id INTEGER PRIMARY KEY, address TEXT NOT NULL, device INTEGER NOT NULL, record BLOB NOT NULL, UNIQUE(address, device) ON CONFLICT REPLACE)")
SessionStoreMigrationHelper.migrateSessions(context, db)
SessionStoreMigrationHelper.migrateSessions(context, db.sqlCipherDatabase)
}
if (oldVersion < NO_MORE_IMAGE_THUMBNAILS_VERSION) {
@@ -616,7 +616,7 @@ object V149_LegacyMigrations : SignalDatabaseMigration {
}
if (oldVersion < RECIPIENT_IDS) {
RecipientIdMigrationHelper.execute(db)
RecipientIdMigrationHelper.execute(db.sqlCipherDatabase)
}
if (oldVersion < RECIPIENT_SEARCH) {

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adding an urgent flag to message envelopes to help with notifications. Need to track flag in

View File

@@ -3,11 +3,11 @@ package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import android.database.Cursor
import androidx.core.content.contentValuesOf
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.Base64
import org.signal.core.util.CursorUtil
import org.signal.core.util.SqlUtil
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
import org.thoughtcrime.securesms.storage.StorageSyncHelper
/**

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Marks story recipients with a new group type constant.

View File

@@ -3,11 +3,11 @@ package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import android.database.Cursor
import androidx.core.content.contentValuesOf
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.Base64
import org.signal.core.util.CursorUtil
import org.signal.core.util.SqlUtil
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
import org.thoughtcrime.securesms.storage.StorageSyncHelper
/**

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Introduces the tables and fields required to keep track of whether we need to send a PNI signature message and if the ones we've sent out have been received.

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds necessary book-keeping columns to SMS and MMS tables for SMS export.

View File

@@ -1,8 +1,8 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.update
import org.thoughtcrime.securesms.database.SQLiteDatabase
import java.util.concurrent.TimeUnit
/**

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
@Suppress("ClassName")
object V157_RecipeintHiddenMigration : SignalDatabaseMigration {

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Track last time we did a forced sanity check for this group with the server.

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
@Suppress("ClassName")
object V159_ThreadUnreadSelfMentionCount : SignalDatabaseMigration {

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
@Suppress("ClassName")
object V160_SmsMmsExportedIndexMigration : SignalDatabaseMigration {

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds an index to the story sends table to help with a new common query.

View File

@@ -2,8 +2,8 @@ package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import androidx.sqlite.db.SupportSQLiteDatabase
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
import org.thoughtcrime.securesms.database.helpers.SignalDatabaseMigrations
/**

View File

@@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import androidx.sqlite.db.SupportSQLiteDatabase
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Add columns needed to track remote megaphone specific snooze rates.

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
@Suppress("ClassName")
object V164_ThreadDatabaseReadIndexMigration : SignalDatabaseMigration {

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds an index to MMS table that only covers id and messages with the type of payment notification to

View File

@@ -1,7 +1,6 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.Stopwatch
import org.signal.core.util.delete
@@ -9,6 +8,7 @@ import org.signal.core.util.logging.Log
import org.signal.core.util.readToList
import org.signal.core.util.requireLong
import org.signal.core.util.update
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* This one's a doozy. We want to add additional foreign key constraints between the thread, recipient, and message tables. This will let us know for sure

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Forgot to recreate the triggers for the reactions table in [V166_ThreadAndMessageForeignKeys]. So we gotta fix stuff up and do it here.

View File

@@ -1,10 +1,10 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
import org.thoughtcrime.securesms.keyvalue.SignalStore
@Suppress("ClassName")

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* We want to add a new `rank` column to the emoji_search table, and we no longer use it as an FTS

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
@Suppress("ClassName")
object V170_CallTableMigration : SignalDatabaseMigration {

View File

@@ -1,13 +1,13 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.Stopwatch
import org.signal.core.util.delete
import org.signal.core.util.logging.Log
import org.signal.core.util.readToList
import org.signal.core.util.requireLong
import org.signal.core.util.update
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* When we ran [V166_ThreadAndMessageForeignKeys], we forgot to update the actual table definition in [ThreadTable].

View File

@@ -2,10 +2,10 @@ package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import androidx.core.content.contentValuesOf
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.readToList
import org.signal.core.util.requireNonNullString
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Migrates all IDs from the GroupTable into the GroupMembershipTable

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* In order to support scheduled sending, we need to add another column to keep track of when to send the message. We also use this

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds a foreign key dependency between reactions and messages so we can remove the trigger.

View File

@@ -1,8 +1,8 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Turns out renaming a table will automatically update all of your indexes, foreign keys, triggers, basically everything... except full-text search tables.

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Expand quote index to included scheduled date so they can be excluded.

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Removes the is_mms column from the MSL tables and fixes the triggers.

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* This adds a column to the Recipients table to store a spam reporting token.

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* This cleans up some MSL entries that we left behind during a bad past migration.

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds support for storing the systemNickname from storage service.

View File

@@ -1,9 +1,9 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* We saw evidence (via failed backup restores) that some people have recipients in their thread table that do not exist in the recipient table.

View File

@@ -1,9 +1,9 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.MessageTable
import org.thoughtcrime.securesms.database.RecipientTable
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds a new 'timestamp' column to CallTable and copies in the date_sent column data from

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds the CallLinkTable and modifies the CallTable to include an FK into it.

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* [V183_CallLinkTableMigration] accidentally setup a unique constraint incorrectly and missed an index. This fixes it.

View File

@@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import android.preference.PreferenceManager
import androidx.core.content.contentValuesOf
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
@@ -14,6 +13,7 @@ import org.signal.core.util.requireLong
import org.signal.core.util.requireNonNullString
import org.signal.core.util.requireString
import org.thoughtcrime.securesms.database.KeyValueDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.recipients.RecipientId
import org.whispersystems.signalservice.api.push.ServiceId.ACI

View File

@@ -1,11 +1,11 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
import org.signal.core.util.readToList
import org.signal.core.util.requireNonNullString
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* We added some foreign keys to the message table (particularly on original_message_id and latest_revision_id)

View File

@@ -1,9 +1,9 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* I found some other tables that didn't have the proper indexes setup to correspond with their foreign keys.

View File

@@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import android.preference.PreferenceManager
import androidx.core.content.contentValuesOf
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
@@ -14,6 +13,7 @@ import org.signal.core.util.requireLong
import org.signal.core.util.requireNonNullString
import org.signal.core.util.requireString
import org.thoughtcrime.securesms.database.KeyValueDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.recipients.RecipientId
import org.whispersystems.signalservice.api.push.ServiceId.ACI

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Fleshes out the call link table and rebuilds the call event table.

View File

@@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* This migration used to do what [V191_UniqueMessageMigrationV2] does. However, due to bugs, the migration was abandoned.

View File

@@ -1,13 +1,13 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
import org.signal.core.util.readToList
import org.signal.core.util.readToSingleBoolean
import org.signal.core.util.requireLong
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* We want to have a unique constraint on message (author, timestamp, thread). Unfortunately, because we haven't had one for all this time, some dupes

View File

@@ -6,9 +6,9 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Allow ROOT_KEY in CallLinkTable to be null.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Due to a bug, this has been replaced by [V196_BackCallLinksWithRecipientV2]

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Introduces [org.thoughtcrime.securesms.database.KyberPreKeyTable].

View File

@@ -6,12 +6,12 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
import org.signal.core.util.readToList
import org.signal.core.util.requireLong
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Back CallLinks with a Recipient to ease integration and ensure we can support

View File

@@ -6,9 +6,9 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Cleans up the call events table and restricts peer to non-null.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Because getting the color is a simple modulo operation, there is no need to store it in the database.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* New field migration.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds the ACTIVE column to the THREAD table, and mark all current threads active.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* This updates the PNI column to have the proper serialized format.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* This migration rebuilds the recipient table to drop some deprecated columns, rename others to match their intended name, and some new constraints.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Drop the unnecessary thread-date index.

View File

@@ -7,7 +7,7 @@ package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import androidx.sqlite.db.SupportSQLiteDatabase
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Keep track of a "stale timestamp" for one-time prekeys so that we can know when it's safe to delete them.

View File

@@ -6,10 +6,10 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Back CallLinks with a Recipient to ease integration and ensure we can support

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Drop the no longer used push table.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Add an index to speed up thread counts.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* New field migration.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* PNIs were incorrectly being set to ACI column, clear them if present.

View File

@@ -6,11 +6,11 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.logging.Log
import org.signal.core.util.requireString
import org.thoughtcrime.securesms.database.KeyValueDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
import org.whispersystems.signalservice.api.push.ServiceId
/**

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
*/

View File

@@ -6,10 +6,10 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.SqlUtil
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* The android app was the only one enforcing unique story names.

View File

@@ -6,8 +6,8 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* There was a bug where adding a member to a group by username could put that username in the e164 column.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds a phone_number_sharing column to the recipient table.

View File

@@ -6,9 +6,9 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
object V215_RemoveAttachmentUniqueId : SignalDatabaseMigration {

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
object V216_PhoneNumberDiscoverable : SignalDatabaseMigration {
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds a message_extras column to the messages table. This allows us to

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds a pni_signature_verified column to the recipient table, letting us track whether the ACI/PNI association is verified and sync that to storage service.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Changes our PNI prekey stores to use a constant indicating it's for a PNI rather than the specific PNI.

View File

@@ -6,9 +6,9 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.Stopwatch
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* A while back we added an accountId to the prekey tables to support a mix of ACI and PNI identities.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds read state to call events to separately track from the primary messages table.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds the new data hash columns and indexes.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds necessary fields to the recipeints table for the nickname & notes feature.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds archive_cdn and archive_media to attachment.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds local user joined state and group call active state to the

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds index to archive_media_id

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds a new column to track the status of transferring attachments to the archive service.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds the tables for managing name collisions

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* In order to both correct how we display missed calls and not spam users,

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Adds a partial index for some performance-critical queries around unread counts.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
object V231_ArchiveThumbnailColumns : SignalDatabaseMigration {
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Create the table and migrate necessary data.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Updates notified default value from 0 to 1

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Add a separate column to track thumbnail restore state

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Add a column for attachment uuids

View File

@@ -7,9 +7,9 @@ package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import androidx.core.content.contentValuesOf
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.signal.core.util.logging.Log
import org.signal.core.util.update
import org.thoughtcrime.securesms.database.SQLiteDatabase
import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData
/**

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Reset last forced update timestamp for groups to fix a local group state bug.

View File

@@ -6,7 +6,7 @@
package org.thoughtcrime.securesms.database.helpers.migration
import android.app.Application
import net.zetetic.database.sqlcipher.SQLiteDatabase
import org.thoughtcrime.securesms.database.SQLiteDatabase
/**
* Add columns to group and group membership tables needed for group send endorsements.

Some files were not shown because too many files have changed in this diff Show More