feat(creator): 채널 홈 시리즈, 커뮤니티, 팬 Talk 섹션을 재구성한다

This commit is contained in:
2026-06-15 17:19:59 +09:00
parent c45c5a2a5c
commit 2d58a876da
25 changed files with 791 additions and 242 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<corners android:radius="100dp" />
</shape>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent" />
<stroke
android:width="1dp"
android:color="@color/color_4dffffff" />
<corners android:radius="100dp" />
</shape>

View File

@@ -1,25 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="@dimen/spacing_20"
android:paddingTop="@dimen/spacing_20">
<TextView
android:id="@+id/tv_section_title"
style="@style/Typography.Heading3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white"
tools:text="섹션" />
<include layout="@layout/view_section_title" />
<LinearLayout
android:id="@+id/ll_section_items"
android:id="@+id/ll_community_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_8"
android:layout_marginTop="@dimen/spacing_14"
android:gravity="center_horizontal"
android:orientation="vertical" />
<TextView
android:id="@+id/layout_community_more_button"
style="@style/Typography.Body3"
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_marginHorizontal="@dimen/spacing_14"
android:layout_marginTop="@dimen/spacing_8"
android:background="@drawable/bg_creator_channel_more_button"
android:gravity="center"
android:includeFontPadding="false"
android:text="@string/view_all"
android:textColor="@color/white" />
</LinearLayout>

View File

@@ -4,22 +4,131 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="@dimen/spacing_20"
android:paddingTop="@dimen/spacing_20">
<TextView
android:id="@+id/tv_section_title"
style="@style/Typography.Heading3"
<include layout="@layout/view_section_title" />
<kr.co.vividnext.sodalive.v2.creator.channel.ui.CreatorChannelFanTalkCardView
android:id="@+id/layout_fantalk_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white"
tools:text="섹션" />
android:layout_marginHorizontal="@dimen/spacing_14"
android:layout_marginTop="@dimen/spacing_14"
android:background="@drawable/bg_feed_card"
android:orientation="vertical"
android:padding="@dimen/spacing_14">
<LinearLayout
android:id="@+id/ll_section_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_8"
android:orientation="vertical" />
<LinearLayout
android:id="@+id/layout_fantalk_total_row"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:visibility="gone">
<TextView
android:id="@+id/tv_fantalk_total_label"
style="@style/Typography.Body3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="@string/screen_chat_filter_all"
android:textColor="@color/white" />
<TextView
android:id="@+id/tv_fantalk_total_count"
style="@style/Typography.Body3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_4"
android:includeFontPadding="false"
android:textColor="@color/gray_500"
tools:text="23" />
</LinearLayout>
<LinearLayout
android:id="@+id/layout_fantalk_latest_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_8"
android:gravity="center_vertical"
android:orientation="horizontal"
android:visibility="gone">
<ImageView
android:id="@+id/iv_fantalk_profile"
android:layout_width="28dp"
android:layout_height="28dp"
android:contentDescription="@null"
android:scaleType="centerCrop"
android:src="@drawable/ic_placeholder_profile" />
<TextView
android:id="@+id/tv_fantalk_content"
style="@style/Typography.Body6"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="@dimen/spacing_14"
android:layout_weight="1"
android:ellipsize="end"
android:includeFontPadding="false"
android:maxLines="2"
android:textColor="@color/white"
tools:text="팬이 쓴 응원이 보이는 부분입니다. 두 줄까지만 보여주고 초과 시 말줄임 처리." />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_marginStart="@dimen/spacing_14"
android:contentDescription="@null"
android:src="@drawable/ic_chevron_down_white" />
</LinearLayout>
<FrameLayout
android:id="@+id/layout_fantalk_empty"
android:layout_width="match_parent"
android:layout_height="169dp"
android:visibility="gone"
tools:visibility="visible">
<TextView
android:id="@+id/tv_fantalk_empty_title"
style="@style/Typography.Heading1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|start"
android:layout_marginStart="@dimen/spacing_6"
android:layout_marginTop="@dimen/spacing_6"
android:includeFontPadding="false"
android:text="@string/creator_channel_fantalk_empty_title"
android:textColor="@color/white" />
<LinearLayout
android:id="@+id/layout_fantalk_support_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:layout_marginBottom="@dimen/spacing_6"
android:background="@drawable/bg_round_corner_999_white"
android:gravity="center"
android:orientation="horizontal"
android:padding="@dimen/spacing_12">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:contentDescription="@null"
android:src="@drawable/ic_new_fantalk_plus" />
<TextView
style="@style/Typography.Body2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_6"
android:includeFontPadding="false"
android:text="@string/creator_channel_fantalk_support_action"
android:textColor="@color/black" />
</LinearLayout>
</FrameLayout>
</kr.co.vividnext.sodalive.v2.creator.channel.ui.CreatorChannelFanTalkCardView>
</LinearLayout>

