From 062013489d0c8781a17ca51d26940207eef1ab21 Mon Sep 17 00:00:00 2001 From: Jannik Date: Sun, 5 Sep 2021 00:04:59 +0200 Subject: [PATCH] use notifyItem...() instead of notifyDataSetChanged() in MediaFragment --- .../ui/activity/main/fragments/MediaFragment.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragment.kt b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragment.kt index 082a100..fb2cc42 100644 --- a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragment.kt +++ b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/MediaFragment.kt @@ -111,8 +111,9 @@ class MediaFragment(private val mediaId: Int) : Fragment() { } // clear fragments, since it lives in onCreate scope (don't do this in onPause/onStop -> FragmentManager transaction) + val fragmentsSize = if (fragments.lastIndex < 0) 0 else fragments.lastIndex fragments.clear() - pagerAdapter.notifyDataSetChanged() + pagerAdapter.notifyItemRangeRemoved(0, fragmentsSize) // specific gui if (media.type == MediaType.TVSHOW) { @@ -131,8 +132,10 @@ class MediaFragment(private val mediaId: Int) : Fragment() { ) // episodes - fragments.add(MediaFragmentEpisodes()) - pagerAdapter.notifyDataSetChanged() + MediaFragmentEpisodes().also { + fragments.add(it) + pagerAdapter.notifyItemInserted(fragments.indexOf(it)) + } } else if (media.type == MediaType.MOVIE) { val tmdbMovie = (tmdbResult as TMDBMovie?) @@ -149,8 +152,10 @@ class MediaFragment(private val mediaId: Int) : Fragment() { // if has similar titles if (media.similar.isNotEmpty()) { - fragments.add(MediaFragmentSimilar()) - pagerAdapter.notifyDataSetChanged() + MediaFragmentSimilar().also { + fragments.add(it) + pagerAdapter.notifyItemInserted(fragments.indexOf(it)) + } } // disable scrolling on appbar, if no tabs where added