From b37bbcaaa5fd7b076cde01295dde401363e0b20f Mon Sep 17 00:00:00 2001 From: jeffrey-signal Date: Thu, 31 Jul 2025 08:29:54 -0400 Subject: [PATCH] Convert DecryptableUri to Kotlin. --- .../avatar/picker/AvatarPickerItem.kt | 4 +- .../securesms/components/InputPanel.java | 4 +- .../securesms/components/QuoteView.java | 2 +- .../components/SharedContactView.java | 2 +- .../securesms/components/ThumbnailView.java | 4 +- .../components/ZoomingImageView.java | 5 +- .../SharedContactDetailsActivity.java | 3 +- .../ConversationStickerSuggestionAdapter.java | 2 +- .../v2/items/V2ConversationItemThumbnail.kt | 4 +- .../ConversationListItem.java | 6 +-- .../securesms/database/StickerTable.kt | 2 +- .../details/AddGroupDetailsFragment.java | 46 +++++++++---------- .../jobs/ArchiveThumbnailUploadJob.kt | 2 +- .../jobs/AttachmentCompressionJob.java | 20 ++++---- .../securesms/jobs/PushSendJob.java | 2 +- .../sticker/KeyboardStickerListAdapter.kt | 2 +- .../sticker/KeyboardStickerPackListAdapter.kt | 2 +- .../securesms/mediasend/Camera1Fragment.java | 2 +- .../securesms/mediasend/CameraXFragment.java | 2 +- .../mediasend/MediaSendGifFragment.java | 4 +- .../v2/gallery/MediaGallerySelectableItem.kt | 4 +- .../v2/gallery/MediaGallerySelectedItem.kt | 4 +- .../v2/review/MediaReviewSelectedItem.kt | 4 +- .../StoriesMultiselectForwardActivity.kt | 6 +-- .../mms/DecryptableStreamUriLoader.java | 36 +-------------- .../securesms/mms/DecryptableUri.kt | 16 +++++++ .../securesms/mms/SignalGlideComponents.java | 1 - .../v2/NotificationExtensions.kt | 2 +- .../v2/NotificationThumbnails.kt | 4 +- .../revealable/ViewOnceMessageActivity.java | 2 +- .../securesms/scribbles/UriGlideRenderer.java | 4 +- .../stickers/StickerPackListItems.kt | 2 +- .../stickers/StickerPackPreviewActivity.java | 4 +- .../stickers/StickerPackPreviewActivityV2.kt | 4 +- .../stickers/StickerPackPreviewAdapter.java | 4 +- .../securesms/stories/StoryTextPostModel.kt | 4 +- .../stories/landing/StoriesLandingItem.kt | 6 +-- .../securesms/stories/my/MyStoriesItem.kt | 4 +- .../stories/viewer/page/StoryCache.kt | 4 +- .../stories/viewer/post/StoryImageLoader.kt | 4 +- .../StoriesSharedElementCrossFaderView.kt | 6 +-- .../securesms/util/MediaUtil.java | 2 +- .../securesms/wallpaper/UriChatWallpaper.java | 6 +-- 43 files changed, 113 insertions(+), 140 deletions(-) create mode 100644 app/src/main/java/org/thoughtcrime/securesms/mms/DecryptableUri.kt diff --git a/app/src/main/java/org/thoughtcrime/securesms/avatar/picker/AvatarPickerItem.kt b/app/src/main/java/org/thoughtcrime/securesms/avatar/picker/AvatarPickerItem.kt index 3939da24a9..9fb5bcbf87 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/avatar/picker/AvatarPickerItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/avatar/picker/AvatarPickerItem.kt @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.avatar.Avatar import org.thoughtcrime.securesms.avatar.AvatarRenderer import org.thoughtcrime.securesms.avatar.Avatars -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel @@ -132,7 +132,7 @@ object AvatarPickerItem { } is Avatar.Photo -> { textView.visible = false - Glide.with(imageView).load(DecryptableStreamUriLoader.DecryptableUri(model.avatar.uri)).into(imageView) + Glide.with(imageView).load(DecryptableUri(model.avatar.uri)).into(imageView) } is Avatar.Resource -> { imageView.setPadding((imageView.width * 0.2).toInt()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java b/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java index 49fdb80821..af74c932fd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java @@ -64,7 +64,7 @@ import org.thoughtcrime.securesms.database.model.StickerRecord; import org.thoughtcrime.securesms.keyboard.KeyboardPage; import org.thoughtcrime.securesms.linkpreview.LinkPreview; import org.thoughtcrime.securesms.linkpreview.LinkPreviewRepository; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.mms.QuoteModel; import org.thoughtcrime.securesms.mms.Slide; import org.thoughtcrime.securesms.mms.SlideDeck; @@ -481,7 +481,7 @@ public class InputPanel extends ConstraintLayout if (imageVideoSlide != null && imageVideoSlide.getUri() != null) { editMessageThumbnail.setVisibility(VISIBLE); - requestManager.load(new DecryptableStreamUriLoader.DecryptableUri(imageVideoSlide.getUri())) + requestManager.load(new DecryptableUri(imageVideoSlide.getUri())) .centerCrop() .diskCacheStrategy(DiskCacheStrategy.RESOURCE) .into(editMessageThumbnail); diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java b/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java index 790687c82b..248ce418b3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java @@ -32,7 +32,7 @@ import org.thoughtcrime.securesms.components.quotes.QuoteViewColorTheme; import org.thoughtcrime.securesms.conversation.MessageStyler; import org.thoughtcrime.securesms.database.model.Mention; import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.mms.QuoteModel; import org.thoughtcrime.securesms.mms.Slide; import org.thoughtcrime.securesms.mms.SlideDeck; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/SharedContactView.java b/app/src/main/java/org/thoughtcrime/securesms/components/SharedContactView.java index 59b0497b84..59494272f4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/SharedContactView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/SharedContactView.java @@ -24,7 +24,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.contactshare.Contact; import org.thoughtcrime.securesms.contactshare.ContactUtil; import org.thoughtcrime.securesms.database.RecipientTable; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.recipients.LiveRecipient; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientForeverObserver; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java b/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java index 01c1327c19..8ec2c7560b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java @@ -46,9 +46,8 @@ import org.thoughtcrime.securesms.attachments.DatabaseAttachment; import org.thoughtcrime.securesms.blurhash.BlurHash; import org.thoughtcrime.securesms.components.transfercontrols.TransferControlView; import org.thoughtcrime.securesms.database.AttachmentTable; -import org.thoughtcrime.securesms.keyvalue.InternalValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.mms.ImageSlide; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.mms.Slide; @@ -58,7 +57,6 @@ import org.thoughtcrime.securesms.mms.VideoSlide; import org.thoughtcrime.securesms.stories.StoryTextPostModel; import org.thoughtcrime.securesms.util.AttachmentUtil; import org.thoughtcrime.securesms.util.MediaUtil; -import org.thoughtcrime.securesms.util.RemoteConfig; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.views.Stub; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ZoomingImageView.java b/app/src/main/java/org/thoughtcrime/securesms/components/ZoomingImageView.java index b1f4fe88c1..9d206e0818 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ZoomingImageView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ZoomingImageView.java @@ -24,14 +24,11 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.subsampling.AttachmentBitmapDecoder; import org.thoughtcrime.securesms.components.subsampling.AttachmentRegionDecoder; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.util.ActionRequestListener; -import org.thoughtcrime.securesms.util.BitmapDecodingException; import org.thoughtcrime.securesms.util.BitmapUtil; import org.thoughtcrime.securesms.util.MediaUtil; -import org.thoughtcrime.securesms.util.ViewUtil; -import org.signal.core.util.concurrent.SimpleTask; import java.io.IOException; import java.io.InputStream; diff --git a/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java b/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java index a2070b599b..a61865ee91 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java @@ -28,6 +28,7 @@ import org.thoughtcrime.securesms.calls.YouAreAlreadyInACallSnackbar; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.recipients.LiveRecipient; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -43,8 +44,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; - public class SharedContactDetailsActivity extends PassphraseRequiredActivity { private static final int CODE_ADD_EDIT_CONTACT = 2323; diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationStickerSuggestionAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationStickerSuggestionAdapter.java index c6542465f3..3d30e66cf4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationStickerSuggestionAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationStickerSuggestionAdapter.java @@ -13,7 +13,7 @@ import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.model.StickerRecord; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; +import org.thoughtcrime.securesms.mms.DecryptableUri; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemThumbnail.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemThumbnail.kt index b08531473f..1075899e80 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemThumbnail.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemThumbnail.kt @@ -25,7 +25,7 @@ import org.signal.core.util.dp import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.conversation.v2.items.V2ConversationItemUtils.isThumbnailAtBottomOfBubble import org.thoughtcrime.securesms.database.model.MmsMessageRecord -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.mms.Slide /** @@ -160,7 +160,7 @@ class V2ConversationItemThumbnail @JvmOverloads constructor( if (thumbnailUri != null) { conversationContext .requestManager - .load(DecryptableStreamUriLoader.DecryptableUri(thumbnailUri)) + .load(DecryptableUri(thumbnailUri)) .centerInside() .dontAnimate() .override(thumbnailSize.width, thumbnailSize.height) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java index 838d94874f..8f9f54491c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java @@ -33,7 +33,6 @@ import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.ColorInt; -import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.Px; @@ -65,7 +64,6 @@ import org.thoughtcrime.securesms.components.emoji.EmojiStrings; import org.thoughtcrime.securesms.components.emoji.EmojiTextView; import org.thoughtcrime.securesms.contacts.paged.ContactSearchData; import org.thoughtcrime.securesms.conversation.MessageStyler; -import org.thoughtcrime.securesms.conversationlist.model.Conversation; import org.thoughtcrime.securesms.conversationlist.model.ConversationSet; import org.thoughtcrime.securesms.database.MessageTypes; import org.thoughtcrime.securesms.database.ThreadTable; @@ -75,7 +73,7 @@ import org.thoughtcrime.securesms.database.model.ThreadRecord; import org.thoughtcrime.securesms.database.model.UpdateDescription; import org.thoughtcrime.securesms.fonts.SignalSymbols.Glyph; import org.thoughtcrime.securesms.glide.GlideLiveDataTarget; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.recipients.LiveRecipient; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -735,7 +733,7 @@ public final class ConversationListItem extends ConstraintLayout implements Bind } requestManager.asBitmap() - .load(new DecryptableStreamUriLoader.DecryptableUri(thread.getSnippetUri())) + .load(new DecryptableUri(thread.getSnippetUri())) .override(thumbSize, thumbSize) .transform( new OverlayTransformation(ContextCompat.getColor(context, R.color.transparent_black_08)), diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/StickerTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/StickerTable.kt index 49568080d2..88e12645fe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/StickerTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/StickerTable.kt @@ -30,7 +30,7 @@ import org.thoughtcrime.securesms.database.model.IncomingSticker import org.thoughtcrime.securesms.database.model.StickerPackId import org.thoughtcrime.securesms.database.model.StickerPackRecord import org.thoughtcrime.securesms.database.model.StickerRecord -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.stickers.BlessedPacks import org.thoughtcrime.securesms.stickers.StickerPackInstallEvent import org.thoughtcrime.securesms.util.MediaUtil diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/creategroup/details/AddGroupDetailsFragment.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/creategroup/details/AddGroupDetailsFragment.java index 6c759c913e..8c0087a3c6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/creategroup/details/AddGroupDetailsFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/creategroup/details/AddGroupDetailsFragment.java @@ -39,7 +39,7 @@ import org.thoughtcrime.securesms.components.settings.app.privacy.expire.ExpireT import org.thoughtcrime.securesms.groups.ui.GroupMemberListView; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.mediasend.Media; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.profiles.AvatarHelper; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -137,11 +137,11 @@ public class AddGroupDetailsFragment extends LoggingFragment { avatar.setImageDrawable(new InsetDrawable(avatarPlaceholder, ViewUtil.dpToPx(AVATAR_PLACEHOLDER_INSET_DP))); } else { Glide.with(this) - .load(avatarBytes) - .circleCrop() - .skipMemoryCache(true) - .diskCacheStrategy(DiskCacheStrategy.NONE) - .into(avatar); + .load(avatarBytes) + .circleCrop() + .skipMemoryCache(true) + .diskCacheStrategy(DiskCacheStrategy.NONE) + .into(avatar); } }); @@ -173,28 +173,28 @@ public class AddGroupDetailsFragment extends LoggingFragment { return; } - final Media result = data.getParcelable(AvatarPickerFragment.SELECT_AVATAR_MEDIA); - final DecryptableStreamUriLoader.DecryptableUri decryptableUri = new DecryptableStreamUriLoader.DecryptableUri(result.getUri()); + final Media result = data.getParcelable(AvatarPickerFragment.SELECT_AVATAR_MEDIA); + final DecryptableUri decryptableUri = new DecryptableUri(result.getUri()); viewModel.setAvatarMedia(result); Glide.with(this) - .asBitmap() - .load(decryptableUri) - .skipMemoryCache(true) - .diskCacheStrategy(DiskCacheStrategy.NONE) - .centerCrop() - .override(AvatarHelper.AVATAR_DIMENSIONS, AvatarHelper.AVATAR_DIMENSIONS) - .into(new CustomTarget() { - @Override - public void onResourceReady(@NonNull Bitmap resource, Transition transition) { - viewModel.setAvatar(Objects.requireNonNull(BitmapUtil.toByteArray(resource))); - } + .asBitmap() + .load(decryptableUri) + .skipMemoryCache(true) + .diskCacheStrategy(DiskCacheStrategy.NONE) + .centerCrop() + .override(AvatarHelper.AVATAR_DIMENSIONS, AvatarHelper.AVATAR_DIMENSIONS) + .into(new CustomTarget() { + @Override + public void onResourceReady(@NonNull Bitmap resource, Transition transition) { + viewModel.setAvatar(Objects.requireNonNull(BitmapUtil.toByteArray(resource))); + } - @Override - public void onLoadCleared(@Nullable Drawable placeholder) { - } - }); + @Override + public void onLoadCleared(@Nullable Drawable placeholder) { + } + }); } private void initializeViewModel() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveThumbnailUploadJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveThumbnailUploadJob.kt index f2dd3f7f55..f97f634828 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveThumbnailUploadJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveThumbnailUploadJob.kt @@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobmanager.persistence.JobSpec import org.thoughtcrime.securesms.jobs.protos.ArchiveThumbnailUploadJobData import org.thoughtcrime.securesms.keyvalue.SignalStore -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.net.SignalNetwork import org.thoughtcrime.securesms.util.ImageCompressionUtil import org.thoughtcrime.securesms.util.MediaUtil diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJob.java index b29fa14a4a..3a858f975d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJob.java @@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.jobmanager.persistence.JobSpec; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.mms.MediaConstraints; import org.thoughtcrime.securesms.mms.MediaStream; import org.thoughtcrime.securesms.mms.MmsException; @@ -84,11 +84,11 @@ public final class AttachmentCompressionJob extends BaseJob { int mmsSubscriptionId) { this(new Parameters.Builder() - .addConstraint(NetworkConstraint.KEY) - .setLifespan(TimeUnit.DAYS.toMillis(1)) - .setMaxAttempts(Parameters.UNLIMITED) - .setQueue(isVideoTranscode ? "VIDEO_TRANSCODE" : "GENERIC_TRANSCODE") - .build(), + .addConstraint(NetworkConstraint.KEY) + .setLifespan(TimeUnit.DAYS.toMillis(1)) + .setMaxAttempts(Parameters.UNLIMITED) + .setQueue(isVideoTranscode ? "VIDEO_TRANSCODE" : "GENERIC_TRANSCODE") + .build(), attachmentId, mms, mmsSubscriptionId); @@ -106,7 +106,7 @@ public final class AttachmentCompressionJob extends BaseJob { } @Override - public @Nullable byte [] serialize() { + public @Nullable byte[] serialize() { return new JsonJobData.Builder().putLong(KEY_ATTACHMENT_ID, attachmentId.id) .putBoolean(KEY_MMS, mms) .putInt(KEY_MMS_SUBSCRIPTION_ID, mmsSubscriptionId) @@ -127,8 +127,8 @@ public final class AttachmentCompressionJob extends BaseJob { public void onAdded() { Log.i(TAG, "onAdded() " + attachmentId.toString()); - final AttachmentTable database = SignalDatabase.attachments(); - final DatabaseAttachment attachment = database.getAttachment(attachmentId); + final AttachmentTable database = SignalDatabase.attachments(); + final DatabaseAttachment attachment = database.getAttachment(attachmentId); final boolean pending = attachment != null && attachment.transferState != AttachmentTable.TRANSFER_PROGRESS_DONE && attachment.transferState != AttachmentTable.TRANSFER_PROGRESS_PERMANENT_FAILURE; @@ -375,7 +375,7 @@ public final class AttachmentCompressionJob extends BaseJob { for (int size : mediaConstraints.getImageDimensionTargets(context)) { result = ImageCompressionUtil.compressWithinConstraints(context, attachment.contentType, - new DecryptableStreamUriLoader.DecryptableUri(uri), + new DecryptableUri(uri), size, mediaConstraints.getImageMaxSize(context), mediaConstraints.getImageCompressionQualitySetting(context)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java index 6f15c6c3fb..93e6256708 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java @@ -48,7 +48,7 @@ import org.thoughtcrime.securesms.jobmanager.impl.BackoffUtil; import org.thoughtcrime.securesms.keyvalue.CertificateType; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.linkpreview.LinkPreview; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.mms.OutgoingMessage; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.mms.QuoteModel; diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/KeyboardStickerListAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/KeyboardStickerListAdapter.kt index 40f96a61f9..293460edde 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/KeyboardStickerListAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/KeyboardStickerListAdapter.kt @@ -9,7 +9,7 @@ import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.database.model.StickerRecord import org.thoughtcrime.securesms.glide.cache.ApngOptions -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/KeyboardStickerPackListAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/KeyboardStickerPackListAdapter.kt index 043943f941..dbbd82842e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/KeyboardStickerPackListAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/KeyboardStickerPackListAdapter.kt @@ -7,7 +7,7 @@ import androidx.core.widget.ImageViewCompat import com.bumptech.glide.RequestManager import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.glide.cache.ApngOptions -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/Camera1Fragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/Camera1Fragment.java index cc00792374..50ec3a2ff1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/Camera1Fragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/Camera1Fragment.java @@ -48,7 +48,7 @@ import org.thoughtcrime.securesms.animation.AnimationCompleteListener; import org.thoughtcrime.securesms.mediasend.camerax.CameraXModelBlocklist; import org.thoughtcrime.securesms.mediasend.v2.MediaAnimations; import org.thoughtcrime.securesms.mediasend.v2.MediaCountIndicatorButton; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.ViewUtil; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java index 4096ee0386..399e9f9f9d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java @@ -58,7 +58,7 @@ import org.thoughtcrime.securesms.mediasend.camerax.CameraXModePolicy; import org.thoughtcrime.securesms.mediasend.camerax.CameraXUtil; import org.thoughtcrime.securesms.mediasend.v2.MediaAnimations; import org.thoughtcrime.securesms.mediasend.v2.MediaCountIndicatorButton; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.mms.MediaConstraints; import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.util.BottomSheetUtil; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendGifFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendGifFragment.java index d0b3417df7..dcd04b0ba5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendGifFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendGifFragment.java @@ -14,7 +14,7 @@ import androidx.fragment.app.Fragment; import com.bumptech.glide.Glide; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader; +import org.thoughtcrime.securesms.mms.DecryptableUri; public class MediaSendGifFragment extends Fragment implements MediaSendPageFragment { @@ -42,7 +42,7 @@ public class MediaSendGifFragment extends Fragment implements MediaSendPageFragm super.onViewCreated(view, savedInstanceState); uri = getArguments().getParcelable(KEY_URI); - Glide.with(this).load(new DecryptableStreamUriLoader.DecryptableUri(uri)).fitCenter().into((ImageView) view); + Glide.with(this).load(new DecryptableUri(uri)).fitCenter().into((ImageView) view); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectableItem.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectableItem.kt index 1c18513221..24df5ba282 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectableItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectableItem.kt @@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.mediasend.Media import org.thoughtcrime.securesms.mediasend.MediaFolder import org.thoughtcrime.securesms.mediasend.v2.review.MediaGalleryGridItemTouchListener -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.mms.PartAuthority import org.thoughtcrime.securesms.util.MediaUtil import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory @@ -73,7 +73,7 @@ object MediaGallerySelectableItem { private fun Uri.toGlideModel(): Any { return if (PartAuthority.isLocalUri(this)) { - DecryptableStreamUriLoader.DecryptableUri(this) + DecryptableUri(this) } else { this } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectedItem.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectedItem.kt index 4976863741..591c5cd477 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectedItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectedItem.kt @@ -5,7 +5,7 @@ import android.widget.ImageView import com.bumptech.glide.Glide import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.mediasend.Media -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.util.MediaUtil import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter @@ -38,7 +38,7 @@ object MediaGallerySelectedItem { override fun bind(model: Model) { Glide.with(imageView) - .load(DecryptableStreamUriLoader.DecryptableUri(model.media.uri)) + .load(DecryptableUri(model.media.uri)) .centerCrop() .into(imageView) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewSelectedItem.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewSelectedItem.kt index 2e80f11e62..c80c84d6e2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewSelectedItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewSelectedItem.kt @@ -5,7 +5,7 @@ import android.widget.ImageView import com.bumptech.glide.Glide import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.mediasend.Media -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.util.MediaUtil import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter @@ -38,7 +38,7 @@ object MediaReviewSelectedItem { override fun bind(model: Model) { Glide.with(imageView) - .load(DecryptableStreamUriLoader.DecryptableUri(model.media.uri)) + .load(DecryptableUri(model.media.uri)) .centerCrop() .into(imageView) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/stories/StoriesMultiselectForwardActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/stories/StoriesMultiselectForwardActivity.kt index cc25974559..b3c72d6ff6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/stories/StoriesMultiselectForwardActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/stories/StoriesMultiselectForwardActivity.kt @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey import org.thoughtcrime.securesms.contacts.paged.ContactSearchState import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardActivity import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.stories.Stories import org.thoughtcrime.securesms.util.visible @@ -42,12 +42,12 @@ class StoriesMultiselectForwardActivity : MultiselectForwardActivity() { if (previewMedia.isNotEmpty()) { Glide.with(this) - .load(DecryptableStreamUriLoader.DecryptableUri(previewMedia.first())) + .load(DecryptableUri(previewMedia.first())) .into(preview1View) } if (previewMedia.size > 1) { - Glide.with(this).load(DecryptableStreamUriLoader.DecryptableUri(previewMedia[1])).into(preview2View) + Glide.with(this).load(DecryptableUri(previewMedia[1])).into(preview2View) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/DecryptableStreamUriLoader.java b/app/src/main/java/org/thoughtcrime/securesms/mms/DecryptableStreamUriLoader.java index 98f3319295..93a21b6a96 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/DecryptableStreamUriLoader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/DecryptableStreamUriLoader.java @@ -1,21 +1,16 @@ package org.thoughtcrime.securesms.mms; import android.content.Context; -import android.net.Uri; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.bumptech.glide.load.Key; import com.bumptech.glide.load.Options; import com.bumptech.glide.load.model.ModelLoader; import com.bumptech.glide.load.model.ModelLoaderFactory; import com.bumptech.glide.load.model.MultiModelLoaderFactory; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; - import java.io.InputStream; -import java.security.MessageDigest; public class DecryptableStreamUriLoader implements ModelLoader { @@ -28,7 +23,7 @@ public class DecryptableStreamUriLoader implements ModelLoader buildLoadData(@NonNull DecryptableUri decryptableUri, int width, int height, @NonNull Options options) { - return new LoadData<>(decryptableUri, new DecryptableStreamLocalUriFetcher(context, decryptableUri.uri)); + return new LoadData<>(decryptableUri, new DecryptableStreamLocalUriFetcher(context, decryptableUri.getUri())); } @Override @@ -54,34 +49,5 @@ public class DecryptableStreamUriLoader implements ModelLoader = prefetchableAttachments.associateWith { attachment -> val imageTarget = if (MediaUtil.isImage(attachment)) { requestManager - .load(DecryptableStreamUriLoader.DecryptableUri(attachment.uri!!)) + .load(DecryptableUri(attachment.uri!!)) .priority(Priority.HIGH) .centerInside() .into(StoryCacheTarget(attachment.uri!!, storySize)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryImageLoader.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryImageLoader.kt index 80136f6bb1..2ec20d639e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryImageLoader.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryImageLoader.kt @@ -10,7 +10,7 @@ import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener import com.bumptech.glide.request.target.Target import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.stories.viewer.page.StoryCache import org.thoughtcrime.securesms.stories.viewer.page.StoryDisplay @@ -87,7 +87,7 @@ class StoryImageLoader( private fun loadViaGlide(storySize: StoryDisplay.Size) { Log.d(TAG, "Image not in cache. Loading via glide...") Glide.with(postImage) - .load(DecryptableStreamUriLoader.DecryptableUri(imagePost.imageUri)) + .load(DecryptableUri(imagePost.imageUri)) .override(storySize.width, storySize.height) .centerInside() .addListener(object : RequestListener { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/StoriesSharedElementCrossFaderView.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/StoriesSharedElementCrossFaderView.kt index 0a7a5b89e9..d4341fba8a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/StoriesSharedElementCrossFaderView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/StoriesSharedElementCrossFaderView.kt @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.animation.transitions.CrossfaderTransition import org.thoughtcrime.securesms.blurhash.BlurHash import org.thoughtcrime.securesms.database.model.MmsMessageRecord -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader +import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.stories.StoryTextPostModel import kotlin.reflect.KProperty @@ -82,7 +82,7 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor( latestSource = uri Glide.with(sourceView) - .load(DecryptableStreamUriLoader.DecryptableUri(uri)) + .load(DecryptableUri(uri)) .addListener( OnReadyListener { isSourceReady = true @@ -152,7 +152,7 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor( latestTarget = uri Glide.with(targetView) - .load(DecryptableStreamUriLoader.DecryptableUri(uri)) + .load(DecryptableUri(uri)) .addListener( OnReadyListener { isTargetReady = true diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/MediaUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/MediaUtil.java index c355cff0be..b2dad7c406 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/MediaUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/MediaUtil.java @@ -34,7 +34,7 @@ import org.thoughtcrime.securesms.attachments.AttachmentId; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.mediasend.Media; import org.thoughtcrime.securesms.mms.AudioSlide; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; +import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.mms.DocumentSlide; import org.thoughtcrime.securesms.mms.GifSlide; import org.thoughtcrime.securesms.mms.ImageSlide; diff --git a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/UriChatWallpaper.java b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/UriChatWallpaper.java index 2fbf65da84..091085a2a2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/UriChatWallpaper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/UriChatWallpaper.java @@ -20,7 +20,7 @@ import com.bumptech.glide.request.target.Target; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.model.databaseprotos.Wallpaper; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader; +import org.thoughtcrime.securesms.mms.DecryptableUri; import java.util.Objects; import java.util.concurrent.ExecutionException; @@ -66,7 +66,7 @@ public final class UriChatWallpaper implements ChatWallpaper, Parcelable { Log.d(TAG, "Not in cache or recycled. Fetching using Glide."); Glide.with(imageView.getContext().getApplicationContext()) .asBitmap() - .load(new DecryptableStreamUriLoader.DecryptableUri(uri)) + .load(new DecryptableUri(uri)) .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) .addListener(new RequestListener<>() { @@ -99,7 +99,7 @@ public final class UriChatWallpaper implements ChatWallpaper, Parcelable { try { Bitmap bitmap = Glide.with(context.getApplicationContext()) .asBitmap() - .load(new DecryptableStreamUriLoader.DecryptableUri(uri)) + .load(new DecryptableUri(uri)) .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) .submit()