View File

@@ -1,25 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="@dimen/spacing_20"
android:paddingTop="@dimen/spacing_20">
<TextView
android:id="@+id/tv_section_title"
style="@style/Typography.Heading3"
<include layout="@layout/view_section_title" />
<HorizontalScrollView
android:id="@+id/hsv_series_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white"
tools:text="섹션" />
<LinearLayout
android:id="@+id/ll_section_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_8"
android:orientation="vertical" />
android:layout_marginTop="@dimen/spacing_14"
android:clipToPadding="false"
android:overScrollMode="never"
android:paddingStart="@dimen/spacing_14"
android:paddingEnd="@dimen/spacing_20"
android:scrollbars="none">
<LinearLayout
android:id="@+id/ll_series_items"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" />
</HorizontalScrollView>
</LinearLayout>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<kr.co.vividnext.sodalive.v2.creator.channel.ui.CreatorChannelHomeSeriesCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_series_content_card"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/layout_series_thumbnail"
android:layout_width="163dp"
android:layout_height="230dp"
android:background="@drawable/bg_series_content_thumbnail">
<ImageView
android:id="@+id/iv_series_thumbnail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@null"
android:scaleType="centerCrop"
tools:src="@drawable/ic_launcher_background" />
<FrameLayout
android:id="@+id/layout_series_original_tag"
android:layout_width="70dp"
android:layout_height="24dp"
android:layout_gravity="top|start"
android:background="@drawable/bg_series_original_tag">
<ImageView
android:id="@+id/iv_series_original_icon"
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_gravity="start|center_vertical"
android:layout_marginStart="8dp"
android:contentDescription="@null"
android:src="@drawable/ic_series_original" />
<TextView
android:id="@+id/tv_series_original_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="26dp"
android:layout_marginTop="2dp"
android:fontFamily="@font/phosphate_solid"
android:text="Only"
android:textColor="@color/white"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</FrameLayout>
</FrameLayout>
</kr.co.vividnext.sodalive.v2.creator.channel.ui.CreatorChannelHomeSeriesCardView>

View File

@@ -30,7 +30,7 @@
<TextView
android:id="@+id/tv_feed_community_creator"
style="@style/Typography.Body5"
android:layout_width="wrap_content"
android:layout_width="85dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:includeFontPadding="false"
@@ -41,7 +41,7 @@
<TextView
android:id="@+id/tv_feed_community_created_at"
style="@style/Typography.Body6"
android:layout_width="wrap_content"
android:layout_width="85dp"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:ellipsize="end"
@@ -57,35 +57,26 @@
style="@style/Typography.Body3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_14"
android:includeFontPadding="false"
android:textColor="@color/white"
tools:text="크리에이터가 커뮤니티에 올린 글이 보이는 부분" />
<TextView
android:id="@+id/tv_feed_community_keyword"
style="@style/Typography.Body3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_4"
android:layout_marginTop="@dimen/spacing_16"
android:ellipsize="end"
android:includeFontPadding="false"
android:maxLines="1"
android:textColor="@color/soda_400"
tools:text="#키워드 #키워드 #키워드" />
android:maxLines="5"
android:textColor="@color/white"
tools:text="크리에이터가 커뮤니티에 올린 글이 보이는 부분" />
<FrameLayout
android:id="@+id/fl_feed_community_image_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_height="236dp"
android:layout_marginTop="@dimen/spacing_14"
android:background="@drawable/bg_feed_community_image"
android:visibility="gone">
android:visibility="gone"
tools:visibility="visible">
<ImageView
android:id="@+id/iv_feed_community_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_feed_community_image"
android:contentDescription="@string/a11y_feed_content_image"
android:scaleType="centerCrop"
tools:src="@drawable/ic_launcher_background" />
@@ -94,10 +85,11 @@
android:id="@+id/ll_feed_community_paid_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_99525252"
android:background="@color/color_26909090"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
android:visibility="gone"
tools:visibility="visible">
<ImageView
android:layout_width="24dp"
@@ -105,24 +97,37 @@
android:contentDescription="@null"
android:src="@drawable/ic_new_community_lock" />
<TextView
android:id="@+id/tv_feed_community_price"
style="@style/Typography.Body3"
<LinearLayout
android:layout_width="70dp"
android:layout_height="36dp"
android:layout_marginTop="@dimen/spacing_4"
android:background="@drawable/bg_round_corner_999_white"
android:background="@drawable/bg_creator_channel_community_price"
android:gravity="center"
android:includeFontPadding="false"
android:textColor="@color/black"
tools:text="30" />
android:orientation="horizontal">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:contentDescription="@null"
android:src="@drawable/ic_bar_cash" />
<TextView
android:id="@+id/tv_feed_community_price"
style="@style/Typography.Body3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_6"
android:includeFontPadding="false"
android:textColor="@color/black"
tools:text="30" />
</LinearLayout>
</LinearLayout>
</FrameLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="24dp"
android:layout_marginTop="@dimen/spacing_14"
android:layout_marginTop="@dimen/spacing_16"
android:gravity="center_vertical"
android:orientation="horizontal">
@@ -139,7 +144,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_4"
android:includeFontPadding="false"
android:textColor="@color/gray_500"
android:textColor="@color/gray_400"
tools:text="5" />
<ImageView
@@ -156,7 +161,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_4"
android:includeFontPadding="false"
android:textColor="@color/gray_500"
android:textColor="@color/gray_400"
tools:text="6" />
</LinearLayout>
</kr.co.vividnext.sodalive.v2.widget.feed.FeedCommunityView>

