From c7c23b9768f209a008710bf37719ee33691dd08c Mon Sep 17 00:00:00 2001 From: Koitharu Date: Fri, 11 Feb 2022 19:41:49 +0200 Subject: [PATCH] Fix ItemTouchHelper leak --- .../settings/sources/SourcesSettingsFragment.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesSettingsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesSettingsFragment.kt index 25893f670..0d68448d1 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesSettingsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/sources/SourcesSettingsFragment.kt @@ -21,12 +21,11 @@ import org.koitharu.kotatsu.settings.sources.model.SourceConfigItem class SourcesSettingsFragment : BaseFragment(), SourceConfigListener { - private lateinit var reorderHelper: ItemTouchHelper + private var reorderHelper: ItemTouchHelper? = null private val viewModel by viewModel() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - reorderHelper = ItemTouchHelper(SourcesReorderCallback()) setHasOptionsMenu(true) } @@ -47,7 +46,9 @@ class SourcesSettingsFragment : BaseFragment(), setHasFixedSize(true) addItemDecoration(SourceConfigItemDecoration(view.context)) adapter = sourcesAdapter - reorderHelper.attachToRecyclerView(this) + reorderHelper = ItemTouchHelper(SourcesReorderCallback()).also { + it.attachToRecyclerView(this) + } } viewModel.items.observe(viewLifecycleOwner) { sourcesAdapter.items = it @@ -55,7 +56,7 @@ class SourcesSettingsFragment : BaseFragment(), } override fun onDestroyView() { - reorderHelper.attachToRecyclerView(null) + reorderHelper = null super.onDestroyView() } @@ -76,7 +77,7 @@ class SourcesSettingsFragment : BaseFragment(), } override fun onDragHandleTouch(holder: RecyclerView.ViewHolder) { - reorderHelper.startDrag(holder) + reorderHelper?.startDrag(holder) } override fun onHeaderClick(header: SourceConfigItem.LocaleGroup) {