From: AsamK Date: Mon, 3 May 2021 18:37:13 +0000 (+0200) Subject: Add sendSyncRequest command X-Git-Tag: v0.8.2~26 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/9e3c9db5c0d8f8e35408ff65a60b7db0e455b73d?ds=sidebyside Add sendSyncRequest command --- 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 38f37ed2..99f71563 100644 --- a/lib/src/main/java/org/asamk/signal/manager/Manager.java +++ b/lib/src/main/java/org/asamk/signal/manager/Manager.java @@ -1192,7 +1192,15 @@ public class Manager implements Closeable { } } - void requestSyncGroups() throws IOException { + public void requestAllSyncData() throws IOException { + requestSyncGroups(); + requestSyncContacts(); + requestSyncBlocked(); + requestSyncConfiguration(); + requestSyncKeys(); + } + + private void requestSyncGroups() throws IOException { var r = SignalServiceProtos.SyncMessage.Request.newBuilder() .setType(SignalServiceProtos.SyncMessage.Request.Type.GROUPS) .build(); @@ -1204,7 +1212,7 @@ public class Manager implements Closeable { } } - void requestSyncContacts() throws IOException { + private void requestSyncContacts() throws IOException { var r = SignalServiceProtos.SyncMessage.Request.newBuilder() .setType(SignalServiceProtos.SyncMessage.Request.Type.CONTACTS) .build(); @@ -1216,7 +1224,7 @@ public class Manager implements Closeable { } } - void requestSyncBlocked() throws IOException { + private void requestSyncBlocked() throws IOException { var r = SignalServiceProtos.SyncMessage.Request.newBuilder() .setType(SignalServiceProtos.SyncMessage.Request.Type.BLOCKED) .build(); @@ -1228,7 +1236,7 @@ public class Manager implements Closeable { } } - void requestSyncConfiguration() throws IOException { + private void requestSyncConfiguration() throws IOException { var r = SignalServiceProtos.SyncMessage.Request.newBuilder() .setType(SignalServiceProtos.SyncMessage.Request.Type.CONFIGURATION) .build(); @@ -1240,7 +1248,7 @@ public class Manager implements Closeable { } } - void requestSyncKeys() throws IOException { + private void requestSyncKeys() throws IOException { var r = SignalServiceProtos.SyncMessage.Request.newBuilder() .setType(SignalServiceProtos.SyncMessage.Request.Type.KEYS) .build(); diff --git a/lib/src/main/java/org/asamk/signal/manager/ProvisioningManager.java b/lib/src/main/java/org/asamk/signal/manager/ProvisioningManager.java index 37ac4cdb..67506be8 100644 --- a/lib/src/main/java/org/asamk/signal/manager/ProvisioningManager.java +++ b/lib/src/main/java/org/asamk/signal/manager/ProvisioningManager.java @@ -138,11 +138,7 @@ public class ProvisioningManager { } try { - m.requestSyncGroups(); - m.requestSyncContacts(); - m.requestSyncBlocked(); - m.requestSyncConfiguration(); - m.requestSyncKeys(); + m.requestAllSyncData(); } catch (Exception e) { logger.error("Failed to request sync messages from linked device."); throw e; diff --git a/src/main/java/org/asamk/signal/commands/Commands.java b/src/main/java/org/asamk/signal/commands/Commands.java index 830049a5..c79ba239 100644 --- a/src/main/java/org/asamk/signal/commands/Commands.java +++ b/src/main/java/org/asamk/signal/commands/Commands.java @@ -27,6 +27,7 @@ public class Commands { addCommand("send", new SendCommand()); addCommand("sendContacts", new SendContactsCommand()); addCommand("sendReaction", new SendReactionCommand()); + addCommand("sendSyncRequest", new SendSyncRequestCommand()); addCommand("setPin", new SetPinCommand()); addCommand("trust", new TrustCommand()); addCommand("unblock", new UnblockCommand()); diff --git a/src/main/java/org/asamk/signal/commands/SendSyncRequestCommand.java b/src/main/java/org/asamk/signal/commands/SendSyncRequestCommand.java new file mode 100644 index 00000000..db021a4c --- /dev/null +++ b/src/main/java/org/asamk/signal/commands/SendSyncRequestCommand.java @@ -0,0 +1,27 @@ +package org.asamk.signal.commands; + +import net.sourceforge.argparse4j.inf.Namespace; +import net.sourceforge.argparse4j.inf.Subparser; + +import org.asamk.signal.commands.exceptions.CommandException; +import org.asamk.signal.commands.exceptions.IOErrorException; +import org.asamk.signal.manager.Manager; + +import java.io.IOException; + +public class SendSyncRequestCommand implements LocalCommand { + + @Override + public void attachToSubparser(final Subparser subparser) { + subparser.help("Send a synchronization request message to master device (for group, contacts, ...)."); + } + + @Override + public void handleCommand(final Namespace ns, final Manager m) throws CommandException { + try { + m.requestAllSyncData(); + } catch (IOException e) { + throw new IOErrorException("Request sync data error: " + e.getMessage()); + } + } +}