From 986923ea6c27c7fa0c8bd4812face66c93eac5a2 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 22 Jan 2026 16:12:04 -0500 Subject: [PATCH] Move GlideImage into the glide module. --- app/build.gradle.kts | 2 +- .../webrtc/v2/CallParticipantViewer.kt | 4 ++-- .../webrtc/v2/IncomingCallScreen.kt | 2 +- .../v2/PinnedMessagesComponent.kt | 2 +- .../glide/cache/ByteBufferApngDecoder.java | 1 + .../glide/cache/StreamApngDecoder.java | 1 + .../glide/cache/StreamFactoryApngDecoder.kt | 1 + .../sticker/KeyboardStickerListAdapter.kt | 2 +- .../sticker/KeyboardStickerPackListAdapter.kt | 2 +- .../stickers/manage/StickerPackListItems.kt | 2 +- .../preview/StickerPackPreviewActivity.java | 2 +- .../preview/StickerPackPreviewActivityV2.kt | 2 +- .../preview/StickerPackPreviewAdapter.java | 2 +- lib/glide-config/build.gradle.kts | 13 ---------- lib/{glide-config => glide}/.gitignore | 0 lib/glide/build.gradle.kts | 24 +++++++++++++++++++ .../src/main/AndroidManifest.xml | 0 .../org/signal/glide/apng}/ApngOptions.java | 2 +- .../org/signal/glide}/compose/GlideImage.kt | 4 ++-- .../securesms/mms/SignalGlideModule.kt | 0 settings.gradle.kts | 2 +- 21 files changed, 42 insertions(+), 28 deletions(-) delete mode 100644 lib/glide-config/build.gradle.kts rename lib/{glide-config => glide}/.gitignore (100%) create mode 100644 lib/glide/build.gradle.kts rename lib/{glide-config => glide}/src/main/AndroidManifest.xml (100%) rename {app/src/main/java/org/thoughtcrime/securesms/glide/cache => lib/glide/src/main/java/org/signal/glide/apng}/ApngOptions.java (91%) rename {app/src/main/java/org/thoughtcrime/securesms => lib/glide/src/main/java/org/signal/glide}/compose/GlideImage.kt (98%) rename lib/{glide-config => glide}/src/main/java/org/thoughtcrime/securesms/mms/SignalGlideModule.kt (100%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 81c66a4871..bafc9dca5a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -513,7 +513,7 @@ dependencies { implementation(project(":lib:libsignal-service")) implementation(project(":lib:paging")) implementation(project(":core:util")) - implementation(project(":lib:glide-config")) + implementation(project(":lib:glide")) implementation(project(":lib:video")) implementation(project(":lib:device-transfer")) implementation(project(":lib:image-editor")) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/CallParticipantViewer.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/CallParticipantViewer.kt index 79d32eed6d..fdb081149c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/CallParticipantViewer.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/CallParticipantViewer.kt @@ -52,13 +52,13 @@ import androidx.compose.ui.viewinterop.AndroidView import org.signal.core.ui.compose.Buttons import org.signal.core.ui.compose.NightPreview import org.signal.core.ui.compose.Previews +import org.signal.glide.compose.GlideImage +import org.signal.glide.compose.GlideImageScaleType import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.avatar.AvatarImage import org.thoughtcrime.securesms.components.emoji.EmojiTextView import org.thoughtcrime.securesms.components.settings.app.subscription.BadgeImageLarge import org.thoughtcrime.securesms.components.webrtc.TextureViewRenderer -import org.thoughtcrime.securesms.compose.GlideImage -import org.thoughtcrime.securesms.compose.GlideImageScaleType import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto import org.thoughtcrime.securesms.events.CallParticipant import org.thoughtcrime.securesms.recipients.Recipient diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/IncomingCallScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/IncomingCallScreen.kt index decb258f63..5957fce785 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/IncomingCallScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/v2/IncomingCallScreen.kt @@ -37,9 +37,9 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import org.signal.core.ui.compose.NightPreview import org.signal.core.ui.compose.Previews +import org.signal.glide.compose.GlideImage import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.avatar.AvatarImage -import org.thoughtcrime.securesms.compose.GlideImage import org.thoughtcrime.securesms.recipients.Recipient private val textShadow = Shadow( diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/PinnedMessagesComponent.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/PinnedMessagesComponent.kt index 4a8d57f5ef..9e2b7d65e8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/PinnedMessagesComponent.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/PinnedMessagesComponent.kt @@ -48,9 +48,9 @@ import androidx.compose.ui.viewinterop.AndroidView import androidx.core.view.doOnPreDraw import org.signal.core.ui.compose.DropdownMenus import org.signal.core.ui.compose.theme.SignalTheme +import org.signal.glide.compose.GlideImage import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.emoji.EmojiTextView -import org.thoughtcrime.securesms.compose.GlideImage import org.thoughtcrime.securesms.conversation.ConversationMessage import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.fonts.SignalSymbols diff --git a/app/src/main/java/org/thoughtcrime/securesms/glide/cache/ByteBufferApngDecoder.java b/app/src/main/java/org/thoughtcrime/securesms/glide/cache/ByteBufferApngDecoder.java index ee854d5db7..a5e670847f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/glide/cache/ByteBufferApngDecoder.java +++ b/app/src/main/java/org/thoughtcrime/securesms/glide/cache/ByteBufferApngDecoder.java @@ -7,6 +7,7 @@ import com.bumptech.glide.load.Options; import com.bumptech.glide.load.ResourceDecoder; import com.bumptech.glide.load.engine.Resource; +import org.signal.glide.apng.ApngOptions; import org.signal.glide.common.io.ByteBufferReader; import org.signal.glide.common.loader.ByteBufferLoader; import org.signal.glide.common.loader.Loader; diff --git a/app/src/main/java/org/thoughtcrime/securesms/glide/cache/StreamApngDecoder.java b/app/src/main/java/org/thoughtcrime/securesms/glide/cache/StreamApngDecoder.java index 43295624ed..8e5f6aa2eb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/glide/cache/StreamApngDecoder.java +++ b/app/src/main/java/org/thoughtcrime/securesms/glide/cache/StreamApngDecoder.java @@ -8,6 +8,7 @@ import com.bumptech.glide.load.ResourceDecoder; import com.bumptech.glide.load.engine.Resource; import org.signal.core.util.StreamUtil; +import org.signal.glide.apng.ApngOptions; import org.signal.glide.common.io.StreamReader; import org.signal.glide.load.resource.apng.decode.APNGDecoder; import org.signal.glide.load.resource.apng.decode.APNGParser; diff --git a/app/src/main/java/org/thoughtcrime/securesms/glide/cache/StreamFactoryApngDecoder.kt b/app/src/main/java/org/thoughtcrime/securesms/glide/cache/StreamFactoryApngDecoder.kt index 3cd53ec291..9d78edfcc9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/glide/cache/StreamFactoryApngDecoder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/glide/cache/StreamFactoryApngDecoder.kt @@ -12,6 +12,7 @@ import com.bumptech.glide.load.Options import com.bumptech.glide.load.ResourceDecoder import com.bumptech.glide.load.engine.Resource import org.signal.core.util.StreamUtil +import org.signal.glide.apng.ApngOptions import org.signal.glide.common.io.InputStreamFactory import org.signal.glide.load.ImageHeaderParserUtils import org.signal.glide.load.resource.apng.decode.APNGDecoder 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 b1d1ff0647..6daa30f153 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 @@ -6,9 +6,9 @@ import android.widget.ImageView import android.widget.TextView import com.bumptech.glide.RequestManager import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions +import org.signal.glide.apng.ApngOptions import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.database.model.StickerRecord -import org.thoughtcrime.securesms.glide.cache.ApngOptions import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter 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 dbbd82842e..cbe96e70f4 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 @@ -5,8 +5,8 @@ import android.view.View import android.widget.ImageView import androidx.core.widget.ImageViewCompat import com.bumptech.glide.RequestManager +import org.signal.glide.apng.ApngOptions import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.glide.cache.ApngOptions import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/manage/StickerPackListItems.kt b/app/src/main/java/org/thoughtcrime/securesms/stickers/manage/StickerPackListItems.kt index feeb2baa54..f5eb42c8f8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/manage/StickerPackListItems.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/manage/StickerPackListItems.kt @@ -36,11 +36,11 @@ import org.signal.core.ui.compose.DropdownMenus import org.signal.core.ui.compose.Previews import org.signal.core.ui.compose.theme.SignalTheme import org.signal.core.util.nullIfBlank +import org.signal.glide.compose.GlideImage import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.compose.RoundCheckbox import org.thoughtcrime.securesms.components.transfercontrols.TransferProgressIndicator import org.thoughtcrime.securesms.components.transfercontrols.TransferProgressState -import org.thoughtcrime.securesms.compose.GlideImage import org.thoughtcrime.securesms.mms.DecryptableUri import org.thoughtcrime.securesms.stickers.StickerPreviewDataFactory import org.thoughtcrime.securesms.stickers.manage.AvailableStickerPack.DownloadStatus diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewActivity.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewActivity.java index 51cd8b3420..934b667c79 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewActivity.java @@ -24,7 +24,7 @@ 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.glide.cache.ApngOptions; +import org.signal.glide.apng.ApngOptions; import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.sharing.MultiShareArgs; import org.thoughtcrime.securesms.stickers.StickerManifest; diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewActivityV2.kt index 8a832021b5..12be62e5f6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewActivityV2.kt @@ -54,9 +54,9 @@ import org.signal.core.ui.compose.Previews import org.signal.core.ui.compose.Scaffolds import org.signal.core.util.orNull import org.signal.core.util.toOptional +import org.signal.glide.compose.GlideImage import org.thoughtcrime.securesms.PassphraseRequiredActivity import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.compose.GlideImage import org.thoughtcrime.securesms.compose.SignalTheme import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragment import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewAdapter.java index ac5a488f88..71a4f1a0a8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/preview/StickerPackPreviewAdapter.java @@ -13,7 +13,7 @@ import com.bumptech.glide.RequestManager; import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.glide.cache.ApngOptions; +import org.signal.glide.apng.ApngOptions; import org.thoughtcrime.securesms.mms.DecryptableUri; import org.thoughtcrime.securesms.stickers.StickerManifest; import org.thoughtcrime.securesms.stickers.StickerRemoteUri; diff --git a/lib/glide-config/build.gradle.kts b/lib/glide-config/build.gradle.kts deleted file mode 100644 index 0c62634f01..0000000000 --- a/lib/glide-config/build.gradle.kts +++ /dev/null @@ -1,13 +0,0 @@ -plugins { - id("signal-library") - id("com.google.devtools.ksp") -} - -android { - namespace = "org.signal.glide" -} - -dependencies { - implementation(libs.glide.glide) - ksp(libs.glide.ksp) -} diff --git a/lib/glide-config/.gitignore b/lib/glide/.gitignore similarity index 100% rename from lib/glide-config/.gitignore rename to lib/glide/.gitignore diff --git a/lib/glide/build.gradle.kts b/lib/glide/build.gradle.kts new file mode 100644 index 0000000000..202cd4f079 --- /dev/null +++ b/lib/glide/build.gradle.kts @@ -0,0 +1,24 @@ +plugins { + id("signal-library") + id("com.google.devtools.ksp") + alias(libs.plugins.compose.compiler) +} + +android { + namespace = "org.signal.glide" + + buildFeatures { + compose = true + } +} + +dependencies { + implementation(project(":core:util")) + + implementation(libs.glide.glide) + ksp(libs.glide.ksp) + + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.compose.material3) + implementation(libs.accompanist.drawablepainter) +} diff --git a/lib/glide-config/src/main/AndroidManifest.xml b/lib/glide/src/main/AndroidManifest.xml similarity index 100% rename from lib/glide-config/src/main/AndroidManifest.xml rename to lib/glide/src/main/AndroidManifest.xml diff --git a/app/src/main/java/org/thoughtcrime/securesms/glide/cache/ApngOptions.java b/lib/glide/src/main/java/org/signal/glide/apng/ApngOptions.java similarity index 91% rename from app/src/main/java/org/thoughtcrime/securesms/glide/cache/ApngOptions.java rename to lib/glide/src/main/java/org/signal/glide/apng/ApngOptions.java index 9962219385..3ab0250e8a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/glide/cache/ApngOptions.java +++ b/lib/glide/src/main/java/org/signal/glide/apng/ApngOptions.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.glide.cache; +package org.signal.glide.apng; import com.bumptech.glide.load.Option; diff --git a/app/src/main/java/org/thoughtcrime/securesms/compose/GlideImage.kt b/lib/glide/src/main/java/org/signal/glide/compose/GlideImage.kt similarity index 98% rename from app/src/main/java/org/thoughtcrime/securesms/compose/GlideImage.kt rename to lib/glide/src/main/java/org/signal/glide/compose/GlideImage.kt index af374edf68..8cfbe2e0a3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/compose/GlideImage.kt +++ b/lib/glide/src/main/java/org/signal/glide/compose/GlideImage.kt @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -package org.thoughtcrime.securesms.compose +package org.signal.glide.compose import android.graphics.drawable.Drawable import android.widget.ImageView @@ -27,7 +27,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.request.target.CustomTarget import com.bumptech.glide.request.transition.Transition import com.google.accompanist.drawablepainter.rememberDrawablePainter -import org.thoughtcrime.securesms.glide.cache.ApngOptions +import org.signal.glide.apng.ApngOptions /** * Our very own GlideImage. The GlideImage composable provided by the bumptech library is not suitable because it was is using our encrypted cache decoder/encoder. diff --git a/lib/glide-config/src/main/java/org/thoughtcrime/securesms/mms/SignalGlideModule.kt b/lib/glide/src/main/java/org/thoughtcrime/securesms/mms/SignalGlideModule.kt similarity index 100% rename from lib/glide-config/src/main/java/org/thoughtcrime/securesms/mms/SignalGlideModule.kt rename to lib/glide/src/main/java/org/thoughtcrime/securesms/mms/SignalGlideModule.kt diff --git a/settings.gradle.kts b/settings.gradle.kts index a69d640b99..756ee64d6f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -73,7 +73,7 @@ include(":core:ui") // Lib modules include(":lib:libsignal-service") -include(":lib:glide-config") +include(":lib:glide") include(":lib:photoview") include(":lib:sticky-header-grid") include(":lib:billing")