fix(channel): 탭 전환 자동 스크롤을 제거한다
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user