From 5aa7e3a7c14fc432a38138b94b02e4ca55a82520 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 26 May 2026 12:33:42 -0400 Subject: [PATCH] Only take remote release note sync data if present. --- .../securesms/storage/AccountRecordProcessor.kt | 8 ++++---- .../thoughtcrime/securesms/storage/StorageSyncHelper.kt | 8 +++++--- .../src/main/protowire/StorageService.proto | 8 ++++---- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/storage/AccountRecordProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/storage/AccountRecordProcessor.kt index 817aa9e6dc..e0b9fd52e4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/storage/AccountRecordProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/storage/AccountRecordProcessor.kt @@ -140,10 +140,10 @@ class AccountRecordProcessor( backupTier = local.proto.backupTier ?: remote.proto.backupTier automaticKeyVerificationDisabled = remote.proto.automaticKeyVerificationDisabled hasSeenAdminDeleteEducationDialog = remote.proto.hasSeenAdminDeleteEducationDialog - releaseNotesChatArchived = remote.proto.releaseNotesChatArchived - releaseNotesChatMutedUntilTimestamp = remote.proto.releaseNotesChatMutedUntilTimestamp - releaseNotesChatBlocked = remote.proto.releaseNotesChatBlocked - releaseNotesChatMarkedUnread = remote.proto.releaseNotesChatMarkedUnread + releaseNotesChatArchived = remote.proto.releaseNotesChatArchived ?: local.proto.releaseNotesChatArchived + releaseNotesChatMutedUntilTimestamp = remote.proto.releaseNotesChatMutedUntilTimestamp ?: local.proto.releaseNotesChatMutedUntilTimestamp + releaseNotesChatBlocked = remote.proto.releaseNotesChatBlocked ?: local.proto.releaseNotesChatBlocked + releaseNotesChatMarkedUnread = remote.proto.releaseNotesChatMarkedUnread ?: local.proto.releaseNotesChatMarkedUnread safeSetPayments(payments?.enabled == true, payments?.entropy?.toByteArray()) safeSetSubscriber(donationSubscriberId, donationSubscriberCurrencyCode) diff --git a/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.kt b/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.kt index 787b0f319c..23f0c2a232 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.kt @@ -324,9 +324,11 @@ object StorageSyncHelper { } SignalStore.releaseChannel.releaseChannelRecipientId?.let { releaseChannelId -> - SignalDatabase.recipients.setBlocked(releaseChannelId, update.new.proto.releaseNotesChatBlocked) - SignalDatabase.recipients.setMuted(releaseChannelId, update.new.proto.releaseNotesChatMutedUntilTimestamp) - SignalDatabase.threads.applyStorageSyncReleaseChannelUpdate(releaseChannelId, update.new.proto.releaseNotesChatArchived, update.new.proto.releaseNotesChatMarkedUnread) + update.new.proto.releaseNotesChatBlocked?.let { SignalDatabase.recipients.setBlocked(releaseChannelId, it) } + update.new.proto.releaseNotesChatMutedUntilTimestamp?.let { SignalDatabase.recipients.setMuted(releaseChannelId, it) } + if (update.new.proto.releaseNotesChatArchived != null && update.new.proto.releaseNotesChatMarkedUnread != null) { + SignalDatabase.threads.applyStorageSyncReleaseChannelUpdate(releaseChannelId, update.new.proto.releaseNotesChatArchived!!, update.new.proto.releaseNotesChatMarkedUnread!!) + } Recipient.live(releaseChannelId).refresh() } diff --git a/lib/libsignal-service/src/main/protowire/StorageService.proto b/lib/libsignal-service/src/main/protowire/StorageService.proto index 4bc239f578..2ef121affc 100644 --- a/lib/libsignal-service/src/main/protowire/StorageService.proto +++ b/lib/libsignal-service/src/main/protowire/StorageService.proto @@ -301,10 +301,10 @@ message AccountRecord { bool notificationProfileSyncDisabled = 45; bool automaticKeyVerificationDisabled = 46; bool hasSeenAdminDeleteEducationDialog = 47; - bool releaseNotesChatArchived = 48; - uint64 releaseNotesChatMutedUntilTimestamp = 49; - bool releaseNotesChatBlocked = 50; - bool releaseNotesChatMarkedUnread = 51; + optional bool releaseNotesChatArchived = 48; + optional uint64 releaseNotesChatMutedUntilTimestamp = 49; + optional bool releaseNotesChatBlocked = 50; + optional bool releaseNotesChatMarkedUnread = 51; } message StoryDistributionListRecord {