From 25b4c32fd0fa0e7515965edd7023fdcf431141b4 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 14 May 2021 15:19:04 +0200 Subject: [PATCH] Remove usage of GlobalScope --- .../vector/app/features/reactions/EmojiChooserFragment.kt | 3 +++ .../vector/app/features/reactions/EmojiRecyclerAdapter.kt | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/reactions/EmojiChooserFragment.kt b/vector/src/main/java/im/vector/app/features/reactions/EmojiChooserFragment.kt index 095e250602..51dc62af8b 100644 --- a/vector/src/main/java/im/vector/app/features/reactions/EmojiChooserFragment.kt +++ b/vector/src/main/java/im/vector/app/features/reactions/EmojiChooserFragment.kt @@ -19,6 +19,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.lifecycle.lifecycleScope import im.vector.app.core.extensions.cleanup import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.databinding.EmojiChooserFragmentBinding @@ -51,6 +52,8 @@ class EmojiChooserFragment @Inject constructor( } } + override fun getCoroutineScope() = lifecycleScope + override fun firstVisibleSectionChange(section: Int) { viewModel.setCurrentSection(section) } diff --git a/vector/src/main/java/im/vector/app/features/reactions/EmojiRecyclerAdapter.kt b/vector/src/main/java/im/vector/app/features/reactions/EmojiRecyclerAdapter.kt index 1533ce7fdb..45d26e81eb 100644 --- a/vector/src/main/java/im/vector/app/features/reactions/EmojiRecyclerAdapter.kt +++ b/vector/src/main/java/im/vector/app/features/reactions/EmojiRecyclerAdapter.kt @@ -31,8 +31,8 @@ import androidx.transition.AutoTransition import androidx.transition.TransitionManager import im.vector.app.R import im.vector.app.features.reactions.data.EmojiDataSource +import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import javax.inject.Inject import kotlin.math.abs @@ -278,6 +278,7 @@ class EmojiRecyclerAdapter @Inject constructor( } interface InteractionListener { + fun getCoroutineScope(): CoroutineScope fun firstVisibleSectionChange(section: Int) } @@ -323,11 +324,11 @@ class EmojiRecyclerAdapter @Inject constructor( // Log.i("SCROLL SPEED","scroll speed $dy") isFastScroll = abs(dy) > 50 val visible = (recyclerView.layoutManager as GridLayoutManager).findFirstCompletelyVisibleItemPosition() - GlobalScope.launch { + interactionListener?.getCoroutineScope()?.launch { val section = getSectionForAbsoluteIndex(visible) if (section != currentFirstVisibleSection) { currentFirstVisibleSection = section - GlobalScope.launch(Dispatchers.Main) { + interactionListener?.getCoroutineScope()?.launch(Dispatchers.Main) { interactionListener?.firstVisibleSectionChange(currentFirstVisibleSection) } }