mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-22 02:36:55 +00:00
Fix recipient remapping of sms/mms records.
This commit is contained in:
@@ -561,7 +561,7 @@ public abstract class MessageTable extends DatabaseTable implements MmsSmsColumn
|
||||
public void remapRecipient(@NonNull RecipientId fromId, @NonNull RecipientId toId) {
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(RECIPIENT_ID, toId.serialize());
|
||||
getWritableDatabase().update(getTableName(), values, RECIPIENT_ID + " = ?", SqlUtil.buildArgs(toId));
|
||||
getWritableDatabase().update(getTableName(), values, RECIPIENT_ID + " = ?", SqlUtil.buildArgs(fromId));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2803,18 +2803,6 @@ public class MmsTable extends MessageTable {
|
||||
return new OutgoingMessageReader(message, threadId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remapRecipient(@NonNull RecipientId fromId, @NonNull RecipientId toId) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remapThread(long fromId, long toId) {
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(SmsTable.THREAD_ID, toId);
|
||||
getWritableDatabase().update(TABLE_NAME, values, THREAD_ID + " = ?", SqlUtil.buildArgs(fromId));
|
||||
}
|
||||
|
||||
public static class Status {
|
||||
public static final int DOWNLOAD_INITIALIZED = 1;
|
||||
public static final int DOWNLOAD_NO_CONNECTIVITY = 2;
|
||||
|
||||
@@ -3551,13 +3551,8 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da
|
||||
table.remapRecipient(secondaryId, primaryId)
|
||||
}
|
||||
|
||||
// Thread remaps
|
||||
// Thread Merge Event (remaps happen inside ThreadTable#merge)
|
||||
if (threadMerge.neededMerge) {
|
||||
for (table in threadIdDatabaseTables) {
|
||||
table.remapThread(threadMerge.previousThreadId, threadMerge.threadId)
|
||||
}
|
||||
|
||||
// Thread Merge Event
|
||||
val mergeEvent: ThreadMergeEvent.Builder = ThreadMergeEvent.newBuilder()
|
||||
|
||||
if (secondaryRecord.e164 != null) {
|
||||
|
||||
@@ -1455,6 +1455,10 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
|
||||
check(primary != null)
|
||||
check(secondary != null)
|
||||
|
||||
for (table in threadIdDatabaseTables) {
|
||||
table.remapThread(secondary.threadId, primary.threadId)
|
||||
}
|
||||
|
||||
writableDatabase
|
||||
.delete(TABLE_NAME)
|
||||
.where("$ID = ?", secondary.threadId)
|
||||
|
||||
Reference in New Issue
Block a user