Properly clear unknown ids from storage service.

This commit is contained in:
Greyson Parrelli
2024-09-10 11:33:22 -04:00
committed by Cody Henthorne
parent cb126a2f08
commit 0fe9df3023
3 changed files with 17 additions and 1 deletions

View File

@ -82,6 +82,19 @@ public class UnknownStorageIdTable extends DatabaseTable {
return ids;
}
public void deleteAllWithTypes(List<Integer> types) {
SQLiteDatabase db = getWritableDatabase();
db.beginTransaction();
try {
for (int type : types) {
db.delete(TABLE_NAME, TYPE + " = ?", SqlUtil.buildArgs(type));
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
public @Nullable SignalStorageRecord getById(@NonNull byte[] rawId) {
String query = STORAGE_ID + " = ?";
String[] args = new String[] { Base64.encodeWithPadding(rawId) };

View File

@ -386,7 +386,7 @@ public class StorageSyncJob extends BaseJob {
db.beginTransaction();
try {
processKnownRecords(context, records);
SignalDatabase.unknownStorageIds().getAllWithTypes(knownTypes);
SignalDatabase.unknownStorageIds().deleteAllWithTypes(knownTypes);
db.setTransactionSuccessful();
} finally {
db.endTransaction();

View File

@ -37,6 +37,9 @@ class StorageServicePlugin : Plugin {
} else if (record.storyDistributionList.isPresent) {
row += "Distribution List"
row += record.storyDistributionList.get().toProto().toString()
} else if (record.callLink.isPresent) {
row += "Call Link"
row += record.callLink.get().toProto().toString()
} else {
row += "Unknown"
row += ""