View File

@@ -297,6 +297,8 @@
<string name="creator_channel_series_summary">%1$d episodes · %2$s</string>
<string name="creator_channel_community_summary">%1$s · Likes %2$d · Comments %3$d</string>
<string name="creator_channel_fantalk_summary">%1$s · Total %2$d</string>
<string name="creator_channel_fantalk_empty_title">Be the first\nto cheer them on!</string>
<string name="creator_channel_fantalk_support_action">Leave support</string>
<string name="creator_channel_activity_summary">Live %1$d · %2$d hours · %3$d contributors · Audio %4$d · Series %5$d</string>
<string name="creator_channel_activity_debut">Debut</string>
<string name="creator_channel_activity_debut_format">%1$s (%2$s)</string>

View File

@@ -297,6 +297,8 @@
<string name="creator_channel_series_summary">%1$d件 · %2$s</string>
<string name="creator_channel_community_summary">%1$s · いいね %2$d · コメント %3$d</string>
<string name="creator_channel_fantalk_summary">%1$s · 全体 %2$d</string>
<string name="creator_channel_fantalk_empty_title">最初の応援を\n待っています</string>
<string name="creator_channel_fantalk_support_action">応援を残す</string>
<string name="creator_channel_activity_summary">ライブ %1$d回 · 累計 %2$d時間 · 参加者 %3$d人 · オーディオ %4$d件 · シリーズ %5$d件</string>
<string name="creator_channel_activity_debut">デビュー</string>
<string name="creator_channel_activity_debut_format">%1$s(%2$s)</string>

View File

@@ -60,6 +60,7 @@
<color name="color_ccd85e37">#CCD85E37</color>
<color name="color_cc333333">#CC333333</color>
<color name="color_33ffffff">#33FFFFFF</color>
<color name="color_4dffffff">#4DFFFFFF</color>
<color name="color_303030">#303030</color>
<color name="color_555555">#555555</color>
<color name="color_3e1b93">#3E1B93</color>

View File

@@ -296,6 +296,8 @@
<string name="creator_channel_series_summary">%1$d개 · %2$s</string>
<string name="creator_channel_community_summary">%1$s · 좋아요 %2$d · 댓글 %3$d</string>
<string name="creator_channel_fantalk_summary">%1$s · 전체 %2$d</string>
<string name="creator_channel_fantalk_empty_title">당신의 첫 응원을\n기다리고 있어요!</string>
<string name="creator_channel_fantalk_support_action">응원 남기기</string>
<string name="creator_channel_activity_summary">라이브 %1$d회 · 누적 %2$d시간 · 참여자 %3$d명 · 오디오 %4$d개 · 시리즈 %5$d개</string>
<string name="creator_channel_activity_debut">데뷔</string>
<string name="creator_channel_activity_debut_format">%1$s(%2$s)</string>