]> nmode's Git Repositories - signal-cli/commitdiff
Update dependencies, add attachment filename support
authorAsamK <asamk@gmx.de>
Sat, 1 Apr 2017 10:46:33 +0000 (12:46 +0200)
committerAsamK <asamk@gmx.de>
Sat, 1 Apr 2017 13:27:37 +0000 (15:27 +0200)
Fixes #76

build.gradle
src/main/java/org/asamk/signal/Main.java
src/main/java/org/asamk/signal/Manager.java

index 346c13e7e03c3f8444d9091747913299642a7d31..7440b5fcbea911ddb99ae0a6cc214656edbae7bc 100644 (file)
@@ -19,7 +19,7 @@ repositories {
 }
 
 dependencies {
-    compile 'com.github.turasa:signal-service-java:2.5.0_unofficial_1'
+    compile 'com.github.turasa:signal-service-java:2.5.5_unofficial_1'
     compile 'org.bouncycastle:bcprov-jdk15on:1.55'
     compile 'net.sourceforge.argparse4j:argparse4j:0.7.0'
     compile 'org.freedesktop.dbus:dbus-java:2.7.0'
index f9084516787b80314c52e66dabb6779029b5bd55..c896365953217b69b76099d3ccdc3d0d6f283402 100644 (file)
@@ -1038,6 +1038,7 @@ public class Main {
             if (attachment.isPointer()) {
                 final SignalServiceAttachmentPointer pointer = attachment.asPointer();
                 System.out.println("  Id: " + pointer.getId() + " Key length: " + pointer.getKey().length + (pointer.getRelay().isPresent() ? " Relay: " + pointer.getRelay().get() : ""));
+                System.out.println("  Filename: " + (pointer.getFileName().isPresent() ? pointer.getFileName().get() : "-"));
                 System.out.println("  Size: " + (pointer.getSize().isPresent() ? pointer.getSize().get() + " bytes" : "<unavailable>") + (pointer.getPreview().isPresent() ? " (Preview is available: " + pointer.getPreview().get().length + " bytes)" : ""));
                 File file = m.getAttachmentFile(pointer.getId());
                 if (file.exists()) {
index e817c0d0420a4dee786a5e5fff7996910ed29393..575bba222b243862a5102bb4f97c9ece96690fd2 100644 (file)
@@ -96,6 +96,7 @@ class Manager implements Signal {
 
     private final static int PREKEY_MINIMUM_COUNT = 20;
     private static final int PREKEY_BATCH_SIZE = 100;
+    private static final int MAX_ATTACHMENT_SIZE = 150 * 1024  * 1024;
 
     private final String settingsPath;
     private final String dataPath;
@@ -557,7 +558,7 @@ class Manager implements Signal {
         if (mime == null) {
             mime = "application/octet-stream";
         }
-        return new SignalServiceAttachmentStream(attachmentStream, mime, attachmentSize, null);
+        return new SignalServiceAttachmentStream(attachmentStream, mime, attachmentSize, Optional.of(attachmentFile.getName()), null);
     }
 
     private Optional<SignalServiceAttachmentStream> createGroupAvatarAttachment(byte[] groupId) throws IOException {
@@ -1407,7 +1408,7 @@ class Manager implements Signal {
         final SignalServiceMessageReceiver messageReceiver = new SignalServiceMessageReceiver(serviceUrls, username, password, deviceId, signalingKey, USER_AGENT);
 
         File tmpFile = Util.createTempFile();
-        try (InputStream input = messageReceiver.retrieveAttachment(pointer, tmpFile)) {
+        try (InputStream input = messageReceiver.retrieveAttachment(pointer, tmpFile, MAX_ATTACHMENT_SIZE)) {
             try (OutputStream output = new FileOutputStream(outputFile)) {
                 byte[] buffer = new byte[4096];
                 int read;
@@ -1431,7 +1432,7 @@ class Manager implements Signal {
 
     private InputStream retrieveAttachmentAsStream(SignalServiceAttachmentPointer pointer, File tmpFile) throws IOException, InvalidMessageException {
         final SignalServiceMessageReceiver messageReceiver = new SignalServiceMessageReceiver(serviceUrls, username, password, deviceId, signalingKey, USER_AGENT);
-        return messageReceiver.retrieveAttachment(pointer, tmpFile);
+        return messageReceiver.retrieveAttachment(pointer, tmpFile, MAX_ATTACHMENT_SIZE);
     }
 
     private String canonicalizeNumber(String number) throws InvalidNumberException {