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;
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.*;
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 {
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);
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");
}
static class DeviceLinkInfo {
- String deviceIdentifier;
- ECPublicKey deviceKey;
+ final String deviceIdentifier;
+ final ECPublicKey deviceKey;
DeviceLinkInfo(final String deviceIdentifier, final ECPublicKey deviceKey) {
this.deviceIdentifier = deviceIdentifier;