From ec96b4e3aaddd0160c8cb0aa62227adc063bd8be Mon Sep 17 00:00:00 2001 From: Jameson Williams Date: Wed, 24 Jan 2024 02:54:09 -0600 Subject: [PATCH] Update Glide to use ksp, drop kapt. Resolves #13381 --- .../v2/items/V2ConversationItemShapeTest.kt | 4 +- .../test/InternalConversationTestFragment.kt | 4 +- .../securesms/ApplicationContext.java | 4 +- .../securesms/AvatarPreviewActivity.java | 4 +- .../securesms/BindableConversationItem.java | 5 +- .../BindableConversationListItem.java | 5 +- .../avatar/picker/AvatarPickerItem.kt | 6 +- .../securesms/avatar/view/AvatarView.kt | 4 +- .../securesms/badges/BadgeImageView.kt | 34 ++++---- .../securesms/badges/gifts/GiftMessageView.kt | 6 +- .../securesms/badges/models/Badge.kt | 4 +- .../badges/models/BadgeDisplay112.kt | 4 +- .../securesms/calls/log/CallLogAdapter.kt | 4 +- .../components/AlbumThumbnailView.java | 23 ++--- .../securesms/components/AvatarImageView.java | 26 +++--- .../components/BorderlessImageView.java | 9 +- .../components/ConversationItemThumbnail.kt | 8 +- .../components/ConversationTypingView.java | 21 ++--- .../securesms/components/InputPanel.java | 24 +++--- .../securesms/components/LinkPreviewView.java | 13 +-- .../securesms/components/QuoteView.java | 14 +-- .../components/RecentPhotoViewRail.java | 4 +- .../components/SharedContactView.java | 44 +++++----- .../components/ThreadPhotoRailView.java | 16 ++-- .../securesms/components/ThumbnailView.java | 85 +++++++++--------- .../securesms/components/TooltipPopup.java | 4 +- .../components/ZoomingImageView.java | 10 +-- .../preferences/SharedMediaPreference.kt | 4 +- .../webrtc/CallParticipantView.java | 4 +- .../components/webrtc/WebRtcCallView.java | 4 +- .../securesms/contacts/ContactChip.java | 4 +- .../securesms/contacts/SelectedContacts.kt | 4 +- .../contactshare/ContactFieldAdapter.java | 26 +++--- .../ContactShareEditActivity.java | 5 +- .../contactshare/ContactShareEditAdapter.java | 27 +++--- .../SharedContactDetailsActivity.java | 16 ++-- .../conversation/AttachmentKeyboard.java | 5 +- .../AttachmentKeyboardMediaAdapter.java | 21 ++--- .../conversation/ConversationAdapter.java | 15 ++-- .../conversation/ConversationHeaderView.java | 7 +- .../conversation/ConversationItem.java | 32 +++---- .../ConversationStickerSuggestionAdapter.java | 14 +-- .../conversation/ConversationTitleView.java | 6 +- .../conversation/ConversationUpdateItem.java | 4 +- .../ScheduledMessagesBottomSheet.kt | 4 +- .../conversation/drafts/DraftRepository.kt | 4 +- .../quotes/MessageQuotesBottomSheet.kt | 4 +- .../ui/edit/EditMessageHistoryDialog.kt | 4 +- .../conversation/v2/ConversationAdapterV2.kt | 16 ++-- .../conversation/v2/ConversationFragment.kt | 22 ++--- .../conversation/v2/ConversationRepository.kt | 10 +-- .../v2/ConversationTypingIndicatorAdapter.kt | 10 +-- .../conversation/v2/ConversationViewModel.kt | 6 +- .../v2/items/V2ConversationContext.kt | 4 +- .../V2ConversationItemMediaViewHolder.kt | 2 +- .../V2ConversationItemTextOnlyViewHolder.kt | 4 +- .../v2/items/V2ConversationItemThumbnail.kt | 8 +- .../ConversationListAdapter.java | 14 +-- .../ConversationListFragment.java | 6 +- .../ConversationListItem.java | 44 +++++----- .../ConversationListItemAction.java | 5 +- .../ConversationListSearchAdapter.kt | 22 ++--- .../giph/mp4/GiphyMp4ViewHolder.java | 4 +- .../details/AddGroupDetailsFragment.java | 6 +- .../securesms/keyboard/KeyboardUtil.kt | 6 +- .../sticker/KeyboardStickerListAdapter.kt | 6 +- .../sticker/KeyboardStickerPackListAdapter.kt | 6 +- .../sticker/StickerKeyboardPageFragment.kt | 10 +-- .../sticker/StickerSearchDialogFragment.kt | 4 +- .../linkpreview/LinkPreviewRepository.java | 4 +- .../mediaoverview/MediaGalleryAllAdapter.java | 20 ++--- .../MediaOverviewPageFragment.java | 4 +- .../ImageMediaPreviewFragment.java | 9 +- .../mediapreview/MediaPreviewV2Fragment.kt | 4 +- .../mediarail/MediaRailAdapter.kt | 6 +- .../securesms/mediasend/Camera1Fragment.java | 3 +- .../mediasend/CameraContactAdapter.java | 19 ++-- .../CameraContactSelectionFragment.java | 5 +- .../mediasend/MediaSendGifFragment.java | 5 +- .../v2/gallery/MediaGallerySelectableItem.kt | 6 +- .../megaphone/BasicMegaphoneView.java | 4 +- .../securesms/megaphone/Megaphone.java | 17 ++-- .../securesms/megaphone/Megaphones.java | 4 +- .../megaphone/PopupMegaphoneView.java | 4 +- .../messagedetails/MessageDetailsAdapter.java | 11 +-- .../MessageDetailsFragment.java | 12 +-- .../MessageHeaderViewHolder.java | 13 +-- ...alleeMustAcceptMessageRequestActivity.java | 5 +- .../CachedAttachmentsMigrationJob.java | 5 +- .../migrations/LegacyMigrationJob.java | 5 +- .../securesms/mms/AttachmentManager.java | 16 ++-- .../v2/NotificationExtensions.kt | 6 +- .../profiles/edit/CreateProfileFragment.java | 8 +- .../reactions/ReactionRecipientsAdapter.java | 7 +- .../revealable/ViewOnceMessageActivity.java | 5 +- .../securesms/scribbles/UriGlideRenderer.java | 12 +-- .../ShareInterstitialActivity.java | 4 +- .../stickers/StickerManagementActivity.java | 5 +- .../stickers/StickerManagementAdapter.java | 18 ++-- .../stickers/StickerPackPreviewActivity.java | 8 +- .../stickers/StickerPackPreviewAdapter.java | 14 +-- .../stickers/StickerPreviewPopup.java | 18 ++-- .../StickerRolloverTouchListener.java | 7 +- .../stories/StoryFirstTimeNavigationView.kt | 10 +-- .../securesms/stories/StoryLinkPreviewView.kt | 6 +- .../securesms/stories/StorySlateView.kt | 6 +- .../securesms/stories/StoryTextPostModel.kt | 4 +- .../stories/landing/StoriesLandingItem.kt | 20 ++--- .../securesms/stories/my/MyStoriesItem.kt | 12 +-- .../stories/viewer/page/StoryCache.kt | 12 +-- .../viewer/page/StoryViewerPageFragment.kt | 4 +- .../stories/viewer/post/StoryBlurLoader.kt | 6 +- .../stories/viewer/post/StoryImageLoader.kt | 6 +- .../StoriesSharedElementCrossFaderView.kt | 22 ++--- .../securesms/util/AvatarUtil.java | 34 ++++---- .../securesms/util/BitmapUtil.java | 6 +- .../securesms/util/ImageCompressionUtil.java | 4 +- .../securesms/util/MediaUtil.java | 4 +- .../securesms/wallpaper/UriChatWallpaper.java | 6 +- .../StoryFirstTimeNavigationViewTest.kt | 24 +++--- build-logic/build.gradle.kts | 10 --- build.gradle.kts | 14 +-- core-util/build.gradle.kts | 1 - dependencies.gradle.kts | 2 +- donations/app/build.gradle.kts | 1 - glide-config/build.gradle.kts | 4 +- gradle.properties | 1 - gradle/verification-metadata.xml | 86 +++++++++++++++++-- image-editor/app/build.gradle | 6 +- .../app/renderers/UriRenderer.java | 4 +- .../app/renderers/UrlRenderer.java | 6 +- image-editor/lib/build.gradle | 2 +- 132 files changed, 755 insertions(+), 679 deletions(-) diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemShapeTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemShapeTest.kt index d24fb9df35..2af26197fd 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemShapeTest.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemShapeTest.kt @@ -8,6 +8,7 @@ package org.thoughtcrime.securesms.conversation.v2.items import android.net.Uri import android.view.View import androidx.lifecycle.Observer +import com.bumptech.glide.RequestManager import io.mockk.mockk import org.junit.Assert.assertEquals import org.junit.Rule @@ -29,7 +30,6 @@ import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.GroupMigrationMembershipChange import org.thoughtcrime.securesms.linkpreview.LinkPreview import org.thoughtcrime.securesms.mediapreview.MediaIntentFactory -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.stickers.StickerLocator @@ -209,7 +209,7 @@ class V2ConversationItemShapeTest { override val selectedItems: Set = emptySet() override val isMessageRequestAccepted: Boolean = true override val searchQuery: String? = null - override val glideRequests: GlideRequests = mockk() + override val requestManager: RequestManager = mockk() override val isParentInScroll: Boolean = false override fun getChatColorsData(): ChatColorsDrawable.ChatColorsData = ChatColorsDrawable.ChatColorsData(null, null) diff --git a/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/InternalConversationTestFragment.kt b/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/InternalConversationTestFragment.kt index b974e4b62e..03cdaaf39d 100644 --- a/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/InternalConversationTestFragment.kt +++ b/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/InternalConversationTestFragment.kt @@ -13,6 +13,7 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.lifecycle.Observer import androidx.navigation.navGraphViewModels +import com.bumptech.glide.Glide import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.kotlin.subscribeBy import org.signal.core.util.concurrent.LifecycleDisposable @@ -42,7 +43,6 @@ import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.GroupMigrationMembershipChange import org.thoughtcrime.securesms.linkpreview.LinkPreview import org.thoughtcrime.securesms.mediapreview.MediaIntentFactory -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.stickers.StickerLocator @@ -62,7 +62,7 @@ class InternalConversationTestFragment : Fragment(R.layout.conversation_test_fra override fun onViewCreated(view: View, savedInstanceState: Bundle?) { val adapter = ConversationAdapterV2( lifecycleOwner = viewLifecycleOwner, - glideRequests = GlideApp.with(this), + requestManager = Glide.with(this), clickListener = ClickListener(), hasWallpaper = springboardViewModel.hasWallpaper.value, colorizer = Colorizer(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index fb371188b3..d6c86e8445 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -24,6 +24,7 @@ import androidx.annotation.VisibleForTesting; import androidx.annotation.WorkerThread; import androidx.multidex.MultiDexApplication; +import com.bumptech.glide.Glide; import com.google.android.gms.security.ProviderInstaller; import org.conscrypt.ConscryptSignal; @@ -74,7 +75,6 @@ import org.thoughtcrime.securesms.logging.CustomSignalProtocolLogger; import org.thoughtcrime.securesms.logging.PersistentLogger; import org.thoughtcrime.securesms.messageprocessingalarm.RoutineMessageFetchReceiver; import org.thoughtcrime.securesms.migrations.ApplicationMigrations; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.SignalGlideComponents; import org.thoughtcrime.securesms.mms.SignalGlideModule; import org.thoughtcrime.securesms.providers.BlobProvider; @@ -178,7 +178,7 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr .addBlocking("ring-rtc", this::initializeRingRtc) .addBlocking("glide", () -> SignalGlideModule.setRegisterGlideComponents(new SignalGlideComponents())) .addNonBlocking(() -> RegistrationUtil.maybeMarkRegistrationComplete()) - .addNonBlocking(() -> GlideApp.get(this)) + .addNonBlocking(() -> Glide.get(this)) .addNonBlocking(this::cleanAvatarStorage) .addNonBlocking(this::initializeRevealableMessageManager) .addNonBlocking(this::initializePendingRetryReceiptManager) diff --git a/app/src/main/java/org/thoughtcrime/securesms/AvatarPreviewActivity.java b/app/src/main/java/org/thoughtcrime/securesms/AvatarPreviewActivity.java index afa78fd214..2a4ee7fd03 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/AvatarPreviewActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/AvatarPreviewActivity.java @@ -18,6 +18,7 @@ import androidx.appcompat.widget.Toolbar; import androidx.core.app.ActivityOptionsCompat; import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.engine.GlideException; @@ -32,7 +33,6 @@ import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.FullscreenHelper; @@ -96,7 +96,7 @@ public final class AvatarPreviewActivity extends PassphraseRequiredActivity { Resources resources = this.getResources(); - GlideApp.with(this) + Glide.with(this) .asBitmap() .load(contactPhoto) .fallback(fallbackPhoto.asCallCard(this)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java index b209726fe9..05263f3352 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java @@ -8,6 +8,8 @@ import androidx.annotation.Nullable; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.Observer; +import com.bumptech.glide.RequestManager; + import org.signal.ringrtc.CallLinkRootKey; import org.thoughtcrime.securesms.components.voice.VoiceNotePlaybackState; import org.thoughtcrime.securesms.contactshare.Contact; @@ -26,7 +28,6 @@ import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.GroupMigrationMembershipChange; import org.thoughtcrime.securesms.linkpreview.LinkPreview; import org.thoughtcrime.securesms.mediapreview.MediaIntentFactory; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.stickers.StickerLocator; @@ -41,7 +42,7 @@ public interface BindableConversationItem extends Unbindable, GiphyMp4Playable, @NonNull ConversationMessage messageRecord, @NonNull Optional previousMessageRecord, @NonNull Optional nextMessageRecord, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @NonNull Locale locale, @NonNull Set batchSelected, @NonNull Recipient recipients, diff --git a/app/src/main/java/org/thoughtcrime/securesms/BindableConversationListItem.java b/app/src/main/java/org/thoughtcrime/securesms/BindableConversationListItem.java index 63f0970803..cd78485e4d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/BindableConversationListItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/BindableConversationListItem.java @@ -3,9 +3,10 @@ package org.thoughtcrime.securesms; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; +import com.bumptech.glide.RequestManager; + import org.thoughtcrime.securesms.conversationlist.model.ConversationSet; import org.thoughtcrime.securesms.database.model.ThreadRecord; -import org.thoughtcrime.securesms.mms.GlideRequests; import java.util.Locale; import java.util.Set; @@ -14,7 +15,7 @@ public interface BindableConversationListItem extends Unbindable { void bind(@NonNull LifecycleOwner lifecycleOwner, @NonNull ThreadRecord thread, - @NonNull GlideRequests glideRequests, @NonNull Locale locale, + @NonNull RequestManager requestManager, @NonNull Locale locale, @NonNull Set typingThreads, @NonNull ConversationSet selectedConversations); 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 e30d349ecb..3939da24a9 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 @@ -8,12 +8,12 @@ import android.widget.TextView import androidx.appcompat.content.res.AppCompatResources import androidx.core.view.setPadding import com.airbnb.lottie.SimpleColorFilter +import com.bumptech.glide.Glide 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.GlideApp 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,12 +132,12 @@ object AvatarPickerItem { } is Avatar.Photo -> { textView.visible = false - GlideApp.with(imageView).load(DecryptableStreamUriLoader.DecryptableUri(model.avatar.uri)).into(imageView) + Glide.with(imageView).load(DecryptableStreamUriLoader.DecryptableUri(model.avatar.uri)).into(imageView) } is Avatar.Resource -> { imageView.setPadding((imageView.width * 0.2).toInt()) textView.visible = false - GlideApp.with(imageView).clear(imageView) + Glide.with(imageView).clear(imageView) imageView.setImageResource(model.avatar.resourceId) imageView.colorFilter = SimpleColorFilter(model.avatar.color.foregroundColor) imageView.background.colorFilter = SimpleColorFilter(model.avatar.color.backgroundColor) diff --git a/app/src/main/java/org/thoughtcrime/securesms/avatar/view/AvatarView.kt b/app/src/main/java/org/thoughtcrime/securesms/avatar/view/AvatarView.kt index 2dac9f6aef..f44c8ca9e9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/avatar/view/AvatarView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/avatar/view/AvatarView.kt @@ -5,10 +5,10 @@ import android.util.AttributeSet import android.view.View import android.widget.FrameLayout import androidx.core.content.res.use +import com.bumptech.glide.RequestManager import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.AvatarImageView import org.thoughtcrime.securesms.database.model.StoryViewState -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.stories.Stories import org.thoughtcrime.securesms.util.visible @@ -76,7 +76,7 @@ class AvatarView @JvmOverloads constructor( /** * Displays Note-to-Self */ - fun displayChatAvatar(requestManager: GlideRequests, recipient: Recipient, isQuickContactEnabled: Boolean) { + fun displayChatAvatar(requestManager: RequestManager, recipient: Recipient, isQuickContactEnabled: Boolean) { avatar.setAvatar(requestManager, recipient, isQuickContactEnabled) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/BadgeImageView.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/BadgeImageView.kt index 5d12d596eb..a65d2ccb08 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/BadgeImageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/BadgeImageView.kt @@ -4,6 +4,8 @@ import android.content.Context import android.util.AttributeSet import androidx.appcompat.widget.AppCompatImageView import androidx.core.content.res.use +import com.bumptech.glide.Glide +import com.bumptech.glide.RequestManager import com.bumptech.glide.load.resource.bitmap.DownsampleStrategy import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.badges.glide.BadgeSpriteTransformation @@ -11,8 +13,6 @@ import org.thoughtcrime.securesms.badges.models.Badge import org.thoughtcrime.securesms.components.settings.app.subscription.BadgeImageSize import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge import org.thoughtcrime.securesms.glide.GiftBadgeModel -import org.thoughtcrime.securesms.mms.GlideApp -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.ScreenDensity import org.thoughtcrime.securesms.util.ThemeUtil @@ -43,35 +43,35 @@ class BadgeImageView @JvmOverloads constructor( } fun setBadgeFromRecipient(recipient: Recipient?) { - getGlideRequests()?.let { + getGlideRequestManager()?.let { setBadgeFromRecipient(recipient, it) } ?: clearDrawable() } - fun setBadgeFromRecipient(recipient: Recipient?, glideRequests: GlideRequests) { + fun setBadgeFromRecipient(recipient: Recipient?, requestManager: RequestManager) { if (recipient == null || recipient.badges.isEmpty()) { - setBadge(null, glideRequests) + setBadge(null, requestManager) } else if (recipient.isSelf) { val badge = recipient.featuredBadge if (badge == null || !badge.visible || badge.isExpired()) { - setBadge(null, glideRequests) + setBadge(null, requestManager) } else { - setBadge(badge, glideRequests) + setBadge(badge, requestManager) } } else { - setBadge(recipient.featuredBadge, glideRequests) + setBadge(recipient.featuredBadge, requestManager) } } fun setBadge(badge: Badge?) { - getGlideRequests()?.let { + getGlideRequestManager()?.let { setBadge(badge, it) } ?: clearDrawable() } - fun setBadge(badge: Badge?, glideRequests: GlideRequests) { + fun setBadge(badge: Badge?, requestManager: RequestManager) { if (badge != null) { - glideRequests + requestManager .load(badge) .downsample(DownsampleStrategy.NONE) .transform(BadgeSpriteTransformation(BadgeSpriteTransformation.Size.fromInteger(badgeSize), badge.imageDensity, ThemeUtil.isDarkTheme(context))) @@ -79,21 +79,21 @@ class BadgeImageView @JvmOverloads constructor( isClickable = true } else { - glideRequests + requestManager .clear(this) clearDrawable() } } - fun setGiftBadge(badge: GiftBadge?, glideRequests: GlideRequests) { + fun setGiftBadge(badge: GiftBadge?, requestManager: RequestManager) { if (badge != null) { - glideRequests + requestManager .load(GiftBadgeModel(badge)) .downsample(DownsampleStrategy.NONE) .transform(BadgeSpriteTransformation(BadgeSpriteTransformation.Size.fromInteger(badgeSize), ScreenDensity.getBestDensityBucketForDevice(), ThemeUtil.isDarkTheme(context))) .into(this) } else { - glideRequests + requestManager .clear(this) clearDrawable() } @@ -106,9 +106,9 @@ class BadgeImageView @JvmOverloads constructor( } } - private fun getGlideRequests(): GlideRequests? { + private fun getGlideRequestManager(): RequestManager? { return try { - GlideApp.with(this) + Glide.with(this) } catch (e: IllegalArgumentException) { // View not attached to an activity or activity destroyed null diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/GiftMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/GiftMessageView.kt index da3a724d4c..cce44a8216 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/GiftMessageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/GiftMessageView.kt @@ -9,13 +9,13 @@ import android.widget.TextView import androidx.core.content.ContextCompat import androidx.core.content.res.use import androidx.swiperefreshlayout.widget.CircularProgressDrawable +import com.bumptech.glide.RequestManager import com.google.android.material.button.MaterialButton import org.signal.core.util.DimensionUnit import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.badges.BadgeImageView import org.thoughtcrime.securesms.badges.gifts.Gifts.formatExpiry import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.recipients.Recipient /** @@ -50,7 +50,7 @@ class GiftMessageView @JvmOverloads constructor( } } - fun setGiftBadge(glideRequests: GlideRequests, giftBadge: GiftBadge, isOutgoing: Boolean, callback: Callback, fromRecipient: Recipient, toRecipient: Recipient) { + fun setGiftBadge(requestManager: RequestManager, giftBadge: GiftBadge, isOutgoing: Boolean, callback: Callback, fromRecipient: Recipient, toRecipient: Recipient) { descriptionView.text = giftBadge.formatExpiry(context) actionView.icon = null actionView.setOnClickListener { callback.onViewGiftBadgeClicked() } @@ -88,7 +88,7 @@ class GiftMessageView @JvmOverloads constructor( ) } - badgeView.setGiftBadge(giftBadge, glideRequests) + badgeView.setGiftBadge(giftBadge, requestManager) } fun onGiftNotOpened() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/models/Badge.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/models/Badge.kt index c1cabbe0b7..2ba4b355b2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/models/Badge.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/models/Badge.kt @@ -7,6 +7,7 @@ import android.view.View import android.widget.ImageView import android.widget.TextView import androidx.compose.runtime.Stable +import com.bumptech.glide.Glide import com.bumptech.glide.load.Key import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.resource.bitmap.DownsampleStrategy @@ -14,7 +15,6 @@ import kotlinx.parcelize.Parcelize import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.badges.glide.BadgeSpriteTransformation import org.thoughtcrime.securesms.components.settings.PreferenceModel -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.util.ThemeUtil import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter @@ -130,7 +130,7 @@ data class Badge( badge.alpha = if (model.badge.isExpired() || model.isFaded) 0.5f else 1f - GlideApp.with(badge) + Glide.with(badge) .load(model.badge) .downsample(DownsampleStrategy.NONE) .diskCacheStrategy(DiskCacheStrategy.NONE) diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/models/BadgeDisplay112.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/models/BadgeDisplay112.kt index adcc40b232..a2013387dd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/models/BadgeDisplay112.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/models/BadgeDisplay112.kt @@ -2,10 +2,10 @@ package org.thoughtcrime.securesms.badges.models import android.view.View import android.widget.TextView +import com.bumptech.glide.Glide import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.badges.BadgeImageView import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel @@ -49,7 +49,7 @@ object BadgeDisplay112 { override fun bind(model: GiftModel) { titleView.visible = false - badgeImageView.setGiftBadge(model.giftBadge, GlideApp.with(badgeImageView)) + badgeImageView.setGiftBadge(model.giftBadge, Glide.with(badgeImageView)) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogAdapter.kt index 9125e44670..b8440134dd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogAdapter.kt @@ -7,13 +7,13 @@ import androidx.annotation.DrawableRes import androidx.annotation.StringRes import androidx.core.content.ContextCompat import androidx.core.widget.TextViewCompat +import com.bumptech.glide.Glide import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.database.CallTable import org.thoughtcrime.securesms.database.MessageTypes import org.thoughtcrime.securesms.databinding.CallLogAdapterItemBinding import org.thoughtcrime.securesms.databinding.CallLogCreateCallLinkItemBinding import org.thoughtcrime.securesms.databinding.ConversationListItemClearFilterBinding -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.DateUtils import org.thoughtcrime.securesms.util.SearchUtil @@ -272,7 +272,7 @@ class CallLogAdapter( } private fun presentRecipientDetails(recipient: Recipient, searchQuery: String?) { - binding.callRecipientAvatar.setAvatar(GlideApp.with(binding.callRecipientAvatar), recipient, true) + binding.callRecipientAvatar.setAvatar(Glide.with(binding.callRecipientAvatar), recipient, true) binding.callRecipientBadge.setBadgeFromRecipient(recipient) binding.callRecipientName.text = if (searchQuery != null) { SearchUtil.getHighlightedSpan( diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/AlbumThumbnailView.java b/app/src/main/java/org/thoughtcrime/securesms/components/AlbumThumbnailView.java index 9ceeaf091c..4a37f72d1c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/AlbumThumbnailView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/AlbumThumbnailView.java @@ -16,9 +16,10 @@ import androidx.annotation.IdRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.bumptech.glide.RequestManager; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.transfercontrols.TransferControlView; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.mms.Slide; import org.thoughtcrime.securesms.mms.SlideClickListener; import org.thoughtcrime.securesms.mms.SlidesClickedListener; @@ -65,7 +66,7 @@ public class AlbumThumbnailView extends FrameLayout { transferControlsStub = new Stub<>(findViewById(R.id.album_transfer_controls_stub)); } - public void setSlides(@NonNull GlideRequests glideRequests, @NonNull List slides, boolean showControls) { + public void setSlides(@NonNull RequestManager requestManager, @NonNull List slides, boolean showControls) { if (slides.size() < 2) { throw new IllegalStateException("Provided less than two slides."); } @@ -98,7 +99,7 @@ public class AlbumThumbnailView extends FrameLayout { currentSizeClass = sizeClass; } - showSlides(glideRequests, slides); + showSlides(requestManager, slides); applyCorners(); forceLayout(); } @@ -261,21 +262,21 @@ public class AlbumThumbnailView extends FrameLayout { applyCornersForSizeClass5(); } - private void showSlides(@NonNull GlideRequests glideRequests, @NonNull List slides) { + private void showSlides(@NonNull RequestManager requestManager, @NonNull List slides) { boolean showControls = TransferControlView.containsPlayableSlides(slides); - setSlide(glideRequests, slides.get(0), R.id.album_cell_1, showControls); - setSlide(glideRequests, slides.get(1), R.id.album_cell_2, showControls); + setSlide(requestManager, slides.get(0), R.id.album_cell_1, showControls); + setSlide(requestManager, slides.get(1), R.id.album_cell_2, showControls); if (slides.size() >= 3) { - setSlide(glideRequests, slides.get(2), R.id.album_cell_3, showControls); + setSlide(requestManager, slides.get(2), R.id.album_cell_3, showControls); } if (slides.size() >= 4) { - setSlide(glideRequests, slides.get(3), R.id.album_cell_4, showControls); + setSlide(requestManager, slides.get(3), R.id.album_cell_4, showControls); } if (slides.size() >= 5) { - setSlide(glideRequests, slides.get(4), R.id.album_cell_5, showControls && slides.size() == 5); + setSlide(requestManager, slides.get(4), R.id.album_cell_5, showControls && slides.size() == 5); } if (slides.size() > 5) { @@ -284,7 +285,7 @@ public class AlbumThumbnailView extends FrameLayout { } } - private void setSlide(@NonNull GlideRequests glideRequests, @NonNull Slide slide, @IdRes int id, boolean showControls) { + private void setSlide(@NonNull RequestManager requestManager, @NonNull Slide slide, @IdRes int id, boolean showControls) { ThumbnailView cell = findViewById(id); cell.showSecondaryText(false); cell.setThumbnailClickListener(defaultThumbnailClickListener); @@ -294,7 +295,7 @@ public class AlbumThumbnailView extends FrameLayout { cell.setPlayVideoClickListener(playVideoClickListener); } cell.setOnLongClickListener(defaultLongClickListener); - cell.setImageResource(glideRequests, slide, showControls, false); + cell.setImageResource(requestManager, slide, showControls, false); } private int sizeClass(int size) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java b/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java index 3ee4a09db6..883c86f590 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java @@ -15,6 +15,9 @@ import androidx.annotation.Px; import androidx.appcompat.widget.AppCompatImageView; import androidx.fragment.app.FragmentActivity; +import com.bumptech.glide.Glide; +import com.bumptech.glide.RequestBuilder; +import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.MultiTransformation; import com.bumptech.glide.load.Transformation; @@ -37,9 +40,6 @@ import org.thoughtcrime.securesms.conversation.colors.AvatarColor; import org.thoughtcrime.securesms.conversation.colors.ChatColors; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob; -import org.thoughtcrime.securesms.mms.GlideApp; -import org.thoughtcrime.securesms.mms.GlideRequest; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.ui.bottomsheet.RecipientBottomSheetDialogFragment; import org.thoughtcrime.securesms.util.AvatarUtil; @@ -129,10 +129,10 @@ public final class AvatarImageView extends AppCompatImageView { */ public void setRecipient(@NonNull Recipient recipient, boolean quickContactEnabled) { if (recipient.isSelf()) { - setAvatar(GlideApp.with(this), null, quickContactEnabled); + setAvatar(Glide.with(this), null, quickContactEnabled); AvatarUtil.loadIconIntoImageView(recipient, this); } else { - setAvatar(GlideApp.with(this), recipient, quickContactEnabled); + setAvatar(Glide.with(this), recipient, quickContactEnabled); } } @@ -144,21 +144,21 @@ public final class AvatarImageView extends AppCompatImageView { * Shows self as the note to self icon. */ public void setAvatar(@Nullable Recipient recipient) { - setAvatar(GlideApp.with(this), recipient, false); + setAvatar(Glide.with(this), recipient, false); } /** * Shows self as the profile avatar. */ public void setAvatarUsingProfile(@Nullable Recipient recipient) { - setAvatar(GlideApp.with(this), recipient, false, true); + setAvatar(Glide.with(this), recipient, false, true); } - public void setAvatar(@NonNull GlideRequests requestManager, @Nullable Recipient recipient, boolean quickContactEnabled) { + public void setAvatar(@NonNull RequestManager requestManager, @Nullable Recipient recipient, boolean quickContactEnabled) { setAvatar(requestManager, recipient, quickContactEnabled, false); } - public void setAvatar(@NonNull GlideRequests requestManager, @Nullable Recipient recipient, boolean quickContactEnabled, boolean useSelfProfileAvatar) { + public void setAvatar(@NonNull RequestManager requestManager, @Nullable Recipient recipient, boolean quickContactEnabled, boolean useSelfProfileAvatar) { setAvatar(requestManager, recipient, new AvatarOptions.Builder(this) .withUseSelfProfileAvatar(useSelfProfileAvatar) .withQuickContactEnabled(quickContactEnabled) @@ -166,10 +166,10 @@ public final class AvatarImageView extends AppCompatImageView { } private void setAvatar(@Nullable Recipient recipient, @NonNull AvatarOptions avatarOptions) { - setAvatar(GlideApp.with(this), recipient, avatarOptions); + setAvatar(Glide.with(this), recipient, avatarOptions); } - private void setAvatar(@NonNull GlideRequests requestManager, @Nullable Recipient recipient, @NonNull AvatarOptions avatarOptions) { + private void setAvatar(@NonNull RequestManager requestManager, @Nullable Recipient recipient, @NonNull AvatarOptions avatarOptions) { if (recipient != null) { RecipientContactPhoto photo = (recipient.isSelf() && avatarOptions.useSelfProfileAvatar) ? new RecipientContactPhoto(recipient, new ProfileContactPhoto(Recipient.self())) @@ -199,7 +199,7 @@ public final class AvatarImageView extends AppCompatImageView { transforms.add(new CircleCrop()); blurred = shouldBlur; - GlideRequest request = requestManager.load(photo.contactPhoto) + RequestBuilder request = requestManager.load(photo.contactPhoto) .dontAnimate() .fallback(fallbackContactPhotoDrawable) .error(fallbackContactPhotoDrawable) @@ -265,7 +265,7 @@ public final class AvatarImageView extends AppCompatImageView { .getPhotoForGroup() .asDrawable(getContext(), color); - GlideApp.with(this) + Glide.with(this) .load(avatarBytes) .dontAnimate() .fallback(fallback) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/BorderlessImageView.java b/app/src/main/java/org/thoughtcrime/securesms/components/BorderlessImageView.java index 4ced566fb6..a85b58aefa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/BorderlessImageView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/BorderlessImageView.java @@ -9,8 +9,9 @@ import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.bumptech.glide.RequestManager; + import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.mms.Slide; import org.thoughtcrime.securesms.mms.SlideClickListener; import org.thoughtcrime.securesms.mms.SlidesClickedListener; @@ -52,15 +53,15 @@ public class BorderlessImageView extends FrameLayout { image.setOnLongClickListener(l); } - public void setSlide(@NonNull GlideRequests glideRequests, @NonNull Slide slide) { + public void setSlide(@NonNull RequestManager requestManager, @NonNull Slide slide) { boolean showControls = slide.asAttachment().getUri() == null; if (slide.hasSticker()) { image.setScaleType(ImageView.ScaleType.FIT_CENTER); - image.setImageResource(glideRequests, slide, showControls, false); + image.setImageResource(requestManager, slide, showControls, false); } else { image.setScaleType(ImageView.ScaleType.CENTER_CROP); - image.setImageResource(glideRequests, slide, showControls, false, slide.asAttachment().width, slide.asAttachment().height); + image.setImageResource(requestManager, slide, showControls, false, slide.asAttachment().width, slide.asAttachment().height); } missingShade.setVisibility(showControls ? View.VISIBLE : View.GONE); diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemThumbnail.kt b/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemThumbnail.kt index 804259c76f..8de7e91f19 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemThumbnail.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemThumbnail.kt @@ -16,10 +16,10 @@ import androidx.annotation.ColorInt import androidx.annotation.Px import androidx.annotation.UiThread import androidx.core.os.bundleOf +import com.bumptech.glide.RequestManager import org.signal.core.util.dp import org.signal.core.util.getParcelableCompat import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.mms.Slide import org.thoughtcrime.securesms.mms.SlideClickListener import org.thoughtcrime.securesms.mms.SlidesClickedListener @@ -192,7 +192,7 @@ class ConversationItemThumbnail @JvmOverloads constructor( @UiThread fun setImageResource( - glideRequests: GlideRequests, + requestManager: RequestManager, slides: List, showControls: Boolean, isPreview: Boolean @@ -223,7 +223,7 @@ class ConversationItemThumbnail @JvmOverloads constructor( val attachment = slides[0].asAttachment() - thumbnail.get().setImageResource(glideRequests, slides[0], showControls, isPreview, attachment.width, attachment.height) + thumbnail.get().setImageResource(requestManager, slides[0], showControls, isPreview, attachment.width, attachment.height) touchDelegate = thumbnail.get().touchDelegate } else { state = state.copy( @@ -232,7 +232,7 @@ class ConversationItemThumbnail @JvmOverloads constructor( ) state.applyState(thumbnail, album) - album.get().setSlides(glideRequests, slides, showControls) + album.get().setSlides(requestManager, slides, showControls) touchDelegate = album.get().touchDelegate } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ConversationTypingView.java b/app/src/main/java/org/thoughtcrime/securesms/components/ConversationTypingView.java index c7174022f0..d4bfda5a66 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ConversationTypingView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ConversationTypingView.java @@ -11,9 +11,10 @@ import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.core.content.ContextCompat; +import com.bumptech.glide.RequestManager; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.badges.BadgeImageView; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.Recipient; import java.util.List; @@ -49,7 +50,7 @@ public class ConversationTypingView extends ConstraintLayout { indicator = findViewById(R.id.typing_indicator); } - public void setTypists(@NonNull GlideRequests glideRequests, @NonNull List typists, boolean isGroupThread, boolean hasWallpaper) { + public void setTypists(@NonNull RequestManager requestManager, @NonNull List typists, boolean isGroupThread, boolean hasWallpaper) { if (typists.isEmpty()) { indicator.stopAnimation(); return; @@ -64,7 +65,7 @@ public class ConversationTypingView extends ConstraintLayout { typistCount.setVisibility(GONE); if (isGroupThread) { - presentGroupThreadAvatars(glideRequests, typists); + presentGroupThreadAvatars(requestManager, typists); } if (hasWallpaper) { @@ -84,23 +85,23 @@ public class ConversationTypingView extends ConstraintLayout { return indicator.isActive(); } - private void presentGroupThreadAvatars(@NonNull GlideRequests glideRequests, @NonNull List typists) { - avatar1.setAvatar(glideRequests, typists.get(0), typists.size() == 1); + private void presentGroupThreadAvatars(@NonNull RequestManager requestManager, @NonNull List typists) { + avatar1.setAvatar(requestManager, typists.get(0), typists.size() == 1); avatar1.setVisibility(VISIBLE); - badge1.setBadgeFromRecipient(typists.get(0), glideRequests); + badge1.setBadgeFromRecipient(typists.get(0), requestManager); badge1.setVisibility(VISIBLE); if (typists.size() > 1) { - avatar2.setAvatar(glideRequests, typists.get(1), false); + avatar2.setAvatar(requestManager, typists.get(1), false); avatar2.setVisibility(VISIBLE); - badge2.setBadgeFromRecipient(typists.get(1), glideRequests); + badge2.setBadgeFromRecipient(typists.get(1), requestManager); badge2.setVisibility(VISIBLE); } if (typists.size() == 3) { - avatar3.setAvatar(glideRequests, typists.get(2), false); + avatar3.setAvatar(requestManager, typists.get(2), false); avatar3.setVisibility(VISIBLE); - badge3.setBadgeFromRecipient(typists.get(2), glideRequests); + badge3.setBadgeFromRecipient(typists.get(2), requestManager); badge3.setVisibility(VISIBLE); } 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 c7198ef332..b64426073e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/InputPanel.java @@ -32,6 +32,8 @@ import androidx.lifecycle.Observer; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; +import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.engine.DiskCacheStrategy; import org.signal.core.util.ThreadUtil; @@ -59,8 +61,6 @@ import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.linkpreview.LinkPreview; import org.thoughtcrime.securesms.linkpreview.LinkPreviewRepository; import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader; -import org.thoughtcrime.securesms.mms.GlideApp; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.mms.QuoteModel; import org.thoughtcrime.securesms.mms.Slide; import org.thoughtcrime.securesms.mms.SlideDeck; @@ -184,7 +184,7 @@ public class InputPanel extends ConstraintLayout } }); - stickerSuggestionAdapter = new ConversationStickerSuggestionAdapter(GlideApp.with(this), this); + stickerSuggestionAdapter = new ConversationStickerSuggestionAdapter(Glide.with(this), this); stickerSuggestion.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); stickerSuggestion.setAdapter(stickerSuggestionAdapter); @@ -212,14 +212,14 @@ public class InputPanel extends ConstraintLayout composeText.setMediaListener(listener); } - public void setQuote(@NonNull GlideRequests glideRequests, + public void setQuote(@NonNull RequestManager requestManager, long id, @NonNull Recipient author, @Nullable CharSequence body, @NonNull SlideDeck attachments, @NonNull QuoteModel.Type quoteType) { - this.quoteView.setQuote(glideRequests, id, author, body, false, attachments, null, quoteType); + this.quoteView.setQuote(requestManager, id, author, body, false, attachments, null, quoteType); int originalHeight = this.quoteView.getVisibility() == VISIBLE ? this.quoteView.getMeasuredHeight() : 0; @@ -325,10 +325,10 @@ public class InputPanel extends ConstraintLayout this.linkPreview.setNoPreview(customError); } - public void setLinkPreview(@NonNull GlideRequests glideRequests, @NonNull Optional preview) { + public void setLinkPreview(@NonNull RequestManager requestManager, @NonNull Optional preview) { if (preview.isPresent()) { this.linkPreview.setVisibility(View.VISIBLE); - this.linkPreview.setLinkPreview(glideRequests, preview.get(), true); + this.linkPreview.setLinkPreview(requestManager, preview.get(), true); } else { this.linkPreview.setVisibility(View.GONE); } @@ -404,7 +404,7 @@ public class InputPanel extends ConstraintLayout quoteView.setWallpaperEnabled(enabled); } - public void enterEditMessageMode(@NonNull GlideRequests glideRequests, @NonNull ConversationMessage conversationMessageToEdit, boolean fromDraft) { + public void enterEditMessageMode(@NonNull RequestManager requestManager, @NonNull ConversationMessage conversationMessageToEdit, boolean fromDraft) { SpannableString textToEdit = conversationMessageToEdit.getDisplayBody(getContext()); if (!fromDraft) { MessageStyler.convertSpoilersToComposeMode(textToEdit); @@ -415,14 +415,14 @@ public class InputPanel extends ConstraintLayout if (quote == null) { clearQuote(); } else { - setQuote(glideRequests, quote.getId(), Recipient.resolved(quote.getAuthor()), quote.getDisplayText(), quote.getAttachment(), quote.getQuoteType()); + setQuote(requestManager, quote.getId(), Recipient.resolved(quote.getAuthor()), quote.getDisplayText(), quote.getAttachment(), quote.getQuoteType()); } this.messageToEdit = conversationMessageToEdit.getMessageRecord(); - updateEditModeThumbnail(glideRequests); + updateEditModeThumbnail(requestManager); updateEditModeUi(); } - private void updateEditModeThumbnail(@NonNull GlideRequests glideRequests) { + private void updateEditModeThumbnail(@NonNull RequestManager requestManager) { if (messageToEdit instanceof MmsMessageRecord) { MmsMessageRecord mediaEditMessage = (MmsMessageRecord) messageToEdit; SlideDeck slideDeck = mediaEditMessage.getSlideDeck(); @@ -430,7 +430,7 @@ public class InputPanel extends ConstraintLayout if (imageVideoSlide != null && imageVideoSlide.getUri() != null) { editMessageThumbnail.setVisibility(VISIBLE); - glideRequests.load(new DecryptableStreamUriLoader.DecryptableUri(imageVideoSlide.getUri())) + requestManager.load(new DecryptableStreamUriLoader.DecryptableUri(imageVideoSlide.getUri())) .centerCrop() .diskCacheStrategy(DiskCacheStrategy.RESOURCE) .into(editMessageThumbnail); diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/LinkPreviewView.java b/app/src/main/java/org/thoughtcrime/securesms/components/LinkPreviewView.java index d49809e2bf..8866f223f3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/LinkPreviewView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/LinkPreviewView.java @@ -16,13 +16,14 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; +import com.bumptech.glide.RequestManager; + import org.signal.ringrtc.CallLinkRootKey; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.calls.links.CallLinks; import org.thoughtcrime.securesms.conversation.colors.AvatarColorHash; import org.thoughtcrime.securesms.linkpreview.LinkPreview; import org.thoughtcrime.securesms.linkpreview.LinkPreviewRepository; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.mms.ImageSlide; import org.thoughtcrime.securesms.mms.SlidesClickedListener; import org.thoughtcrime.securesms.recipients.Recipient; @@ -162,11 +163,11 @@ public class LinkPreviewView extends FrameLayout { noPreview.setText(getLinkPreviewErrorString(customError)); } - public void setLinkPreview(@NonNull GlideRequests glideRequests, @NonNull LinkPreview linkPreview, boolean showThumbnail) { - setLinkPreview(glideRequests, linkPreview, showThumbnail, true, false); + public void setLinkPreview(@NonNull RequestManager requestManager, @NonNull LinkPreview linkPreview, boolean showThumbnail) { + setLinkPreview(requestManager, linkPreview, showThumbnail, true, false); } - public void setLinkPreview(@NonNull GlideRequests glideRequests, @NonNull LinkPreview linkPreview, boolean showThumbnail, boolean showDescription, boolean scheduleMessageMode) { + public void setLinkPreview(@NonNull RequestManager requestManager, @NonNull LinkPreview linkPreview, boolean showThumbnail, boolean showDescription, boolean scheduleMessageMode) { spinner.setVisibility(GONE); noPreview.setVisibility(GONE); @@ -216,13 +217,13 @@ public class LinkPreviewView extends FrameLayout { if (showThumbnail && linkPreview.getThumbnail().isPresent()) { thumbnail.setVisibility(VISIBLE); thumbnailState.applyState(thumbnail); - thumbnail.get().setImageResource(glideRequests, new ImageSlide(linkPreview.getThumbnail().get()), type == TYPE_CONVERSATION && !scheduleMessageMode, false); + thumbnail.get().setImageResource(requestManager, new ImageSlide(linkPreview.getThumbnail().get()), type == TYPE_CONVERSATION && !scheduleMessageMode, false); thumbnail.get().showSecondaryText(false); } else if (callLinkRootKey != null) { thumbnail.setVisibility(VISIBLE); thumbnailState.applyState(thumbnail); thumbnail.get().setImageDrawable( - glideRequests, + requestManager, Recipient.DEFAULT_FALLBACK_PHOTO_PROVIDER .getPhotoForCallLink() .asDrawable(getContext(), 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 12d59d0868..4e60014ef8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java @@ -15,6 +15,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; +import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.google.android.material.imageview.ShapeableImageView; import com.google.android.material.shape.CornerFamily; @@ -32,7 +33,6 @@ 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.GlideRequests; import org.thoughtcrime.securesms.mms.QuoteModel; import org.thoughtcrime.securesms.mms.Slide; import org.thoughtcrime.securesms.mms.SlideDeck; @@ -193,7 +193,7 @@ public class QuoteView extends ConstraintLayout implements RecipientForeverObser } } - public void setQuote(GlideRequests glideRequests, + public void setQuote(RequestManager requestManager, long id, @NonNull Recipient author, @Nullable CharSequence body, @@ -213,7 +213,7 @@ public class QuoteView extends ConstraintLayout implements RecipientForeverObser this.author.observeForever(this); setQuoteAuthor(author); setQuoteText(resolveBody(body, quoteType), attachments, originalMissing, storyReaction); - setQuoteAttachment(glideRequests, body, attachments, originalMissing); + setQuoteAttachment(requestManager, body, attachments, originalMissing); setQuoteMissingFooter(originalMissing); applyColorTheme(); } @@ -347,7 +347,7 @@ public class QuoteView extends ConstraintLayout implements RecipientForeverObser } } - private void setQuoteAttachment(@NonNull GlideRequests glideRequests, @NonNull CharSequence body, @NonNull SlideDeck slideDeck, boolean originalMissing) { + private void setQuoteAttachment(@NonNull RequestManager requestManager, @NonNull CharSequence body, @NonNull SlideDeck slideDeck, boolean originalMissing) { boolean outgoing = messageType != MessageType.INCOMING && messageType != MessageType.STORY_REPLY_INCOMING; boolean preview = messageType == MessageType.PREVIEW || messageType == MessageType.STORY_REPLY_PREVIEW; @@ -359,7 +359,7 @@ public class QuoteView extends ConstraintLayout implements RecipientForeverObser attachmentVideoOVerlayStub.setVisibility(GONE); attachmentNameViewStub.setVisibility(GONE); thumbnailView.setVisibility(VISIBLE); - glideRequests.load(model) + requestManager.load(model) .centerCrop() .override(thumbWidth, thumbHeight) .diskCacheStrategy(DiskCacheStrategy.RESOURCE) @@ -377,7 +377,7 @@ public class QuoteView extends ConstraintLayout implements RecipientForeverObser attachmentVideoOVerlayStub.setVisibility(GONE); attachmentNameViewStub.setVisibility(GONE); thumbnailView.setVisibility(VISIBLE); - glideRequests.load(R.drawable.ic_gift_thumbnail) + requestManager.load(R.drawable.ic_gift_thumbnail) .centerCrop() .override(thumbWidth, thumbHeight) .diskCacheStrategy(DiskCacheStrategy.RESOURCE) @@ -404,7 +404,7 @@ public class QuoteView extends ConstraintLayout implements RecipientForeverObser if (imageVideoSlide.hasVideo() && !imageVideoSlide.isVideoGif()) { attachmentVideoOVerlayStub.setVisibility(VISIBLE); } - glideRequests.load(new DecryptableUri(imageVideoSlide.getUri())) + requestManager.load(new DecryptableUri(imageVideoSlide.getUri())) .centerCrop() .override(thumbWidth, thumbHeight) .diskCacheStrategy(DiskCacheStrategy.RESOURCE) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/RecentPhotoViewRail.java b/app/src/main/java/org/thoughtcrime/securesms/components/RecentPhotoViewRail.java index d336d57529..f92aaa1bd0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/RecentPhotoViewRail.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/RecentPhotoViewRail.java @@ -22,6 +22,7 @@ import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.Key; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions; @@ -31,7 +32,6 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.CursorRecyclerViewAdapter; import org.thoughtcrime.securesms.database.loaders.RecentPhotosLoader; -import org.thoughtcrime.securesms.mms.GlideApp; public class RecentPhotoViewRail extends FrameLayout implements LoaderManager.LoaderCallbacks { @@ -119,7 +119,7 @@ public class RecentPhotoViewRail extends FrameLayout implements LoaderManager.Lo Key signature = new MediaStoreSignature(mimeType, dateModified, orientation); - GlideApp.with(getContext().getApplicationContext()) + Glide.with(getContext().getApplicationContext()) .load(uri) .signature(signature) .diskCacheStrategy(DiskCacheStrategy.NONE) 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 966ea72257..887045908c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/SharedContactView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/SharedContactView.java @@ -17,6 +17,7 @@ import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import com.annimon.stream.Stream; +import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.engine.DiskCacheStrategy; import org.thoughtcrime.securesms.R; @@ -24,7 +25,6 @@ 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.GlideRequests; import org.thoughtcrime.securesms.recipients.LiveRecipient; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientForeverObserver; @@ -45,13 +45,13 @@ public class SharedContactView extends LinearLayout implements RecipientForeverO private TextView actionButtonView; private ConversationItemFooter footer; - private Contact contact; - private Locale locale; - private GlideRequests glideRequests; - private EventListener eventListener; - private CornerMask cornerMask; - private int bigCornerRadius; - private int smallCornerRadius; + private Contact contact; + private Locale locale; + private RequestManager requestManager; + private EventListener eventListener; + private CornerMask cornerMask; + private int bigCornerRadius; + private int smallCornerRadius; private final Map activeRecipients = new HashMap<>(); @@ -111,10 +111,10 @@ public class SharedContactView extends LinearLayout implements RecipientForeverO cornerMask.mask(canvas); } - public void setContact(@NonNull Contact contact, @NonNull GlideRequests glideRequests, @NonNull Locale locale) { - this.glideRequests = glideRequests; - this.locale = locale; - this.contact = contact; + public void setContact(@NonNull Contact contact, @NonNull RequestManager requestManager, @NonNull Locale locale) { + this.requestManager = requestManager; + this.locale = locale; + this.contact = contact; Stream.of(activeRecipients.values()).forEach(recipient -> recipient.removeForeverObserver(this)); this.activeRecipients.clear(); @@ -172,17 +172,17 @@ public class SharedContactView extends LinearLayout implements RecipientForeverO private void presentAvatar(@Nullable Uri uri) { if (uri != null) { - glideRequests.load(new DecryptableUri(uri)) - .fallback(R.drawable.symbol_person_display_40) - .circleCrop() - .diskCacheStrategy(DiskCacheStrategy.ALL) - .dontAnimate() - .into(avatarView); + requestManager.load(new DecryptableUri(uri)) + .fallback(R.drawable.symbol_person_display_40) + .circleCrop() + .diskCacheStrategy(DiskCacheStrategy.ALL) + .dontAnimate() + .into(avatarView); } else { - glideRequests.load(R.drawable.symbol_person_display_40) - .circleCrop() - .diskCacheStrategy(DiskCacheStrategy.ALL) - .into(avatarView); + requestManager.load(R.drawable.symbol_person_display_40) + .circleCrop() + .diskCacheStrategy(DiskCacheStrategy.ALL) + .into(avatarView); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ThreadPhotoRailView.java b/app/src/main/java/org/thoughtcrime/securesms/components/ThreadPhotoRailView.java index bf34013e30..6671fdf5ae 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ThreadPhotoRailView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ThreadPhotoRailView.java @@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.components; import android.content.Context; -import android.database.Cursor; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; @@ -15,11 +14,12 @@ import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.RequestManager; + import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.MediaTable; import org.thoughtcrime.securesms.mediapreview.MediaPreviewCache; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.mms.Slide; import org.thoughtcrime.securesms.util.MediaUtil; @@ -58,8 +58,8 @@ public class ThreadPhotoRailView extends FrameLayout { } } - public void setMediaRecords(@NonNull GlideRequests glideRequests, @NonNull List mediaRecords) { - this.recyclerView.setAdapter(new ThreadPhotoRailAdapter(getContext(), glideRequests, mediaRecords, this.listener)); + public void setMediaRecords(@NonNull RequestManager requestManager, @NonNull List mediaRecords) { + this.recyclerView.setAdapter(new ThreadPhotoRailAdapter(getContext(), requestManager, mediaRecords, this.listener)); } private static class ThreadPhotoRailAdapter extends RecyclerView.Adapter { @@ -67,18 +67,18 @@ public class ThreadPhotoRailView extends FrameLayout { @SuppressWarnings("unused") private static final String TAG = Log.tag(ThreadPhotoRailAdapter.class); - @NonNull private final GlideRequests glideRequests; + @NonNull private final RequestManager requestManager; @Nullable private OnItemClickedListener clickedListener; private final List mediaRecords = new ArrayList<>(); private ThreadPhotoRailAdapter(@NonNull Context context, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @NonNull List mediaRecords, @Nullable OnItemClickedListener listener) { - this.glideRequests = glideRequests; + this.requestManager = requestManager; this.clickedListener = listener; this.mediaRecords.clear(); @@ -103,7 +103,7 @@ public class ThreadPhotoRailView extends FrameLayout { MediaTable.MediaRecord mediaRecord = mediaRecords.get(position); Slide slide = MediaUtil.getSlideForAttachment(mediaRecord.getAttachment()); - viewHolder.imageView.setImageResource(glideRequests, slide, false, false); + viewHolder.imageView.setImageResource(requestManager, slide, false, false); viewHolder.imageView.setOnClickListener(v -> { MediaPreviewCache.INSTANCE.setDrawable(viewHolder.imageView.getImageDrawable()); if (clickedListener != null) clickedListener.onItemClicked(viewHolder.imageView, mediaRecord); 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 302a470468..329378bc80 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ThumbnailView.java @@ -27,6 +27,7 @@ import androidx.annotation.UiThread; import androidx.appcompat.widget.AppCompatImageView; import com.bumptech.glide.RequestBuilder; +import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.Request; import com.bumptech.glide.request.RequestListener; @@ -39,8 +40,6 @@ import org.thoughtcrime.securesms.blurhash.BlurHash; import org.thoughtcrime.securesms.components.transfercontrols.TransferControlView; import org.thoughtcrime.securesms.database.AttachmentTable; import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; -import org.thoughtcrime.securesms.mms.GlideRequest; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.mms.ImageSlide; import org.thoughtcrime.securesms.mms.Slide; import org.thoughtcrime.securesms.mms.SlideClickListener; @@ -314,23 +313,23 @@ public class ThumbnailView extends FrameLayout { } } - public void setImageDrawable(@NonNull GlideRequests glideRequests, @Nullable Drawable drawable) { - glideRequests.clear(image); - glideRequests.clear(blurHash); + public void setImageDrawable(@NonNull RequestManager requestManager, @Nullable Drawable drawable) { + requestManager.clear(image); + requestManager.clear(blurHash); image.setImageDrawable(drawable); blurHash.setImageDrawable(null); } @UiThread - public ListenableFuture setImageResource(@NonNull GlideRequests glideRequests, @NonNull Slide slide, + public ListenableFuture setImageResource(@NonNull RequestManager requestManager, @NonNull Slide slide, boolean showControls, boolean isPreview) { - return setImageResource(glideRequests, slide, showControls, isPreview, 0, 0); + return setImageResource(requestManager, slide, showControls, isPreview, 0, 0); } @UiThread - public ListenableFuture setImageResource(@NonNull GlideRequests glideRequests, @NonNull Slide slide, + public ListenableFuture setImageResource(@NonNull RequestManager requestManager, @NonNull Slide slide, boolean showControls, boolean isPreview, int naturalWidth, int naturalHeight) { @@ -340,10 +339,10 @@ public class ThumbnailView extends FrameLayout { transferControlViewStub.setVisibility(View.GONE); playOverlay.setVisibility(View.GONE); - glideRequests.clear(blurHash); + requestManager.clear(blurHash); blurHash.setImageDrawable(null); - glideRequests.clear(image); + requestManager.clear(image); image.setImageDrawable(null); int errorImageResource; @@ -414,10 +413,10 @@ public class ThumbnailView extends FrameLayout { boolean resultHandled = false; if (slide.hasPlaceholder() && (previousBlurHash == null || !Objects.equals(slide.getPlaceholderBlur(), previousBlurHash))) { - buildPlaceholderGlideRequest(glideRequests, slide).into(new GlideBitmapListeningTarget(blurHash, result)); + buildPlaceholderRequestBuilder(requestManager, slide).into(new GlideBitmapListeningTarget(blurHash, result)); resultHandled = true; } else if (!slide.hasPlaceholder()) { - glideRequests.clear(blurHash); + requestManager.clear(blurHash); blurHash.setImageDrawable(null); } @@ -425,14 +424,14 @@ public class ThumbnailView extends FrameLayout { if (!MediaUtil.isJpegType(slide.getContentType()) && !MediaUtil.isVideoType(slide.getContentType())) { SettableFuture thumbnailFuture = new SettableFuture<>(); thumbnailFuture.deferTo(result); - thumbnailFuture.addListener(new BlurHashClearListener(glideRequests, blurHash)); + thumbnailFuture.addListener(new BlurHashClearListener(requestManager, blurHash)); } - buildThumbnailGlideRequest(glideRequests, slide).into(new GlideDrawableListeningTarget(image, result)); + buildThumbnailRequestBuilder(requestManager, slide).into(new GlideDrawableListeningTarget(image, result)); resultHandled = true; } else { - glideRequests.clear(image); + requestManager.clear(image); image.setImageDrawable(null); } @@ -443,20 +442,20 @@ public class ThumbnailView extends FrameLayout { return result; } - public ListenableFuture setImageResource(@NonNull GlideRequests glideRequests, @NonNull Uri uri) { - return setImageResource(glideRequests, uri, 0, 0); + public ListenableFuture setImageResource(@NonNull RequestManager requestManager, @NonNull Uri uri) { + return setImageResource(requestManager, uri, 0, 0); } - public ListenableFuture setImageResource(@NonNull GlideRequests glideRequests, @NonNull Uri uri, int width, int height) { - return setImageResource(glideRequests, uri, width, height, true, null); + public ListenableFuture setImageResource(@NonNull RequestManager requestManager, @NonNull Uri uri, int width, int height) { + return setImageResource(requestManager, uri, width, height, true, null); } - public ListenableFuture setImageResource(@NonNull GlideRequests glideRequests, @NonNull Uri uri, int width, int height, boolean animate, @Nullable ThumbnailRequestListener listener) { + public ListenableFuture setImageResource(@NonNull RequestManager requestManager, @NonNull Uri uri, int width, int height, boolean animate, @Nullable ThumbnailRequestListener listener) { SettableFuture future = new SettableFuture<>(); transferControlViewStub.setVisibility(View.GONE); - GlideRequest request = glideRequests.load(new DecryptableUri(uri)) + RequestBuilder request = requestManager.load(new DecryptableUri(uri)) .diskCacheStrategy(DiskCacheStrategy.NONE) .downsample(SignalDownsampleStrategy.CENTER_OUTSIDE_NO_UPSCALE) .listener(listener); @@ -483,12 +482,12 @@ public class ThumbnailView extends FrameLayout { return future; } - public ListenableFuture setImageResource(@NonNull GlideRequests glideRequests, @NonNull StoryTextPostModel model, int width, int height) { + public ListenableFuture setImageResource(@NonNull RequestManager requestManager, @NonNull StoryTextPostModel model, int width, int height) { SettableFuture future = new SettableFuture<>(); transferControlViewStub.setVisibility(View.GONE); - GlideRequest request = glideRequests.load(model) + RequestBuilder request = requestManager.load(model) .diskCacheStrategy(DiskCacheStrategy.NONE) .placeholder(model.getPlaceholder()) .downsample(SignalDownsampleStrategy.CENTER_OUTSIDE_NO_UPSCALE) @@ -502,7 +501,7 @@ public class ThumbnailView extends FrameLayout { return future; } - private GlideRequest override(@NonNull GlideRequest request, int width, int height) { + private RequestBuilder override(@NonNull RequestBuilder request, int width, int height) { if (width > 0 && height > 0) { Log.d(TAG, "override: apply w" + width + "xh" + height); return request.override(width, height); @@ -542,8 +541,8 @@ public class ThumbnailView extends FrameLayout { return false; } - private GlideRequest buildThumbnailGlideRequest(@NonNull GlideRequests glideRequests, @NonNull Slide slide) { - GlideRequest request = applySizing(glideRequests.load(new DecryptableUri(Objects.requireNonNull(slide.getUri()))) + private RequestBuilder buildThumbnailRequestBuilder(@NonNull RequestManager requestManager, @NonNull Slide slide) { + RequestBuilder requestBuilder = applySizing(requestManager.load(new DecryptableUri(Objects.requireNonNull(slide.getUri()))) .diskCacheStrategy(DiskCacheStrategy.RESOURCE) .downsample(SignalDownsampleStrategy.CENTER_OUTSIDE_NO_UPSCALE) .transition(withCrossFade())); @@ -551,21 +550,21 @@ public class ThumbnailView extends FrameLayout { boolean doNotShowMissingThumbnailImage = Build.VERSION.SDK_INT < 23; if (slide.isInProgress() || doNotShowMissingThumbnailImage) { - return request; + return requestBuilder; } else { - return request.apply(RequestOptions.errorOf(R.drawable.missing_thumbnail)); + return requestBuilder.apply(RequestOptions.errorOf(R.drawable.missing_thumbnail)); } } - public void clear(GlideRequests glideRequests) { - glideRequests.clear(image); + public void clear(RequestManager requestManager) { + requestManager.clear(image); image.setImageDrawable(null); if (transferControlViewStub.resolved()) { transferControlViewStub.get().clear(); } - glideRequests.clear(blurHash); + requestManager.clear(blurHash); blurHash.setImageDrawable(null); slide = null; @@ -594,9 +593,9 @@ public class ThumbnailView extends FrameLayout { } - private RequestBuilder buildPlaceholderGlideRequest(@NonNull GlideRequests glideRequests, @NonNull Slide slide) { - GlideRequest bitmap = glideRequests.asBitmap(); - BlurHash placeholderBlur = slide.getPlaceholderBlur(); + private RequestBuilder buildPlaceholderRequestBuilder(@NonNull RequestManager requestManager, @NonNull Slide slide) { + RequestBuilder bitmap = requestManager.asBitmap(); + BlurHash placeholderBlur = slide.getPlaceholderBlur(); if (placeholderBlur != null) { bitmap = bitmap.load(placeholderBlur); @@ -604,7 +603,7 @@ public class ThumbnailView extends FrameLayout { bitmap = bitmap.load(slide.getPlaceholderRes(getContext().getTheme())); } - final GlideRequest resizedRequest = applySizing(bitmap.diskCacheStrategy(DiskCacheStrategy.NONE)); + final RequestBuilder resizedRequest = applySizing(bitmap.diskCacheStrategy(DiskCacheStrategy.NONE)); if (placeholderBlur != null) { return resizedRequest.centerCrop(); } else { @@ -612,7 +611,7 @@ public class ThumbnailView extends FrameLayout { } } - private GlideRequest applySizing(@NonNull GlideRequest request) { + private RequestBuilder applySizing(@NonNull RequestBuilder request) { int[] size = new int[2]; fillTargetDimensions(size, dimens, bounds); if (size[WIDTH] == 0 && size[HEIGHT] == 0) { @@ -701,23 +700,23 @@ public class ThumbnailView extends FrameLayout { private static class BlurHashClearListener implements ListenableFuture.Listener { - private final GlideRequests glideRequests; - private final ImageView blurHash; + private final RequestManager requestManager; + private final ImageView blurHash; - private BlurHashClearListener(@NonNull GlideRequests glideRequests, @NonNull ImageView blurHash) { - this.glideRequests = glideRequests; - this.blurHash = blurHash; + private BlurHashClearListener(@NonNull RequestManager requestManager, @NonNull ImageView blurHash) { + this.requestManager = requestManager; + this.blurHash = blurHash; } @Override public void onSuccess(Boolean result) { - glideRequests.clear(blurHash); + requestManager.clear(blurHash); blurHash.setImageDrawable(null); } @Override public void onFailure(ExecutionException e) { - glideRequests.clear(blurHash); + requestManager.clear(blurHash); blurHash.setImageDrawable(null); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/TooltipPopup.java b/app/src/main/java/org/thoughtcrime/securesms/components/TooltipPopup.java index 82622774f1..f1e9f7510f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/TooltipPopup.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/TooltipPopup.java @@ -18,13 +18,13 @@ import androidx.annotation.Px; import androidx.annotation.StringRes; import androidx.core.content.ContextCompat; +import com.bumptech.glide.Glide; import com.google.android.material.shape.MaterialShapeDrawable; import com.google.android.material.shape.ShapeAppearanceModel; import org.signal.core.util.DimensionUnit; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.mms.GlideApp; /** * Class for creating simple tooltips to show throughout the app. Utilizes a popup window so you @@ -101,7 +101,7 @@ public class TooltipPopup extends PopupWindow { if (iconGlideModel != null) { ImageView iconView = getContentView().findViewById(R.id.tooltip_icon); iconView.setVisibility(View.VISIBLE); - GlideApp.with(anchor.getContext()).load(iconGlideModel).into(iconView); + Glide.with(anchor.getContext()).load(iconGlideModel).into(iconView); } setElevation(10); 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 4025a8c872..eee2ad1d67 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ZoomingImageView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ZoomingImageView.java @@ -11,6 +11,7 @@ import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.exifinterface.media.ExifInterface; +import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.target.Target; import com.davemorrissey.labs.subscaleview.ImageSource; @@ -23,7 +24,6 @@ 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.GlideRequests; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.util.ActionRequestListener; import org.thoughtcrime.securesms.util.BitmapDecodingException; @@ -81,7 +81,7 @@ public class ZoomingImageView extends FrameLayout { } @SuppressLint("StaticFieldLeak") - public void setImageUri(@NonNull GlideRequests glideRequests, @NonNull Uri uri, @NonNull String contentType, @NonNull Runnable onMediaReady) + public void setImageUri(@NonNull RequestManager requestManager, @NonNull Uri uri, @NonNull String contentType, @NonNull Runnable onMediaReady) { final Context context = getContext(); final int maxTextureSize = BitmapUtil.getMaxTextureSize(); @@ -103,7 +103,7 @@ public class ZoomingImageView extends FrameLayout { if (dimensions == null || (dimensions.first <= maxTextureSize && dimensions.second <= maxTextureSize)) { Log.i(TAG, "Loading in standard image view..."); - setImageViewUri(glideRequests, uri, onMediaReady); + setImageViewUri(requestManager, uri, onMediaReady); } else { Log.i(TAG, "Loading in subsampling image view..."); setSubsamplingImageViewUri(uri); @@ -112,11 +112,11 @@ public class ZoomingImageView extends FrameLayout { }); } - private void setImageViewUri(@NonNull GlideRequests glideRequests, @NonNull Uri uri, @NonNull Runnable onMediaReady) { + private void setImageViewUri(@NonNull RequestManager requestManager, @NonNull Uri uri, @NonNull Runnable onMediaReady) { photoView.setVisibility(View.VISIBLE); subsamplingImageView.setVisibility(View.GONE); - glideRequests.load(new DecryptableUri(uri)) + requestManager.load(new DecryptableUri(uri)) .diskCacheStrategy(DiskCacheStrategy.NONE) .dontTransform() .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/SharedMediaPreference.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/SharedMediaPreference.kt index 5be0a777b7..0cb408dabc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/SharedMediaPreference.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/SharedMediaPreference.kt @@ -1,11 +1,11 @@ package org.thoughtcrime.securesms.components.settings.conversation.preferences import android.view.View +import com.bumptech.glide.Glide import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.ThreadPhotoRailView import org.thoughtcrime.securesms.components.settings.PreferenceModel import org.thoughtcrime.securesms.database.MediaTable -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter @@ -40,7 +40,7 @@ object SharedMediaPreference { private val rail: ThreadPhotoRailView = itemView.findViewById(R.id.rail_view) override fun bind(model: Model) { - rail.setMediaRecords(GlideApp.with(rail), model.mediaRecords) + rail.setMediaRecords(Glide.with(rail), model.mediaRecords) rail.setListener { v, m -> model.onMediaRecordClick(v, m, ViewUtil.isLtr(rail)) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallParticipantView.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallParticipantView.java index 71246b9ecd..04b6438d79 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallParticipantView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallParticipantView.java @@ -19,6 +19,7 @@ import androidx.core.widget.ImageViewCompat; import androidx.transition.Transition; import androidx.transition.TransitionManager; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -33,7 +34,6 @@ import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto; import org.thoughtcrime.securesms.conversation.colors.ChatColors; import org.thoughtcrime.securesms.events.CallParticipant; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.AvatarUtil; @@ -408,7 +408,7 @@ public class CallParticipantView extends ConstraintLayout { : recipient.getContactPhoto(); FallbackContactPhoto fallbackPhoto = recipient.getFallbackContactPhoto(FALLBACK_PHOTO_PROVIDER); - GlideApp.with(this) + Glide.with(this) .load(contactPhoto) .fallback(fallbackPhoto.asCallCard(getContext())) .error(fallbackPhoto.asCallCard(getContext())) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java index c881a5a4b5..e6d33c3d95 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallView.java @@ -36,6 +36,7 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager2.widget.MarginPageTransformer; import androidx.viewpager2.widget.ViewPager2; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.bitmap.CenterCrop; import com.google.android.material.button.MaterialButton; @@ -52,7 +53,6 @@ import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto; import org.thoughtcrime.securesms.events.CallParticipant; import org.thoughtcrime.securesms.events.WebRtcViewModel; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.ringrtc.CameraState; @@ -555,7 +555,7 @@ public class WebRtcCallView extends InsetAwareConstraintLayout { if (!localAvatar.equals(previousLocalAvatar)) { previousLocalAvatar = localAvatar; - GlideApp.with(getContext().getApplicationContext()) + Glide.with(getContext().getApplicationContext()) .load(localAvatar) .transform(new CenterCrop(), new BlurTransformation(getContext(), 0.25f, BlurTransformation.MAX_RADIUS)) .diskCacheStrategy(DiskCacheStrategy.ALL) diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactChip.java b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactChip.java index d5eee35242..731e3ddb34 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactChip.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactChip.java @@ -11,13 +11,13 @@ import android.util.AttributeSet; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.target.CustomTarget; import com.bumptech.glide.request.transition.Transition; import com.google.android.material.chip.Chip; import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.Recipient; public final class ContactChip extends Chip { @@ -44,7 +44,7 @@ public final class ContactChip extends Chip { return contact; } - public void setAvatar(@NonNull GlideRequests requestManager, @Nullable Recipient recipient, @Nullable Runnable onAvatarSet) { + public void setAvatar(@NonNull RequestManager requestManager, @Nullable Recipient recipient, @Nullable Runnable onAvatarSet) { if (recipient != null) { requestManager.clear(this); diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/SelectedContacts.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/SelectedContacts.kt index 9ced4e5b68..b4771a9363 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/SelectedContacts.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/SelectedContacts.kt @@ -1,8 +1,8 @@ package org.thoughtcrime.securesms.contacts import android.view.View +import com.bumptech.glide.Glide import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter @@ -36,7 +36,7 @@ object SelectedContacts { chip.setOnCloseIconClickListener { onCloseIconClicked(model) } - chip.setAvatar(GlideApp.with(itemView), model.recipient, null) + chip.setAvatar(Glide.with(itemView), model.recipient, null) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java index b359d9b5c1..41daa4c414 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java @@ -15,11 +15,11 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import com.annimon.stream.Stream; +import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.engine.DiskCacheStrategy; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.contactshare.Contact.Phone; -import org.thoughtcrime.securesms.mms.GlideRequests; import java.util.ArrayList; import java.util.List; @@ -31,16 +31,16 @@ import static org.thoughtcrime.securesms.contactshare.Contact.PostalAddress; class ContactFieldAdapter extends RecyclerView.Adapter { - private final Locale locale; - private final boolean selectable; - private final List fields; - private final GlideRequests glideRequests; + private final Locale locale; + private final boolean selectable; + private final List fields; + private final RequestManager requestManager; - public ContactFieldAdapter(@NonNull Locale locale, @NonNull GlideRequests glideRequests, boolean selectable) { - this.locale = locale; - this.glideRequests = glideRequests; - this.selectable = selectable; - this.fields = new ArrayList<>(); + public ContactFieldAdapter(@NonNull Locale locale, @NonNull RequestManager requestManager, boolean selectable) { + this.locale = locale; + this.requestManager = requestManager; + this.selectable = selectable; + this.fields = new ArrayList<>(); } @Override @@ -50,7 +50,7 @@ class ContactFieldAdapter extends RecyclerView.Adapter { - private final GlideRequests glideRequests; - private final Locale locale; - private final EventListener eventListener; - private final List contacts; + private final RequestManager requestManager; + private final Locale locale; + private final EventListener eventListener; + private final List contacts; - ContactShareEditAdapter(@NonNull GlideRequests glideRequests, @NonNull Locale locale, @NonNull EventListener eventListener) { - this.glideRequests = glideRequests; - this.locale = locale; - this.eventListener = eventListener; - this.contacts = new ArrayList<>(); + ContactShareEditAdapter(@NonNull RequestManager requestManager, @NonNull Locale locale, @NonNull EventListener eventListener) { + this.requestManager = requestManager; + this.locale = locale; + this.eventListener = eventListener; + this.contacts = new ArrayList<>(); } @Override public @NonNull ContactEditViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ContactEditViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_editable_contact, parent, false), locale, - glideRequests); + requestManager); } @Override @@ -67,12 +68,12 @@ public class ContactShareEditAdapter extends RecyclerView.Adapter { + mediaAdapter = new AttachmentKeyboardMediaAdapter(Glide.with(this), media -> { if (callback != null) { callback.onAttachmentMediaClicked(media); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/AttachmentKeyboardMediaAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/AttachmentKeyboardMediaAdapter.java index 2a33fb9cee..8aa6692a61 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/AttachmentKeyboardMediaAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/AttachmentKeyboardMediaAdapter.java @@ -8,10 +8,11 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.RequestManager; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.ThumbnailView; import org.thoughtcrime.securesms.mediasend.Media; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.adapter.StableIdGenerator; @@ -22,15 +23,15 @@ import java.util.concurrent.TimeUnit; class AttachmentKeyboardMediaAdapter extends RecyclerView.Adapter { private final List media; - private final GlideRequests glideRequests; + private final RequestManager requestManager; private final Listener listener; private final StableIdGenerator idGenerator; - AttachmentKeyboardMediaAdapter(@NonNull GlideRequests glideRequests, @NonNull Listener listener) { - this.glideRequests = glideRequests; - this.listener = listener; - this.media = new ArrayList<>(); - this.idGenerator = new StableIdGenerator<>(); + AttachmentKeyboardMediaAdapter(@NonNull RequestManager requestManager, @NonNull Listener listener) { + this.requestManager = requestManager; + this.listener = listener; + this.media = new ArrayList<>(); + this.idGenerator = new StableIdGenerator<>(); setHasStableIds(true); } @@ -47,7 +48,7 @@ class AttachmentKeyboardMediaAdapter extends RecyclerView.Adapter listener.onMediaClicked(media)); duration.setVisibility(View.GONE); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java index 7e0c800204..9f7e396496 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java @@ -39,6 +39,8 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.media3.common.MediaItem; +import com.bumptech.glide.RequestManager; + import org.signal.core.util.logging.Log; import org.signal.paging.PagingController; import org.thoughtcrime.securesms.BindableConversationItem; @@ -50,7 +52,6 @@ import org.thoughtcrime.securesms.database.model.MmsMessageRecord; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.giph.mp4.GiphyMp4Playable; import org.thoughtcrime.securesms.giph.mp4.GiphyMp4PlaybackPolicyEnforcer; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.CachedInflater; import org.thoughtcrime.securesms.util.DateUtils; @@ -99,7 +100,7 @@ public class ConversationAdapter private final ItemClickListener clickListener; private final Context context; private final LifecycleOwner lifecycleOwner; - private final GlideRequests glideRequests; + private final RequestManager requestManager; private final Locale locale; private final Set selected; private final Calendar calendar; @@ -119,7 +120,7 @@ public class ConversationAdapter public ConversationAdapter(@NonNull Context context, @NonNull LifecycleOwner lifecycleOwner, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @NonNull Locale locale, @Nullable ItemClickListener clickListener, boolean hasWallpaper, @@ -137,10 +138,10 @@ public class ConversationAdapter } }); - this.lifecycleOwner = lifecycleOwner; - this.context = context; + this.lifecycleOwner = lifecycleOwner; + this.context = context; - this.glideRequests = glideRequests; + this.requestManager = requestManager; this.locale = locale; this.clickListener = clickListener; this.selected = new HashSet<>(); @@ -276,7 +277,7 @@ public class ConversationAdapter conversationMessage, Optional.ofNullable(previousMessage != null ? previousMessage.getMessageRecord() : null), Optional.ofNullable(nextMessage != null ? nextMessage.getMessageRecord() : null), - glideRequests, + requestManager, locale, selected, conversationMessage.getThreadRecipient(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationHeaderView.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationHeaderView.java index 6baf455bb0..f045b7e7bd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationHeaderView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationHeaderView.java @@ -15,6 +15,8 @@ import androidx.constraintlayout.widget.ConstraintLayout; import androidx.core.content.ContextCompat; import androidx.core.view.ViewKt; +import com.bumptech.glide.RequestManager; + import org.signal.core.util.DimensionUnit; import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.R; @@ -23,7 +25,6 @@ import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.databinding.ConversationHeaderViewBinding; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.ContextUtil; import org.thoughtcrime.securesms.util.LongClickMovementMethod; @@ -60,8 +61,8 @@ public class ConversationHeaderView extends ConstraintLayout { } } - public void setAvatar(@NonNull GlideRequests requests, @Nullable Recipient recipient) { - binding.messageRequestAvatar.setAvatar(requests, recipient, false); + public void setAvatar(@NonNull RequestManager requestManager, @Nullable Recipient recipient) { + binding.messageRequestAvatar.setAvatar(requestManager, recipient, false); if (recipient != null && recipient.shouldBlurAvatar() && recipient.getContactPhoto() != null) { binding.messageRequestAvatarTapToView.setVisibility(VISIBLE); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java index 4811a23dc6..c258bda6c4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -60,6 +60,7 @@ import androidx.lifecycle.LifecycleOwner; import androidx.media3.common.MediaItem; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.RequestManager; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.common.collect.Sets; @@ -123,7 +124,6 @@ import org.thoughtcrime.securesms.linkpreview.LinkPreview; import org.thoughtcrime.securesms.mediapreview.MediaIntentFactory; import org.thoughtcrime.securesms.mediapreview.MediaPreviewCache; import org.thoughtcrime.securesms.mediapreview.MediaPreviewV2Fragment; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.mms.ImageSlide; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.mms.Slide; @@ -199,7 +199,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo private Locale locale; private boolean groupThread; private LiveRecipient author; - private GlideRequests glideRequests; + private RequestManager requestManager; private Optional previousMessage; private ConversationItemDisplayMode displayMode; @@ -364,7 +364,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo @NonNull ConversationMessage conversationMessage, @NonNull Optional previousMessageRecord, @NonNull Optional nextMessageRecord, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @NonNull Locale locale, @NonNull Set batchSelected, @NonNull Recipient conversationRecipient, @@ -386,7 +386,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo this.messageRecord = conversationMessage.getMessageRecord(); this.nextMessageRecord = nextMessageRecord; this.locale = locale; - this.glideRequests = glideRequests; + this.requestManager = requestManager; this.batchSelected = batchSelected; this.conversationRecipient = conversationRecipient.live(); this.groupThread = conversationRecipient.isGroup(); @@ -716,7 +716,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo bodyBubble.setVideoPlayerProjection(null); bodyBubble.setQuoteViewProjection(null); - glideRequests = null; + requestManager = null; } @Override @@ -1131,7 +1131,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo if (joinCallLinkStub.resolved()) joinCallLinkStub.get().setVisibility(View.GONE); paymentViewStub.setVisibility(View.GONE); - sharedContactStub.get().setContact(((MmsMessageRecord) messageRecord).getSharedContacts().get(0), glideRequests, locale); + sharedContactStub.get().setContact(((MmsMessageRecord) messageRecord).getSharedContacts().get(0), requestManager, locale); sharedContactStub.get().setEventListener(sharedContactEventListener); sharedContactStub.get().setOnClickListener(sharedContactClickListener); sharedContactStub.get().setOnLongClickListener(passthroughClickListener); @@ -1174,14 +1174,14 @@ public final class ConversationItem extends RelativeLayout implements BindableCo mediaThumbnailStub.require().setVisibility(VISIBLE); mediaThumbnailStub.require().setMinimumThumbnailWidth(readDimen(R.dimen.media_bubble_min_width_with_content)); mediaThumbnailStub.require().setMaximumThumbnailHeight(readDimen(R.dimen.media_bubble_max_height)); - mediaThumbnailStub.require().setImageResource(glideRequests, Collections.singletonList(new ImageSlide(linkPreview.getThumbnail().get())), showControls, false); + mediaThumbnailStub.require().setImageResource(requestManager, Collections.singletonList(new ImageSlide(linkPreview.getThumbnail().get())), showControls, false); mediaThumbnailStub.require().setThumbnailClickListener(new LinkPreviewThumbnailClickListener()); mediaThumbnailStub.require().setStartTransferClickListener(downloadClickListener); mediaThumbnailStub.require().setCancelTransferClickListener(attachmentCancelClickListener); mediaThumbnailStub.require().setPlayVideoClickListener(playVideoClickListener); mediaThumbnailStub.require().setOnLongClickListener(passthroughClickListener); - linkPreviewStub.get().setLinkPreview(glideRequests, linkPreview, false); + linkPreviewStub.get().setLinkPreview(requestManager, linkPreview, false); setThumbnailCorners(messageRecord, previousRecord, nextRecord, isGroupThread); setLinkPreviewCorners(messageRecord, previousRecord, nextRecord, isGroupThread, true); @@ -1190,7 +1190,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo ViewUtil.updateLayoutParamsIfNonNull(groupSenderHolder, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); ViewUtil.setTopMargin(linkPreviewStub.get(), 0); } else { - linkPreviewStub.get().setLinkPreview(glideRequests, linkPreview, true, !isContentCondensed(), displayMode.getScheduleMessageMode()); + linkPreviewStub.get().setLinkPreview(requestManager, linkPreview, true, !isContentCondensed(), displayMode.getScheduleMessageMode()); linkPreviewStub.get().setDownloadClickedListener(downloadClickListener); setLinkPreviewCorners(messageRecord, previousRecord, nextRecord, isGroupThread, false); ViewUtil.updateLayoutParams(bodyText, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); @@ -1277,11 +1277,11 @@ public final class ConversationItem extends RelativeLayout implements BindableCo if (hasSticker(messageRecord)) { //noinspection ConstantConditions - stickerStub.get().setSlide(glideRequests, ((MmsMessageRecord) messageRecord).getSlideDeck().getStickerSlide()); + stickerStub.get().setSlide(requestManager, ((MmsMessageRecord) messageRecord).getSlideDeck().getStickerSlide()); stickerStub.get().setThumbnailClickListener(new StickerClickListener()); } else { //noinspection ConstantConditions - stickerStub.get().setSlide(glideRequests, ((MmsMessageRecord) messageRecord).getSlideDeck().getThumbnailSlide()); + stickerStub.get().setSlide(requestManager, ((MmsMessageRecord) messageRecord).getSlideDeck().getThumbnailSlide()); stickerStub.get().setThumbnailClickListener((v, slide) -> performClick()); } @@ -1319,7 +1319,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo mediaThumbnailStub.require().setOnLongClickListener(passthroughClickListener); mediaThumbnailStub.require().setOnClickListener(passthroughClickListener); mediaThumbnailStub.require().showShade(messageRecord.isDisplayBodyEmpty(getContext()) && !hasExtraText(messageRecord)); - mediaThumbnailStub.require().setImageResource(glideRequests, + mediaThumbnailStub.require().setImageResource(requestManager, thumbnailSlides, showControls, false); @@ -1366,7 +1366,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo paymentViewStub.setVisibility(View.GONE); MmsMessageRecord mmsMessageRecord = (MmsMessageRecord) messageRecord; - giftViewStub.get().setGiftBadge(glideRequests, Objects.requireNonNull(mmsMessageRecord.getGiftBadge()), messageRecord.isOutgoing(), giftMessageViewCallback, messageRecord.getFromRecipient(), messageRecord.getToRecipient()); + giftViewStub.get().setGiftBadge(requestManager, Objects.requireNonNull(mmsMessageRecord.getGiftBadge()), messageRecord.isOutgoing(), giftMessageViewCallback, messageRecord.getFromRecipient(), messageRecord.getToRecipient()); giftViewStub.get().setVisibility(VISIBLE); footer.setVisibility(VISIBLE); @@ -1537,8 +1537,8 @@ public final class ConversationItem extends RelativeLayout implements BindableCo } }); - contactPhoto.setAvatar(glideRequests, recipient, false); - badgeImageView.setBadgeFromRecipient(recipient, glideRequests); + contactPhoto.setAvatar(requestManager, recipient, false); + badgeImageView.setBadgeFromRecipient(recipient, requestManager); badgeImageView.setClickable(false); } @@ -1601,7 +1601,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo } //noinspection ConstantConditions - quoteView.setQuote(glideRequests, + quoteView.setQuote(requestManager, quote.getId(), Recipient.live(quote.getAuthor()).get(), quote.getDisplayText(), 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 dae2642e0a..daffed9555 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationStickerSuggestionAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationStickerSuggestionAdapter.java @@ -8,24 +8,24 @@ import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.RequestManager; 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.GlideRequests; import java.util.ArrayList; import java.util.List; public class ConversationStickerSuggestionAdapter extends RecyclerView.Adapter { - private final GlideRequests glideRequests; + private final RequestManager requestManager; private final EventListener eventListener; private final List stickers; - public ConversationStickerSuggestionAdapter(@NonNull GlideRequests glideRequests, @NonNull EventListener eventListener) { - this.glideRequests = glideRequests; + public ConversationStickerSuggestionAdapter(@NonNull RequestManager requestManager, @NonNull EventListener eventListener) { + this.requestManager = requestManager; this.eventListener = eventListener; this.stickers = new ArrayList<>(); } @@ -37,7 +37,7 @@ public class ConversationStickerSuggestionAdapter extends RecyclerView.Adapter previousMessageRecord, @NonNull Optional nextMessageRecord, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @NonNull Locale locale, @NonNull Set batchSelected, @NonNull Recipient conversationRecipient, diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesBottomSheet.kt index bbfc7a8e10..10fafdaddc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesBottomSheet.kt @@ -12,6 +12,7 @@ import androidx.fragment.app.FragmentManager import androidx.fragment.app.viewModels import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.signal.core.util.StreamUtil import org.signal.core.util.concurrent.LifecycleDisposable @@ -38,7 +39,6 @@ import org.thoughtcrime.securesms.giph.mp4.GiphyMp4ProjectionPlayerHolder import org.thoughtcrime.securesms.giph.mp4.GiphyMp4ProjectionRecycler import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.GroupMigrationMembershipChange -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.mms.PartAuthority import org.thoughtcrime.securesms.mms.TextSlide import org.thoughtcrime.securesms.recipients.Recipient @@ -91,7 +91,7 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment val colorizer = Colorizer() - messageAdapter = ConversationAdapter(requireContext(), viewLifecycleOwner, GlideApp.with(this), Locale.getDefault(), ConversationAdapterListener(), conversationRecipient.hasWallpaper(), colorizer).apply { + messageAdapter = ConversationAdapter(requireContext(), viewLifecycleOwner, Glide.with(this), Locale.getDefault(), ConversationAdapterListener(), conversationRecipient.hasWallpaper(), colorizer).apply { setCondensedMode(ConversationItemDisplayMode.Condensed(scheduleMessageMode = true)) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt index a88769f7ef..34e9f3b417 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt @@ -4,6 +4,7 @@ import android.content.Context import android.net.Uri import android.text.Spannable import android.text.SpannableString +import com.bumptech.glide.Glide import io.reactivex.rxjava3.core.Maybe import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.core.util.Base64 @@ -33,7 +34,6 @@ import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.keyboard.KeyboardUtil import org.thoughtcrime.securesms.mediasend.Media import org.thoughtcrime.securesms.mms.GifSlide -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.mms.ImageSlide import org.thoughtcrime.securesms.mms.PartAuthority import org.thoughtcrime.securesms.mms.QuoteId @@ -97,7 +97,7 @@ class DraftRepository( } if (shareMedia != null && shareContentType != null && borderless) { - val details = KeyboardUtil.getImageDetails(GlideApp.with(context), shareMedia) + val details = KeyboardUtil.getImageDetails(Glide.with(context), shareMedia) if (details == null || !details.hasTransparency) { return ShareOrDraftData.SetMedia(shareMedia, shareMediaType!!, null) to null diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesBottomSheet.kt index ef93ab0a50..4fffcbbebf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesBottomSheet.kt @@ -10,6 +10,7 @@ import androidx.fragment.app.FragmentManager import androidx.fragment.app.viewModels import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import org.signal.core.util.concurrent.LifecycleDisposable @@ -35,7 +36,6 @@ import org.thoughtcrime.securesms.giph.mp4.GiphyMp4ProjectionRecycler import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.GroupMigrationMembershipChange import org.thoughtcrime.securesms.linkpreview.LinkPreview -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.BottomSheetUtil @@ -73,7 +73,7 @@ class MessageQuotesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment() { val colorizer = Colorizer() - messageAdapter = ConversationAdapter(requireContext(), viewLifecycleOwner, GlideApp.with(this), Locale.getDefault(), ConversationAdapterListener(), conversationRecipient.hasWallpaper(), colorizer).apply { + messageAdapter = ConversationAdapter(requireContext(), viewLifecycleOwner, Glide.with(this), Locale.getDefault(), ConversationAdapterListener(), conversationRecipient.hasWallpaper(), colorizer).apply { setCondensedMode(ConversationItemDisplayMode.Condensed(scheduleMessageMode = false)) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryDialog.kt index 8ba4e127ad..b5eb033007 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryDialog.kt @@ -10,6 +10,7 @@ import androidx.core.view.doOnNextLayout import androidx.fragment.app.FragmentManager import androidx.fragment.app.viewModels import androidx.recyclerview.widget.LinearLayoutManager +import com.bumptech.glide.Glide import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import io.reactivex.rxjava3.kotlin.subscribeBy @@ -36,7 +37,6 @@ import org.thoughtcrime.securesms.giph.mp4.GiphyMp4ProjectionPlayerHolder import org.thoughtcrime.securesms.giph.mp4.GiphyMp4ProjectionRecycler import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.GroupMigrationMembershipChange -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.BottomSheetUtil @@ -85,7 +85,7 @@ class EditMessageHistoryDialog : FixedRoundedCornerBottomSheetDialogFragment() { val messageAdapter = ConversationAdapter( requireContext(), viewLifecycleOwner, - GlideApp.with(this), + Glide.with(this), Locale.getDefault(), ConversationAdapterListener(), conversationRecipient.hasWallpaper(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt index 58715d7ce1..36a19a5909 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt @@ -13,6 +13,7 @@ import androidx.core.view.children import androidx.lifecycle.LifecycleOwner import androidx.media3.common.MediaItem import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.RequestManager import org.signal.core.util.logging.Log import org.signal.core.util.toOptional import org.thoughtcrime.securesms.BindableConversationItem @@ -50,7 +51,6 @@ import org.thoughtcrime.securesms.giph.mp4.GiphyMp4PlaybackPolicyEnforcer import org.thoughtcrime.securesms.groups.v2.GroupDescriptionUtil import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.messagerequests.MessageRequestState -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.CachedInflater @@ -63,7 +63,7 @@ import java.util.Optional class ConversationAdapterV2( private val lifecycleOwner: LifecycleOwner, - override val glideRequests: GlideRequests, + override val requestManager: RequestManager, override val clickListener: ItemClickListener, private var hasWallpaper: Boolean, private val colorizer: Colorizer, @@ -336,7 +336,7 @@ class ConversationAdapterV2( model.conversationMessage, previousMessage, nextMessage, - glideRequests, + requestManager, Locale.getDefault(), _selected, model.conversationMessage.threadRecipient, @@ -364,7 +364,7 @@ class ConversationAdapterV2( model.conversationMessage, previousMessage, nextMessage, - glideRequests, + requestManager, Locale.getDefault(), _selected, model.conversationMessage.threadRecipient, @@ -392,7 +392,7 @@ class ConversationAdapterV2( model.conversationMessage, previousMessage, nextMessage, - glideRequests, + requestManager, Locale.getDefault(), _selected, model.conversationMessage.threadRecipient, @@ -420,7 +420,7 @@ class ConversationAdapterV2( model.conversationMessage, previousMessage, nextMessage, - glideRequests, + requestManager, Locale.getDefault(), _selected, model.conversationMessage.threadRecipient, @@ -448,7 +448,7 @@ class ConversationAdapterV2( model.conversationMessage, previousMessage, nextMessage, - glideRequests, + requestManager, Locale.getDefault(), _selected, model.conversationMessage.threadRecipient, @@ -569,7 +569,7 @@ class ConversationAdapterV2( val (recipient, groupInfo, sharedGroups, messageRequestState) = model.recipientInfo val isSelf = recipient.id == Recipient.self().id - conversationBanner.setAvatar(glideRequests, recipient) + conversationBanner.setAvatar(requestManager, recipient) conversationBanner.showBackgroundBubble(recipient.hasWallpaper()) val title: String = conversationBanner.setTitle(recipient) conversationBanner.setAbout(recipient) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index e0216816ce..8fa9ec8e15 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -66,6 +66,7 @@ import androidx.recyclerview.widget.ConcatAdapter import androidx.recyclerview.widget.ConversationLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.BaseTransientBottomBar.Duration import com.google.android.material.snackbar.Snackbar @@ -246,7 +247,6 @@ import org.thoughtcrime.securesms.messagerequests.MessageRequestState import org.thoughtcrime.securesms.mms.AttachmentManager import org.thoughtcrime.securesms.mms.AudioSlide import org.thoughtcrime.securesms.mms.GifSlide -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.mms.ImageSlide import org.thoughtcrime.securesms.mms.MediaConstraints import org.thoughtcrime.securesms.mms.QuoteModel @@ -1203,7 +1203,7 @@ class ConversationFragment : ) conversationActivityResultContracts.launchMediaEditor(listOf(media), recipientId, composeText.textTrimmed) } else { - attachmentManager.setMedia(GlideApp.with(this), uri, mediaType, MediaConstraints.getPushMediaConstraints(), width, height) + attachmentManager.setMedia(Glide.with(this), uri, mediaType, MediaConstraints.getPushMediaConstraints(), width, height) } } @@ -1299,7 +1299,7 @@ class ConversationFragment : val titleView = binding.conversationTitleView.root - titleView.setTitle(GlideApp.with(this), recipient) + titleView.setTitle(Glide.with(this), recipient) if (recipient.expiresInSeconds > 0) { titleView.showExpiring(recipient) } else { @@ -1443,7 +1443,7 @@ class ConversationFragment : is ShareOrDraftData.SetLocation -> attachmentManager.setLocation(data.location, MediaConstraints.getPushMediaConstraints()) is ShareOrDraftData.SetEditMessage -> { composeText.setDraftText(data.draftText) - inputPanel.enterEditMessageMode(GlideApp.with(this), data.messageEdit, true) + inputPanel.enterEditMessageMode(Glide.with(this), data.messageEdit, true) } is ShareOrDraftData.SetMedia -> { @@ -1531,7 +1531,7 @@ class ConversationFragment : adapter = ConversationAdapterV2( lifecycleOwner = viewLifecycleOwner, - glideRequests = GlideApp.with(this), + requestManager = Glide.with(this), clickListener = ConversationItemClickListener(), hasWallpaper = args.wallpaper != null, colorizer = colorizer, @@ -1539,7 +1539,7 @@ class ConversationFragment : chatColorsDataProvider = viewModel::chatColorsSnapshot ) - typingIndicatorAdapter = ConversationTypingIndicatorAdapter(GlideApp.with(this)) + typingIndicatorAdapter = ConversationTypingIndicatorAdapter(Glide.with(this)) scrollToPositionDelegate = ScrollToPositionDelegate( recyclerView = binding.conversationItemRecycler, @@ -1640,7 +1640,7 @@ class ConversationFragment : } else if (state.hasLinks() && !state.linkPreview.isPresent) { inputPanel.setLinkPreviewNoPreview(state.error) } else { - inputPanel.setLinkPreview(GlideApp.with(this), state.linkPreview) + inputPanel.setLinkPreview(Glide.with(this), state.linkPreview) } updateToggleButtonState() @@ -1853,7 +1853,7 @@ class ConversationFragment : composeTextEventsListener?.typingStatusEnabled = false composeText.setText("") composeTextEventsListener?.typingStatusEnabled = true - attachmentManager.clear(GlideApp.with(this@ConversationFragment), false) + attachmentManager.clear(Glide.with(this@ConversationFragment), false) inputPanel.clearQuote() } scrollToPositionDelegate.markListCommittedVersion() @@ -2129,7 +2129,7 @@ class ConversationFragment : val author = conversationMessage.messageRecord.fromRecipient inputPanel.setQuote( - GlideApp.with(this), + Glide.with(this), conversationMessage.messageRecord.dateSent, author, body, @@ -2147,7 +2147,7 @@ class ConversationFragment : viewModel.resolveMessageToEdit(conversationMessage) .subscribeBy { updatedMessage -> - inputPanel.enterEditMessageMode(GlideApp.with(this), updatedMessage, false) + inputPanel.enterEditMessageMode(Glide.with(this), updatedMessage, false) } .addTo(disposables) } @@ -3120,7 +3120,7 @@ class ConversationFragment : requireActivity().registerReceiver(pinnedShortcutReceiver, IntentFilter(ACTION_PINNED_SHORTCUT)) } - viewModel.getContactPhotoIcon(requireContext(), GlideApp.with(this@ConversationFragment)) + viewModel.getContactPhotoIcon(requireContext(), Glide.with(this@ConversationFragment)) .subscribe { infoCompat -> val intent = Intent(ACTION_PINNED_SHORTCUT) val callback = PendingIntent.getBroadcast(requireContext(), 902, intent, PendingIntentFlags.mutable()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt index 2d870a9d21..572491c8c4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt @@ -13,6 +13,8 @@ import android.os.Build import android.text.SpannableStringBuilder import androidx.core.content.pm.ShortcutInfoCompat import androidx.core.graphics.drawable.IconCompat +import com.bumptech.glide.Glide +import com.bumptech.glide.RequestManager import com.bumptech.glide.request.target.CustomTarget import com.bumptech.glide.request.transition.Transition import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers @@ -75,8 +77,6 @@ import org.thoughtcrime.securesms.keyboard.KeyboardUtil import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.linkpreview.LinkPreview import org.thoughtcrime.securesms.messagerequests.MessageRequestState -import org.thoughtcrime.securesms.mms.GlideApp -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.mms.OutgoingMessage import org.thoughtcrime.securesms.mms.PartAuthority import org.thoughtcrime.securesms.mms.QuoteModel @@ -123,7 +123,7 @@ class ConversationRepository( */ fun getKeyboardImageDetails(uri: Uri): Maybe { return MaybeCompat.fromCallable { - KeyboardUtil.getImageDetails(GlideApp.with(applicationContext), uri) + KeyboardUtil.getImageDetails(Glide.with(applicationContext), uri) }.subscribeOn(Schedulers.io()) } @@ -474,12 +474,12 @@ class ConversationRepository( .joinTo(buffer = SpannableStringBuilder(), separator = "\n") } - fun getRecipientContactPhotoBitmap(context: Context, glideRequests: GlideRequests, recipient: Recipient): Single { + fun getRecipientContactPhotoBitmap(context: Context, requestManager: RequestManager, recipient: Recipient): Single { val fallback = recipient.fallbackContactPhoto.asDrawable(context, recipient.avatarColor, false) return Single .create { emitter -> - glideRequests + requestManager .asBitmap() .load(recipient.contactPhoto) .error(fallback) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationTypingIndicatorAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationTypingIndicatorAdapter.kt index 30b3c258a2..d3046e72f8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationTypingIndicatorAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationTypingIndicatorAdapter.kt @@ -8,14 +8,14 @@ package org.thoughtcrime.securesms.conversation.v2 import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.RequestManager import org.signal.core.util.toInt import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.ConversationTypingView -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.recipients.Recipient class ConversationTypingIndicatorAdapter( - private val glideRequests: GlideRequests + private val requestManager: RequestManager ) : RecyclerView.Adapter() { private var state: State = State() @@ -42,16 +42,16 @@ class ConversationTypingIndicatorAdapter( override fun getItemCount(): Int = state.typists.isNotEmpty().toInt() override fun onBindViewHolder(holder: ViewHolder, position: Int) { - holder.bind(glideRequests, state) + holder.bind(requestManager, state) } class ViewHolder(private val conversationTypingView: ConversationTypingView) : RecyclerView.ViewHolder(conversationTypingView) { fun bind( - glideRequests: GlideRequests, + requestManager: RequestManager, state: State ) { conversationTypingView.setTypists( - glideRequests, + requestManager, state.typists, state.isGroupThread, state.hasWallpaper diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt index 3fb1ee2173..062bc058e1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt @@ -11,6 +11,7 @@ import android.net.Uri import android.os.Build import androidx.core.content.pm.ShortcutInfoCompat import androidx.lifecycle.ViewModel +import com.bumptech.glide.RequestManager import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Completable @@ -58,7 +59,6 @@ import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.linkpreview.LinkPreview import org.thoughtcrime.securesms.messagerequests.MessageRequestRepository import org.thoughtcrime.securesms.messagerequests.MessageRequestState -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.mms.QuoteModel import org.thoughtcrime.securesms.mms.Slide import org.thoughtcrime.securesms.mms.SlideDeck @@ -348,9 +348,9 @@ class ConversationViewModel( .addTo(disposables) } - fun getContactPhotoIcon(context: Context, glideRequests: GlideRequests): Single { + fun getContactPhotoIcon(context: Context, requestManager: RequestManager): Single { return recipient.firstOrError().flatMap { - repository.getRecipientContactPhotoBitmap(context, glideRequests, it) + repository.getRecipientContactPhotoBitmap(context, requestManager, it) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationContext.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationContext.kt index 405201bb9d..e58f6c9792 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationContext.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationContext.kt @@ -5,19 +5,19 @@ package org.thoughtcrime.securesms.conversation.v2.items +import com.bumptech.glide.RequestManager import org.thoughtcrime.securesms.conversation.ConversationAdapter import org.thoughtcrime.securesms.conversation.ConversationItemDisplayMode import org.thoughtcrime.securesms.conversation.colors.Colorizer import org.thoughtcrime.securesms.conversation.mutiselect.MultiselectPart import org.thoughtcrime.securesms.database.model.MessageRecord -import org.thoughtcrime.securesms.mms.GlideRequests /** * Describes the Adapter "context" that would normally have been * visible to an inner class. */ interface V2ConversationContext { - val glideRequests: GlideRequests + val requestManager: RequestManager val displayMode: ConversationItemDisplayMode val clickListener: ConversationAdapter.ItemClickListener val selectedItems: Set diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemMediaViewHolder.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemMediaViewHolder.kt index 2872734938..418a8204f8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemMediaViewHolder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemMediaViewHolder.kt @@ -77,7 +77,7 @@ class V2ConversationItemMediaViewHolder>( binding.quoteStub.visibility = View.VISIBLE quoteView.setQuote( - conversationContext.glideRequests, + conversationContext.requestManager, quote.id, Recipient.live(quote.author).get(), quote.displayText, diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt index ea66e6c7e8..23fdb00ca6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt @@ -531,8 +531,8 @@ open class V2ConversationItemTextOnlyViewHolder>( binding.senderBadge.visible = shape.isEndingShape binding.senderName.text = sender.getDisplayName(context) - binding.senderPhoto.setAvatar(conversationContext.glideRequests, sender, false) - binding.senderBadge.setBadgeFromRecipient(sender, conversationContext.glideRequests) + binding.senderPhoto.setAvatar(conversationContext.requestManager, sender, false) + binding.senderBadge.setBadgeFromRecipient(sender, conversationContext.requestManager) binding.senderPhoto.setOnClickListener { conversationContext.clickListener.onGroupMemberClicked( conversationMessage.messageRecord.fromRecipient.id, 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 256b28d3ec..b08531473f 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 @@ -115,10 +115,10 @@ class V2ConversationItemThumbnail @JvmOverloads constructor( thumbnailSlide = thumbnail this.fastPreflightId = fastPreflightId - conversationContext.glideRequests.clear(this) + conversationContext.requestManager.clear(this) if (placeholderTarget != null) { - conversationContext.glideRequests.clear(placeholderTarget) + conversationContext.requestManager.clear(placeholderTarget) } val thumbnailUri = thumbnail.uri @@ -147,7 +147,7 @@ class V2ConversationItemThumbnail @JvmOverloads constructor( if (thumbnailBlur != null) { val placeholderTarget = PlaceholderTarget(this) conversationContext - .glideRequests + .requestManager .load(thumbnailBlur) .centerInside() .dontAnimate() @@ -159,7 +159,7 @@ class V2ConversationItemThumbnail @JvmOverloads constructor( if (thumbnailUri != null) { conversationContext - .glideRequests + .requestManager .load(DecryptableStreamUriLoader.DecryptableUri(thumbnailUri)) .centerInside() .dontAnimate() diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListAdapter.java index e9962a59fe..3e065e3430 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListAdapter.java @@ -13,13 +13,13 @@ import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.ListAdapter; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.RequestManager; + import org.signal.paging.PagingController; import org.thoughtcrime.securesms.BindableConversationListItem; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.conversationlist.model.Conversation; -import org.thoughtcrime.securesms.conversationlist.model.ConversationReader; import org.thoughtcrime.securesms.conversationlist.model.ConversationSet; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.util.CachedInflater; import org.thoughtcrime.securesms.util.ViewUtil; @@ -46,8 +46,8 @@ class ConversationListAdapter extends ListAdapter typingSet = new HashSet<>(); @@ -55,14 +55,14 @@ class ConversationListAdapter extends ListAdapter typingThreads; private LiveRecipient recipient; private long threadId; - private GlideRequests glideRequests; + private RequestManager requestManager; private EmojiTextView subjectView; private TypingIndicatorView typingView; private FromTextView fromView; @@ -206,7 +206,7 @@ public final class ConversationListItem extends ConstraintLayout implements Bind @Override public void bind(@NonNull LifecycleOwner lifecycleOwner, @NonNull ThreadRecord thread, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager glideRequests, @NonNull Locale locale, @NonNull Set typingThreads, @NonNull ConversationSet selectedConversations) @@ -216,14 +216,14 @@ public final class ConversationListItem extends ConstraintLayout implements Bind public void bindThread(@NonNull LifecycleOwner lifecycleOwner, @NonNull ThreadRecord thread, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @NonNull Locale locale, @NonNull Set typingThreads, @NonNull ConversationSet selectedConversations, @Nullable String highlightSubstring) { this.threadId = thread.getThreadId(); - this.glideRequests = glideRequests; + this.requestManager = requestManager; this.unreadCount = thread.getUnreadCount(); this.lastSeen = thread.getLastSeen(); this.thread = thread; @@ -245,7 +245,7 @@ public final class ConversationListItem extends ConstraintLayout implements Bind this.typingThreads = typingThreads; updateTypingIndicator(typingThreads); - LiveData displayBody = getThreadDisplayBody(getContext(), thread, glideRequests, thumbSize, thumbTarget); + LiveData displayBody = getThreadDisplayBody(getContext(), thread, requestManager, thumbSize, thumbTarget); setSubjectViewText(displayBody.getValue()); observeDisplayBody(lifecycleOwner, displayBody); @@ -272,7 +272,7 @@ public final class ConversationListItem extends ConstraintLayout implements Bind setSelectedConversations(selectedConversations); setBadgeFromRecipient(recipient.get()); setUnreadIndicator(thread); - this.contactPhotoImage.setAvatar(glideRequests, recipient.get(), !batchMode); + this.contactPhotoImage.setAvatar(requestManager, recipient.get(), !batchMode); } private void setBadgeFromRecipient(Recipient recipient) { @@ -286,11 +286,11 @@ public final class ConversationListItem extends ConstraintLayout implements Bind public void bindMessage(@NonNull LifecycleOwner lifecycleOwner, @NonNull MessageResult messageResult, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @NonNull Locale locale, @Nullable String highlightSubstring) { - this.glideRequests = glideRequests; + this.requestManager = requestManager; this.locale = locale; this.highlightSubstring = highlightSubstring; @@ -313,15 +313,15 @@ public final class ConversationListItem extends ConstraintLayout implements Bind setSelectedConversations(new ConversationSet()); setBadgeFromRecipient(recipient.get()); - contactPhotoImage.setAvatar(glideRequests, recipient.get(), !batchMode, false); + contactPhotoImage.setAvatar(requestManager, recipient.get(), !batchMode, false); } public void bindGroupWithMembers(@NonNull LifecycleOwner lifecycleOwner, @NonNull ContactSearchData.GroupWithMembers groupWithMembers, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @NonNull Locale locale) { - this.glideRequests = glideRequests; + this.requestManager = requestManager; this.locale = locale; this.highlightSubstring = groupWithMembers.getQuery(); @@ -344,7 +344,7 @@ public final class ConversationListItem extends ConstraintLayout implements Bind setSelectedConversations(new ConversationSet()); setBadgeFromRecipient(recipient.get()); - contactPhotoImage.setAvatar(glideRequests, recipient.get(), !batchMode); + contactPhotoImage.setAvatar(requestManager, recipient.get(), !batchMode); } private @NonNull Single joinMembersToDisplayBody(@NonNull List members, @NonNull String highlightSubstring) { @@ -363,7 +363,7 @@ public final class ConversationListItem extends ConstraintLayout implements Bind if (this.recipient != null) { observeRecipient(null, null); setSelectedConversations(new ConversationSet()); - contactPhotoImage.setAvatar(glideRequests, null, !batchMode); + contactPhotoImage.setAvatar(requestManager, null, !batchMode); } observeDisplayBody(null, null); @@ -379,7 +379,7 @@ public final class ConversationListItem extends ConstraintLayout implements Bind setSelected(selected); if (recipient != null) { - contactPhotoImage.setAvatar(glideRequests, recipient.get(), !batchMode); + contactPhotoImage.setAvatar(requestManager, recipient.get(), !batchMode); } if (batchMode && selected) { @@ -452,8 +452,8 @@ public final class ConversationListItem extends ConstraintLayout implements Bind } private void observeDisplayBody(@Nullable LifecycleOwner lifecycleOwner, @Nullable LiveData displayBody) { - if (displayBody == null && glideRequests != null) { - glideRequests.clear(thumbTarget); + if (displayBody == null && requestManager != null) { + requestManager.clear(thumbTarget); } if (this.displayBody != null) { @@ -552,13 +552,13 @@ public final class ConversationListItem extends ConstraintLayout implements Bind } else { fromView.setText(recipient, false); } - contactPhotoImage.setAvatar(glideRequests, recipient, !batchMode, false); + contactPhotoImage.setAvatar(requestManager, recipient, !batchMode, false); setBadgeFromRecipient(recipient); } private static @NonNull LiveData getThreadDisplayBody(@NonNull Context context, @NonNull ThreadRecord thread, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @Px int thumbSize, @NonNull GlideLiveDataTarget thumbTarget) { @@ -659,7 +659,7 @@ public final class ConversationListItem extends ConstraintLayout implements Bind MessageStyler.style(thread.getDate(), thread.getBodyRanges(), sourceBody); CharSequence body = StringUtil.replace(sourceBody, '\n', " "); - LiveData finalBody = Transformations.map(createFinalBodyWithMediaIcon(context, body, thread, glideRequests, thumbSize, thumbTarget), updatedBody -> { + LiveData finalBody = Transformations.map(createFinalBodyWithMediaIcon(context, body, thread, requestManager, thumbSize, thumbTarget), updatedBody -> { if (thread.getRecipient().isGroup()) { RecipientId groupMessageSender = thread.getGroupMessageSender(); if (!groupMessageSender.isUnknown()) { @@ -678,7 +678,7 @@ public final class ConversationListItem extends ConstraintLayout implements Bind private static LiveData createFinalBodyWithMediaIcon(@NonNull Context context, @NonNull CharSequence body, @NonNull ThreadRecord thread, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @Px int thumbSize, @NonNull GlideLiveDataTarget thumbTarget) { @@ -700,7 +700,7 @@ public final class ConversationListItem extends ConstraintLayout implements Bind return LiveDataUtil.just(body); } - glideRequests.asBitmap() + requestManager.asBitmap() .load(new DecryptableStreamUriLoader.DecryptableUri(thread.getSnippetUri())) .override(thumbSize, thumbSize) .transform( diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItemAction.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItemAction.java index e88dbd2909..8a2e5cd3d0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItemAction.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItemAction.java @@ -8,11 +8,12 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; +import com.bumptech.glide.RequestManager; + import org.thoughtcrime.securesms.BindableConversationListItem; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.conversationlist.model.ConversationSet; import org.thoughtcrime.securesms.database.model.ThreadRecord; -import org.thoughtcrime.securesms.mms.GlideRequests; import java.util.Locale; import java.util.Set; @@ -42,7 +43,7 @@ public class ConversationListItemAction extends FrameLayout implements BindableC @Override public void bind(@NonNull LifecycleOwner lifecycleOwner, @NonNull ThreadRecord thread, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @NonNull Locale locale, @NonNull Set typingThreads, @NonNull ConversationSet selectedConversations) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListSearchAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListSearchAdapter.kt index 797650ddab..9a23eeb37e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListSearchAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListSearchAdapter.kt @@ -5,6 +5,7 @@ import android.view.View import android.widget.TextView import androidx.core.os.bundleOf import androidx.lifecycle.LifecycleOwner +import com.bumptech.glide.RequestManager import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.contacts.paged.ArbitraryRepository import org.thoughtcrime.securesms.contacts.paged.ContactSearchAdapter @@ -12,7 +13,6 @@ import org.thoughtcrime.securesms.contacts.paged.ContactSearchConfiguration import org.thoughtcrime.securesms.contacts.paged.ContactSearchData import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey import org.thoughtcrime.securesms.conversationlist.model.ConversationSet -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder @@ -32,7 +32,7 @@ class ConversationListSearchAdapter( storyContextMenuCallbacks: StoryContextMenuCallbacks, callButtonClickCallbacks: CallButtonClickCallbacks, lifecycleOwner: LifecycleOwner, - glideRequests: GlideRequests + requestManager: RequestManager ) : ContactSearchAdapter(context, fixedContacts, displayOptions, onClickedCallbacks, longClickCallbacks, storyContextMenuCallbacks, callButtonClickCallbacks), TimestampPayloadSupport { companion object { @@ -42,11 +42,11 @@ class ConversationListSearchAdapter( init { registerFactory( ThreadModel::class.java, - LayoutFactory({ ThreadViewHolder(onClickedCallbacks::onThreadClicked, lifecycleOwner, glideRequests, it) }, R.layout.conversation_list_item_view) + LayoutFactory({ ThreadViewHolder(onClickedCallbacks::onThreadClicked, lifecycleOwner, requestManager, it) }, R.layout.conversation_list_item_view) ) registerFactory( MessageModel::class.java, - LayoutFactory({ MessageViewHolder(onClickedCallbacks::onMessageClicked, lifecycleOwner, glideRequests, it) }, R.layout.conversation_list_item_view) + LayoutFactory({ MessageViewHolder(onClickedCallbacks::onMessageClicked, lifecycleOwner, requestManager, it) }, R.layout.conversation_list_item_view) ) registerFactory( ChatFilterMappingModel::class.java, @@ -62,7 +62,7 @@ class ConversationListSearchAdapter( ) registerFactory( GroupWithMembersModel::class.java, - LayoutFactory({ GroupWithMembersViewHolder(onClickedCallbacks::onGroupWithMembersClicked, lifecycleOwner, glideRequests, it) }, R.layout.conversation_list_item_view) + LayoutFactory({ GroupWithMembersViewHolder(onClickedCallbacks::onGroupWithMembersClicked, lifecycleOwner, requestManager, it) }, R.layout.conversation_list_item_view) ) } @@ -105,7 +105,7 @@ class ConversationListSearchAdapter( private class ThreadViewHolder( private val threadListener: OnClickedCallback, private val lifecycleOwner: LifecycleOwner, - private val glideRequests: GlideRequests, + private val requestManager: RequestManager, itemView: View ) : ConversationListItemViewHolder(itemView) { override fun fullBind(model: ThreadModel) { @@ -116,7 +116,7 @@ class ConversationListSearchAdapter( (itemView as ConversationListItem).bindThread( lifecycleOwner, model.thread.threadRecord, - glideRequests, + requestManager, Locale.getDefault(), emptySet(), ConversationSet(), @@ -128,7 +128,7 @@ class ConversationListSearchAdapter( private class MessageViewHolder( private val messageListener: OnClickedCallback, private val lifecycleOwner: LifecycleOwner, - private val glideRequests: GlideRequests, + private val requestManager: RequestManager, itemView: View ) : ConversationListItemViewHolder(itemView) { override fun fullBind(model: MessageModel) { @@ -139,7 +139,7 @@ class ConversationListSearchAdapter( (itemView as ConversationListItem).bindMessage( lifecycleOwner, model.message.messageResult, - glideRequests, + requestManager, Locale.getDefault(), model.message.query ) @@ -149,7 +149,7 @@ class ConversationListSearchAdapter( private class GroupWithMembersViewHolder( private val groupWithMembersListener: OnClickedCallback, private val lifecycleOwner: LifecycleOwner, - private val glideRequests: GlideRequests, + private val requestManager: RequestManager, itemView: View ) : ConversationListItemViewHolder(itemView) { override fun fullBind(model: GroupWithMembersModel) { @@ -160,7 +160,7 @@ class ConversationListSearchAdapter( (itemView as ConversationListItem).bindGroupWithMembers( lifecycleOwner, model.groupWithMembers, - glideRequests, + requestManager, Locale.getDefault() ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4ViewHolder.java b/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4ViewHolder.java index ae471b62fb..129df89848 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4ViewHolder.java +++ b/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4ViewHolder.java @@ -10,6 +10,7 @@ import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions; @@ -22,7 +23,6 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.conversation.colors.ChatColorsPalette; import org.thoughtcrime.securesms.giph.model.ChunkedImageUrl; import org.thoughtcrime.securesms.giph.model.GiphyImage; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.util.Projection; import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; @@ -99,7 +99,7 @@ final class GiphyMp4ViewHolder extends MappingViewHolder implements } private void loadPlaceholderImage(@NonNull GiphyImage giphyImage) { - GlideApp.with(itemView) + Glide.with(itemView) .load(new ChunkedImageUrl(giphyImage.getStillUrl())) .placeholder(placeholder) .diskCacheStrategy(DiskCacheStrategy.ALL) 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 4a82bfcd8e..39b06acb7f 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 @@ -25,6 +25,7 @@ import androidx.navigation.Navigation; import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat; import com.airbnb.lottie.SimpleColorFilter; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.target.CustomTarget; import com.bumptech.glide.request.transition.Transition; @@ -39,7 +40,6 @@ 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.GlideApp; import org.thoughtcrime.securesms.profiles.AvatarHelper; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -136,7 +136,7 @@ public class AddGroupDetailsFragment extends LoggingFragment { if (avatarBytes == null) { avatar.setImageDrawable(new InsetDrawable(avatarPlaceholder, ViewUtil.dpToPx(AVATAR_PLACEHOLDER_INSET_DP))); } else { - GlideApp.with(this) + Glide.with(this) .load(avatarBytes) .circleCrop() .skipMemoryCache(true) @@ -178,7 +178,7 @@ public class AddGroupDetailsFragment extends LoggingFragment { viewModel.setAvatarMedia(result); - GlideApp.with(this) + Glide.with(this) .asBitmap() .load(decryptableUri) .skipMemoryCache(true) diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardUtil.kt index 97eb0db718..4f2d03e3e8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardUtil.kt @@ -9,9 +9,9 @@ import android.graphics.Bitmap import android.graphics.Color import android.net.Uri import androidx.annotation.WorkerThread +import com.bumptech.glide.RequestManager import com.bumptech.glide.load.engine.DiskCacheStrategy import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader -import org.thoughtcrime.securesms.mms.GlideRequests import java.util.concurrent.ExecutionException import java.util.concurrent.TimeUnit import java.util.concurrent.TimeoutException @@ -19,9 +19,9 @@ import java.util.concurrent.TimeoutException object KeyboardUtil { @WorkerThread - fun getImageDetails(glideRequests: GlideRequests, uri: Uri): ImageDetails? { + fun getImageDetails(requestManager: RequestManager, uri: Uri): ImageDetails? { return try { - val bitmap: Bitmap = glideRequests.asBitmap() + val bitmap: Bitmap = requestManager.asBitmap() .load(DecryptableStreamUriLoader.DecryptableUri(uri)) .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) 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 364a359833..40f96a61f9 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 @@ -4,19 +4,19 @@ import android.content.Context import android.view.View import android.widget.ImageView import android.widget.TextView +import com.bumptech.glide.RequestManager 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.GlideRequests import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder class KeyboardStickerListAdapter( - private val glideRequests: GlideRequests, + private val requestManager: RequestManager, private val eventListener: EventListener?, private val allowApngAnimation: Boolean ) : MappingAdapter() { @@ -44,7 +44,7 @@ class KeyboardStickerListAdapter( private val image: ImageView = findViewById(R.id.sticker_keyboard_page_image) override fun bind(model: Sticker) { - glideRequests.load(model.uri) + requestManager.load(model.uri) .set(ApngOptions.ANIMATE, allowApngAnimation) .transition(DrawableTransitionOptions.withCrossFade()) .into(image) 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 301f0a81dc..043943f941 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 @@ -4,16 +4,16 @@ import android.content.res.ColorStateList import android.view.View import android.widget.ImageView 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.GlideRequests import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder -class KeyboardStickerPackListAdapter(private val glideRequests: GlideRequests, private val allowApngAnimation: Boolean, private val onTabSelected: (StickerPack) -> Unit) : MappingAdapter() { +class KeyboardStickerPackListAdapter(private val requestManager: RequestManager, private val allowApngAnimation: Boolean, private val onTabSelected: (StickerPack) -> Unit) : MappingAdapter() { init { registerFactory(StickerPack::class.java, LayoutFactory(::StickerPackViewHolder, R.layout.keyboard_pager_category_icon)) @@ -47,7 +47,7 @@ class KeyboardStickerPackListAdapter(private val glideRequests: GlideRequests, p if (model.loadImage) { ImageViewCompat.setImageTintList(icon, null) icon.alpha = if (model.selected) 1f else 0.5f - glideRequests.load(model.uri) + requestManager.load(model.uri) .set(ApngOptions.ANIMATE, allowApngAnimation) .into(icon) } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt index a4223803f8..bb39c6655a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt @@ -9,6 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearSmoothScroller import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.SmoothScroller +import com.bumptech.glide.Glide import com.google.android.material.appbar.AppBarLayout import org.signal.libsignal.protocol.util.Pair import org.thoughtcrime.securesms.LoggingFragment @@ -16,7 +17,6 @@ import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.keyboard.emoji.KeyboardPageSearchView -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.stickers.StickerEventListener import org.thoughtcrime.securesms.stickers.StickerRolloverTouchListener import org.thoughtcrime.securesms.stickers.StickerRolloverTouchListener.RolloverStickerRetriever @@ -57,8 +57,8 @@ open class StickerKeyboardPageFragment : override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - val glideRequests = GlideApp.with(this) - stickerListAdapter = KeyboardStickerListAdapter(glideRequests, this, DeviceProperties.shouldAllowApngStickerAnimation(requireContext())) + val requestManager = Glide.with(this) + stickerListAdapter = KeyboardStickerListAdapter(requestManager, this, DeviceProperties.shouldAllowApngStickerAnimation(requireContext())) layoutManager = GridLayoutManager(requireContext(), 2).apply { spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { override fun getSpanSize(position: Int): Int { @@ -70,7 +70,7 @@ open class StickerKeyboardPageFragment : } } } - listTouchListener = StickerRolloverTouchListener(requireContext(), glideRequests, this, this) + listTouchListener = StickerRolloverTouchListener(requireContext(), requestManager, this, this) stickerList = view.findViewById(R.id.sticker_keyboard_list) stickerList.layoutManager = layoutManager @@ -81,7 +81,7 @@ open class StickerKeyboardPageFragment : stickerPacksRecycler = view.findViewById(R.id.sticker_packs_recycler) - stickerPacksAdapter = KeyboardStickerPackListAdapter(glideRequests, DeviceProperties.shouldAllowApngStickerAnimation(requireContext()), this::onTabSelected) + stickerPacksAdapter = KeyboardStickerPackListAdapter(requestManager, DeviceProperties.shouldAllowApngStickerAnimation(requireContext()), this::onTabSelected) stickerPacksRecycler.adapter = stickerPacksAdapter appBarLayout = view.findViewById(R.id.sticker_keyboard_search_appbar) diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt index d58e600f72..1707108423 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerSearchDialogFragment.kt @@ -10,9 +10,9 @@ import androidx.fragment.app.FragmentManager import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.keyboard.emoji.KeyboardPageSearchView -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.stickers.StickerEventListener import org.thoughtcrime.securesms.util.DeviceProperties import org.thoughtcrime.securesms.util.InsetItemDecoration @@ -47,7 +47,7 @@ class StickerSearchDialogFragment : DialogFragment(), KeyboardStickerListAdapter list = view.findViewById(R.id.sticker_search_list) noResults = view.findViewById(R.id.sticker_search_no_results) - adapter = KeyboardStickerListAdapter(GlideApp.with(this), this, DeviceProperties.shouldAllowApngStickerAnimation(requireContext())) + adapter = KeyboardStickerListAdapter(Glide.with(this), this, DeviceProperties.shouldAllowApngStickerAnimation(requireContext())) layoutManager = GridLayoutManager(requireContext(), 2) list.layoutManager = layoutManager diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java index b30c5eb1d6..edd3222c0b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java @@ -9,6 +9,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.util.Consumer; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import org.signal.core.util.Hex; @@ -35,7 +36,6 @@ import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl; import org.thoughtcrime.securesms.jobs.AvatarGroupsV2DownloadJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.linkpreview.LinkPreviewUtil.OpenGraph; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.PushMediaConstraints; import org.thoughtcrime.securesms.net.CallRequestController; import org.thoughtcrime.securesms.net.CompositeRequestController; @@ -279,7 +279,7 @@ public class LinkPreviewRepository { Optional cover = OptionalUtil.or(manifest.getCover(), firstSticker); if (cover.isPresent()) { - Bitmap bitmap = GlideApp.with(context).asBitmap() + Bitmap bitmap = Glide.with(context).asBitmap() .load(new StickerRemoteUri(packIdString, packKeyString, cover.get().getId())) .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaGalleryAllAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaGalleryAllAdapter.java index d3bb27fde0..49f65da805 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaGalleryAllAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaGalleryAllAdapter.java @@ -32,6 +32,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.annimon.stream.Collectors; import com.annimon.stream.Stream; +import com.bumptech.glide.RequestManager; import com.codewaves.stickyheadergrid.StickyHeaderGridAdapter; import org.signal.libsignal.protocol.util.Pair; @@ -45,7 +46,6 @@ import org.thoughtcrime.securesms.database.MediaTable.MediaRecord; import org.thoughtcrime.securesms.database.loaders.GroupedThreadMediaLoader.GroupedThreadMedia; import org.thoughtcrime.securesms.mediapreview.MediaPreviewCache; import org.thoughtcrime.securesms.mms.AudioSlide; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.mms.Slide; import org.thoughtcrime.securesms.recipients.LiveRecipient; import org.thoughtcrime.securesms.recipients.Recipient; @@ -70,7 +70,7 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter { private final Context context; private final boolean showThread; - private final GlideRequests glideRequests; + private final RequestManager requestManager; private final ItemClickListener itemClickListener; private final Map selected = new HashMap<>(); private final AudioItemListener audioItemListener; @@ -102,7 +102,7 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter { } MediaGalleryAllAdapter(@NonNull Context context, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, GroupedThreadMedia media, ItemClickListener clickListener, @NonNull AudioItemListener audioItemListener, @@ -110,7 +110,7 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter { boolean showThread) { this.context = context; - this.glideRequests = glideRequests; + this.requestManager = requestManager; this.media = media; this.itemClickListener = clickListener; this.audioItemListener = audioItemListener; @@ -345,7 +345,7 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter { imageFileSize.setVisibility(View.GONE); } - thumbnailView.setImageResource(glideRequests, slide, false, false); + thumbnailView.setImageResource(requestManager, slide, false, false); thumbnailView.setOnClickListener(view -> { MediaPreviewCache.INSTANCE.setDrawable(thumbnailView.getImageDrawable()); itemClickListener.onMediaClicked(thumbnailView, mediaRecord); @@ -366,13 +366,13 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter { @Override void rebind() { - thumbnailView.setImageResource(glideRequests, slide, false, false); + thumbnailView.setImageResource(requestManager, slide, false, false); super.rebind(); } @Override void unbind() { - thumbnailView.clear(glideRequests); + thumbnailView.clear(requestManager); super.unbind(); } @@ -591,7 +591,7 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter { public void bind(@NonNull Context context, @NonNull MediaTable.MediaRecord mediaRecord, @NonNull Slide slide) { super.bind(context, mediaRecord, slide); this.slide = slide; - thumbnailView.setImageResource(glideRequests, slide, false, false); + thumbnailView.setImageResource(requestManager, slide, false, false); thumbnailView.setOnClickListener(view -> itemClickListener.onMediaClicked(thumbnailView, mediaRecord)); thumbnailView.setOnLongClickListener(view -> onLongClick()); } @@ -611,13 +611,13 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter { @Override void rebind() { - thumbnailView.setImageResource(glideRequests, slide, false, false); + thumbnailView.setImageResource(requestManager, slide, false, false); super.rebind(); } @Override void unbind() { - thumbnailView.clear(glideRequests); + thumbnailView.clear(requestManager); super.unbind(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaOverviewPageFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaOverviewPageFragment.java index 9ef52f7d5b..1dec181fba 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaOverviewPageFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediaoverview/MediaOverviewPageFragment.java @@ -26,6 +26,7 @@ import androidx.loader.app.LoaderManager; import androidx.loader.content.Loader; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.codewaves.stickyheadergrid.StickyHeaderGridLayoutManager; import org.signal.core.util.DimensionUnit; @@ -41,7 +42,6 @@ import org.thoughtcrime.securesms.database.loaders.GroupedThreadMediaLoader; import org.thoughtcrime.securesms.database.loaders.MediaLoader; import org.thoughtcrime.securesms.mediapreview.MediaIntentFactory; import org.thoughtcrime.securesms.mediapreview.MediaPreviewV2Activity; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.util.BottomOffsetDecoration; import org.thoughtcrime.securesms.util.MediaUtil; @@ -125,7 +125,7 @@ public final class MediaOverviewPageFragment extends Fragment this.gridManager = new StickyHeaderGridLayoutManager(spans); this.adapter = new MediaGalleryAllAdapter(context, - GlideApp.with(this), + Glide.with(this), new GroupedThreadMediaLoader.EmptyGroupedThreadMedia(), this, this, diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/ImageMediaPreviewFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/ImageMediaPreviewFragment.java index 5a5c1087c6..04d7e94398 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/ImageMediaPreviewFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/ImageMediaPreviewFragment.java @@ -9,10 +9,11 @@ import android.view.ViewGroup; import androidx.annotation.Nullable; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.RequestManager; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.ZoomingImageView; -import org.thoughtcrime.securesms.mms.GlideApp; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.signal.core.util.concurrent.LifecycleDisposable; import org.thoughtcrime.securesms.util.MediaUtil; @@ -33,7 +34,7 @@ public final class ImageMediaPreviewFragment extends MediaPreviewFragment { Bundle savedInstanceState) { View view = inflater.inflate(R.layout.media_preview_image_fragment, container, false); - GlideRequests glideRequests = GlideApp.with(requireActivity()); + RequestManager requestManager = Glide.with(requireActivity()); Bundle arguments = requireArguments(); Uri uri = arguments.getParcelable(DATA_URI); String contentType = arguments.getString(DATA_CONTENT_TYPE); @@ -49,7 +50,7 @@ public final class ImageMediaPreviewFragment extends MediaPreviewFragment { } //noinspection ConstantConditions - zoomingImageView.setImageUri(glideRequests, uri, contentType, () -> events.onMediaReady()); + zoomingImageView.setImageUri(requestManager, uri, contentType, () -> events.onMediaReady()); zoomingImageView.setOnClickListener(v -> events.singleTapOnMedia()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt index c50c9f501d..7399c9d8b2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt @@ -32,6 +32,7 @@ import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.MarginPageTransformer import androidx.viewpager2.widget.ViewPager2.OFFSCREEN_PAGE_LIMIT_DEFAULT import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback +import com.bumptech.glide.Glide import com.google.android.material.appbar.MaterialToolbar import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar @@ -58,7 +59,6 @@ import org.thoughtcrime.securesms.mediapreview.mediarail.MediaRailAdapter import org.thoughtcrime.securesms.mediapreview.mediarail.MediaRailAdapter.ImageLoadingListener import org.thoughtcrime.securesms.mediasend.Media import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionActivity -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.mms.PartAuthority import org.thoughtcrime.securesms.permissions.Permissions import org.thoughtcrime.securesms.recipients.Recipient @@ -187,7 +187,7 @@ class MediaPreviewV2Fragment : LoggingFragment(R.layout.fragment_media_preview_v layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) addItemDecoration(CenterDecoration(0)) albumRailAdapter = MediaRailAdapter( - GlideApp.with(this@MediaPreviewV2Fragment), + Glide.with(this@MediaPreviewV2Fragment), { media -> jumpViewPagerToMedia(media) }, object : ImageLoadingListener() { override fun onAllRequestsFinished() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/mediarail/MediaRailAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/mediarail/MediaRailAdapter.kt index 62647b9d49..15da7d448d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/mediarail/MediaRailAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/mediarail/MediaRailAdapter.kt @@ -4,13 +4,13 @@ import android.graphics.drawable.Drawable import android.view.View import android.widget.ImageView import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.RequestManager import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.target.Target import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.ThumbnailView import org.thoughtcrime.securesms.mediasend.Media -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder @@ -21,7 +21,7 @@ import java.util.concurrent.atomic.AtomicInteger * This is the RecyclerView.Adapter for the row of thumbnails present in the media viewer screen. */ class MediaRailAdapter( - private val glideRequests: GlideRequests, + private val requestManager: RequestManager, private val onRailItemSelected: (Media) -> Unit, private val imageLoadingListener: ImageLoadingListener ) : MappingAdapter() { @@ -77,7 +77,7 @@ class MediaRailAdapter( } override fun bind(model: MediaRailItem) { - image.setImageResource(glideRequests, model.media.uri, 0, 0, false, imageLoadingListener) + image.setImageResource(requestManager, model.media.uri, 0, 0, false, imageLoadingListener) image.setOnClickListener { onRailItemSelected(model.media) } captionIndicator.visibility = if (model.media.caption.isPresent) View.VISIBLE else View.GONE 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 b368a24739..cc00792374 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/Camera1Fragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/Camera1Fragment.java @@ -49,7 +49,6 @@ 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.GlideApp; import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.ViewUtil; @@ -396,7 +395,7 @@ public class Camera1Fragment extends LoggingFragment implements CameraFragment, Transformation transformation = frontFacing ? new MultiTransformation<>(new CenterCrop(), new FlipTransformation()) : new CenterCrop(); - GlideApp.with(this) + Glide.with(this) .asBitmap() .load(jpegData) .transform(transformation) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactAdapter.java index 7f78f0dfd3..0c58f76a2f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactAdapter.java @@ -11,10 +11,11 @@ import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.RequestManager; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.AvatarImageView; import org.thoughtcrime.securesms.components.FromTextView; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.adapter.SectionedRecyclerViewAdapter; import org.thoughtcrime.securesms.util.adapter.StableIdGenerator; @@ -35,7 +36,7 @@ class CameraContactAdapter extends SectionedRecyclerViewAdapter selected; private final CameraContactListener cameraContactListener; @@ -50,8 +51,8 @@ class CameraContactAdapter extends SectionedRecyclerViewAdapter(); this.cameraContactListener = listener; } @@ -114,7 +115,7 @@ class CameraContactAdapter extends SectionedRecyclerViewAdapter selected, - @NonNull GlideRequests glideRequests, + @NonNull RequestManager requestManager, @NonNull CameraContactListener cameraContactListener) { if (localPosition == 0) { ((HeaderViewHolder) viewHolder).bind(titleResId); } else { Recipient recipient = recipients.get(localPosition - 1); - ((ContactViewHolder) viewHolder).bind(recipient, selected.contains(recipient), glideRequests, cameraContactListener); + ((ContactViewHolder) viewHolder).bind(recipient, selected.contains(recipient), requestManager, cameraContactListener); } } } @@ -221,10 +222,10 @@ class CameraContactAdapter extends SectionedRecyclerViewAdapter listener.onContactClicked(recipient)); checkbox.setChecked(selected); diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactSelectionFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactSelectionFragment.java index dc9d8d6ffb..9db87d8860 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactSelectionFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactSelectionFragment.java @@ -22,10 +22,11 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; + import org.thoughtcrime.securesms.InviteActivity; import org.thoughtcrime.securesms.LoggingFragment; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.ThemeUtil; @@ -90,7 +91,7 @@ public class CameraContactSelectionFragment extends LoggingFragment implements C this.selectionFooterGroup = view.findViewById(R.id.camera_contacts_footer_group); this.cameraContactsEmpty = view.findViewById(R.id.camera_contacts_empty); this.inviteButton = view.findViewById(R.id.camera_contacts_invite_button); - this.contactAdapter = new CameraContactAdapter(GlideApp.with(this), this); + this.contactAdapter = new CameraContactAdapter(Glide.with(this), this); this.selectionAdapter = new CameraContactSelectionAdapter(); contactList.setLayoutManager(new LinearLayoutManager(requireContext())); 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 ccfe025c9e..4addaba88b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendGifFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaSendGifFragment.java @@ -11,9 +11,10 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; 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.GlideApp; public class MediaSendGifFragment extends Fragment implements MediaSendPageFragment { @@ -41,7 +42,7 @@ public class MediaSendGifFragment extends Fragment implements MediaSendPageFragm super.onViewCreated(view, savedInstanceState); uri = getArguments().getParcelable(KEY_URI); - GlideApp.with(this).load(new DecryptableStreamUriLoader.DecryptableUri(uri)).fitCenter().into((ImageView) view); + Glide.with(this).load(new DecryptableStreamUriLoader.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 ccf2d576ef..849fdd11d0 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 @@ -6,6 +6,7 @@ import android.view.View import android.widget.ImageView import android.widget.TextView import androidx.core.view.setPadding +import com.bumptech.glide.Glide import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener @@ -17,7 +18,6 @@ import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.mediasend.Media import org.thoughtcrime.securesms.mediasend.MediaFolder import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.util.MediaUtil import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter @@ -65,7 +65,7 @@ object MediaGallerySelectableItem { class FolderViewHolder(itemView: View, private val onMediaFolderClicked: OnMediaFolderClicked) : BaseViewHolder(itemView) { override fun bind(model: FolderModel) { - GlideApp.with(imageView) + Glide.with(imageView) .load(DecryptableStreamUriLoader.DecryptableUri(model.mediaFolder.thumbnailUri)) .into(imageView) @@ -120,7 +120,7 @@ object MediaGallerySelectableItem { updateImageView(if (model.isSelected) 1f else 0f) } - GlideApp.with(imageView) + Glide.with(imageView) .load(DecryptableStreamUriLoader.DecryptableUri(model.media.uri)) .addListener(ErrorLoggingRequestListener(FILE_VIEW_HOLDER_TAG)) .into(imageView) diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/BasicMegaphoneView.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/BasicMegaphoneView.java index 1baa1be3ac..8f4ba89e79 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/BasicMegaphoneView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/BasicMegaphoneView.java @@ -60,9 +60,9 @@ public class BasicMegaphoneView extends FrameLayout { if (megaphone.getImageRes() != 0) { image.setVisibility(VISIBLE); image.setImageResource(megaphone.getImageRes()); - } else if (megaphone.getImageRequest() != null) { + } else if (megaphone.getImageRequestBuilder() != null) { image.setVisibility(VISIBLE); - megaphone.getImageRequest().into(image); + megaphone.getImageRequestBuilder().into(image); } else if (megaphone.getLottieRes() != 0) { image.setVisibility(VISIBLE); image.setAnimation(megaphone.getLottieRes()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphone.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphone.java index 5ba3913005..ca50b7b097 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphone.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphone.java @@ -9,8 +9,9 @@ import androidx.annotation.Nullable; import androidx.annotation.RawRes; import androidx.annotation.StringRes; +import com.bumptech.glide.RequestBuilder; + import org.thoughtcrime.securesms.megaphone.Megaphones.Event; -import org.thoughtcrime.securesms.mms.GlideRequest; /** * For guidance on creating megaphones, see {@link Megaphones}. @@ -27,7 +28,7 @@ public class Megaphone { private final MegaphoneText bodyText; private final int imageRes; private final int lottieRes; - private final GlideRequest imageRequest; + private final RequestBuilder requestBuilder; private final MegaphoneText buttonText; private final EventListener buttonListener; private final EventListener snoozeListener; @@ -43,7 +44,7 @@ public class Megaphone { this.bodyText = builder.bodyText; this.imageRes = builder.imageRes; this.lottieRes = builder.lottieRes; - this.imageRequest = builder.imageRequest; + this.requestBuilder = builder.requestBuilder; this.buttonText = builder.buttonText; this.buttonListener = builder.buttonListener; this.snoozeListener = builder.snoozeListener; @@ -80,8 +81,8 @@ public class Megaphone { return imageRes; } - public @Nullable GlideRequest getImageRequest() { - return imageRequest; + public @Nullable RequestBuilder getImageRequestBuilder() { + return requestBuilder; } public @Nullable MegaphoneText getButtonText() { @@ -126,7 +127,7 @@ public class Megaphone { private MegaphoneText bodyText; private int imageRes; private int lottieRes; - private GlideRequest imageRequest; + private RequestBuilder requestBuilder; private MegaphoneText buttonText; private EventListener buttonListener; private EventListener snoozeListener; @@ -181,8 +182,8 @@ public class Megaphone { return this; } - public @NonNull Builder setImageRequest(@Nullable GlideRequest imageRequest) { - this.imageRequest = imageRequest; + public @NonNull Builder setImageRequestBuilder(@Nullable RequestBuilder requestBuilder) { + this.requestBuilder = requestBuilder; return this; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java index 27a2764be5..35114272dd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java @@ -11,6 +11,7 @@ import androidx.annotation.WorkerThread; import androidx.core.app.NotificationManagerCompat; import com.annimon.stream.Stream; +import com.bumptech.glide.Glide; import org.signal.core.util.MapUtil; import org.signal.core.util.SetUtil; @@ -28,7 +29,6 @@ import org.thoughtcrime.securesms.lock.SignalPinReminderDialog; import org.thoughtcrime.securesms.lock.SignalPinReminders; import org.thoughtcrime.securesms.lock.v2.CreateSvrPinActivity; import org.thoughtcrime.securesms.lock.v2.SvrMigrationActivity; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.notifications.NotificationChannels; import org.thoughtcrime.securesms.notifications.TurnOnNotificationsBottomSheet; import org.thoughtcrime.securesms.profiles.AvatarHelper; @@ -273,7 +273,7 @@ public final class Megaphones { .setBody(record.getBody()); if (record.getImageUri() != null) { - builder.setImageRequest(GlideApp.with(context).asDrawable().load(record.getImageUri())); + builder.setImageRequestBuilder(Glide.with(context).asDrawable().load(record.getImageUri())); } if (record.hasPrimaryAction()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/PopupMegaphoneView.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/PopupMegaphoneView.java index cbcba6bb84..2dcb11dd61 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/PopupMegaphoneView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/PopupMegaphoneView.java @@ -55,9 +55,9 @@ public class PopupMegaphoneView extends FrameLayout { this.megaphone = megaphone; this.megaphoneListener = megaphoneListener; - if (megaphone.getImageRequest() != null) { + if (megaphone.getImageRequestBuilder() != null) { image.setVisibility(VISIBLE); - megaphone.getImageRequest().into(image); + megaphone.getImageRequestBuilder().into(image); } else if (megaphone.getLottieRes() != 0) { image.setVisibility(VISIBLE); image.setAnimation(megaphone.getLottieRes()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsAdapter.java index 074eaf898d..4f9c781f45 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsAdapter.java @@ -10,24 +10,25 @@ import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.ListAdapter; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.RequestManager; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.conversation.ConversationMessage; import org.thoughtcrime.securesms.conversation.colors.Colorizer; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.databinding.MessageDetailsViewEditHistoryBinding; -import org.thoughtcrime.securesms.mms.GlideRequests; final class MessageDetailsAdapter extends ListAdapter, RecyclerView.ViewHolder> { private final LifecycleOwner lifecycleOwner; - private final GlideRequests glideRequests; + private final RequestManager requestManager; private final Colorizer colorizer; private final Callbacks callbacks; - MessageDetailsAdapter(@NonNull LifecycleOwner lifecycleOwner, @NonNull GlideRequests glideRequests, @NonNull Colorizer colorizer, @NonNull Callbacks callbacks) { + MessageDetailsAdapter(@NonNull LifecycleOwner lifecycleOwner, @NonNull RequestManager requestManager, @NonNull Colorizer colorizer, @NonNull Callbacks callbacks) { super(new MessageDetailsDiffer()); this.lifecycleOwner = lifecycleOwner; - this.glideRequests = glideRequests; + this.requestManager = requestManager; this.colorizer = colorizer; this.callbacks = callbacks; } @@ -36,7 +37,7 @@ final class MessageDetailsAdapter extends ListAdapter(), conversationMessage.getMessageRecord().getToRecipient(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/messagerequests/CalleeMustAcceptMessageRequestActivity.java b/app/src/main/java/org/thoughtcrime/securesms/messagerequests/CalleeMustAcceptMessageRequestActivity.java index 9d2956780e..123c4d4b2a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messagerequests/CalleeMustAcceptMessageRequestActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messagerequests/CalleeMustAcceptMessageRequestActivity.java @@ -14,12 +14,13 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; + import org.thoughtcrime.securesms.BaseActivity; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.AvatarImageView; import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -70,7 +71,7 @@ public class CalleeMustAcceptMessageRequestActivity extends BaseActivity { viewModel.getRecipient().observe(this, recipient -> { description.setText(getString(R.string.CalleeMustAcceptMessageRequestDialogFragment__s_will_get_a_message_request_from_you, recipient.getDisplayName(this))); - avatar.setAvatar(GlideApp.with(this), recipient, false); + avatar.setAvatar(Glide.with(this), recipient, false); }); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/CachedAttachmentsMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/CachedAttachmentsMigrationJob.java index 840d3022a4..988785c37c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/CachedAttachmentsMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/CachedAttachmentsMigrationJob.java @@ -3,9 +3,10 @@ package org.thoughtcrime.securesms.migrations; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.bumptech.glide.Glide; + import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.jobmanager.Job; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.util.FileUtils; import java.io.File; @@ -39,7 +40,7 @@ public class CachedAttachmentsMigrationJob extends MigrationJob { } FileUtils.deleteDirectoryContents(context.getExternalCacheDir()); - GlideApp.get(context).clearDiskCache(); + Glide.get(context).clearDiskCache(); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/LegacyMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/LegacyMigrationJob.java index e4d286e31f..9b529d51d3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/LegacyMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/LegacyMigrationJob.java @@ -6,6 +6,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.preference.PreferenceManager; +import com.bumptech.glide.Glide; + import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.attachments.DatabaseAttachment; import org.thoughtcrime.securesms.crypto.MasterSecret; @@ -21,7 +23,6 @@ import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; import org.thoughtcrime.securesms.jobs.PreKeysSyncJob; import org.thoughtcrime.securesms.jobs.RefreshAttributesJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.service.KeyCachingService; import org.thoughtcrime.securesms.transport.RetryLaterException; import org.thoughtcrime.securesms.util.FileUtils; @@ -200,7 +201,7 @@ public class LegacyMigrationJob extends MigrationJob { if (lastSeenVersion < IMAGE_CACHE_CLEANUP) { FileUtils.deleteDirectoryContents(context.getExternalCacheDir()); - GlideApp.get(context).clearDiskCache(); + Glide.get(context).clearDiskCache(); } // This migration became unnecessary after switching away from WorkManager diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java index e7727f719c..9e5d4d6f85 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java @@ -39,6 +39,8 @@ import androidx.annotation.WorkerThread; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; +import com.bumptech.glide.Glide; +import com.bumptech.glide.RequestManager; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.signal.core.util.ThreadUtil; @@ -137,14 +139,14 @@ public class AttachmentManager { } - public void clear(@NonNull GlideRequests glideRequests, boolean animate) { + public void clear(@NonNull RequestManager requestManager, boolean animate) { if (attachmentViewStub.resolved()) { if (animate) { ViewUtil.fadeOut(attachmentViewStub.get(), 200).addListener(new Listener() { @Override public void onSuccess(Boolean result) { - thumbnail.clear(glideRequests); + thumbnail.clear(requestManager); attachmentViewStub.get().setVisibility(View.GONE); attachmentListener.onAttachmentChanged(); } @@ -154,7 +156,7 @@ public class AttachmentManager { } }); } else { - thumbnail.clear(glideRequests); + thumbnail.clear(requestManager); attachmentViewStub.get().setVisibility(View.GONE); attachmentListener.onAttachmentChanged(); } @@ -255,7 +257,7 @@ public class AttachmentManager { } @SuppressLint("StaticFieldLeak") - public ListenableFuture setMedia(@NonNull final GlideRequests glideRequests, + public ListenableFuture setMedia(@NonNull final RequestManager requestManager, @NonNull final Uri uri, @NonNull final SlideFactory.MediaType mediaType, @NonNull final MediaConstraints constraints, @@ -271,7 +273,7 @@ public class AttachmentManager { @Override protected void onPreExecute() { - thumbnail.clear(glideRequests); + thumbnail.clear(requestManager); thumbnail.showProgressSpinner(); attachmentViewStub.get().setVisibility(View.VISIBLE); } @@ -323,7 +325,7 @@ public class AttachmentManager { result.set(true); } else { Attachment attachment = slide.asAttachment(); - result.deferTo(thumbnail.setImageResource(glideRequests, slide, false, true, attachment.width, attachment.height)); + result.deferTo(thumbnail.setImageResource(requestManager, slide, false, true, attachment.width, attachment.height)); removableMediaView.display(thumbnail, mediaType == SlideFactory.MediaType.IMAGE); } @@ -580,7 +582,7 @@ public class AttachmentManager { }); cleanup(); - clear(GlideApp.with(context.getApplicationContext()), true); + clear(Glide.with(context.getApplicationContext()), true); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationExtensions.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationExtensions.kt index 8be02eb4e3..554ea7460d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationExtensions.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationExtensions.kt @@ -7,6 +7,7 @@ import android.graphics.Bitmap import android.graphics.drawable.Drawable import android.net.Uri import android.os.Build +import com.bumptech.glide.Glide import com.bumptech.glide.load.MultiTransformation import com.bumptech.glide.load.Transformation import com.bumptech.glide.load.engine.DiskCacheStrategy @@ -18,7 +19,6 @@ import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.notifications.NotificationIds import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.BitmapUtil @@ -46,7 +46,7 @@ fun Recipient.getContactDrawable(context: Context): Drawable? { } transforms += CircleCrop() - GlideApp.with(context.applicationContext) + Glide.with(context.applicationContext) .load(contactPhoto) .diskCacheStrategy(DiskCacheStrategy.ALL) .transform(MultiTransformation(transforms)) @@ -67,7 +67,7 @@ fun Recipient.getContactDrawable(context: Context): Drawable? { fun Uri.toBitmap(context: Context, dimension: Int): Bitmap { return try { - GlideApp.with(context.applicationContext) + Glide.with(context.applicationContext) .asBitmap() .load(DecryptableUri(this)) .diskCacheStrategy(DiskCacheStrategy.NONE) diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/CreateProfileFragment.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/CreateProfileFragment.java index 3901c75443..9020887e9a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/CreateProfileFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/CreateProfileFragment.java @@ -20,6 +20,7 @@ import androidx.lifecycle.ViewModelProvider; import androidx.navigation.Navigation; import com.airbnb.lottie.SimpleColorFilter; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import org.signal.core.util.EditTextUtil; @@ -36,7 +37,6 @@ import org.thoughtcrime.securesms.groups.ParcelableGroupId; import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.mediasend.Media; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.profiles.edit.pnp.WhoCanFindMeByPhoneNumberFragment; import org.thoughtcrime.securesms.profiles.manage.EditProfileNameFragment; import org.thoughtcrime.securesms.providers.BlobProvider; @@ -130,7 +130,7 @@ public class CreateProfileFragment extends LoggingFragment { if (avatarBytes != null) { viewModel.setAvatarMedia(media); viewModel.setAvatar(avatarBytes); - GlideApp.with(CreateProfileFragment.this) + Glide.with(CreateProfileFragment.this) .load(avatarBytes) .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) @@ -252,11 +252,11 @@ public class CreateProfileFragment extends LoggingFragment { private void initializeProfileAvatar() { viewModel.avatar().observe(getViewLifecycleOwner(), bytes -> { if (bytes == null) { - GlideApp.with(this).clear(binding.avatar); + Glide.with(this).clear(binding.avatar); return; } - GlideApp.with(this) + Glide.with(this) .load(bytes) .circleCrop() .into(binding.avatar); diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionRecipientsAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionRecipientsAdapter.java index a0c4d29302..d0ba563a2c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionRecipientsAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionRecipientsAdapter.java @@ -8,10 +8,11 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; + import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.badges.BadgeImageView; import org.thoughtcrime.securesms.components.AvatarImageView; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.util.AvatarUtil; import java.util.Collections; @@ -65,12 +66,12 @@ final class ReactionRecipientsAdapter extends RecyclerView.Adapter() { + getGlideRequestBuilder(rendererContext.context, true).into(new CustomTarget() { @Override public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition transition) { setBitmap(rendererContext, resource); @@ -181,7 +181,7 @@ public final class UriGlideRenderer implements SelectableRenderer { } } - private GlideRequest getBitmapGlideRequest(@NonNull Context context, boolean preview) { + private RequestBuilder getGlideRequestBuilder(@NonNull Context context, boolean preview) { int width = this.maxWidth; int height = this.maxHeight; @@ -190,7 +190,7 @@ public final class UriGlideRenderer implements SelectableRenderer { height = Math.min(height, PREVIEW_DIMENSION_LIMIT); } - return GlideApp.with(context) + return Glide.with(context) .asBitmap() .override(width, height) .centerInside() diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/interstitial/ShareInterstitialActivity.java b/app/src/main/java/org/thoughtcrime/securesms/sharing/interstitial/ShareInterstitialActivity.java index 974e893644..e3579a4dd9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/interstitial/ShareInterstitialActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/interstitial/ShareInterstitialActivity.java @@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.RecyclerView; import com.annimon.stream.Stream; +import com.bumptech.glide.Glide; import org.thoughtcrime.securesms.PassphraseRequiredActivity; import org.thoughtcrime.securesms.R; @@ -18,7 +19,6 @@ import org.thoughtcrime.securesms.components.LinkPreviewView; import org.thoughtcrime.securesms.components.SelectionAwareEmojiEditText; import org.thoughtcrime.securesms.linkpreview.LinkPreviewRepository; import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.sharing.MultiShareArgs; import org.thoughtcrime.securesms.sharing.MultiShareDialogs; @@ -156,7 +156,7 @@ public class ShareInterstitialActivity extends PassphraseRequiredActivity { preview.setLoading(); viewModel.onLinkPreviewChanged(null); } else if (linkPreviewState.linkPreview.isPresent()) { - preview.setLinkPreview(GlideApp.with(this), linkPreviewState.linkPreview.get(), true); + preview.setLinkPreview(Glide.with(this), linkPreviewState.linkPreview.get(), true); viewModel.onLinkPreviewChanged(linkPreviewState.linkPreview.get()); } else if (!linkPreviewState.hasLinks()) { preview.setVisibility(View.GONE); diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementActivity.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementActivity.java index 593fa5630e..21c70f8826 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementActivity.java @@ -11,11 +11,12 @@ import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; + import org.thoughtcrime.securesms.PassphraseRequiredActivity; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragment; import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.sharing.MultiShareArgs; import org.thoughtcrime.securesms.util.DeviceProperties; import org.thoughtcrime.securesms.util.DynamicTheme; @@ -110,7 +111,7 @@ public final class StickerManagementActivity extends PassphraseRequiredActivity private void initView() { this.list = findViewById(R.id.sticker_management_list); - this.adapter = new StickerManagementAdapter(GlideApp.with(this), this, DeviceProperties.shouldAllowApngStickerAnimation(this)); + this.adapter = new StickerManagementAdapter(Glide.with(this), this, DeviceProperties.shouldAllowApngStickerAnimation(this)); list.setLayoutManager(new LinearLayoutManager(this)); list.setAdapter(adapter); diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementAdapter.java index b5133581e2..aff3a7a457 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementAdapter.java @@ -17,6 +17,7 @@ import androidx.annotation.StringRes; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions; import org.thoughtcrime.securesms.R; @@ -24,7 +25,6 @@ import org.thoughtcrime.securesms.components.emoji.EmojiTextView; import org.thoughtcrime.securesms.database.model.StickerPackRecord; import org.thoughtcrime.securesms.glide.cache.ApngOptions; import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.util.DrawableUtil; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.adapter.SectionedRecyclerViewAdapter; @@ -40,7 +40,7 @@ final class StickerManagementAdapter extends SectionedRecyclerViewAdapter { - private final GlideRequests glideRequests; + private final RequestManager requestManager; private final EventListener eventListener; private final List list; private final boolean allowApngAnimation; - public StickerPackPreviewAdapter(@NonNull GlideRequests glideRequests, @NonNull EventListener eventListener, boolean allowApngAnimation) { - this.glideRequests = glideRequests; + public StickerPackPreviewAdapter(@NonNull RequestManager requestManager, @NonNull EventListener eventListener, boolean allowApngAnimation) { + this.requestManager = requestManager; this.eventListener = eventListener; this.allowApngAnimation = allowApngAnimation; this.list = new ArrayList<>(); @@ -40,7 +40,7 @@ public final class StickerPackPreviewAdapter extends RecyclerView.Adapter(null); popup.setAnimationStyle(R.style.StickerPopupAnimation); diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/StoryFirstTimeNavigationView.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/StoryFirstTimeNavigationView.kt index 046c565a51..1ccdebc5c7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/StoryFirstTimeNavigationView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/StoryFirstTimeNavigationView.kt @@ -12,13 +12,13 @@ import android.view.View import android.widget.ImageView import androidx.constraintlayout.widget.ConstraintLayout import com.airbnb.lottie.LottieAnimationView +import com.bumptech.glide.Glide import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener import com.bumptech.glide.request.target.Target import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.blurhash.BlurHash -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.util.ContextUtil import org.thoughtcrime.securesms.util.visible @@ -57,14 +57,14 @@ class StoryFirstTimeNavigationView @JvmOverloads constructor( gotIt.setOnClickListener { callback?.onGotItClicked() - GlideApp.with(this).clear(blurHashView) + Glide.with(this).clear(blurHashView) blurHashView.setImageDrawable(null) hide() } close.setOnClickListener { callback?.onCloseClicked() - GlideApp.with(this).clear(blurHashView) + Glide.with(this).clear(blurHashView) blurHashView.setImageDrawable(null) hide() } @@ -81,7 +81,7 @@ class StoryFirstTimeNavigationView @JvmOverloads constructor( blurHashView.visible = false overlayView.visible = true overlayView.setImageDrawable(ColorDrawable(Color.argb(NO_BLUR_ALPHA, 0, 0, 0))) - GlideApp.with(this).clear(blurHashView) + Glide.with(this).clear(blurHashView) return } else { blurHashView.visible = true @@ -89,7 +89,7 @@ class StoryFirstTimeNavigationView @JvmOverloads constructor( overlayView.setImageDrawable(ColorDrawable(Color.argb(BLUR_ALPHA, 0, 0, 0))) } - GlideApp.with(this) + Glide.with(this) .load(blurHash) .addListener(object : RequestListener { override fun onLoadFailed(e: GlideException?, model: Any?, target: Target?, isFirstResource: Boolean): Boolean { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/StoryLinkPreviewView.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/StoryLinkPreviewView.kt index aea93c29eb..b00b1d03d6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/StoryLinkPreviewView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/StoryLinkPreviewView.kt @@ -7,6 +7,7 @@ import android.text.TextUtils import android.util.AttributeSet import android.view.View import androidx.constraintlayout.widget.ConstraintLayout +import com.bumptech.glide.Glide import org.signal.core.util.isAbsent import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.ThumbnailView @@ -14,7 +15,6 @@ import org.thoughtcrime.securesms.databinding.StoriesTextPostLinkPreviewBinding import org.thoughtcrime.securesms.linkpreview.LinkPreview import org.thoughtcrime.securesms.linkpreview.LinkPreviewState import org.thoughtcrime.securesms.linkpreview.LinkPreviewUtil -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.mms.ImageSlide import org.thoughtcrime.securesms.mms.Slide import org.thoughtcrime.securesms.util.concurrent.ListenableFuture @@ -56,7 +56,7 @@ class StoryLinkPreviewView @JvmOverloads constructor( fun setThumbnailDrawable(drawable: Drawable?, useLargeThumbnail: Boolean) { val image = getThumbnailTarget(useLargeThumbnail) - image.setImageDrawable(GlideApp.with(this), drawable) + image.setImageDrawable(Glide.with(this), drawable) } fun bind(linkPreview: LinkPreview?, hiddenVisibility: Int = View.INVISIBLE, useLargeThumbnail: Boolean, loadThumbnail: Boolean = true): ListenableFuture { @@ -120,7 +120,7 @@ class StoryLinkPreviewView @JvmOverloads constructor( if (imageSlide != null) { if (loadThumbnail) { future = image.setImageResource( - GlideApp.with(this), + Glide.with(this), imageSlide, false, false diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt index 35a50f2235..73f6c61821 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt @@ -8,12 +8,12 @@ import android.view.View import android.widget.FrameLayout import android.widget.ImageView import android.widget.TextView +import com.bumptech.glide.Glide import org.signal.core.util.getParcelableCompat import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.blurhash.BlurHash import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.visible @@ -67,11 +67,11 @@ class StorySlateView @JvmOverloads constructor( fun setBackground(blur: BlurHash?) { if (blur != null) { - GlideApp.with(background) + Glide.with(background) .load(blur) .into(background) } else { - GlideApp.with(background).clear(background) + Glide.with(background).clear(background) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/StoryTextPostModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/StoryTextPostModel.kt index 2cd4931174..17dcc46ba6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/StoryTextPostModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/StoryTextPostModel.kt @@ -10,6 +10,7 @@ import android.view.ContextThemeWrapper import android.view.View import androidx.core.graphics.scale import androidx.core.view.drawToBitmap +import com.bumptech.glide.Glide import com.bumptech.glide.load.Key import com.bumptech.glide.load.Options import com.bumptech.glide.load.ResourceDecoder @@ -30,7 +31,6 @@ import org.thoughtcrime.securesms.fonts.TextFont import org.thoughtcrime.securesms.fonts.TextToScript import org.thoughtcrime.securesms.fonts.TypefaceCache import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.ParcelUtil import java.io.IOException @@ -148,7 +148,7 @@ data class StoryTextPostModel( view.layout(0, 0, view.measuredWidth, view.measuredHeight) val drawable = if (linkPreview != null && linkPreview.thumbnail.isPresent) { - GlideApp + Glide .with(view) .load(DecryptableStreamUriLoader.DecryptableUri(linkPreview.thumbnail.get().uri!!)) .centerCrop() diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingItem.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingItem.kt index 028e5361b3..bfb820e13c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingItem.kt @@ -8,6 +8,7 @@ import android.widget.ImageView import android.widget.TextView import androidx.core.content.ContextCompat import androidx.core.view.ViewCompat +import com.bumptech.glide.Glide import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener @@ -18,7 +19,6 @@ import org.thoughtcrime.securesms.avatar.view.AvatarView import org.thoughtcrime.securesms.badges.BadgeImageView import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.stories.StoryTextPostModel import org.thoughtcrime.securesms.stories.dialogs.StoryContextMenu @@ -164,14 +164,14 @@ object StoriesLandingItem { clearGlide() storyBlur.visible = blur != null if (blur != null) { - GlideApp.with(storyBlur).load(blur).into(storyBlur) + Glide.with(storyBlur).load(blur).into(storyBlur) } @Suppress("CascadeIf") if (record.storyType.isTextStory) { storyBlur.visible = false val storyTextPostModel = StoryTextPostModel.parseFrom(record) - GlideApp.with(storyPreview) + Glide.with(storyPreview) .load(storyTextPostModel) .placeholder(storyTextPostModel.getPlaceholder()) .centerCrop() @@ -179,7 +179,7 @@ object StoriesLandingItem { .into(storyPreview) } else if (thumbnail != null) { storyBlur.visible = blur != null - GlideApp.with(storyPreview) + Glide.with(storyPreview) .load(DecryptableStreamUriLoader.DecryptableUri(thumbnail)) .addListener(HideBlurAfterLoadListener()) .centerCrop() @@ -195,7 +195,7 @@ object StoriesLandingItem { @Suppress("CascadeIf") if (secondaryRecord.storyType.isTextStory) { val storyTextPostModel = StoryTextPostModel.parseFrom(secondaryRecord) - GlideApp.with(storyMulti) + Glide.with(storyMulti) .load(storyTextPostModel) .placeholder(storyTextPostModel.getPlaceholder()) .centerCrop() @@ -203,7 +203,7 @@ object StoriesLandingItem { .into(storyMulti) storyMulti.visible = true } else if (secondaryThumb != null) { - GlideApp.with(storyMulti) + Glide.with(storyMulti) .load(DecryptableStreamUriLoader.DecryptableUri(secondaryThumb)) .centerCrop() .dontAnimate() @@ -211,12 +211,12 @@ object StoriesLandingItem { storyMulti.visible = true } else { storyOutline.setBackgroundColor(Color.TRANSPARENT) - GlideApp.with(storyMulti).clear(storyMulti) + Glide.with(storyMulti).clear(storyMulti) storyMulti.visible = false } } else { storyOutline.setBackgroundColor(Color.TRANSPARENT) - GlideApp.with(storyMulti).clear(storyMulti) + Glide.with(storyMulti).clear(storyMulti) storyMulti.visible = false } @@ -303,8 +303,8 @@ object StoriesLandingItem { } private fun clearGlide() { - GlideApp.with(storyPreview).clear(storyPreview) - GlideApp.with(storyBlur).clear(storyBlur) + Glide.with(storyPreview).clear(storyPreview) + Glide.with(storyBlur).clear(storyBlur) } private inner class HideBlurAfterLoadListener : RequestListener { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/my/MyStoriesItem.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/my/MyStoriesItem.kt index 193599409f..002521b184 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/my/MyStoriesItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/my/MyStoriesItem.kt @@ -5,6 +5,7 @@ import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView +import com.bumptech.glide.Glide import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener @@ -17,7 +18,6 @@ import org.thoughtcrime.securesms.components.settings.PreferenceModel import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.stories.StoryTextPostModel import org.thoughtcrime.securesms.util.DateUtils import org.thoughtcrime.securesms.util.DebouncedOnClickListener @@ -136,14 +136,14 @@ object MyStoriesItem { clearGlide() storyBlur.visible = blur != null if (blur != null) { - GlideApp.with(storyBlur).load(blur).into(storyBlur) + Glide.with(storyBlur).load(blur).into(storyBlur) } @Suppress("CascadeIf") if (record.storyType.isTextStory) { storyBlur.visible = false val storyTextPostModel = StoryTextPostModel.parseFrom(record) - GlideApp.with(storyPreview) + Glide.with(storyPreview) .load(storyTextPostModel) .placeholder(storyTextPostModel.getPlaceholder()) .centerCrop() @@ -151,7 +151,7 @@ object MyStoriesItem { .into(storyPreview) } else if (thumbnail != null) { storyBlur.visible = blur != null - GlideApp.with(storyPreview) + Glide.with(storyPreview) .load(DecryptableStreamUriLoader.DecryptableUri(thumbnail)) .addListener(HideBlurAfterLoadListener()) .centerCrop() @@ -207,8 +207,8 @@ object MyStoriesItem { } private fun clearGlide() { - GlideApp.with(storyPreview).clear(storyPreview) - GlideApp.with(storyBlur).clear(storyBlur) + Glide.with(storyPreview).clear(storyPreview) + Glide.with(storyBlur).clear(storyBlur) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryCache.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryCache.kt index 062c3549a0..66b6a07c49 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryCache.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryCache.kt @@ -3,13 +3,13 @@ package org.thoughtcrime.securesms.stories.viewer.page import android.graphics.drawable.Drawable import android.net.Uri import com.bumptech.glide.Priority +import com.bumptech.glide.RequestManager import com.bumptech.glide.request.target.CustomTarget import com.bumptech.glide.request.transition.Transition import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.attachments.Attachment import org.thoughtcrime.securesms.database.AttachmentTable import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.util.MediaUtil /** @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.util.MediaUtil * works with Images. */ class StoryCache( - private val glideRequests: GlideRequests, + private val requestManager: RequestManager, private val storySize: StoryDisplay.Size ) { @@ -43,7 +43,7 @@ class StoryCache( val newMappings: Map = prefetchableAttachments.associateWith { attachment -> val imageTarget = if (MediaUtil.isImage(attachment)) { - glideRequests + requestManager .load(DecryptableStreamUriLoader.DecryptableUri(attachment.uri!!)) .priority(Priority.HIGH) .centerInside() @@ -53,7 +53,7 @@ class StoryCache( } val blurTarget = if (attachment.blurHash != null) { - glideRequests + requestManager .load(attachment.blurHash) .priority(Priority.HIGH) .into(StoryCacheTarget(attachment.uri!!, storySize)) @@ -74,8 +74,8 @@ class StoryCache( val values = ArrayList(cache.values) values.forEach { value -> - glideRequests.clear(value.imageTarget) - value.blurTarget?.let { glideRequests.clear(it) } + requestManager.clear(value.imageTarget) + value.blurTarget?.let { requestManager.clear(it) } } cache.clear() diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt index 00ed6954b4..c2080918e5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt @@ -28,6 +28,7 @@ import androidx.core.view.animation.PathInterpolatorCompat import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels +import com.bumptech.glide.Glide import com.google.android.material.button.MaterialButton import com.google.android.material.card.MaterialCardView import com.google.android.material.progressindicator.CircularProgressIndicatorSpec @@ -61,7 +62,6 @@ import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList import org.thoughtcrime.securesms.mediapreview.MediaPreviewFragment import org.thoughtcrime.securesms.mediapreview.VideoControlsDelegate -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.recipients.ui.bottomsheet.RecipientBottomSheetDialogFragment @@ -138,7 +138,7 @@ class StoryViewerPageFragment : storyViewStateViewModel.storyViewStateCache ), StoryCache( - GlideApp.with(requireActivity()), + Glide.with(requireActivity()), StoryDisplay.getStorySize(resources) ) ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryBlurLoader.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryBlurLoader.kt index 5c978c90e7..f3fde8c19c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryBlurLoader.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryBlurLoader.kt @@ -6,13 +6,13 @@ import android.widget.ImageView import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner +import com.bumptech.glide.Glide import com.bumptech.glide.load.DataSource 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.blurhash.BlurHash -import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.stories.viewer.page.StoryCache import org.thoughtcrime.securesms.stories.viewer.page.StoryDisplay @@ -58,7 +58,7 @@ class StoryBlurLoader( } fun clear() { - GlideApp.with(blurImage).clear(blurImage) + Glide.with(blurImage).clear(blurImage) blurImage.setImageDrawable(null) } @@ -77,7 +77,7 @@ class StoryBlurLoader( private fun loadViaGlide(blurHash: BlurHash?, storySize: StoryDisplay.Size) { if (blurHash != null) { - GlideApp.with(blurImage) + Glide.with(blurImage) .load(blurHash) .override(storySize.width, storySize.height) .addListener(object : RequestListener { 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 18ffe6bca6..80136f6bb1 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 @@ -4,13 +4,13 @@ import android.graphics.drawable.Drawable import android.widget.ImageView import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner +import com.bumptech.glide.Glide import com.bumptech.glide.load.DataSource 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.GlideApp import org.thoughtcrime.securesms.stories.viewer.page.StoryCache import org.thoughtcrime.securesms.stories.viewer.page.StoryDisplay @@ -70,7 +70,7 @@ class StoryImageLoader( } fun clear() { - GlideApp.with(postImage).clear(postImage) + Glide.with(postImage).clear(postImage) postImage.setImageDrawable(null) @@ -86,7 +86,7 @@ class StoryImageLoader( private fun loadViaGlide(storySize: StoryDisplay.Size) { Log.d(TAG, "Image not in cache. Loading via glide...") - GlideApp.with(postImage) + Glide.with(postImage) .load(DecryptableStreamUriLoader.DecryptableUri(imagePost.imageUri)) .override(storySize.width, storySize.height) .centerInside() 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 74a9b52f69..0a7a5b89e9 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 @@ -6,6 +6,7 @@ import android.graphics.drawable.Drawable import android.net.Uri import android.util.AttributeSet import android.widget.ImageView +import com.bumptech.glide.Glide import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener @@ -17,7 +18,6 @@ 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.GlideApp import org.thoughtcrime.securesms.stories.StoryTextPostModel import kotlin.reflect.KProperty @@ -58,7 +58,7 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor( latestSource = storyTextPostModel - GlideApp.with(sourceView) + Glide.with(sourceView) .load(storyTextPostModel) .addListener( OnReadyListener { @@ -70,7 +70,7 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor( .centerCrop() .into(sourceView) - GlideApp.with(sourceBlurView).clear(sourceBlurView) + Glide.with(sourceBlurView).clear(sourceBlurView) isSourceBlurReady = true } @@ -81,7 +81,7 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor( latestSource = uri - GlideApp.with(sourceView) + Glide.with(sourceView) .load(DecryptableStreamUriLoader.DecryptableUri(uri)) .addListener( OnReadyListener { @@ -93,10 +93,10 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor( .into(sourceView) if (blur == null) { - GlideApp.with(sourceBlurView).clear(sourceBlurView) + Glide.with(sourceBlurView).clear(sourceBlurView) isSourceBlurReady = true } else { - GlideApp.with(sourceBlurView) + Glide.with(sourceBlurView) .load(blur) .addListener( OnReadyListener { @@ -128,7 +128,7 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor( latestTarget = storyTextPostModel - GlideApp.with(targetView) + Glide.with(targetView) .load(storyTextPostModel) .addListener( OnReadyListener { @@ -140,7 +140,7 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor( .centerCrop() .into(targetView) - GlideApp.with(targetBlurView).clear(targetBlurView) + Glide.with(targetBlurView).clear(targetBlurView) isTargetBlurReady = true } @@ -151,7 +151,7 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor( latestTarget = uri - GlideApp.with(targetView) + Glide.with(targetView) .load(DecryptableStreamUriLoader.DecryptableUri(uri)) .addListener( OnReadyListener { @@ -163,10 +163,10 @@ class StoriesSharedElementCrossFaderView @JvmOverloads constructor( .into(targetView) if (blur == null) { - GlideApp.with(targetBlurView).clear(targetBlurView) + Glide.with(targetBlurView).clear(targetBlurView) isTargetBlurReady = true } else { - GlideApp.with(targetBlurView) + Glide.with(targetBlurView) .load(blur) .addListener( OnReadyListener { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java index 71298fc0ab..75c482f737 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java @@ -14,6 +14,9 @@ import androidx.appcompat.widget.AppCompatImageView; import androidx.core.content.ContextCompat; import androidx.core.graphics.drawable.IconCompat; +import com.bumptech.glide.Glide; +import com.bumptech.glide.RequestBuilder; +import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; import com.bumptech.glide.load.resource.bitmap.CenterCrop; @@ -28,9 +31,6 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto; -import org.thoughtcrime.securesms.mms.GlideApp; -import org.thoughtcrime.securesms.mms.GlideRequest; -import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.providers.AvatarProvider; import org.thoughtcrime.securesms.recipients.Recipient; @@ -65,7 +65,7 @@ public final class AvatarUtil { photo = recipient.getContactPhoto(); } - GlideApp.with(target) + Glide.with(target) .load(photo) .transform(new BlurTransformation(context, 0.25f, BlurTransformation.MAX_RADIUS), new CenterCrop()) .into(new CustomViewTarget(target) { @@ -94,7 +94,7 @@ public final class AvatarUtil { public static void loadIconIntoImageView(@NonNull Recipient recipient, @NonNull ImageView target, int requestedSize) { Context context = target.getContext(); - requestCircle(GlideApp.with(context).asDrawable(), context, recipient, requestedSize).into(target); + requestCircle(Glide.with(context).asDrawable(), context, recipient, requestedSize).into(target); } public static Bitmap loadIconBitmapSquareNoCache(@NonNull Context context, @@ -103,7 +103,7 @@ public final class AvatarUtil { int height) throws ExecutionException, InterruptedException { - return requestSquare(GlideApp.with(context).asBitmap(), context, recipient) + return requestSquare(Glide.with(context).asBitmap(), context, recipient) .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) .submit(width, height) @@ -129,10 +129,10 @@ public final class AvatarUtil { ThreadUtil.assertNotMainThread(); try { - AvatarTarget avatarTarget = new AvatarTarget(size); - GlideRequests glideRequests = GlideApp.with(context); + AvatarTarget avatarTarget = new AvatarTarget(size); + RequestManager requestManager = Glide.with(context); - requestCircle(glideRequests.asBitmap(), context, recipient, size).into(avatarTarget); + requestCircle(requestManager.asBitmap(), context, recipient, size).into(avatarTarget); Bitmap bitmap = avatarTarget.await(); return Objects.requireNonNullElseGet(bitmap, () -> DrawableUtil.toBitmap(getFallback(context, recipient, size), size, size)); @@ -141,19 +141,19 @@ public final class AvatarUtil { } } - private static GlideRequest requestCircle(@NonNull GlideRequest glideRequest, @NonNull Context context, @NonNull Recipient recipient, int targetSize) { - return request(glideRequest, context, recipient, targetSize, new CircleCrop()); + private static RequestBuilder requestCircle(@NonNull RequestBuilder requestBuilder, @NonNull Context context, @NonNull Recipient recipient, int targetSize) { + return request(requestBuilder, context, recipient, targetSize, new CircleCrop()); } - private static GlideRequest requestSquare(@NonNull GlideRequest glideRequest, @NonNull Context context, @NonNull Recipient recipient) { - return request(glideRequest, context, recipient, UNDEFINED_SIZE, new CenterCrop()); + private static RequestBuilder requestSquare(@NonNull RequestBuilder requestBuilder, @NonNull Context context, @NonNull Recipient recipient) { + return request(requestBuilder, context, recipient, UNDEFINED_SIZE, new CenterCrop()); } - private static GlideRequest request(@NonNull GlideRequest glideRequest, @NonNull Context context, @NonNull Recipient recipient, int targetSize, @Nullable BitmapTransformation transformation) { - return request(glideRequest, context, recipient, true, targetSize, transformation); + private static RequestBuilder request(@NonNull RequestBuilder requestBuilder, @NonNull Context context, @NonNull Recipient recipient, int targetSize, @Nullable BitmapTransformation transformation) { + return request(requestBuilder, context, recipient, true, targetSize, transformation); } - private static GlideRequest request(@NonNull GlideRequest glideRequest, @NonNull Context context, @NonNull Recipient recipient, boolean loadSelf, int targetSize, @Nullable BitmapTransformation transformation) { + private static RequestBuilder request(@NonNull RequestBuilder requestBuilder, @NonNull Context context, @NonNull Recipient recipient, boolean loadSelf, int targetSize, @Nullable BitmapTransformation transformation) { final ContactPhoto photo; if (Recipient.self().equals(recipient) && loadSelf) { @@ -163,7 +163,7 @@ public final class AvatarUtil { } final int size = targetSize == -1 ? DrawableUtil.SHORTCUT_INFO_WRAPPED_SIZE : targetSize; - final GlideRequest request = glideRequest.load(photo) + final RequestBuilder request = requestBuilder.load(photo) .error(getFallback(context, recipient, size)) .diskCacheStrategy(DiskCacheStrategy.ALL) .override(size); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/BitmapUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/BitmapUtil.java index 1961ef321f..e036fb7596 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/BitmapUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/BitmapUtil.java @@ -18,11 +18,11 @@ import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import androidx.exifinterface.media.ExifInterface; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import org.signal.core.util.ThreadUtil; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.MediaConstraints; import java.io.BufferedInputStream; @@ -113,7 +113,7 @@ public class BitmapUtil { int attempts = 0; byte[] bytes; - Bitmap scaledBitmap = GlideApp.with(context.getApplicationContext()) + Bitmap scaledBitmap = Glide.with(context.getApplicationContext()) .asBitmap() .load(model) .skipMemoryCache(true) @@ -179,7 +179,7 @@ public class BitmapUtil { throws BitmapDecodingException { try { - return GlideApp.with(context.getApplicationContext()) + return Glide.with(context.getApplicationContext()) .asBitmap() .load(model) .centerInside() diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ImageCompressionUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/ImageCompressionUtil.java index 723fdcd377..e8cd01a4c3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ImageCompressionUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ImageCompressionUtil.java @@ -8,6 +8,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.engine.GlideException; @@ -16,7 +17,6 @@ import com.bumptech.glide.request.target.Target; import org.signal.core.util.ByteSize; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.mms.GlideApp; import java.io.ByteArrayOutputStream; import java.util.List; @@ -82,7 +82,7 @@ public final class ImageCompressionUtil { Bitmap scaledBitmap; try { - scaledBitmap = GlideApp.with(context.getApplicationContext()) + scaledBitmap = Glide.with(context.getApplicationContext()) .asBitmap() .addListener(bitmapRequestListener) .load(glideModel) 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 d59e3b0621..a49575ed5a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/MediaUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/MediaUtil.java @@ -24,6 +24,7 @@ import androidx.annotation.RequiresApi; import androidx.annotation.WorkerThread; import androidx.exifinterface.media.ExifInterface; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.gif.GifDrawable; @@ -36,7 +37,6 @@ import org.thoughtcrime.securesms.mms.AudioSlide; import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; import org.thoughtcrime.securesms.mms.DocumentSlide; import org.thoughtcrime.securesms.mms.GifSlide; -import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.ImageSlide; import org.thoughtcrime.securesms.mms.MmsSlide; import org.thoughtcrime.securesms.mms.PartAuthority; @@ -202,7 +202,7 @@ public class MediaUtil { if (MediaUtil.isGif(contentType)) { try { - GifDrawable drawable = GlideApp.with(context) + GifDrawable drawable = Glide.with(context) .asGif() .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) 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 1517a5a955..fcd3b32abd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/UriChatWallpaper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/UriChatWallpaper.java @@ -11,6 +11,7 @@ import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.engine.GlideException; @@ -20,7 +21,6 @@ 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.GlideApp; import java.util.Objects; import java.util.concurrent.ExecutionException; @@ -64,7 +64,7 @@ final class UriChatWallpaper implements ChatWallpaper, Parcelable { imageView.setImageBitmap(cached); } else { Log.d(TAG, "Not in cache or recycled. Fetching using Glide."); - GlideApp.with(imageView.getContext().getApplicationContext()) + Glide.with(imageView.getContext().getApplicationContext()) .asBitmap() .load(new DecryptableStreamUriLoader.DecryptableUri(uri)) .skipMemoryCache(true) @@ -97,7 +97,7 @@ final class UriChatWallpaper implements ChatWallpaper, Parcelable { long startTime = System.currentTimeMillis(); try { - Bitmap bitmap = GlideApp.with(context.getApplicationContext()) + Bitmap bitmap = Glide.with(context.getApplicationContext()) .asBitmap() .load(new DecryptableStreamUriLoader.DecryptableUri(uri)) .skipMemoryCache(true) diff --git a/app/src/test/java/org/thoughtcrime/securesms/stories/StoryFirstTimeNavigationViewTest.kt b/app/src/test/java/org/thoughtcrime/securesms/stories/StoryFirstTimeNavigationViewTest.kt index 0697c7b2eb..8b7cf07395 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/stories/StoryFirstTimeNavigationViewTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/stories/StoryFirstTimeNavigationViewTest.kt @@ -7,6 +7,9 @@ import android.view.ContextThemeWrapper import android.view.View import android.widget.ImageView import androidx.test.core.app.ApplicationProvider +import com.bumptech.glide.Glide +import com.bumptech.glide.RequestBuilder +import com.bumptech.glide.RequestManager import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Before @@ -26,9 +29,6 @@ import org.robolectric.RobolectricTestRunner import org.robolectric.Shadows.shadowOf import org.robolectric.annotation.Config import org.thoughtcrime.securesms.blurhash.BlurHash -import org.thoughtcrime.securesms.mms.GlideApp -import org.thoughtcrime.securesms.mms.GlideRequest -import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.util.visible @RunWith(RobolectricTestRunner::class) @@ -42,21 +42,21 @@ class StoryFirstTimeNavigationViewTest { private lateinit var testSubject: StoryFirstTimeNavigationView @Mock - private lateinit var glideApp: MockedStatic + private lateinit var glide: MockedStatic @Mock - private lateinit var glideRequests: GlideRequests + private lateinit var requestManager: RequestManager @Mock - private lateinit var glideRequest: GlideRequest + private lateinit var requestBuilder: RequestBuilder @Before fun setUp() { testSubject = StoryFirstTimeNavigationView(ContextThemeWrapper(ApplicationProvider.getApplicationContext(), org.thoughtcrime.securesms.R.style.Signal_DayNight)) - whenever(GlideApp.with(any())).thenReturn(glideRequests) - whenever(glideRequests.load(any())).thenReturn(glideRequest) - whenever(glideRequest.addListener(any())).thenReturn(glideRequest) + whenever(Glide.with(any())).thenReturn(requestManager) + whenever(requestManager.load(any())).thenReturn(requestBuilder) + whenever(requestBuilder.addListener(any())).thenReturn(requestBuilder) } @Test @@ -95,7 +95,7 @@ class StoryFirstTimeNavigationViewTest { testSubject.setBlurHash(BlurHash.parseOrNull("0000")!!) val blurHashView = testSubject.findViewById(org.thoughtcrime.securesms.R.id.edu_blur_hash) - verify(glideRequest).into(eq(blurHashView)) + verify(requestBuilder).into(eq(blurHashView)) } @Test @@ -107,7 +107,7 @@ class StoryFirstTimeNavigationViewTest { val blurHashView = testSubject.findViewById(org.thoughtcrime.securesms.R.id.edu_blur_hash) assertFalse(blurHashView.visible) - verify(glideRequests).clear(blurHashView) + verify(requestManager).clear(blurHashView) } @Test @@ -123,7 +123,7 @@ class StoryFirstTimeNavigationViewTest { testSubject.setBlurHash(BlurHash.parseOrNull("0000")!!) val blurHashView = testSubject.findViewById(org.thoughtcrime.securesms.R.id.edu_blur_hash) - verify(glideRequest, never()).into(eq(blurHashView)) + verify(requestBuilder, never()).into(eq(blurHashView)) } @Test diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index cfc319f47d..47e0fad7c1 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -15,13 +15,3 @@ buildscript { apply(from = "${rootDir}/../constants.gradle.kts") -val signalKotlinJvmTarget: String by extra - -allprojects { - // Needed because otherwise the kapt task defaults to jvmTarget 17, which "poisons the well" and requires us to bump up too - tasks.withType().configureEach { - kotlinOptions { - jvmTarget = signalKotlinJvmTarget - } - } -} diff --git a/build.gradle.kts b/build.gradle.kts index 4347d02b1e..72cb04c48d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,5 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -val signalKotlinJvmTarget: String by rootProject.extra - buildscript { rootProject.extra["kotlin_version"] = "1.8.10" repositories { @@ -31,6 +29,7 @@ buildscript { } classpath("androidx.benchmark:benchmark-gradle-plugin:1.1.0-beta04") classpath(files("$rootDir/wire-handler/wire-handler-1.0.0.jar")) + classpath("com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:1.8.10-1.0.9") } } @@ -40,15 +39,6 @@ tasks.withType { apply(from = "${rootDir}/constants.gradle.kts") -allprojects { - // Needed because otherwise the kapt task defaults to jvmTarget 17, which "poisons the well" and requires us to bump up too - tasks.withType().configureEach { - kotlinOptions { - jvmTarget = signalKotlinJvmTarget - } - } -} - subprojects { if (JavaVersion.current().isJava8Compatible()) { allprojects { @@ -110,4 +100,4 @@ task("format") { gradle.includedBuild("build-logic").task(":tools:ktlintFormat"), *subprojects.mapNotNull { tasks.findByPath(":${it.name}:ktlintFormat") }.toTypedArray() ) -} \ No newline at end of file +} diff --git a/core-util/build.gradle.kts b/core-util/build.gradle.kts index a848cb9e24..cdb121d35f 100644 --- a/core-util/build.gradle.kts +++ b/core-util/build.gradle.kts @@ -1,6 +1,5 @@ plugins { id("signal-library") - id("kotlin-kapt") id("com.squareup.wire") } diff --git a/dependencies.gradle.kts b/dependencies.gradle.kts index a97d3f61c4..6092e4f2b6 100644 --- a/dependencies.gradle.kts +++ b/dependencies.gradle.kts @@ -138,7 +138,7 @@ dependencyResolutionManagement { library("emilsjolander-stickylistheaders", "se.emilsjolander:stickylistheaders:2.7.0") library("apache-httpclient-android", "org.apache.httpcomponents:httpclient-android:4.3.5") library("glide-glide", "com.github.bumptech.glide", "glide").versionRef("glide") - library("glide-compiler", "com.github.bumptech.glide", "compiler").versionRef("glide") + library("glide-ksp", "com.github.bumptech.glide", "ksp").versionRef("glide") library("roundedimageview", "com.makeramen:roundedimageview:2.1.0") library("materialish-progress", "com.pnikosis:materialish-progress:1.7") library("subsampling-scale-image-view", "com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0") diff --git a/donations/app/build.gradle.kts b/donations/app/build.gradle.kts index 0bf984992e..ed7db9252e 100644 --- a/donations/app/build.gradle.kts +++ b/donations/app/build.gradle.kts @@ -1,6 +1,5 @@ plugins { id("signal-sample-app") - id("kotlin-kapt") } android { diff --git a/glide-config/build.gradle.kts b/glide-config/build.gradle.kts index a270e474db..0c62634f01 100644 --- a/glide-config/build.gradle.kts +++ b/glide-config/build.gradle.kts @@ -1,6 +1,6 @@ plugins { id("signal-library") - id("kotlin-kapt") + id("com.google.devtools.ksp") } android { @@ -9,5 +9,5 @@ android { dependencies { implementation(libs.glide.glide) - kapt(libs.glide.compiler) + ksp(libs.glide.ksp) } diff --git a/gradle.properties b/gradle.properties index 42591f21c9..00a5bf34ac 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,5 @@ org.gradle.jvmargs=-Xmx6g -Xms256m -XX:MaxMetaspaceSize=1g android.useAndroidX=true -kapt.incremental.apt=false android.experimental.androidTest.numManagedDeviceShards=4 android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index d61dbbd819..a33c4056b4 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -733,6 +733,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + @@ -746,6 +749,9 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + @@ -2635,14 +2641,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2658,6 +2656,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + @@ -2787,6 +2793,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -2852,6 +2863,40 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4609,6 +4654,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4827,6 +4877,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4872,6 +4927,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4912,6 +4972,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -4942,6 +5007,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + diff --git a/image-editor/app/build.gradle b/image-editor/app/build.gradle index b68e94bc4b..757059bbb0 100644 --- a/image-editor/app/build.gradle +++ b/image-editor/app/build.gradle @@ -1,6 +1,6 @@ plugins { id("signal-sample-app") - id("kotlin-kapt") + id("com.google.devtools.ksp") } android { @@ -15,5 +15,5 @@ dependencies { implementation(project(":image-editor")) implementation(libs.glide.glide) - kapt(libs.glide.compiler) -} \ No newline at end of file + ksp(libs.glide.ksp) +} diff --git a/image-editor/app/src/main/java/org/signal/imageeditor/app/renderers/UriRenderer.java b/image-editor/app/src/main/java/org/signal/imageeditor/app/renderers/UriRenderer.java index 3f5fa6f1f7..5dd254fb9c 100644 --- a/image-editor/app/src/main/java/org/signal/imageeditor/app/renderers/UriRenderer.java +++ b/image-editor/app/src/main/java/org/signal/imageeditor/app/renderers/UriRenderer.java @@ -12,11 +12,11 @@ import android.os.Parcelable; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.target.SimpleTarget; import com.bumptech.glide.request.transition.Transition; -import org.signal.imageeditor.app.GlideApp; import org.signal.imageeditor.core.Bounds; import org.signal.imageeditor.core.Renderer; import org.signal.imageeditor.core.RendererContext; @@ -47,7 +47,7 @@ public final class UriRenderer implements Renderer, Parcelable { if (bitmap != null && bitmap.isRecycled()) bitmap = null; if (bitmap == null) { - GlideApp.with(rendererContext.context) + Glide.with(rendererContext.context) .asBitmap() .load(imageUri) .diskCacheStrategy(DiskCacheStrategy.ALL) diff --git a/image-editor/app/src/main/java/org/signal/imageeditor/app/renderers/UrlRenderer.java b/image-editor/app/src/main/java/org/signal/imageeditor/app/renderers/UrlRenderer.java index 01d5f9ce56..67b82228d1 100644 --- a/image-editor/app/src/main/java/org/signal/imageeditor/app/renderers/UrlRenderer.java +++ b/image-editor/app/src/main/java/org/signal/imageeditor/app/renderers/UrlRenderer.java @@ -11,11 +11,11 @@ import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.target.SimpleTarget; import com.bumptech.glide.request.transition.Transition; -import org.signal.imageeditor.app.GlideApp; import org.signal.imageeditor.core.Bounds; import org.signal.imageeditor.core.RendererContext; @@ -60,7 +60,7 @@ public final class UrlRenderer extends StandardHitTestRenderer { if (bitmap == null) { if (rendererContext.isBlockingLoad()) { try { - setBitmap(rendererContext, GlideApp.with(rendererContext.context) + setBitmap(rendererContext, Glide.with(rendererContext.context) .asBitmap() .load(url) .diskCacheStrategy(DiskCacheStrategy.ALL) @@ -72,7 +72,7 @@ public final class UrlRenderer extends StandardHitTestRenderer { throw new RuntimeException(e); } } else { - GlideApp.with(rendererContext.context) + Glide.with(rendererContext.context) .asBitmap() .load(url) .diskCacheStrategy(DiskCacheStrategy.NONE) diff --git a/image-editor/lib/build.gradle b/image-editor/lib/build.gradle index 972de6d1ad..07f5e40235 100644 --- a/image-editor/lib/build.gradle +++ b/image-editor/lib/build.gradle @@ -8,4 +8,4 @@ android { dependencies { implementation(project(":core-util")) -} \ No newline at end of file +}