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;
*/
void receiveMessages(ReceiveMessageHandler handler) throws IOException;
- void setIgnoreAttachments(boolean ignoreAttachments);
+ void setReceiveConfig(ReceiveConfig receiveConfig);
boolean hasCaughtUpWithOldMessages();
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;
}
@Override
- public void setIgnoreAttachments(final boolean ignoreAttachments) {
- context.getReceiveHelper().setIgnoreAttachments(ignoreAttachments);
+ public void setReceiveConfig(final ReceiveConfig receiveConfig) {
+ context.getReceiveHelper().setReceiveConfig(receiveConfig);
}
@Override
--- /dev/null
+package org.asamk.signal.manager.api;
+
+public record ReceiveConfig(boolean ignoreAttachments) {}
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;
public Pair<List<HandleAction>, Exception> handleRetryEnvelope(
final SignalServiceEnvelope envelope,
- final boolean ignoreAttachments,
+ final ReceiveConfig receiveConfig,
final Manager.ReceiveMessageHandler handler
) {
final List<HandleAction> actions = new ArrayList<>();
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<List<HandleAction>, Exception> handleEnvelope(
final SignalServiceEnvelope envelope,
- final boolean ignoreAttachments,
+ final ReceiveConfig receiveConfig,
final Manager.ReceiveMessageHandler handler
) {
final var actions = new ArrayList<HandleAction>();
}
}
- actions.addAll(checkAndHandleMessage(envelope, content, ignoreAttachments, handler, exception));
+ actions.addAll(checkAndHandleMessage(envelope, content, receiveConfig, handler, exception));
return new Pair<>(actions, exception);
}
private List<HandleAction> checkAndHandleMessage(
final SignalServiceEnvelope envelope,
final SignalServiceContent content,
- final boolean ignoreAttachments,
+ final ReceiveConfig receiveConfig,
final Manager.ReceiveMessageHandler handler,
final Exception exception
) {
} else {
List<HandleAction> actions;
if (content != null) {
- actions = handleMessage(envelope, content, ignoreAttachments);
+ actions = handleMessage(envelope, content, receiveConfig);
} else {
actions = List.of();
}
}
public List<HandleAction> handleMessage(
- SignalServiceEnvelope envelope, SignalServiceContent content, boolean ignoreAttachments
+ SignalServiceEnvelope envelope, SignalServiceContent content, ReceiveConfig receiveConfig
) {
var actions = new ArrayList<HandleAction>();
final var senderPair = getSender(envelope, content);
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;
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;
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;
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) {
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) {
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();
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;
final var receiveMode = ns.<ReceiveMode>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;
final var receiveMode = ns.<ReceiveMode>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);
});
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;
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<String> lineSupplier = IOUtils.getLineSupplier(new InputStreamReader(System.in,
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;
) 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);
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;
}
@Override
- public void setIgnoreAttachments(final boolean ignoreAttachments) {
+ public void setReceiveConfig(final ReceiveConfig receiveConfig) {
}
@Override