]> nmode's Git Repositories - signal-cli/commitdiff
Handle account record the same as other records when reading storage
authorAsamK <asamk@gmx.de>
Tue, 24 May 2022 18:09:01 +0000 (20:09 +0200)
committerAsamK <asamk@gmx.de>
Tue, 24 May 2022 19:09:06 +0000 (21:09 +0200)
lib/src/main/java/org/asamk/signal/manager/helper/StorageHelper.java

index ff8232e1113194047a800d15ba91cdff98674ddd..426806ff365d81cc4e78456a72b48a6f9c510de5 100644 (file)
@@ -58,16 +58,12 @@ public class StorageHelper {
 
         account.setStorageManifestVersion(manifest.get().getVersion());
 
-        readAccountRecord(manifest.get());
-
-        final var storageIds = manifest.get()
-                .getStorageIds()
-                .stream()
-                .filter(id -> !id.isUnknown() && id.getType() != ManifestRecord.Identifier.Type.ACCOUNT_VALUE)
-                .toList();
+        final var storageIds = manifest.get().getStorageIds().stream().filter(id -> !id.isUnknown()).toList();
 
         for (final var record : getSignalStorageRecords(storageIds)) {
-            if (record.getType() == ManifestRecord.Identifier.Type.GROUPV2_VALUE) {
+            if (record.getType() == ManifestRecord.Identifier.Type.ACCOUNT_VALUE) {
+                readAccountRecord(record);
+            } else if (record.getType() == ManifestRecord.Identifier.Type.GROUPV2_VALUE) {
                 readGroupV2Record(record);
             } else if (record.getType() == ManifestRecord.Identifier.Type.GROUPV1_VALUE) {
                 readGroupV1Record(record);
@@ -174,14 +170,7 @@ public class StorageHelper {
         }
     }
 
-    private void readAccountRecord(final SignalStorageManifest manifest) throws IOException {
-        Optional<StorageId> accountId = manifest.getAccountStorageId();
-        if (accountId.isEmpty()) {
-            logger.warn("Manifest has no account record, ignoring.");
-            return;
-        }
-
-        SignalStorageRecord record = getSignalStorageRecord(accountId.get());
+    private void readAccountRecord(final SignalStorageRecord record) throws IOException {
         if (record == null) {
             logger.warn("Could not find account record, even though we had an ID, ignoring.");
             return;