feat(creator): 본인 홈 FAB를 추가한다
This commit is contained in:
@@ -53,6 +53,7 @@ class CreatorChannelActivity :
|
||||
private var statusBarHeight: Int = 0
|
||||
private var tabLayoutMediator: TabLayoutMediator? = null
|
||||
private var pageChangeCallback: ViewPager2.OnPageChangeCallback? = null
|
||||
private var isOwnerFabExpanded: Boolean = false
|
||||
private val baseTitleBarHeight: Int by lazy { 60.dpToPx().toInt() }
|
||||
|
||||
override val shouldApplySystemBarTopInset: Boolean = false
|
||||
@@ -76,6 +77,9 @@ class CreatorChannelActivity :
|
||||
binding.ivMore.setOnClickListener { onMoreClicked() }
|
||||
binding.layoutFollowCapsule.setOnClickListener { onFollowCapsuleClicked() }
|
||||
binding.ivBell.setOnClickListener { onBellClicked() }
|
||||
binding.ownerFabButton.setOnClickListener { expandOwnerFab() }
|
||||
binding.ownerFabDim.setOnClickListener { collapseOwnerFab() }
|
||||
binding.ownerFabCloseButton.setOnClickListener { collapseOwnerFab() }
|
||||
binding.tvChatButton.setOnClickListener {
|
||||
currentHeader?.characterId?.let { characterId -> homeActionDelegate?.createChatRoom(characterId) }
|
||||
}
|
||||
@@ -266,6 +270,10 @@ class CreatorChannelActivity :
|
||||
}
|
||||
val callback = object : ViewPager2.OnPageChangeCallback() {
|
||||
override fun onPageSelected(position: Int) {
|
||||
if (position != CreatorChannelTab.Home.ordinal) {
|
||||
isOwnerFabExpanded = false
|
||||
}
|
||||
updateOwnerFabVisibility()
|
||||
updateViewPagerHeight()
|
||||
}
|
||||
}
|
||||
@@ -277,6 +285,7 @@ class CreatorChannelActivity :
|
||||
currentHeader = header
|
||||
bindHeader(header)
|
||||
bindTitleBar(header)
|
||||
updateOwnerFabVisibility()
|
||||
}
|
||||
|
||||
override fun onCreatorChannelFollowProgressChanged(inProgress: Boolean) {
|
||||
@@ -310,6 +319,24 @@ class CreatorChannelActivity :
|
||||
updateViewPagerHeight()
|
||||
}
|
||||
|
||||
private fun expandOwnerFab() {
|
||||
isOwnerFabExpanded = true
|
||||
updateOwnerFabVisibility()
|
||||
}
|
||||
|
||||
private fun collapseOwnerFab() {
|
||||
isOwnerFabExpanded = false
|
||||
updateOwnerFabVisibility()
|
||||
}
|
||||
|
||||
private fun updateOwnerFabVisibility() {
|
||||
val shouldShowOwnerFab =
|
||||
currentHeader?.isOwner == true && binding.viewPager.currentItem == CreatorChannelTab.Home.ordinal
|
||||
binding.ownerFabDim.isVisible = shouldShowOwnerFab && isOwnerFabExpanded
|
||||
binding.ownerFabExpandedContainer.isVisible = shouldShowOwnerFab && isOwnerFabExpanded
|
||||
binding.ownerFabButton.isVisible = shouldShowOwnerFab && !isOwnerFabExpanded
|
||||
}
|
||||
|
||||
override fun onCreatorChannelDonationClicked() {
|
||||
val header = currentHeader ?: return
|
||||
if (header.isOwner) return
|
||||
|
||||
Reference in New Issue
Block a user