]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/actions/SendRetryMessageRequestAction.java
Refactor ACI/PNI store handling
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / actions / SendRetryMessageRequestAction.java
index cb4cd246b11900af83d8d65a227e8d6a87fc0fb6..add09e72efd44515cd78f2080c59de868c754a11 100644 (file)
@@ -1,38 +1,46 @@
 package org.asamk.signal.manager.actions;
 
-import org.asamk.signal.manager.groups.GroupId;
+import org.asamk.signal.manager.api.GroupId;
 import org.asamk.signal.manager.helper.Context;
 import org.asamk.signal.manager.storage.recipients.RecipientId;
 import org.signal.libsignal.metadata.ProtocolException;
-import org.whispersystems.libsignal.protocol.CiphertextMessage;
-import org.whispersystems.libsignal.protocol.DecryptionErrorMessage;
-import org.whispersystems.libsignal.util.guava.Optional;
+import org.signal.libsignal.protocol.message.CiphertextMessage;
+import org.signal.libsignal.protocol.message.DecryptionErrorMessage;
 import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
+import org.whispersystems.signalservice.api.push.ServiceId;
 import org.whispersystems.signalservice.internal.push.SignalServiceProtos;
 
+import java.util.Optional;
+
 public class SendRetryMessageRequestAction implements HandleAction {
 
     private final RecipientId recipientId;
+    private final ServiceId serviceId;
     private final ProtocolException protocolException;
     private final SignalServiceEnvelope envelope;
+    private final ServiceId accountId;
 
     public SendRetryMessageRequestAction(
             final RecipientId recipientId,
+            final ServiceId serviceId,
             final ProtocolException protocolException,
-            final SignalServiceEnvelope envelope
+            final SignalServiceEnvelope envelope,
+            final ServiceId accountId
     ) {
         this.recipientId = recipientId;
+        this.serviceId = serviceId;
         this.protocolException = protocolException;
         this.envelope = envelope;
+        this.accountId = accountId;
     }
 
     @Override
     public void execute(Context context) throws Throwable {
-        context.getAccount().getSessionStore().archiveSessions(recipientId);
+        context.getAccount().getAccountData(accountId).getSessionStore().archiveSessions(serviceId);
 
         int senderDevice = protocolException.getSenderDevice();
         Optional<GroupId> groupId = protocolException.getGroupId().isPresent() ? Optional.of(GroupId.unknownVersion(
-                protocolException.getGroupId().get())) : Optional.absent();
+                protocolException.getGroupId().get())) : Optional.empty();
 
         byte[] originalContent;
         int envelopeType;