From 5e1ebaa5d47c38dda1b5631aa65a6941b52d1648 Mon Sep 17 00:00:00 2001 From: AsamK Date: Thu, 7 Mar 2024 17:48:46 +0100 Subject: [PATCH] Fix various storage service issues. Resolves #13466 --- .../java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java | 5 +---- .../securesms/storage/AccountRecordProcessor.java | 1 + .../securesms/storage/ContactRecordProcessor.java | 2 +- .../securesms/storage/GroupV1RecordProcessor.java | 3 ++- .../securesms/storage/GroupV2RecordProcessor.java | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) 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 cadb9f69f61..a34b89cee7a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java @@ -411,10 +411,7 @@ private static void processKnownRecords(@NonNull Context context, @NonNull Stora new GroupV1RecordProcessor(context).process(records.gv1, StorageSyncHelper.KEY_GENERATOR); new GroupV2RecordProcessor(context).process(records.gv2, StorageSyncHelper.KEY_GENERATOR); new AccountRecordProcessor(context, freshSelf()).process(records.account, StorageSyncHelper.KEY_GENERATOR); - - if (getKnownTypes().contains(ManifestRecord.Identifier.Type.STORY_DISTRIBUTION_LIST.getValue())) { - new StoryDistributionListRecordProcessor().process(records.storyDistributionLists, StorageSyncHelper.KEY_GENERATOR); - } + new StoryDistributionListRecordProcessor().process(records.storyDistributionLists, StorageSyncHelper.KEY_GENERATOR); } private static @NonNull List getAllLocalStorageIds(@NonNull Recipient self) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/storage/AccountRecordProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/storage/AccountRecordProcessor.java index d876af4f009..cf49b337241 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/storage/AccountRecordProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/storage/AccountRecordProcessor.java @@ -157,6 +157,7 @@ boolean isInvalid(@NonNull SignalAccountRecord remote) { .setPrimarySendsSms(primarySendsSms) .setDefaultReactions(defaultReactions) .setSubscriber(subscriber) + .setStoryViewReceiptsState(storyViewReceiptsState) .setDisplayBadgesOnProfile(displayBadgesOnProfile) .setSubscriptionManuallyCancelled(subscriptionManuallyCancelled) .setKeepMutedChatsArchived(keepMutedChatsArchived) diff --git a/app/src/main/java/org/thoughtcrime/securesms/storage/ContactRecordProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/storage/ContactRecordProcessor.java index aef4c9ba016..4538e16d907 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/storage/ContactRecordProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/storage/ContactRecordProcessor.java @@ -262,7 +262,7 @@ void updateLocal(@NonNull StorageRecordUpdate update) { @Override public int compare(@NonNull SignalContactRecord lhs, @NonNull SignalContactRecord rhs) { - if (Objects.equals(lhs.getAci(), rhs.getAci()) || + if ((lhs.getAci().isPresent() && Objects.equals(lhs.getAci(), rhs.getAci())) || (lhs.getNumber().isPresent() && Objects.equals(lhs.getNumber(), rhs.getNumber())) || (lhs.getPni().isPresent() && Objects.equals(lhs.getPni(), rhs.getPni()))) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/storage/GroupV1RecordProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/storage/GroupV1RecordProcessor.java index 29c13f9c678..f7c05af2755 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/storage/GroupV1RecordProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/storage/GroupV1RecordProcessor.java @@ -92,7 +92,8 @@ boolean isInvalid(@NonNull SignalGroupV1Record remote) { } else { return new SignalGroupV1Record.Builder(keyGenerator.generate(), remote.getGroupId(), unknownFields) .setBlocked(blocked) - .setProfileSharingEnabled(blocked) + .setProfileSharingEnabled(profileSharing) + .setArchived(archived) .setForcedUnread(forcedUnread) .setMuteUntil(muteUntil) .build(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/storage/GroupV2RecordProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/storage/GroupV2RecordProcessor.java index e76b1b9c5a7..c0909f5b88e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/storage/GroupV2RecordProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/storage/GroupV2RecordProcessor.java @@ -85,7 +85,7 @@ boolean isInvalid(@NonNull SignalGroupV2Record remote) { } else { return new SignalGroupV2Record.Builder(keyGenerator.generate(), remote.getMasterKeyBytes(), unknownFields) .setBlocked(blocked) - .setProfileSharingEnabled(blocked) + .setProfileSharingEnabled(profileSharing) .setArchived(archived) .setForcedUnread(forcedUnread) .setMuteUntil(muteUntil)