X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/2e4d346bc826da5c35a17841772cf81ba4f98101..c788c5a40e6ac57d613c735dd9790de52be47d5f:/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java diff --git a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java index c0dc1cf8..cefb7a82 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java @@ -10,6 +10,7 @@ import org.asamk.signal.manager.api.Group; import org.asamk.signal.manager.api.Identity; import org.asamk.signal.manager.api.InactiveGroupLinkException; import org.asamk.signal.manager.api.InvalidDeviceLinkException; +import org.asamk.signal.manager.api.InvalidUsernameException; import org.asamk.signal.manager.api.Message; import org.asamk.signal.manager.api.MessageEnvelope; import org.asamk.signal.manager.api.NotPrimaryDeviceException; @@ -147,10 +148,20 @@ public class DbusManagerImpl implements Manager { emptyIfNull(updateProfile.getFamilyName()), emptyIfNull(updateProfile.getAbout()), emptyIfNull(updateProfile.getAboutEmoji()), - updateProfile.getAvatar() == null ? "" : updateProfile.getAvatar().getPath(), + updateProfile.getAvatar() == null ? "" : updateProfile.getAvatar(), updateProfile.isDeleteAvatar()); } + @Override + public String setUsername(final String username) throws IOException, InvalidUsernameException { + throw new UnsupportedOperationException(); + } + + @Override + public void deleteUsername() throws IOException { + throw new UnsupportedOperationException(); + } + @Override public void unregister() throws IOException { signal.unregister(); @@ -219,7 +230,15 @@ public class DbusManagerImpl implements Manager { throw new UnsupportedOperationException(); } final var group = getRemoteObject(signal.getGroup(groupId.serialize()), Signal.Group.class); - group.quitGroup(); + try { + group.quitGroup(); + } catch (Signal.Error.GroupNotFound e) { + throw new GroupNotFoundException(groupId); + } catch (Signal.Error.NotAGroupMember e) { + throw new NotAGroupMemberException(groupId, group.Get("org.asamk.Signal.Group", "Name")); + } catch (Signal.Error.LastGroupAdmin e) { + throw new LastGroupAdminException(groupId, group.Get("org.asamk.Signal.Group", "Name")); + } return new SendGroupMessageResults(0, List.of()); } @@ -231,11 +250,11 @@ public class DbusManagerImpl implements Manager { @Override public Pair createGroup( - final String name, final Set members, final File avatarFile + final String name, final Set members, final String avatarFile ) throws IOException, AttachmentInvalidException { final var newGroupId = signal.createGroup(emptyIfNull(name), members.stream().map(RecipientIdentifier.Single::getIdentifier).toList(), - avatarFile == null ? "" : avatarFile.getPath()); + avatarFile == null ? "" : avatarFile); return new Pair<>(GroupId.unknownVersion(newGroupId), new SendGroupMessageResults(0, List.of())); } @@ -253,7 +272,7 @@ public class DbusManagerImpl implements Manager { if (updateGroup.getAvatarFile() != null) { group.Set("org.asamk.Signal.Group", "Avatar", - updateGroup.getAvatarFile() == null ? "" : updateGroup.getAvatarFile().getPath()); + updateGroup.getAvatarFile() == null ? "" : updateGroup.getAvatarFile()); } if (updateGroup.getExpirationTimer() != null) { group.Set("org.asamk.Signal.Group", "MessageExpirationTimer", updateGroup.getExpirationTimer()); @@ -778,6 +797,7 @@ public class DbusManagerImpl implements Manager { Optional.empty(), List.of(), List.of(), + List.of(), List.of())), Optional.empty(), Optional.empty(), @@ -852,6 +872,7 @@ public class DbusManagerImpl implements Manager { Optional.empty(), List.of(), List.of(), + List.of(), List.of())), Optional.empty())), Optional.empty(),