]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/ManagerImpl.java
Rename main/master device to primary device
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / ManagerImpl.java
index ed7ae86b09a67a3460185e8b66a73b43f1b38db0..22fcc14137791b4adce4d708ff7204171aa62fc8 100644 (file)
@@ -25,7 +25,7 @@ import org.asamk.signal.manager.api.InactiveGroupLinkException;
 import org.asamk.signal.manager.api.InvalidDeviceLinkException;
 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.Pair;
 import org.asamk.signal.manager.api.RecipientIdentifier;
 import org.asamk.signal.manager.api.SendGroupMessageResults;
@@ -38,6 +38,7 @@ import org.asamk.signal.manager.api.StickerPackUrl;
 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.config.ServiceEnvironmentConfig;
 import org.asamk.signal.manager.groups.GroupId;
@@ -167,9 +168,9 @@ class ManagerImpl implements Manager {
             logger.trace("Archiving old sessions for {}", recipientId);
             account.getSessionStore().archiveSessions(recipientId);
             account.getSenderKeyStore().deleteSharedWith(recipientId);
-            final var profile = account.getRecipientStore().getProfile(recipientId);
+            final var profile = account.getProfileStore().getProfile(recipientId);
             if (profile != null) {
-                account.getRecipientStore()
+                account.getProfileStore()
                         .storeProfile(recipientId,
                                 Profile.newBuilder(profile)
                                         .withUnidentifiedAccessMode(Profile.UnidentifiedAccessMode.UNKNOWN)
@@ -214,7 +215,8 @@ class ManagerImpl implements Manager {
             final var aci = registeredUsers.get(number);
             final var profile = aci == null
                     ? null
-                    : context.getProfileHelper().getRecipientProfile(account.getRecipientStore().resolveRecipient(aci));
+                    : context.getProfileHelper()
+                            .getRecipientProfile(account.getRecipientResolver().resolveRecipient(aci));
             return new UserStatus(number.isEmpty() ? null : number,
                     aci == null ? null : aci.uuid(),
                     profile != null
@@ -239,9 +241,9 @@ class ManagerImpl implements Manager {
     @Override
     public void updateConfiguration(
             Configuration configuration
-    ) throws NotMasterDeviceException {
-        if (!account.isMasterDevice()) {
-            throw new NotMasterDeviceException();
+    ) throws NotPrimaryDeviceException {
+        if (!account.isPrimaryDevice()) {
+            throw new NotPrimaryDeviceException();
         }
 
         final var configurationStore = account.getConfigurationStore();
@@ -261,10 +263,16 @@ class ManagerImpl implements Manager {
     }
 
     @Override
-    public void setProfile(
-            String givenName, final String familyName, String about, String aboutEmoji, Optional<File> avatar
-    ) throws IOException {
-        context.getProfileHelper().setProfile(givenName, familyName, about, aboutEmoji, avatar);
+    public void updateProfile(UpdateProfile updateProfile) throws IOException {
+        context.getProfileHelper()
+                .setProfile(updateProfile.getGivenName(),
+                        updateProfile.getFamilyName(),
+                        updateProfile.getAbout(),
+                        updateProfile.getAboutEmoji(),
+                        updateProfile.isDeleteAvatar()
+                                ? Optional.empty()
+                                : updateProfile.getAvatar() == null ? null : Optional.of(updateProfile.getAvatar()),
+                        updateProfile.getMobileCoinAddress());
         context.getSyncHelper().sendSyncFetchProfileMessage();
     }
 
@@ -319,9 +327,9 @@ class ManagerImpl implements Manager {
     }
 
     @Override
-    public void setRegistrationLockPin(Optional<String> pin) throws IOException, NotMasterDeviceException {
-        if (!account.isMasterDevice()) {
-            throw new NotMasterDeviceException();
+    public void setRegistrationLockPin(Optional<String> pin) throws IOException, NotPrimaryDeviceException {
+        if (!account.isPrimaryDevice()) {
+            throw new NotPrimaryDeviceException();
         }
         if (pin.isPresent()) {
             context.getAccountHelper().setRegistrationPin(pin.get());
@@ -349,9 +357,7 @@ class ManagerImpl implements Manager {
             return null;
         }
 
-        return Group.from(groupInfo,
-                account.getRecipientStore()::resolveRecipientAddress,
-                account.getSelfRecipientId());
+        return Group.from(groupInfo, account.getRecipientAddressResolver(), account.getSelfRecipientId());
     }
 
     @Override
@@ -452,9 +458,7 @@ class ManagerImpl implements Manager {
     }
 
     private SendMessageResult toSendMessageResult(final org.whispersystems.signalservice.api.messages.SendMessageResult result) {
-        return SendMessageResult.from(result,
-                account.getRecipientStore(),
-                account.getRecipientStore()::resolveRecipientAddress);
+        return SendMessageResult.from(result, account.getRecipientResolver(), account.getRecipientAddressResolver());
     }
 
     private SendMessageResults sendTypingMessage(
@@ -676,21 +680,21 @@ class ManagerImpl implements Manager {
 
     @Override
     public void deleteRecipient(final RecipientIdentifier.Single recipient) {
-        account.removeRecipient(account.getRecipientStore().resolveRecipient(recipient.toPartialRecipientAddress()));
+        account.removeRecipient(account.getRecipientResolver().resolveRecipient(recipient.toPartialRecipientAddress()));
     }
 
     @Override
     public void deleteContact(final RecipientIdentifier.Single recipient) {
         account.getContactStore()
-                .deleteContact(account.getRecipientStore().resolveRecipient(recipient.toPartialRecipientAddress()));
+                .deleteContact(account.getRecipientResolver().resolveRecipient(recipient.toPartialRecipientAddress()));
     }
 
     @Override
     public void setContactName(
             RecipientIdentifier.Single recipient, String name
-    ) throws NotMasterDeviceException, UnregisteredRecipientException {
-        if (!account.isMasterDevice()) {
-            throw new NotMasterDeviceException();
+    ) throws NotPrimaryDeviceException, UnregisteredRecipientException {
+        if (!account.isPrimaryDevice()) {
+            throw new NotPrimaryDeviceException();
         }
         context.getContactHelper().setContactName(context.getRecipientHelper().resolveRecipient(recipient), name);
     }
@@ -698,9 +702,9 @@ class ManagerImpl implements Manager {
     @Override
     public void setContactsBlocked(
             Collection<RecipientIdentifier.Single> recipients, boolean blocked
-    ) throws NotMasterDeviceException, IOException, UnregisteredRecipientException {
-        if (!account.isMasterDevice()) {
-            throw new NotMasterDeviceException();
+    ) throws NotPrimaryDeviceException, IOException, UnregisteredRecipientException {
+        if (!account.isPrimaryDevice()) {
+            throw new NotPrimaryDeviceException();
         }
         if (recipients.size() == 0) {
             return;
@@ -730,9 +734,9 @@ class ManagerImpl implements Manager {
     @Override
     public void setGroupsBlocked(
             final Collection<GroupId> groupIds, final boolean blocked
-    ) throws GroupNotFoundException, NotMasterDeviceException, IOException {
-        if (!account.isMasterDevice()) {
-            throw new NotMasterDeviceException();
+    ) throws GroupNotFoundException, NotPrimaryDeviceException, IOException {
+        if (!account.isPrimaryDevice()) {
+            throw new NotPrimaryDeviceException();
         }
         if (groupIds.size() == 0) {
             return;
@@ -1011,7 +1015,8 @@ class ManagerImpl implements Manager {
             return null;
         }
 
-        final var address = account.getRecipientStore().resolveRecipientAddress(identityInfo.getRecipientId());
+        final var address = account.getRecipientAddressResolver()
+                .resolveRecipientAddress(identityInfo.getRecipientId());
         final var scannableFingerprint = context.getIdentityHelper()
                 .computeSafetyNumberForScanning(identityInfo.getRecipientId(), identityInfo.getIdentityKey());
         return new Identity(address,