diff --git a/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt index 42fb51cb..14b533e9 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt @@ -100,7 +100,6 @@ class CreatorChannelActivity : private var statusBarHeight: Int = 0 private var tabLayoutMediator: TabLayoutMediator? = null private var pageChangeCallback: ViewPager2.OnPageChangeCallback? = null - private var lastSelectedCreatorChannelTabPosition: Int? = null private var isOwnerFabExpanded: Boolean = false private var isOwnerFabAnimating: Boolean = false private var isDonationFloatingButtonVisible: Boolean = false @@ -343,17 +342,6 @@ class CreatorChannelActivity : binding.tvTitleNickname.isVisible = shouldUseBlackTitleBar } - private fun adjustCreatorChannelStickyAnchorOnTabSelected(position: Int) { - val previousPosition = lastSelectedCreatorChannelTabPosition - lastSelectedCreatorChannelTabPosition = position - if (previousPosition == null || previousPosition == position) return - - val stickyScrollY = calculateCreatorChannelStickyScrollY() - if (binding.nestedScrollView.scrollY < stickyScrollY) { - binding.nestedScrollView.scrollTo(0, stickyScrollY) - } - } - private fun calculateCreatorChannelStickyScrollY(): Int { val stickyTop = CreatorChannelScrollState.calculateStickyTop(statusBarHeight, baseTitleBarHeight) return (binding.headerContainer.height - stickyTop).coerceAtLeast(0) @@ -415,10 +403,8 @@ class CreatorChannelActivity : }.also { it.attach() } - lastSelectedCreatorChannelTabPosition = binding.viewPager.currentItem val callback = object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { - adjustCreatorChannelStickyAnchorOnTabSelected(position) if (position != CreatorChannelTab.Home.ordinal) { collapseOwnerFab(animate = false) } diff --git a/app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivitySourceTest.kt b/app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivitySourceTest.kt index 36d498c2..26ba7ed9 100644 --- a/app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivitySourceTest.kt +++ b/app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivitySourceTest.kt @@ -1156,24 +1156,27 @@ class CreatorChannelActivitySourceTest { } @Test - fun `탭 전환은 sticky tabbar anchor 아래로 내려간 scroll 위치를 되돌리지 않고 부족할 때만 보정한다`() { + fun `탭 전환은 공통 scroll 위치를 자동 보정하지 않는다`() { val source = projectFile( "app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt" ).readText() - assertTrue(source.contains("private var lastSelectedCreatorChannelTabPosition: Int? = null")) - assertTrue(source.contains("lastSelectedCreatorChannelTabPosition = binding.viewPager.currentItem")) - assertTrue(source.contains("lastSelectedCreatorChannelTabPosition = position")) - assertTrue(source.contains("adjustCreatorChannelStickyAnchorOnTabSelected(position)")) - assertTrue(source.contains("private fun adjustCreatorChannelStickyAnchorOnTabSelected(position: Int)")) - assertTrue(source.contains("val previousPosition = lastSelectedCreatorChannelTabPosition")) - assertTrue(source.contains("if (previousPosition == null || previousPosition == position)")) - assertTrue(source.contains("val stickyScrollY = calculateCreatorChannelStickyScrollY()")) - assertTrue(source.contains("if (binding.nestedScrollView.scrollY < stickyScrollY)")) - assertTrue(source.contains("binding.nestedScrollView.scrollTo(0, stickyScrollY)")) + assertFalse(source.contains("private var lastSelectedCreatorChannelTabPosition: Int? = null")) + assertFalse(source.contains("lastSelectedCreatorChannelTabPosition = binding.viewPager.currentItem")) + assertFalse(source.contains("lastSelectedCreatorChannelTabPosition = position")) + assertFalse(source.contains("adjustCreatorChannelStickyAnchorOnTabSelected(position)")) + assertFalse(source.contains("private fun adjustCreatorChannelStickyAnchorOnTabSelected(position: Int)")) + assertFalse(source.contains("val previousPosition = lastSelectedCreatorChannelTabPosition")) + assertFalse(source.contains("binding.nestedScrollView.scrollTo(0, stickyScrollY)")) + assertFalse(source.contains("binding.nestedScrollView.smoothScrollTo(0, stickyScrollY)")) assertTrue(source.contains("private fun calculateCreatorChannelStickyScrollY(): Int")) assertTrue(source.contains("CreatorChannelScrollState.calculateStickyTop(statusBarHeight, baseTitleBarHeight)")) assertTrue(source.contains("return (binding.headerContainer.height - stickyTop).coerceAtLeast(0)")) + assertTrue(source.contains("updateOwnerFabVisibility()")) + assertTrue(source.contains("updateDonationFloatingButtonVisibility()")) + assertTrue(source.contains("updateOwnerCtaVisibility()")) + assertTrue(source.contains("updateCreatorChannelTabViewportHeight()")) + assertTrue(source.contains("updateViewPagerHeight()")) } @Test