From 7abb5cd3e88a3f9502e82467a19e1e6f36358c40 Mon Sep 17 00:00:00 2001 From: Jannik Date: Sun, 3 Apr 2022 17:22:28 +0200 Subject: [PATCH] fix fragments cleanup on recreation after back press if other MediaFragments where created via similar tab --- .../activity/main/fragments/MediaFragment.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 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 b9d80b7..9e31d78 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 @@ -129,8 +129,12 @@ class MediaFragment(private val mediaIdStr: String) : Fragment() { val watchlistIcon = if (isWatchlist) R.drawable.ic_baseline_check_24 else R.drawable.ic_baseline_add_24 Glide.with(requireContext()).load(watchlistIcon).into(binding.imageMyListAction) - // 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 + /** + * clear fragments, since it lives in onCreate scope, + * don't do this in onPause/onStop -> FragmentManager transaction + * (will be called on similar -> new MediaFragment -> onBackPressed) + */ + val fragmentsSize = fragments.size fragments.clear() pagerAdapter.notifyItemRangeRemoved(0, fragmentsSize) @@ -168,12 +172,12 @@ class MediaFragment(private val mediaIdStr: String) : Fragment() { } // if has similar titles -// if (model.similarTo.total > 0) { -// MediaFragmentSimilar().also { -// fragments.add(it) -// pagerAdapter.notifyItemInserted(fragments.indexOf(it)) -// } -// } + if (model.similarTo.total > 0) { + MediaFragmentSimilar().also { + fragments.add(it) + pagerAdapter.notifyItemInserted(fragments.indexOf(it)) + } + } // disable scrolling on appbar, if no tabs where added if(fragments.isEmpty()) {