From e5f0b71cf03fc1045ad3d28f7166e115025c0675 Mon Sep 17 00:00:00 2001 From: aayush262 Date: Tue, 23 Jan 2024 18:38:30 +0530 Subject: [PATCH] fixed broken transition in offline anime page --- .../download/anime/OfflineAnimeFragment.kt | 40 ++----------------- .../download/manga/OfflineMangaFragment.kt | 39 ++---------------- 2 files changed, 8 insertions(+), 71 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt b/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt index e52647e2..921335ba 100644 --- a/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt +++ b/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt @@ -198,7 +198,7 @@ class OfflineAnimeFragment : Fragment(), OfflineAnimeSearchListener { ActivityOptionsCompat.makeSceneTransitionAnimation( requireActivity(), Pair.create( - requireActivity().findViewById(R.id.itemCompactImage), + gridView.getChildAt(position).findViewById(R.id.itemCompactImage), ViewCompat.getTransitionName(requireActivity().findViewById(R.id.itemCompactImage)) ), ).toBundle() @@ -252,41 +252,7 @@ class OfflineAnimeFragment : Fragment(), OfflineAnimeSearchListener { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - var height = statusBarHeight - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - val displayCutout = activity?.window?.decorView?.rootWindowInsets?.displayCutout - if (displayCutout != null) { - if (displayCutout.boundingRects.size > 0) { - height = max( - statusBarHeight, - min( - displayCutout.boundingRects[0].width(), - displayCutout.boundingRects[0].height() - ) - ) - } - } - } val scrollTop = view.findViewById(R.id.mangaPageScrollTop) - scrollTop.translationY = - -(navBarHeight + bottomBar.height + bottomBar.marginBottom).toFloat() - val visible = false - - fun animate() { - val start = if (visible) 0f else 1f - val end = if (!visible) 0f else 1f - ObjectAnimator.ofFloat(scrollTop, "scaleX", start, end).apply { - duration = 300 - interpolator = OvershootInterpolator(2f) - start() - } - ObjectAnimator.ofFloat(scrollTop, "scaleY", start, end).apply { - duration = 300 - interpolator = OvershootInterpolator(2f) - start() - } - } - scrollTop.setOnClickListener { gridView.smoothScrollToPositionFromTop(0, 0) } @@ -306,7 +272,9 @@ class OfflineAnimeFragment : Fragment(), OfflineAnimeSearchListener { totalItemCount: Int ) { val first = view.getChildAt(0) - val visibility = first != null && first.top < -height + val visibility = first != null && first.top < 0 + scrollTop.translationY = + -(navBarHeight + bottomBar.height + bottomBar.marginBottom).toFloat() scrollTop.visibility = if (visibility) View.VISIBLE else View.GONE } }) diff --git a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt index 3c3b5e62..0134d3d1 100644 --- a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt +++ b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt @@ -236,41 +236,8 @@ class OfflineMangaFragment : Fragment(), OfflineMangaSearchListener { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) initActivity(requireActivity()) - var height = statusBarHeight - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - val displayCutout = activity?.window?.decorView?.rootWindowInsets?.displayCutout - if (displayCutout != null) { - if (displayCutout.boundingRects.size > 0) { - height = max( - statusBarHeight, - min( - displayCutout.boundingRects[0].width(), - displayCutout.boundingRects[0].height() - ) - ) - } - } - } + val scrollTop = view.findViewById(R.id.mangaPageScrollTop) - scrollTop.translationY = - -(navBarHeight + bottomBar.height + bottomBar.marginBottom).toFloat() - val visible = false - - fun animate() { - val start = if (visible) 0f else 1f - val end = if (!visible) 0f else 1f - ObjectAnimator.ofFloat(scrollTop, "scaleX", start, end).apply { - duration = 300 - interpolator = OvershootInterpolator(2f) - start() - } - ObjectAnimator.ofFloat(scrollTop, "scaleY", start, end).apply { - duration = 300 - interpolator = OvershootInterpolator(2f) - start() - } - } - scrollTop.setOnClickListener { gridView.smoothScrollToPositionFromTop(0, 0) } @@ -290,8 +257,10 @@ class OfflineMangaFragment : Fragment(), OfflineMangaSearchListener { totalItemCount: Int ) { val first = view.getChildAt(0) - val visibility = first != null && first.top < -height + val visibility = first != null && first.top < 0 scrollTop.visibility = if (visibility) View.VISIBLE else View.GONE + scrollTop.translationY = + -(navBarHeight + bottomBar.height + bottomBar.marginBottom).toFloat() } })