mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-24 03:35:58 +00:00
Improve updates to CdsDatabase.
This commit is contained in:
@@ -278,7 +278,7 @@ public class AttachmentDatabase extends Database {
|
||||
}
|
||||
|
||||
SQLiteDatabase database = databaseHelper.getSignalReadableDatabase();
|
||||
SqlUtil.Query query = SqlUtil.buildCollectionQuery(MMS_ID, mmsIds);
|
||||
SqlUtil.Query query = SqlUtil.buildSingleCollectionQuery(MMS_ID, mmsIds);
|
||||
|
||||
Map<Long, List<DatabaseAttachment>> output = new HashMap<>();
|
||||
|
||||
|
||||
@@ -68,13 +68,10 @@ class CdsDatabase(context: Context, databaseHelper: SignalDatabase) : Database(c
|
||||
SqlUtil.buildBulkInsert(TABLE_NAME, arrayOf(E164), insertValues)
|
||||
.forEach { writableDatabase.execSQL(it.where, it.whereArgs) }
|
||||
|
||||
for (e164 in seenE164s) {
|
||||
writableDatabase
|
||||
.update(TABLE_NAME)
|
||||
.values(LAST_SEEN_AT to lastSeen)
|
||||
.where("$E164 = ?", e164)
|
||||
.run()
|
||||
}
|
||||
val contentValues = contentValuesOf(LAST_SEEN_AT to lastSeen)
|
||||
|
||||
SqlUtil.buildCollectionQuery(E164, seenE164s)
|
||||
.forEach { query -> writableDatabase.update(TABLE_NAME, contentValues, query.where, query.whereArgs) }
|
||||
|
||||
writableDatabase.setTransactionSuccessful()
|
||||
} finally {
|
||||
|
||||
@@ -330,7 +330,7 @@ public abstract class MessageDatabase extends Database implements MmsSmsColumns
|
||||
}
|
||||
|
||||
SQLiteDatabase db = databaseHelper.getSignalWritableDatabase();
|
||||
SqlUtil.Query where = SqlUtil.buildCollectionQuery(ID, ids);
|
||||
SqlUtil.Query where = SqlUtil.buildSingleCollectionQuery(ID, ids);
|
||||
ContentValues values = new ContentValues();
|
||||
|
||||
values.put(NOTIFIED_TIMESTAMP, timestamp);
|
||||
|
||||
@@ -1378,7 +1378,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
|
||||
|
||||
db.beginTransaction()
|
||||
try {
|
||||
val query = SqlUtil.buildCollectionQuery(ID, ids)
|
||||
val query = SqlUtil.buildSingleCollectionQuery(ID, ids)
|
||||
val values = ContentValues().apply {
|
||||
put(MUTE_UNTIL, until)
|
||||
}
|
||||
@@ -2518,7 +2518,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
|
||||
}
|
||||
|
||||
if (Util.hasItems(idsToUpdate)) {
|
||||
val query = SqlUtil.buildCollectionQuery(ID, idsToUpdate)
|
||||
val query = SqlUtil.buildSingleCollectionQuery(ID, idsToUpdate)
|
||||
val values = ContentValues(1).apply {
|
||||
put(PROFILE_SHARING, 1)
|
||||
}
|
||||
@@ -2536,7 +2536,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
|
||||
return
|
||||
}
|
||||
|
||||
var query = SqlUtil.buildCollectionQuery(ID, recipientIds)
|
||||
var query = SqlUtil.buildSingleCollectionQuery(ID, recipientIds)
|
||||
val db = writableDatabase
|
||||
|
||||
db.query(TABLE_NAME, arrayOf(ID), "${query.where} AND $GROUPS_IN_COMMON = 0", query.whereArgs, null, null, null).use { cursor ->
|
||||
@@ -2547,7 +2547,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
|
||||
}
|
||||
|
||||
if (Util.hasItems(idsToUpdate)) {
|
||||
query = SqlUtil.buildCollectionQuery(ID, idsToUpdate)
|
||||
query = SqlUtil.buildSingleCollectionQuery(ID, idsToUpdate)
|
||||
val values = ContentValues().apply {
|
||||
put(GROUPS_IN_COMMON, 1)
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ class SessionDatabase(context: Context, databaseHelper: SignalDatabase) : Databa
|
||||
}
|
||||
|
||||
fun getAllFor(serviceId: ServiceId, addressNames: List<String?>): List<SessionRow> {
|
||||
val query: SqlUtil.Query = SqlUtil.buildCollectionQuery(ADDRESS, addressNames)
|
||||
val query: SqlUtil.Query = SqlUtil.buildSingleCollectionQuery(ADDRESS, addressNames)
|
||||
val results: MutableList<SessionRow> = LinkedList()
|
||||
|
||||
val queryString = "$ACCOUNT_ID = ? AND (${query.where})"
|
||||
|
||||
@@ -472,7 +472,7 @@ public class ThreadDatabase extends Database {
|
||||
|
||||
db.beginTransaction();
|
||||
try {
|
||||
SqlUtil.Query query = SqlUtil.buildCollectionQuery(ID, threadIds);
|
||||
SqlUtil.Query query = SqlUtil.buildSingleCollectionQuery(ID, threadIds);
|
||||
ContentValues contentValues = new ContentValues();
|
||||
|
||||
contentValues.put(READ, ReadStatus.FORCED_UNREAD.serialize());
|
||||
@@ -1062,7 +1062,7 @@ public class ThreadDatabase extends Database {
|
||||
|
||||
public Map<RecipientId, Long> getThreadIdsIfExistsFor(@NonNull RecipientId ... recipientIds) {
|
||||
SQLiteDatabase db = databaseHelper.getSignalReadableDatabase();
|
||||
SqlUtil.Query query = SqlUtil.buildCollectionQuery(RECIPIENT_ID, Arrays.asList(recipientIds));
|
||||
SqlUtil.Query query = SqlUtil.buildSingleCollectionQuery(RECIPIENT_ID, Arrays.asList(recipientIds));
|
||||
|
||||
Map<RecipientId, Long> results = new HashMap<>();
|
||||
try (Cursor cursor = db.query(TABLE_NAME, new String[]{ ID, RECIPIENT_ID }, query.getWhere(), query.getWhereArgs(), null, null, null, "1")) {
|
||||
@@ -1140,7 +1140,7 @@ public class ThreadDatabase extends Database {
|
||||
|
||||
public @NonNull List<RecipientId> getRecipientIdsForThreadIds(Collection<Long> threadIds) {
|
||||
SQLiteDatabase db = databaseHelper.getSignalReadableDatabase();
|
||||
SqlUtil.Query query = SqlUtil.buildCollectionQuery(ID, threadIds);
|
||||
SqlUtil.Query query = SqlUtil.buildSingleCollectionQuery(ID, threadIds);
|
||||
List<RecipientId> ids = new ArrayList<>(threadIds.size());
|
||||
|
||||
try (Cursor cursor = db.query(TABLE_NAME, new String[] { RECIPIENT_ID }, query.getWhere(), query.getWhereArgs(), null, null, null)) {
|
||||
|
||||
@@ -7,8 +7,6 @@ import android.database.Cursor;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import org.signal.core.util.CursorUtil;
|
||||
import org.thoughtcrime.securesms.util.Base64;
|
||||
import org.signal.core.util.SqlUtil;
|
||||
@@ -67,7 +65,7 @@ public class UnknownStorageIdDatabase extends Database {
|
||||
*/
|
||||
public List<StorageId> getAllWithTypes(List<Integer> types) {
|
||||
List<StorageId> ids = new ArrayList<>();
|
||||
SqlUtil.Query query = SqlUtil.buildCollectionQuery(TYPE, types);
|
||||
SqlUtil.Query query = SqlUtil.buildSingleCollectionQuery(TYPE, types);
|
||||
|
||||
try (Cursor cursor = databaseHelper.getSignalReadableDatabase().query(TABLE_NAME, null, query.getWhere(), query.getWhereArgs(), null, null, null)) {
|
||||
while (cursor != null && cursor.moveToNext()) {
|
||||
|
||||
Reference in New Issue
Block a user