]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/helper/PreKeyHelper.java
Update libsignal-service-java
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / helper / PreKeyHelper.java
index f56a705587a5d1ff9c021ecdeb1d34f412ada20a..9a4d140e25cdc9e94ef6c47e4c5e40feb1d719f0 100644 (file)
@@ -9,6 +9,7 @@ import org.slf4j.LoggerFactory;
 import org.whispersystems.libsignal.IdentityKeyPair;
 import org.whispersystems.libsignal.state.PreKeyRecord;
 import org.whispersystems.libsignal.state.SignedPreKeyRecord;
+import org.whispersystems.signalservice.api.push.ServiceIdType;
 
 import java.io.IOException;
 import java.util.List;
@@ -28,17 +29,32 @@ public class PreKeyHelper {
     }
 
     public void refreshPreKeysIfNecessary() throws IOException {
-        if (dependencies.getAccountManager().getPreKeysCount() < ServiceConfig.PREKEY_MINIMUM_COUNT) {
-            refreshPreKeys();
+        refreshPreKeysIfNecessary(ServiceIdType.ACI);
+        refreshPreKeysIfNecessary(ServiceIdType.PNI);
+    }
+
+    public void refreshPreKeysIfNecessary(ServiceIdType serviceIdType) throws IOException {
+        if (dependencies.getAccountManager().getPreKeysCount(serviceIdType) < ServiceConfig.PREKEY_MINIMUM_COUNT) {
+            refreshPreKeys(serviceIdType);
         }
     }
 
     public void refreshPreKeys() throws IOException {
+        refreshPreKeys(ServiceIdType.ACI);
+        refreshPreKeys(ServiceIdType.PNI);
+    }
+
+    public void refreshPreKeys(ServiceIdType serviceIdType) throws IOException {
+        if (serviceIdType != ServiceIdType.ACI) {
+            // TODO implement
+            return;
+        }
         var oneTimePreKeys = generatePreKeys();
-        final var identityKeyPair = account.getIdentityKeyPair();
+        final var identityKeyPair = account.getAciIdentityKeyPair();
         var signedPreKeyRecord = generateSignedPreKey(identityKeyPair);
 
-        dependencies.getAccountManager().setPreKeys(identityKeyPair.getPublicKey(), signedPreKeyRecord, oneTimePreKeys);
+        dependencies.getAccountManager()
+                .setPreKeys(serviceIdType, identityKeyPair.getPublicKey(), signedPreKeyRecord, oneTimePreKeys);
     }
 
     private List<PreKeyRecord> generatePreKeys() {