From 0fe9df3023fb84e10077500edb618d2d59eb2c95 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 10 Sep 2024 11:33:22 -0400 Subject: [PATCH] Properly clear unknown ids from storage service. --- .../securesms/database/UnknownStorageIdTable.java | 13 +++++++++++++ .../thoughtcrime/securesms/jobs/StorageSyncJob.java | 2 +- .../thoughtcrime/securesms/StorageServicePlugin.kt | 3 +++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/UnknownStorageIdTable.java b/app/src/main/java/org/thoughtcrime/securesms/database/UnknownStorageIdTable.java index a5098dc091..5cc50a28a4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/UnknownStorageIdTable.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/UnknownStorageIdTable.java @@ -82,6 +82,19 @@ public class UnknownStorageIdTable extends DatabaseTable { return ids; } + public void deleteAllWithTypes(List 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) }; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java index 3f219b985b..c66c57fc1b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java @@ -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(); diff --git a/app/src/spinner/java/org/thoughtcrime/securesms/StorageServicePlugin.kt b/app/src/spinner/java/org/thoughtcrime/securesms/StorageServicePlugin.kt index 05632b7774..d3680046ad 100644 --- a/app/src/spinner/java/org/thoughtcrime/securesms/StorageServicePlugin.kt +++ b/app/src/spinner/java/org/thoughtcrime/securesms/StorageServicePlugin.kt @@ -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 += ""