Make use of attachment size and preview

This commit is contained in:
AsamK 2015-09-22 13:23:16 +02:00
parent b91abad2b5
commit cd8de7878c
2 changed files with 20 additions and 2 deletions

View file

@ -262,9 +262,11 @@ public class Main {
for (TextSecureAttachment attachment : message.getAttachments().get()) { for (TextSecureAttachment attachment : message.getAttachments().get()) {
System.out.println("- " + attachment.getContentType() + " (" + (attachment.isPointer() ? "Pointer" : "") + (attachment.isStream() ? "Stream" : "") + ")"); System.out.println("- " + attachment.getContentType() + " (" + (attachment.isPointer() ? "Pointer" : "") + (attachment.isStream() ? "Stream" : "") + ")");
if (attachment.isPointer()) { if (attachment.isPointer()) {
System.out.println(" Id: " + attachment.asPointer().getId() + " Key length: " + attachment.asPointer().getKey().length + (attachment.asPointer().getRelay().isPresent() ? " Relay: " + attachment.asPointer().getRelay().get() : "")); final TextSecureAttachmentPointer pointer = attachment.asPointer();
System.out.println(" Id: " + pointer.getId() + " Key length: " + pointer.getKey().length + (pointer.getRelay().isPresent() ? " Relay: " + pointer.getRelay().get() : ""));
System.out.println((pointer.getSize().isPresent() ? " Size: " + pointer.getSize().get() : " bytes") + (pointer.getPreview().isPresent() ? " (Preview is available: " + pointer.getPreview().get().length + " bytes)" : ""));
try { try {
File file = m.retrieveAttachment(attachment.asPointer()); File file = m.retrieveAttachment(pointer);
System.out.println(" Stored plaintext in: " + file); System.out.println(" Stored plaintext in: " + file);
} catch (IOException | InvalidMessageException e) { } catch (IOException | InvalidMessageException e) {
System.out.println("Failed to retrieve attachment: " + e.getMessage()); System.out.println("Failed to retrieve attachment: " + e.getMessage());

View file

@ -292,11 +292,27 @@ class Manager {
} finally { } finally {
if (output != null) { if (output != null) {
output.close(); output.close();
output = null;
} }
if (!tmpFile.delete()) { if (!tmpFile.delete()) {
System.err.println("Failed to delete temp file: " + tmpFile); System.err.println("Failed to delete temp file: " + tmpFile);
} }
} }
if (pointer.getPreview().isPresent()) {
File previewFile = new File(outputFile + ".preview");
try {
output = new FileOutputStream(previewFile);
byte[] preview = pointer.getPreview().get();
output.write(preview, 0, preview.length);
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
} finally {
if (output != null) {
output.close();
}
}
}
return outputFile; return outputFile;
} }