diff --git a/app/build.gradle b/app/build.gradle index e03750a..9fa8a47 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -80,7 +80,6 @@ dependencies { implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" - implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" implementation 'androidx.paging:paging-runtime-ktx:2.1.2' implementation "androidx.room:room-ktx:$room_version" kapt "androidx.room:room-compiler:$room_version" diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/TracksFragment.kt b/app/src/main/java/be/digitalia/fosdem/fragments/TracksFragment.kt index a28ce12..ba4e497 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/TracksFragment.kt +++ b/app/src/main/java/be/digitalia/fosdem/fragments/TracksFragment.kt @@ -6,8 +6,8 @@ import android.view.View import androidx.core.content.edit import androidx.core.view.isVisible import androidx.fragment.app.Fragment -import androidx.lifecycle.DefaultLifecycleObserver -import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.observe import androidx.recyclerview.widget.RecyclerView.RecycledViewPool import androidx.viewpager2.adapter.FragmentStateAdapter @@ -72,8 +72,8 @@ class TracksFragment : Fragment(R.layout.fragment_tracks), RecycledViewPoolProvi } } - viewLifecycleOwner.lifecycle.addObserver(object : DefaultLifecycleObserver { - override fun onStop(owner: LifecycleOwner) { + viewLifecycleOwner.lifecycle.addObserver(LifecycleEventObserver { source, event -> + if (event == Lifecycle.Event.ON_STOP) { // Save the current page to preferences if it has changed val page = holder.pager.currentItem val prefs = requireActivity().getPreferences(Context.MODE_PRIVATE) @@ -83,13 +83,14 @@ class TracksFragment : Fragment(R.layout.fragment_tracks), RecycledViewPoolProvi } } } - - override fun onDestroy(owner: LifecycleOwner) { - recycledViewPool = null - } }) } + override fun onDestroyView() { + super.onDestroyView() + recycledViewPool = null + } + override var recycledViewPool: RecycledViewPool? = null private set diff --git a/app/src/main/java/be/digitalia/fosdem/widgets/MultiChoiceHelper.kt b/app/src/main/java/be/digitalia/fosdem/widgets/MultiChoiceHelper.kt index 6225683..3e59a20 100644 --- a/app/src/main/java/be/digitalia/fosdem/widgets/MultiChoiceHelper.kt +++ b/app/src/main/java/be/digitalia/fosdem/widgets/MultiChoiceHelper.kt @@ -10,8 +10,8 @@ import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.view.ActionMode import androidx.core.util.set import androidx.core.util.size -import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleOwner import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver @@ -143,8 +143,8 @@ class MultiChoiceHelper(private val activity: AppCompatActivity, owner: SavedSta } } - private val adapterLifecycleObserver = object : DefaultLifecycleObserver { - override fun onDestroy(owner: LifecycleOwner) { + private val adapterLifecycleObserver = LifecycleEventObserver { _, event -> + if (event == Lifecycle.Event.ON_DESTROY) { adapter = null adapterLifecycle = null choiceActionMode?.finish()