From: AsamK Date: Thu, 26 May 2022 15:53:14 +0000 (+0200) Subject: Wrap ignoreAttachments option in a ReceiveConfig record X-Git-Tag: v0.10.7~3 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/fd92a96e1a1d8b5464772667579ee3387a46453b Wrap ignoreAttachments option in a ReceiveConfig record --- diff --git a/lib/src/main/java/org/asamk/signal/manager/Manager.java b/lib/src/main/java/org/asamk/signal/manager/Manager.java index eb00d745..e69826aa 100644 --- a/lib/src/main/java/org/asamk/signal/manager/Manager.java +++ b/lib/src/main/java/org/asamk/signal/manager/Manager.java @@ -12,6 +12,7 @@ import org.asamk.signal.manager.api.Message; import org.asamk.signal.manager.api.MessageEnvelope; import org.asamk.signal.manager.api.NotPrimaryDeviceException; import org.asamk.signal.manager.api.Pair; +import org.asamk.signal.manager.api.ReceiveConfig; import org.asamk.signal.manager.api.RecipientIdentifier; import org.asamk.signal.manager.api.SendGroupMessageResults; import org.asamk.signal.manager.api.SendMessageResults; @@ -206,7 +207,7 @@ public interface Manager extends Closeable { */ void receiveMessages(ReceiveMessageHandler handler) throws IOException; - void setIgnoreAttachments(boolean ignoreAttachments); + void setReceiveConfig(ReceiveConfig receiveConfig); boolean hasCaughtUpWithOldMessages(); diff --git a/lib/src/main/java/org/asamk/signal/manager/ManagerImpl.java b/lib/src/main/java/org/asamk/signal/manager/ManagerImpl.java index b5dcb5e0..daff69e0 100644 --- a/lib/src/main/java/org/asamk/signal/manager/ManagerImpl.java +++ b/lib/src/main/java/org/asamk/signal/manager/ManagerImpl.java @@ -27,6 +27,7 @@ import org.asamk.signal.manager.api.InvalidStickerException; import org.asamk.signal.manager.api.Message; import org.asamk.signal.manager.api.NotPrimaryDeviceException; import org.asamk.signal.manager.api.Pair; +import org.asamk.signal.manager.api.ReceiveConfig; import org.asamk.signal.manager.api.RecipientIdentifier; import org.asamk.signal.manager.api.SendGroupMessageResults; import org.asamk.signal.manager.api.SendMessageResult; @@ -947,8 +948,8 @@ class ManagerImpl implements Manager { } @Override - public void setIgnoreAttachments(final boolean ignoreAttachments) { - context.getReceiveHelper().setIgnoreAttachments(ignoreAttachments); + public void setReceiveConfig(final ReceiveConfig receiveConfig) { + context.getReceiveHelper().setReceiveConfig(receiveConfig); } @Override diff --git a/lib/src/main/java/org/asamk/signal/manager/api/ReceiveConfig.java b/lib/src/main/java/org/asamk/signal/manager/api/ReceiveConfig.java new file mode 100644 index 00000000..0210c430 --- /dev/null +++ b/lib/src/main/java/org/asamk/signal/manager/api/ReceiveConfig.java @@ -0,0 +1,3 @@ +package org.asamk.signal.manager.api; + +public record ReceiveConfig(boolean ignoreAttachments) {} diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java b/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java index 519d01b4..2ee2e14e 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/IncomingMessageHandler.java @@ -22,6 +22,7 @@ import org.asamk.signal.manager.actions.SendSyncKeysAction; import org.asamk.signal.manager.actions.UpdateAccountAttributesAction; import org.asamk.signal.manager.api.MessageEnvelope; import org.asamk.signal.manager.api.Pair; +import org.asamk.signal.manager.api.ReceiveConfig; import org.asamk.signal.manager.api.StickerPackId; import org.asamk.signal.manager.api.TrustLevel; import org.asamk.signal.manager.api.UntrustedIdentityException; @@ -76,7 +77,7 @@ public final class IncomingMessageHandler { public Pair, Exception> handleRetryEnvelope( final SignalServiceEnvelope envelope, - final boolean ignoreAttachments, + final ReceiveConfig receiveConfig, final Manager.ReceiveMessageHandler handler ) { final List actions = new ArrayList<>(); @@ -100,13 +101,13 @@ public final class IncomingMessageHandler { account.getIdentityKeyStore().setRetryingDecryption(false); } } - actions.addAll(checkAndHandleMessage(envelope, content, ignoreAttachments, handler, null)); + actions.addAll(checkAndHandleMessage(envelope, content, receiveConfig, handler, null)); return new Pair<>(actions, null); } public Pair, Exception> handleEnvelope( final SignalServiceEnvelope envelope, - final boolean ignoreAttachments, + final ReceiveConfig receiveConfig, final Manager.ReceiveMessageHandler handler ) { final var actions = new ArrayList(); @@ -156,14 +157,14 @@ public final class IncomingMessageHandler { } } - actions.addAll(checkAndHandleMessage(envelope, content, ignoreAttachments, handler, exception)); + actions.addAll(checkAndHandleMessage(envelope, content, receiveConfig, handler, exception)); return new Pair<>(actions, exception); } private List checkAndHandleMessage( final SignalServiceEnvelope envelope, final SignalServiceContent content, - final boolean ignoreAttachments, + final ReceiveConfig receiveConfig, final Manager.ReceiveMessageHandler handler, final Exception exception ) { @@ -190,7 +191,7 @@ public final class IncomingMessageHandler { } else { List actions; if (content != null) { - actions = handleMessage(envelope, content, ignoreAttachments); + actions = handleMessage(envelope, content, receiveConfig); } else { actions = List.of(); } @@ -205,7 +206,7 @@ public final class IncomingMessageHandler { } public List handleMessage( - SignalServiceEnvelope envelope, SignalServiceContent content, boolean ignoreAttachments + SignalServiceEnvelope envelope, SignalServiceContent content, ReceiveConfig receiveConfig ) { var actions = new ArrayList(); final var senderPair = getSender(envelope, content); @@ -264,12 +265,12 @@ public final class IncomingMessageHandler { false, sender, account.getSelfRecipientId(), - ignoreAttachments)); + receiveConfig.ignoreAttachments())); } if (content.getSyncMessage().isPresent()) { var syncMessage = content.getSyncMessage().get(); - actions.addAll(handleSyncMessage(syncMessage, sender, ignoreAttachments)); + actions.addAll(handleSyncMessage(syncMessage, sender, receiveConfig.ignoreAttachments())); } return actions; diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/ReceiveHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/ReceiveHelper.java index 7083caae..d27fe121 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/ReceiveHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/ReceiveHelper.java @@ -3,6 +3,7 @@ package org.asamk.signal.manager.helper; import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.SignalDependencies; import org.asamk.signal.manager.actions.HandleAction; +import org.asamk.signal.manager.api.ReceiveConfig; import org.asamk.signal.manager.api.UntrustedIdentityException; import org.asamk.signal.manager.storage.SignalAccount; import org.asamk.signal.manager.storage.messageCache.CachedMessage; @@ -34,7 +35,7 @@ public class ReceiveHelper { private final SignalDependencies dependencies; private final Context context; - private boolean ignoreAttachments = false; + private ReceiveConfig receiveConfig = new ReceiveConfig(false); private boolean needsToRetryFailedMessages = false; private boolean hasCaughtUpWithOldMessages = false; private boolean isWaitingForMessage = false; @@ -48,8 +49,8 @@ public class ReceiveHelper { this.context = context; } - public void setIgnoreAttachments(final boolean ignoreAttachments) { - this.ignoreAttachments = ignoreAttachments; + public void setReceiveConfig(final ReceiveConfig receiveConfig) { + this.receiveConfig = receiveConfig; } public void setNeedsToRetryFailedMessages(final boolean needsToRetryFailedMessages) { @@ -192,7 +193,7 @@ public class ReceiveHelper { continue; } - final var result = context.getIncomingMessageHandler().handleEnvelope(envelope, ignoreAttachments, handler); + final var result = context.getIncomingMessageHandler().handleEnvelope(envelope, receiveConfig, handler); for (final var h : result.first()) { final var existingAction = queuedActions.get(h); if (existingAction == null) { @@ -247,8 +248,7 @@ public class ReceiveHelper { return null; } - final var result = context.getIncomingMessageHandler() - .handleRetryEnvelope(envelope, ignoreAttachments, handler); + final var result = context.getIncomingMessageHandler().handleRetryEnvelope(envelope, receiveConfig, handler); final var actions = result.first(); final var exception = result.second(); diff --git a/src/main/java/org/asamk/signal/commands/DaemonCommand.java b/src/main/java/org/asamk/signal/commands/DaemonCommand.java index e6fb1d81..c65d576d 100644 --- a/src/main/java/org/asamk/signal/commands/DaemonCommand.java +++ b/src/main/java/org/asamk/signal/commands/DaemonCommand.java @@ -17,6 +17,7 @@ import org.asamk.signal.json.JsonReceiveMessageHandler; import org.asamk.signal.jsonrpc.SignalJsonRpcDispatcherHandler; import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.MultiAccountManager; +import org.asamk.signal.manager.api.ReceiveConfig; import org.asamk.signal.output.JsonWriter; import org.asamk.signal.output.JsonWriterImpl; import org.asamk.signal.output.OutputWriter; @@ -94,7 +95,7 @@ public class DaemonCommand implements MultiLocalCommand, LocalCommand { final var receiveMode = ns.get("receive-mode"); final var ignoreAttachments = Boolean.TRUE.equals(ns.getBoolean("ignore-attachments")); - m.setIgnoreAttachments(ignoreAttachments); + m.setReceiveConfig(new ReceiveConfig(ignoreAttachments)); addDefaultReceiveHandler(m, noReceiveStdOut ? null : outputWriter, receiveMode != ReceiveMode.ON_START); final Channel inheritedChannel; @@ -156,12 +157,13 @@ public class DaemonCommand implements MultiLocalCommand, LocalCommand { final var receiveMode = ns.get("receive-mode"); final var ignoreAttachments = Boolean.TRUE.equals(ns.getBoolean("ignore-attachments")); + final var receiveConfig = new ReceiveConfig(ignoreAttachments); c.getManagers().forEach(m -> { - m.setIgnoreAttachments(ignoreAttachments); + m.setReceiveConfig(receiveConfig); addDefaultReceiveHandler(m, noReceiveStdOut ? null : outputWriter, receiveMode != ReceiveMode.ON_START); }); c.addOnManagerAddedHandler(m -> { - m.setIgnoreAttachments(ignoreAttachments); + m.setReceiveConfig(receiveConfig); addDefaultReceiveHandler(m, noReceiveStdOut ? null : outputWriter, receiveMode != ReceiveMode.ON_START); }); diff --git a/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java b/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java index d8322949..ca5b8939 100644 --- a/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java +++ b/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java @@ -8,6 +8,7 @@ import org.asamk.signal.OutputType; import org.asamk.signal.commands.exceptions.CommandException; import org.asamk.signal.jsonrpc.SignalJsonRpcDispatcherHandler; import org.asamk.signal.manager.Manager; +import org.asamk.signal.manager.api.ReceiveConfig; import org.asamk.signal.output.JsonWriter; import org.asamk.signal.output.OutputWriter; import org.asamk.signal.util.IOUtils; @@ -45,7 +46,7 @@ public class JsonRpcDispatcherCommand implements LocalCommand { final Namespace ns, final Manager m, final OutputWriter outputWriter ) throws CommandException { final boolean ignoreAttachments = Boolean.TRUE.equals(ns.getBoolean("ignore-attachments")); - m.setIgnoreAttachments(ignoreAttachments); + m.setReceiveConfig(new ReceiveConfig(ignoreAttachments)); final var jsonOutputWriter = (JsonWriter) outputWriter; final Supplier lineSupplier = IOUtils.getLineSupplier(new InputStreamReader(System.in, diff --git a/src/main/java/org/asamk/signal/commands/ReceiveCommand.java b/src/main/java/org/asamk/signal/commands/ReceiveCommand.java index 0cd8b77b..bb7e9b73 100644 --- a/src/main/java/org/asamk/signal/commands/ReceiveCommand.java +++ b/src/main/java/org/asamk/signal/commands/ReceiveCommand.java @@ -10,6 +10,7 @@ import org.asamk.signal.commands.exceptions.CommandException; import org.asamk.signal.commands.exceptions.IOErrorException; import org.asamk.signal.json.JsonReceiveMessageHandler; import org.asamk.signal.manager.Manager; +import org.asamk.signal.manager.api.ReceiveConfig; import org.asamk.signal.output.JsonWriter; import org.asamk.signal.output.OutputWriter; import org.asamk.signal.output.PlainTextWriter; @@ -52,7 +53,7 @@ public class ReceiveCommand implements LocalCommand { ) throws CommandException { double timeout = ns.getDouble("timeout"); boolean ignoreAttachments = Boolean.TRUE.equals(ns.getBoolean("ignore-attachments")); - m.setIgnoreAttachments(ignoreAttachments); + m.setReceiveConfig(new ReceiveConfig(ignoreAttachments)); try { final var handler = outputWriter instanceof JsonWriter ? new JsonReceiveMessageHandler(m, (JsonWriter) outputWriter) : new ReceiveMessageHandler(m, (PlainTextWriter) outputWriter); diff --git a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java index a66d0f41..822bb14b 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java @@ -14,6 +14,7 @@ import org.asamk.signal.manager.api.Message; import org.asamk.signal.manager.api.MessageEnvelope; import org.asamk.signal.manager.api.NotPrimaryDeviceException; import org.asamk.signal.manager.api.Pair; +import org.asamk.signal.manager.api.ReceiveConfig; import org.asamk.signal.manager.api.RecipientIdentifier; import org.asamk.signal.manager.api.SendGroupMessageResults; import org.asamk.signal.manager.api.SendMessageResults; @@ -531,7 +532,7 @@ public class DbusManagerImpl implements Manager { } @Override - public void setIgnoreAttachments(final boolean ignoreAttachments) { + public void setReceiveConfig(final ReceiveConfig receiveConfig) { } @Override