Files
sodalive-android/app/src/main/res/layout/fragment_my.xml
klaus e25276658d feat: 마이페이지
- 내 채널 보기 추가
2025-07-30 14:52:59 +09:00

415 lines
18 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_131313">
<!-- Header -->
<LinearLayout
android:id="@+id/ll_header"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="24dp"
android:paddingVertical="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<!-- Logo -->
<ImageView
android:id="@+id/iv_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:scaleType="fitStart"
android:src="@drawable/img_text_logo" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<!-- Settings Icon -->
<ImageView
android:id="@+id/iv_settings"
android:layout_width="24dp"
android:layout_height="24dp"
android:contentDescription="@null"
android:src="@drawable/ic_settings" />
</LinearLayout>
<!-- Latest Notice -->
<LinearLayout
android:id="@+id/ll_latest_notice"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#000000"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="24dp"
android:paddingVertical="6dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_header">
<TextView
android:id="@+id/tv_latest_notice_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fontFamily="@font/pretendard_regular"
android:textColor="#B0BEC5"
android:textSize="16sp"
tools:text="[업데이트] 1.23.0 버전 업데이트" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="2dp"
android:fontFamily="@font/pretendard_regular"
android:text="자세히"
android:textColor="#B0BEC5"
android:textSize="16sp"
app:drawableEndCompat="@drawable/ic_arrow_right" />
</LinearLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_latest_notice">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingVertical="32dp">
<LinearLayout
android:id="@+id/ll_profile_login_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="32dp"
android:background="@drawable/bg_round_corner_16_7_222222"
android:gravity="center"
android:paddingVertical="12dp">
<TextView
android:id="@+id/tv_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/pretendard_bold"
android:gravity="center_vertical"
android:text="LOGIN"
android:textColor="#777777"
android:textSize="32sp" />
</LinearLayout>
<RelativeLayout
android:id="@+id/rl_profile_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="32dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:visibility="gone">
<ImageView
android:id="@+id/iv_profile"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:scaleType="centerCrop" />
<!-- Nickname -->
<TextView
android:id="@+id/tv_nickname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginHorizontal="20dp"
android:layout_toStartOf="@+id/tv_edit_profile"
android:layout_toEndOf="@+id/iv_profile"
android:ellipsize="end"
android:fontFamily="@font/pretendard_bold"
android:maxLines="1"
android:textColor="#FFFFFF"
android:textSize="18sp"
tools:text="Voice on 123456" />
<!-- Edit Profile Button -->
<TextView
android:id="@+id/tv_edit_profile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@drawable/bg_round_corner_999_263238"
android:fontFamily="@font/pretendard_regular"
android:paddingHorizontal="12dp"
android:paddingVertical="6dp"
android:text="프로필 수정"
android:textColor="#FFFFFF"
android:textSize="14sp" />
</RelativeLayout>
<TextView
android:id="@+id/tv_my_channel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="32dp"
android:background="@drawable/bg_round_corner_16_7_3bb9f1"
android:fontFamily="@font/pretendard_bold"
android:gravity="center"
android:paddingVertical="12dp"
android:text="내 채널 보기"
android:textColor="#FFFFFF"
android:textSize="16sp"
android:visibility="gone" />
<!-- Can/Point Section -->
<LinearLayout
android:id="@+id/ll_can_point_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="32dp"
android:background="@drawable/bg_round_corner_16_263238"
android:orientation="vertical">
<!-- Can Section -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="14dp">
<TextView
android:id="@+id/tv_can_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:drawablePadding="8dp"
android:fontFamily="@font/pretendard_bold"
android:textColor="#FFFFFF"
android:textSize="18sp"
app:drawableEndCompat="@drawable/ic_arrow_right"
app:drawableStartCompat="@drawable/ic_can"
tools:ignore="RelativeOverlap"
tools:text="230,000" />
<TextView
android:id="@+id/tv_charge_can"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@drawable/bg_round_corner_999_3bb9f1"
android:fontFamily="@font/pretendard_bold"
android:paddingHorizontal="16dp"
android:paddingVertical="10dp"
android:text="캔 충전"
android:textColor="#FFFFFF"
android:textSize="14sp"
android:visibility="invisible" />
</RelativeLayout>
<!-- Point Section -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="14dp">
<TextView
android:id="@+id/tv_point_amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:drawablePadding="8dp"
android:fontFamily="@font/pretendard_bold"
android:textColor="#FFFFFF"
android:textSize="18sp"
app:drawableEndCompat="@drawable/ic_arrow_right"
app:drawableStartCompat="@drawable/ic_point"
tools:ignore="RelativeOverlap"
tools:text="230,000" />
<TextView
android:id="@+id/btn_point_reward"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@drawable/bg_round_corner_999_fc8f0f"
android:fontFamily="@font/pretendard_bold"
android:paddingHorizontal="16dp"
android:paddingVertical="10dp"
android:text="포인트 리워드"
android:textColor="#FFFFFF"
android:textSize="14sp"
android:visibility="invisible" />
</RelativeLayout>
</LinearLayout>
<!-- Function Buttons Grid -->
<LinearLayout
android:id="@+id/ll_function_button_grid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="32dp"
android:orientation="vertical"
android:visibility="gone">
<!-- First Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:baselineAligned="false"
android:orientation="horizontal">
<include
android:id="@+id/btn_storage"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_block_list"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_coupon"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_morning_call"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_weight="1" />
</LinearLayout>
<!-- Second Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal">
<include
android:id="@+id/btn_notice"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_event"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_customer_service"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_weight="1" />
<include
android:id="@+id/btn_identity_verification"
layout="@layout/item_function_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/iv_introduce_voiceon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="24dp"
android:contentDescription="@null"
android:src="@drawable/img_introduce_voiceon" />
<!-- Recent Content Section -->
<LinearLayout
android:id="@+id/ll_recent_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:orientation="vertical"
android:visibility="gone">
<!-- Title -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="14dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/pretendard_bold"
android:text="최근 들은 "
android:textColor="#B0BEC5"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_recent_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/pretendard_bold"
android:textColor="#FDC118"
android:textSize="16sp"
tools:text="5" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_recent_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:paddingHorizontal="24dp" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>