feat(creator): 내 채널 팔로워 목록을 연결한다

This commit is contained in:
2026-08-03 21:39:23 +09:00
parent e86e5a1c3d
commit f508d847ea
5 changed files with 466 additions and 0 deletions

View File

@@ -37,6 +37,7 @@ import kr.co.vividnext.sodalive.explorer.profile.creator_community.modify.Creato
import kr.co.vividnext.sodalive.explorer.profile.creator_community.modify.ModifyCommunityPostRequest
import kr.co.vividnext.sodalive.explorer.profile.creator_community.write.CreatorCommunityWriteActivity
import kr.co.vividnext.sodalive.explorer.profile.donation.UserProfileDonationAllViewActivity
import kr.co.vividnext.sodalive.explorer.profile.follow.UserFollowerListActivity
import kr.co.vividnext.sodalive.extensions.dpToPx
import kr.co.vividnext.sodalive.extensions.loadUrl
import kr.co.vividnext.sodalive.extensions.moneyFormat
@@ -224,6 +225,7 @@ class CreatorChannelActivity :
private fun setupClickListeners() {
binding.ivBack.setOnClickListener { finish() }
binding.ivMore.setOnClickListener { onMoreClicked() }
binding.tvFollowerCount.setOnClickListener { onFollowerCountClicked() }
binding.layoutFollowCapsule.setOnClickListener { onFollowCapsuleClicked() }
binding.ivBell.setOnClickListener { onBellClicked() }
binding.ownerFabButton.setOnClickListener { expandOwnerFab() }
@@ -251,6 +253,14 @@ class CreatorChannelActivity :
}
}
private fun onFollowerCountClicked() {
if (currentHeader?.isOwner != true) return
startActivity(
Intent(this, UserFollowerListActivity::class.java)
.putExtra(Constants.EXTRA_USER_ID, creatorId)
)
}
private fun bindHeader(header: CreatorChannelHeaderUiModel) {
binding.tvNickname.text = header.nickname
binding.tvTitleNickname.text = header.nickname

View File

@@ -372,6 +372,26 @@ class CreatorChannelActivitySourceTest {
assertFalse(layout.contains("@+id/tv_follow\""))
}
@Test
fun `내 채널 팔로워 수 클릭 source는 레거시 팔로워 목록으로 이동한다`() {
val source = projectFile(
"app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt"
).readText()
val clickSource = sourceSection(
source = source,
startMarker = "private fun onFollowerCountClicked()",
endMarker = "private fun bindHeader"
)
assertTrue(source.contains("import kr.co.vividnext.sodalive.explorer.profile.follow.UserFollowerListActivity"))
assertTrue(source.contains("binding.tvFollowerCount.setOnClickListener"))
assertTrue(clickSource.contains("if (currentHeader?.isOwner != true) return"))
assertTrue(clickSource.contains("Intent(this, UserFollowerListActivity::class.java)"))
assertTrue(clickSource.contains("putExtra(Constants.EXTRA_USER_ID, creatorId)"))
assertFalse(clickSource.contains("followerCount > 0"))
assertFalse(source.contains("FollowingCreatorActivity::class.java"))
}
@Test
fun `creator channel home은 status bar 뒤까지 header를 그리고 자체 inset을 처리한다`() {
val baseActivity = projectFile("app/src/main/java/kr/co/vividnext/sodalive/base/BaseActivity.kt").readText()