diff --git a/app/src/main/java/org/thoughtcrime/securesms/attachments/Attachment.java b/app/src/main/java/org/thoughtcrime/securesms/attachments/Attachment.java index 90696f2ce7..fc997388f2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/attachments/Attachment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/attachments/Attachment.java @@ -108,6 +108,8 @@ public abstract class Attachment { @Nullable public abstract Uri getUri(); + public abstract @Nullable Uri getPublicUri(); + public int getTransferState() { return transferState; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/attachments/DatabaseAttachment.java b/app/src/main/java/org/thoughtcrime/securesms/attachments/DatabaseAttachment.java index 0232116426..023109572c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/attachments/DatabaseAttachment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/attachments/DatabaseAttachment.java @@ -65,6 +65,15 @@ public class DatabaseAttachment extends Attachment { } } + @Override + public @Nullable Uri getPublicUri() { + if (hasData) { + return PartAuthority.getAttachmentPublicUri(getUri()); + } else { + return null; + } + } + public AttachmentId getAttachmentId() { return attachmentId; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/attachments/MmsNotificationAttachment.java b/app/src/main/java/org/thoughtcrime/securesms/attachments/MmsNotificationAttachment.java index 94698068a2..7ec89b80d8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/attachments/MmsNotificationAttachment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/attachments/MmsNotificationAttachment.java @@ -20,6 +20,11 @@ public class MmsNotificationAttachment extends Attachment { return null; } + @Override + public @Nullable Uri getPublicUri() { + return null; + } + private static int getTransferStateFromStatus(int status) { if (status == MmsDatabase.Status.DOWNLOAD_INITIALIZED || status == MmsDatabase.Status.DOWNLOAD_NO_CONNECTIVITY) diff --git a/app/src/main/java/org/thoughtcrime/securesms/attachments/PointerAttachment.java b/app/src/main/java/org/thoughtcrime/securesms/attachments/PointerAttachment.java index 431e5b0779..7912fd8e89 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/attachments/PointerAttachment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/attachments/PointerAttachment.java @@ -46,6 +46,11 @@ public class PointerAttachment extends Attachment { return null; } + @Override + public @Nullable Uri getPublicUri() { + return null; + } + public static List forPointers(Optional> pointers) { List results = new LinkedList<>(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/attachments/TombstoneAttachment.java b/app/src/main/java/org/thoughtcrime/securesms/attachments/TombstoneAttachment.java index 4cdee54b8d..0504367899 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/attachments/TombstoneAttachment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/attachments/TombstoneAttachment.java @@ -23,4 +23,9 @@ public class TombstoneAttachment extends Attachment { public @Nullable Uri getUri() { return null; } + + @Override + public @Nullable Uri getPublicUri() { + return null; + } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/attachments/UriAttachment.java b/app/src/main/java/org/thoughtcrime/securesms/attachments/UriAttachment.java index cc28d760d2..c5fe46a936 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/attachments/UriAttachment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/attachments/UriAttachment.java @@ -58,6 +58,11 @@ public class UriAttachment extends Attachment { return dataUri; } + @Override + public @Nullable Uri getPublicUri() { + return null; + } + @Override public boolean equals(Object other) { return other != null && other instanceof UriAttachment && ((UriAttachment) other).dataUri.equals(this.dataUri); diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.java b/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.java index 47904d83e0..55a8396412 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.java @@ -55,6 +55,10 @@ public abstract class Slide { return attachment.getUri(); } + public @Nullable Uri getPublicUri() { + return attachment.getPublicUri(); + } + @NonNull public Optional getBody() { return Optional.absent(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java index 05b3518d9c..7ae4497626 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/SingleRecipientNotificationBuilder.java @@ -268,7 +268,12 @@ public class SingleRecipientNotificationBuilder extends AbstractNotificationBuil if (slideDeck != null && slideDeck.getThumbnailSlide() != null) { Slide thumbnail = slideDeck.getThumbnailSlide(); - dataUri = thumbnail.getUri(); + if (Build.VERSION.SDK_INT >= 28) { + dataUri = thumbnail.getPublicUri(); + } else { + dataUri = thumbnail.getUri(); + } + mimeType = thumbnail.getContentType(); }