package org.asamk.signal;
import org.asamk.signal.manager.Manager;
-import org.asamk.signal.manager.UntrustedIdentityException;
+import org.asamk.signal.manager.api.UntrustedIdentityException;
import org.asamk.signal.manager.api.MessageEnvelope;
import org.asamk.signal.manager.api.RecipientIdentifier;
import org.asamk.signal.manager.groups.GroupId;
import org.asamk.signal.manager.storage.recipients.RecipientAddress;
+import org.asamk.signal.output.PlainTextWriter;
import org.asamk.signal.util.DateUtils;
+import org.asamk.signal.util.Hex;
import org.slf4j.helpers.MessageFormatter;
import java.util.ArrayList;
-import java.util.Base64;
import java.util.stream.Collectors;
public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
@Override
public void handleMessage(MessageEnvelope envelope, Throwable exception) {
+ synchronized (writer) {
+ handleMessageInternal(envelope, exception);
+ }
+ }
+
+ private void handleMessageInternal(MessageEnvelope envelope, Throwable exception) {
var source = envelope.sourceAddress();
writer.println("Envelope from: {} (device: {})",
source.map(this::formatContact).orElse("unknown source"),
"The user’s key is untrusted, either the user has reinstalled Signal or a third party sent this message.");
final var recipientName = e.getSender().getLegacyIdentifier();
writer.println(
- "Use 'signal-cli -u {} listIdentities -n {}', verify the key and run 'signal-cli -u {} trust -v \"FINGER_PRINT\" {}' to mark it as trusted",
+ "Use 'signal-cli -a {} listIdentities -n {}', verify the key and run 'signal-cli -a {} trust -v \"FINGER_PRINT\" {}' to mark it as trusted",
m.getSelfNumber(),
recipientName,
m.getSelfNumber(),
recipientName);
writer.println(
- "If you don't care about security, use 'signal-cli -u {} trust -a {}' to trust it without verification",
+ "If you don't care about security, use 'signal-cli -a {} trust -a {}' to trust it without verification",
m.getSelfNumber(),
recipientName);
} else {
private void printSticker(
final PlainTextWriter writer, final MessageEnvelope.Data.Sticker sticker
) {
- writer.println("Pack id: {}", Base64.getEncoder().encodeToString(sticker.packId()));
- writer.println("Pack key: {}", Base64.getEncoder().encodeToString(sticker.packKey()));
+ writer.println("Pack id: {}", Hex.toStringCondensed(sticker.packId().serialize()));
writer.println("Sticker id: {}", sticker.stickerId());
}