]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/Manager.java
Update hypfvieh dbus-java 4.0 beta which uses native java unix sockets
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / Manager.java
index c7131d394056ac395761e2ee3f5c718b065045ef..2ffb5337e8ae9b10d4c50109ab03deb6141f1fb0 100644 (file)
@@ -1,11 +1,13 @@
 package org.asamk.signal.manager;
 
+import org.asamk.signal.manager.api.Configuration;
 import org.asamk.signal.manager.api.Device;
 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.Message;
+import org.asamk.signal.manager.api.MessageEnvelope;
 import org.asamk.signal.manager.api.Pair;
 import org.asamk.signal.manager.api.RecipientIdentifier;
 import org.asamk.signal.manager.api.SendGroupMessageResults;
@@ -25,13 +27,7 @@ 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;
-import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentRemoteId;
-import org.whispersystems.signalservice.api.messages.SignalServiceContent;
-import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
-import org.whispersystems.signalservice.api.push.SignalServiceAddress;
-import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException;
 import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
-import org.whispersystems.signalservice.internal.contacts.crypto.UnauthenticatedResponseException;
 
 import java.io.Closeable;
 import java.io.File;
@@ -72,7 +68,15 @@ public interface Manager extends Closeable {
         return new ManagerImpl(account, pathConfig, serviceEnvironmentConfig, userAgent);
     }
 
-    static List<String> getAllLocalNumbers(File settingsPath) {
+    static void initLogger() {
+        LibSignalLogger.initLogger();
+    }
+
+    static boolean isValidNumber(final String e164Number, final String countryCode) {
+        return PhoneNumberFormatter.isValidNumber(e164Number, countryCode);
+    }
+
+    static List<String> getAllLocalAccountNumbers(File settingsPath) {
         var pathConfig = PathConfig.createDefault(settingsPath);
         final var dataPath = pathConfig.dataPath();
         final var files = dataPath.listFiles();
@@ -96,12 +100,9 @@ public interface Manager extends Closeable {
 
     void updateAccountAttributes(String deviceName) throws IOException;
 
-    void updateConfiguration(
-            final Boolean readReceipts,
-            final Boolean unidentifiedDeliveryIndicators,
-            final Boolean typingIndicators,
-            final Boolean linkPreviews
-    ) throws IOException, NotMasterDeviceException;
+    Configuration getConfiguration();
+
+    void updateConfiguration(Configuration configuration) throws IOException, NotMasterDeviceException;
 
     void setProfile(
             String givenName, String familyName, String about, String aboutEmoji, Optional<File> avatar
@@ -119,9 +120,9 @@ public interface Manager extends Closeable {
 
     void addDeviceLink(URI linkUri) throws IOException, InvalidDeviceLinkException;
 
-    void setRegistrationLockPin(Optional<String> pin) throws IOException, UnauthenticatedResponseException;
+    void setRegistrationLockPin(Optional<String> pin) throws IOException;
 
-    Profile getRecipientProfile(RecipientIdentifier.Single recipient) throws UnregisteredUserException;
+    Profile getRecipientProfile(RecipientIdentifier.Single recipient) throws IOException;
 
     List<Group> getGroups();
 
@@ -175,7 +176,7 @@ public interface Manager extends Closeable {
 
     void setContactName(
             RecipientIdentifier.Single recipient, String name
-    ) throws NotMasterDeviceException, UnregisteredUserException;
+    ) throws NotMasterDeviceException, IOException;
 
     void setContactBlocked(
             RecipientIdentifier.Single recipient, boolean blocked
@@ -197,7 +198,11 @@ public interface Manager extends Closeable {
      * Add a handler to receive new messages.
      * Will start receiving messages from server, if not already started.
      */
-    void addReceiveHandler(ReceiveMessageHandler handler);
+    default void addReceiveHandler(ReceiveMessageHandler handler) {
+        addReceiveHandler(handler, false);
+    }
+
+    void addReceiveHandler(ReceiveMessageHandler handler, final boolean isWeakListener);
 
     /**
      * Remove a handler to receive new messages.
@@ -223,8 +228,6 @@ public interface Manager extends Closeable {
 
     boolean isContactBlocked(RecipientIdentifier.Single recipient);
 
-    File getAttachmentFile(SignalServiceAttachmentRemoteId attachmentId);
-
     void sendContacts() throws IOException;
 
     List<Pair<RecipientAddress, Contact>> getContacts();
@@ -245,13 +248,16 @@ public interface Manager extends Closeable {
 
     boolean trustIdentityAllKeys(RecipientIdentifier.Single recipient);
 
-    SignalServiceAddress resolveSignalServiceAddress(SignalServiceAddress address);
+    void addClosedListener(Runnable listener);
 
     @Override
     void close() throws IOException;
 
     interface ReceiveMessageHandler {
 
-        void handleMessage(SignalServiceEnvelope envelope, SignalServiceContent decryptedContent, Throwable e);
+        ReceiveMessageHandler EMPTY = (envelope, e) -> {
+        };
+
+        void handleMessage(MessageEnvelope envelope, Throwable e);
     }
 }