]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/Manager.java
Update libsignal-service-java
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / Manager.java
index b7a97c469373c3ae4dab5d075f1dba416e35e439..8f49126fc724c7754cef07e9736bed6702371581 100644 (file)
@@ -1,6 +1,5 @@
 package org.asamk.signal.manager;
 
-import org.asamk.signal.manager.api.AccountCheckException;
 import org.asamk.signal.manager.api.AttachmentInvalidException;
 import org.asamk.signal.manager.api.Configuration;
 import org.asamk.signal.manager.api.Device;
@@ -12,7 +11,6 @@ import org.asamk.signal.manager.api.InvalidStickerException;
 import org.asamk.signal.manager.api.Message;
 import org.asamk.signal.manager.api.MessageEnvelope;
 import org.asamk.signal.manager.api.NotMasterDeviceException;
-import org.asamk.signal.manager.api.NotRegisteredException;
 import org.asamk.signal.manager.api.Pair;
 import org.asamk.signal.manager.api.RecipientIdentifier;
 import org.asamk.signal.manager.api.SendGroupMessageResults;
@@ -23,16 +21,13 @@ 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.config.ServiceConfig;
-import org.asamk.signal.manager.config.ServiceEnvironment;
+import org.asamk.signal.manager.api.UserStatus;
 import org.asamk.signal.manager.groups.GroupId;
 import org.asamk.signal.manager.groups.GroupInviteLinkUrl;
 import org.asamk.signal.manager.groups.GroupNotFoundException;
 import org.asamk.signal.manager.groups.GroupSendingNotAllowedException;
 import org.asamk.signal.manager.groups.LastGroupAdminException;
 import org.asamk.signal.manager.groups.NotAGroupMemberException;
-import org.asamk.signal.manager.storage.SignalAccount;
-import org.asamk.signal.manager.storage.identities.TrustNewIdentity;
 import org.asamk.signal.manager.storage.recipients.Contact;
 import org.asamk.signal.manager.storage.recipients.Profile;
 import org.asamk.signal.manager.storage.recipients.RecipientAddress;
@@ -43,53 +38,14 @@ import java.io.File;
 import java.io.IOException;
 import java.net.URI;
 import java.time.Duration;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
-import java.util.UUID;
 
 public interface Manager extends Closeable {
 
-    static Manager init(
-            String number,
-            File settingsPath,
-            ServiceEnvironment serviceEnvironment,
-            String userAgent,
-            TrustNewIdentity trustNewIdentity
-    ) throws IOException, NotRegisteredException, AccountCheckException {
-        var pathConfig = PathConfig.createDefault(settingsPath);
-
-        if (!SignalAccount.userExists(pathConfig.dataPath(), number)) {
-            throw new NotRegisteredException();
-        }
-
-        var account = SignalAccount.load(pathConfig.dataPath(), number, true, trustNewIdentity);
-
-        if (!account.isRegistered()) {
-            account.close();
-            throw new NotRegisteredException();
-        }
-
-        account.initDatabase();
-        final var serviceEnvironmentConfig = ServiceConfig.getServiceEnvironmentConfig(serviceEnvironment, userAgent);
-
-        final var manager = new ManagerImpl(account, pathConfig, serviceEnvironmentConfig, userAgent);
-
-        try {
-            manager.checkAccountState();
-        } catch (IOException e) {
-            manager.close();
-            throw new AccountCheckException("Error while checking account " + account + ": " + e.getMessage(), e);
-        }
-
-        return manager;
-    }
-
-    static void initLogger() {
-        LibSignalLogger.initLogger();
-    }
-
     static boolean isValidNumber(final String e164Number, final String countryCode) {
         return PhoneNumberFormatter.isValidNumber(e164Number, countryCode);
     }
@@ -103,7 +59,7 @@ public interface Manager extends Closeable {
      * @return A map of numbers to canonicalized number and uuid. If a number is not registered the uuid is null.
      * @throws IOException if it's unable to get the contacts to check if they're registered
      */
-    Map<String, Pair<String, UUID>> areUsersRegistered(Set<String> numbers) throws IOException;
+    Map<String, UserStatus> getUserStatus(Set<String> numbers) throws IOException;
 
     void updateAccountAttributes(String deviceName) throws IOException;
 
@@ -196,12 +152,12 @@ public interface Manager extends Closeable {
             RecipientIdentifier.Single recipient, String name
     ) throws NotMasterDeviceException, IOException, UnregisteredRecipientException;
 
-    void setContactBlocked(
-            RecipientIdentifier.Single recipient, boolean blocked
+    void setContactsBlocked(
+            Collection<RecipientIdentifier.Single> recipient, boolean blocked
     ) throws NotMasterDeviceException, IOException, UnregisteredRecipientException;
 
-    void setGroupBlocked(
-            GroupId groupId, boolean blocked
+    void setGroupsBlocked(
+            Collection<GroupId> groupId, boolean blocked
     ) throws GroupNotFoundException, IOException, NotMasterDeviceException;
 
     /**
@@ -306,6 +262,8 @@ public interface Manager extends Closeable {
      */
     boolean trustIdentityAllKeys(RecipientIdentifier.Single recipient) throws UnregisteredRecipientException;
 
+    void addAddressChangedListener(Runnable listener);
+
     void addClosedListener(Runnable listener);
 
     @Override