From 9a182f6a68042c60aac114324daf62b0df42097c Mon Sep 17 00:00:00 2001 From: Konrad Pozniak Date: Sun, 22 Nov 2020 19:03:11 +0100 Subject: [PATCH] fix crash when clearing glide requests (#1989) --- .../com/keylesspalace/tusky/MainActivity.kt | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt index 352890b3..9e92972e 100644 --- a/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt +++ b/app/src/main/java/com/keylesspalace/tusky/MainActivity.kt @@ -38,6 +38,7 @@ import androidx.lifecycle.Lifecycle import androidx.preference.PreferenceManager import androidx.viewpager2.widget.MarginPageTransformer import com.bumptech.glide.Glide +import com.bumptech.glide.RequestManager import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.request.target.CustomTarget import com.bumptech.glide.request.target.FixedSizeDrawable @@ -112,6 +113,8 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje private val preferences by lazy { PreferenceManager.getDefaultSharedPreferences(this) } + private lateinit var glide: RequestManager + private val emojiInitCallback = object : InitCallback() { override fun onInitialized() { if (!isDestroyed) { @@ -176,6 +179,9 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje window.statusBarColor = Color.TRANSPARENT // don't draw a status bar, the DrawerLayout and the MaterialDrawerLayout have their own setContentView(R.layout.activity_main) ViewPager2Fix.reduceVelocity(viewPager, 2.0f); + + glide = Glide.with(this) + composeButton.setOnClickListener { val composeIntent = Intent(applicationContext, ComposeActivity::class.java) startActivity(composeIntent) @@ -351,13 +357,11 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje DrawerImageLoader.init(object : AbstractDrawerImageLoader() { override fun set(imageView: ImageView, uri: Uri, placeholder: Drawable, tag: String?) { if (animateAvatars) { - Glide.with(imageView.context) - .load(uri) + glide.load(uri) .placeholder(placeholder) .into(imageView) } else { - Glide.with(imageView.context) - .asBitmap() + glide.asBitmap() .load(uri) .placeholder(placeholder) .into(imageView) @@ -365,7 +369,7 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje } override fun cancel(imageView: ImageView) { - Glide.with(imageView.context).clear(imageView) + glide.clear(imageView) } override fun placeholder(ctx: Context, tag: String?): Drawable { @@ -651,15 +655,13 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidInje } private fun onFetchUserInfoSuccess(me: Account) { - Glide.with(this) - .asBitmap() + glide.asBitmap() .load(me.header) .into(header.accountHeaderBackground) val navIconSize = resources.getDimensionPixelSize(R.dimen.avatar_toolbar_nav_icon_size) - Glide.with(this) - .asDrawable() + glide.asDrawable() .override(navIconSize) .load(me.avatar) .transform(