mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 17:29:32 +01:00
committed by
Nicholas Tinsley
parent
aa33fd44b8
commit
ec96b4e3aa
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user