]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/manager/Utils.java
Add commands to update profile name and avatar
[signal-cli] / src / main / java / org / asamk / signal / manager / Utils.java
index f47dc1cefad67a8cb8985dcb9f206581d0e6df35..2636a301b0cb13c3045e1e7751547adc8d459d06 100644 (file)
@@ -1,6 +1,5 @@
 package org.asamk.signal.manager;
 
-import org.apache.http.util.TextUtils;
 import org.asamk.signal.AttachmentInvalidException;
 import org.signal.libsignal.metadata.certificate.CertificateValidator;
 import org.whispersystems.libsignal.IdentityKey;
@@ -16,6 +15,7 @@ import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 import org.whispersystems.signalservice.api.util.InvalidNumberException;
 import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
+import org.whispersystems.signalservice.api.util.StreamDetails;
 import org.whispersystems.signalservice.internal.util.Base64;
 
 import java.io.*;
@@ -25,6 +25,8 @@ import java.net.URLEncoder;
 import java.nio.file.Files;
 import java.util.*;
 
+import static org.whispersystems.signalservice.internal.util.Util.isEmpty;
+
 class Utils {
 
     static List<SignalServiceAttachment> getSignalServiceAttachments(List<String> attachments) throws AttachmentInvalidException {
@@ -55,6 +57,16 @@ class Utils {
         return new SignalServiceAttachmentStream(attachmentStream, mime, attachmentSize, Optional.of(attachmentFile.getName()), false, preview, 0, 0, caption, null);
     }
 
+    static StreamDetails createStreamDetailsFromFile(File file) throws IOException {
+        InputStream stream = new FileInputStream(file);
+        final long size = file.length();
+        String mime = Files.probeContentType(file.toPath());
+        if (mime == null) {
+            mime = "application/octet-stream";
+        }
+        return new StreamDetails(stream, mime, size);
+    }
+
     static CertificateValidator getCertificateValidator() {
         try {
             ECPublicKey unidentifiedSenderTrustRoot = Curve.decodePoint(Base64.decode(BaseConfig.UNIDENTIFIED_SENDER_TRUST_ROOT), 0);
@@ -100,7 +112,7 @@ class Utils {
         String deviceIdentifier = query.get("uuid");
         String publicKeyEncoded = query.get("pub_key");
 
-        if (TextUtils.isEmpty(deviceIdentifier) || TextUtils.isEmpty(publicKeyEncoded)) {
+        if (isEmpty(deviceIdentifier) || isEmpty(publicKeyEncoded)) {
             throw new RuntimeException("Invalid device link uri");
         }
 
@@ -223,8 +235,8 @@ class Utils {
 
     static class DeviceLinkInfo {
 
-        String deviceIdentifier;
-        ECPublicKey deviceKey;
+        final String deviceIdentifier;
+        final ECPublicKey deviceKey;
 
         DeviceLinkInfo(final String deviceIdentifier, final ECPublicKey deviceKey) {
             this.deviceIdentifier = deviceIdentifier;