mirror of
https://github.com/AsamK/signal-cli
synced 2025-09-02 04:20:38 +00:00
Add blockContact and unblockContact subcommands
This commit is contained in:
parent
3b2682a57a
commit
7f0ce68ec1
7 changed files with 97 additions and 1 deletions
1
.idea/codeStyles/Project.xml
generated
1
.idea/codeStyles/Project.xml
generated
|
@ -16,7 +16,6 @@
|
|||
<option name="BLANK_LINES_AFTER_CLASS_HEADER" value="1" />
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="XML">
|
||||
<option name="FORCE_REARRANGE_MODE" value="0" />
|
||||
<arrangement>
|
||||
<rules />
|
||||
</arrangement>
|
||||
|
|
|
@ -24,6 +24,10 @@ public interface Signal extends DBusInterface {
|
|||
|
||||
void setContactName(String number, String name);
|
||||
|
||||
void blockContact(String number);
|
||||
|
||||
void unblockContact(String number);
|
||||
|
||||
List<byte[]> getGroupIds();
|
||||
|
||||
String getGroupName(byte[] groupId);
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
package org.asamk.signal.commands;
|
||||
|
||||
import net.sourceforge.argparse4j.inf.Namespace;
|
||||
import net.sourceforge.argparse4j.inf.Subparser;
|
||||
import org.asamk.signal.manager.Manager;
|
||||
|
||||
public class BlockContactCommand implements LocalCommand {
|
||||
|
||||
@Override
|
||||
public void attachToSubparser(final Subparser subparser) {
|
||||
subparser.addArgument("number")
|
||||
.help("Contact number");
|
||||
subparser.help("Block the given contact (no messages will be received)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int handleCommand(final Namespace ns, final Manager m) {
|
||||
if (!m.isRegistered()) {
|
||||
System.err.println("User is not registered.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
String number = ns.getString("number");
|
||||
|
||||
m.blockContact(number);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ public class Commands {
|
|||
|
||||
static {
|
||||
addCommand("addDevice", new AddDeviceCommand());
|
||||
addCommand("blockContact", new BlockContactCommand());
|
||||
addCommand("daemon", new DaemonCommand());
|
||||
addCommand("link", new LinkCommand());
|
||||
addCommand("listContacts", new ListContactsCommand());
|
||||
|
@ -25,6 +26,7 @@ public class Commands {
|
|||
addCommand("updateContact", new UpdateContactCommand());
|
||||
addCommand("setPin", new SetPinCommand());
|
||||
addCommand("trust", new TrustCommand());
|
||||
addCommand("unblockContact", new UnblockContactCommand());
|
||||
addCommand("unregister", new UnregisterCommand());
|
||||
addCommand("updateAccount", new UpdateAccountCommand());
|
||||
addCommand("updateGroup", new UpdateGroupCommand());
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
package org.asamk.signal.commands;
|
||||
|
||||
import net.sourceforge.argparse4j.inf.Namespace;
|
||||
import net.sourceforge.argparse4j.inf.Subparser;
|
||||
import org.asamk.signal.manager.Manager;
|
||||
|
||||
public class UnblockContactCommand implements LocalCommand {
|
||||
|
||||
@Override
|
||||
public void attachToSubparser(final Subparser subparser) {
|
||||
subparser.addArgument("number")
|
||||
.help("Contact number");
|
||||
subparser.help("Unblock the given contact (messages will be received again)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int handleCommand(final Namespace ns, final Manager m) {
|
||||
if (!m.isRegistered()) {
|
||||
System.err.println("User is not registered.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
String number = ns.getString("number");
|
||||
|
||||
m.unblockContact(number);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
|
@ -686,6 +686,36 @@ public class Manager implements Signal {
|
|||
account.save();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void blockContact(String number) {
|
||||
ContactInfo contact = account.getContactStore().getContact(number);
|
||||
if (contact == null) {
|
||||
contact = new ContactInfo();
|
||||
contact.number = number;
|
||||
System.err.println("Adding and blocking contact " + number);
|
||||
} else {
|
||||
System.err.println("Blocking contact " + number);
|
||||
}
|
||||
contact.blocked = true;
|
||||
account.getContactStore().updateContact(contact);
|
||||
account.save();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unblockContact(String number) {
|
||||
ContactInfo contact = account.getContactStore().getContact(number);
|
||||
if (contact == null) {
|
||||
contact = new ContactInfo();
|
||||
contact.number = number;
|
||||
System.err.println("Adding and unblocking contact " + number);
|
||||
} else {
|
||||
System.err.println("Unblocking contact " + number);
|
||||
}
|
||||
contact.blocked = false;
|
||||
account.getContactStore().updateContact(contact);
|
||||
account.save();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<byte[]> getGroupIds() {
|
||||
List<GroupInfo> groups = getGroups();
|
||||
|
|
|
@ -19,6 +19,9 @@ public class ContactInfo {
|
|||
@JsonProperty
|
||||
public String profileKey;
|
||||
|
||||
@JsonProperty(defaultValue = "false")
|
||||
public boolean blocked;
|
||||
|
||||
@JsonIgnore
|
||||
public SignalServiceAddress getAddress() {
|
||||
return new SignalServiceAddress(null, number);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue