feat(creator): 본인 홈 FAB를 추가한다

This commit is contained in:
2026-06-16 22:03:49 +09:00
parent 722f84039f
commit 6a6b1138a8
3 changed files with 204 additions and 0 deletions

View File

@@ -1375,6 +1375,55 @@ class CreatorChannelActivitySourceTest {
assertTrue(adapter.contains("marginEnd = if (index == item.items.lastIndex) 0 else 16.dp()"))
}
@Test
fun `Phase 13 owner FAB source는 본인 홈 탭 기본 확장 layout을 가진다`() {
val layout = projectFile("app/src/main/res/layout/activity_creator_channel.xml").readText()
val source = projectFile(
"app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt"
).readText()
val strings = projectFile("app/src/main/res/values/strings.xml").readText()
assertTrue(layout.contains("android:id=\"@+id/owner_fab_dim\""))
assertTrue(layout.contains("android:background=\"#66000000\""))
assertTrue(layout.contains("android:id=\"@+id/owner_fab_expanded_container\""))
assertTrue(layout.contains("android:id=\"@+id/owner_fab_button\""))
assertTrue(layout.contains("android:layout_marginEnd=\"@dimen/spacing_14\""))
assertTrue(layout.contains("android:layout_marginBottom=\"@dimen/spacing_14\""))
assertTrue(layout.contains("@drawable/bg_creator_channel_owner_fab"))
assertTrue(layout.contains("@drawable/bg_creator_channel_owner_fab_live"))
assertTrue(layout.contains("@drawable/bg_creator_channel_owner_fab_close"))
assertTrue(layout.contains("@drawable/ic_new_upload_community_post"))
assertTrue(layout.contains("@drawable/ic_new_upload_audio"))
assertTrue(layout.contains("@drawable/ic_new_create_live"))
assertTrue(layout.contains("@drawable/ic_new_x_black"))
assertTrue(layout.indexOf("@+id/owner_fab_community_button") < layout.indexOf("@+id/owner_fab_audio_button"))
assertTrue(layout.indexOf("@+id/owner_fab_audio_button") < layout.indexOf("@+id/owner_fab_live_button"))
assertTrue(layout.indexOf("@+id/owner_fab_live_button") < layout.indexOf("@+id/owner_fab_close_button"))
assertTrue(layout.contains("android:layout_width=\"66dp\""))
assertTrue(layout.contains("android:layout_height=\"66dp\""))
assertTrue(layout.contains("android:layout_width=\"38dp\""))
assertTrue(layout.contains("android:layout_height=\"38dp\""))
assertFalse(layout.contains("android:minWidth=\"172dp\""))
assertFalse(layout.contains("android:minWidth=\"92dp\""))
assertFalse(layout.contains("android:text=\"@string/creator_channel_owner_fab_community\""))
assertFalse(layout.contains("android:text=\"@string/creator_channel_owner_fab_audio\""))
assertFalse(layout.contains("android:text=\"@string/creator_channel_owner_fab_live\""))
assertFalse(layout.contains("android:text=\"@string/creator_channel_owner_fab_close\""))
assertTrue(strings.contains("name=\"creator_channel_owner_fab_community\">커뮤니티 글 올리기"))
assertTrue(strings.contains("name=\"creator_channel_owner_fab_audio\">오디오 콘텐츠 올리기"))
assertTrue(strings.contains("name=\"creator_channel_owner_fab_live\">라이브 만들기"))
assertTrue(strings.contains("name=\"creator_channel_owner_fab_close\">닫기"))
assertTrue(source.contains("private var isOwnerFabExpanded: Boolean = false"))
assertTrue(source.contains("updateOwnerFabVisibility()"))
assertTrue(source.contains("currentHeader?.isOwner == true && binding.viewPager.currentItem == CreatorChannelTab.Home.ordinal"))
assertTrue(source.contains("binding.ownerFabDim.setOnClickListener { collapseOwnerFab() }"))
assertTrue(source.contains("binding.ownerFabCloseButton.setOnClickListener { collapseOwnerFab() }"))
assertTrue(source.contains("binding.ownerFabButton.setOnClickListener { expandOwnerFab() }"))
assertTrue(source.contains("binding.ownerFabDim.isVisible = shouldShowOwnerFab && isOwnerFabExpanded"))
assertTrue(source.contains("binding.ownerFabExpandedContainer.isVisible = shouldShowOwnerFab && isOwnerFabExpanded"))
assertTrue(source.contains("binding.ownerFabButton.isVisible = shouldShowOwnerFab && !isOwnerFabExpanded"))
}
@Test
fun `남은 section item layouts는 legacy generic card id를 제거한다`() {
val layoutNames = listOf(