X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/08f6dbae05bf84891cdfc21b1c0cc6b87de44b82..27dbc671e09c3efbaaf4d0f16d3ccdfb640ae603:/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java diff --git a/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java b/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java index 4090d128..ef33a6e8 100644 --- a/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java +++ b/src/main/java/org/asamk/signal/commands/JsonRpcDispatcherCommand.java @@ -4,19 +4,18 @@ import net.sourceforge.argparse4j.impl.Arguments; import net.sourceforge.argparse4j.inf.Namespace; import net.sourceforge.argparse4j.inf.Subparser; -import org.asamk.signal.JsonWriter; import org.asamk.signal.OutputType; -import org.asamk.signal.OutputWriter; 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; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.BufferedReader; -import java.io.IOException; import java.io.InputStreamReader; -import java.io.Reader; import java.util.List; import java.util.function.Supplier; @@ -35,6 +34,9 @@ public class JsonRpcDispatcherCommand implements LocalCommand { subparser.addArgument("--ignore-attachments") .help("Don’t download attachments of received messages.") .action(Arguments.storeTrue()); + subparser.addArgument("--send-read-receipts") + .help("Send read receipts for all incoming data messages (in addition to the default delivery receipts)") + .action(Arguments.storeTrue()); } @Override @@ -47,24 +49,14 @@ 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); + final boolean sendReadReceipts = Boolean.TRUE.equals(ns.getBoolean("send-read-receipts")); + m.setReceiveConfig(new ReceiveConfig(ignoreAttachments, sendReadReceipts)); final var jsonOutputWriter = (JsonWriter) outputWriter; - final Supplier lineSupplier = getLineSupplier(new InputStreamReader(System.in)); - - final var handler = new SignalJsonRpcDispatcherHandler(m, jsonOutputWriter, lineSupplier); - handler.handleConnection(); - } + final Supplier lineSupplier = IOUtils.getLineSupplier(new InputStreamReader(System.in, + IOUtils.getConsoleCharset())); - private Supplier getLineSupplier(final Reader reader) { - final var bufferedReader = new BufferedReader(reader); - return () -> { - try { - return bufferedReader.readLine(); - } catch (IOException e) { - logger.error("Error occurred while reading line", e); - return null; - } - }; + final var handler = new SignalJsonRpcDispatcherHandler(jsonOutputWriter, lineSupplier, false); + handler.handleConnection(m); } }