import org.asamk.signal.manager.api.InvalidNumberException;
import org.asamk.signal.manager.api.InvalidStickerException;
import org.asamk.signal.manager.api.Message;
-import org.asamk.signal.manager.api.NotMasterDeviceException;
+import org.asamk.signal.manager.api.NotPrimaryDeviceException;
import org.asamk.signal.manager.api.RecipientIdentifier;
import org.asamk.signal.manager.api.SendMessageResult;
import org.asamk.signal.manager.api.SendMessageResults;
import org.asamk.signal.manager.api.TypingAction;
import org.asamk.signal.manager.api.UnregisteredRecipientException;
import org.asamk.signal.manager.api.UpdateGroup;
+import org.asamk.signal.manager.api.UpdateProfile;
import org.asamk.signal.manager.api.UserStatus;
import org.asamk.signal.manager.groups.GroupId;
import org.asamk.signal.manager.groups.GroupInviteLinkUrl;
attachments,
List.of(),
Optional.empty(),
- Optional.empty()),
+ Optional.empty(),
+ List.of()),
getSingleRecipientIdentifiers(recipients, m.getSelfNumber()).stream()
.map(RecipientIdentifier.class::cast)
.collect(Collectors.toSet()));
}
}
+ @Override
+ public long sendPaymentNotification(
+ final byte[] receipt, final String note, final String recipient
+ ) throws Error.Failure {
+ try {
+ final var results = m.sendPaymentNotificationMessage(receipt,
+ note,
+ getSingleRecipientIdentifier(recipient, m.getSelfNumber()));
+ checkSendMessageResults(results);
+ return results.timestamp();
+ } catch (IOException e) {
+ throw new Error.Failure(e.getMessage());
+ }
+ }
+
@Override
public void sendTyping(
final String recipient, final boolean stop
attachments,
List.of(),
Optional.empty(),
- Optional.empty()), Set.of(RecipientIdentifier.NoteToSelf.INSTANCE));
+ Optional.empty(),
+ List.of()), Set.of(RecipientIdentifier.NoteToSelf.INSTANCE));
checkSendMessageResults(results);
return results.timestamp();
} catch (AttachmentInvalidException e) {
attachments,
List.of(),
Optional.empty(),
- Optional.empty()), Set.of(getGroupRecipientIdentifier(groupId)));
+ Optional.empty(),
+ List.of()), Set.of(getGroupRecipientIdentifier(groupId)));
checkSendMessageResults(results);
return results.timestamp();
} catch (IOException | InvalidStickerException e) {
@Override
public void setContactName(final String number, final String name) {
try {
- m.setContactName(getSingleRecipientIdentifier(number, m.getSelfNumber()), name);
- } catch (NotMasterDeviceException e) {
+ m.setContactName(getSingleRecipientIdentifier(number, m.getSelfNumber()), name, "");
+ } catch (NotPrimaryDeviceException e) {
throw new Error.Failure("This command doesn't work on linked devices.");
} catch (IOException e) {
throw new Error.Failure("Contact is not registered.");
public void setContactBlocked(final String number, final boolean blocked) {
try {
m.setContactsBlocked(List.of(getSingleRecipientIdentifier(number, m.getSelfNumber())), blocked);
- } catch (NotMasterDeviceException e) {
+ } catch (NotPrimaryDeviceException e) {
throw new Error.Failure("This command doesn't work on linked devices.");
} catch (IOException e) {
throw new Error.Failure(e.getMessage());
public void setGroupBlocked(final byte[] groupId, final boolean blocked) {
try {
m.setGroupsBlocked(List.of(getGroupId(groupId)), blocked);
- } catch (NotMasterDeviceException e) {
+ } catch (NotPrimaryDeviceException e) {
throw new Error.Failure("This command doesn't work on linked devices.");
} catch (GroupNotFoundException e) {
throw new Error.GroupNotFound(e.getMessage());
about = nullIfEmpty(about);
aboutEmoji = nullIfEmpty(aboutEmoji);
avatarPath = nullIfEmpty(avatarPath);
- Optional<File> avatarFile = removeAvatar
- ? Optional.empty()
- : avatarPath == null ? null : Optional.of(new File(avatarPath));
- m.setProfile(givenName, familyName, about, aboutEmoji, avatarFile);
+ File avatarFile = removeAvatar || avatarPath == null ? null : new File(avatarPath);
+ m.updateProfile(UpdateProfile.newBuilder()
+ .withGivenName(givenName)
+ .withFamilyName(familyName)
+ .withAbout(about)
+ .withAboutEmoji(aboutEmoji)
+ .withAvatar(avatarFile)
+ .withDeleteAvatar(removeAvatar)
+ .build());
} catch (IOException e) {
throw new Error.Failure(e.getMessage());
}
m.setRegistrationLockPin(Optional.empty());
} catch (IOException e) {
throw new Error.Failure("Remove pin error: " + e.getMessage());
- } catch (NotMasterDeviceException e) {
+ } catch (NotPrimaryDeviceException e) {
throw new Error.Failure("This command doesn't work on linked devices.");
}
}
m.setRegistrationLockPin(Optional.of(registrationLockPin));
} catch (IOException e) {
throw new Error.Failure("Set pin error: " + e.getMessage());
- } catch (NotMasterDeviceException e) {
+ } catch (NotPrimaryDeviceException e) {
throw new Error.Failure("This command doesn't work on linked devices.");
}
}
Optional.ofNullable(linkPreviews)));
} catch (IOException e) {
throw new Error.Failure("UpdateAccount error: " + e.getMessage());
- } catch (NotMasterDeviceException e) {
+ } catch (NotPrimaryDeviceException e) {
throw new Error.Failure("This command doesn't work on linked devices.");
}
}
private void setIsBlocked(final boolean isBlocked) {
try {
m.setGroupsBlocked(List.of(groupId), isBlocked);
- } catch (NotMasterDeviceException e) {
+ } catch (NotPrimaryDeviceException e) {
throw new Error.Failure("This command doesn't work on linked devices.");
} catch (GroupNotFoundException e) {
throw new Error.GroupNotFound(e.getMessage());