feat(pushnotification): 홈 알림 리스트 화면과 딥링크 라우팅을 추가한다

This commit is contained in:
2026-03-12 18:36:01 +09:00
parent 5bd4e45542
commit c0c5d6efc1
24 changed files with 886 additions and 7 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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/black"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="51.7dp"
android:background="@color/color_131313"
android:paddingHorizontal="13.3dp">
<TextView
android:id="@+id/tv_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:drawablePadding="6.7dp"
android:ellipsize="end"
android:fontFamily="@font/bold"
android:gravity="center"
android:minHeight="48dp"
android:textColor="@color/color_eeeeee"
android:textSize="18.3sp"
app:drawableStartCompat="@drawable/ic_back"
tools:ignore="RelativeOverlap"
tools:text="@string/screen_push_notification_title" />
<ImageView
android:id="@+id/iv_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@drawable/ic_bell_settings" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_category"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:clipToPadding="false"
android:paddingHorizontal="13.3dp" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_notification"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="8dp"
android:clipToPadding="false"
android:paddingBottom="13.3dp" />
<LinearLayout
android:id="@+id/ll_empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_no_item" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:fontFamily="@font/medium"
android:text="@string/screen_push_notification_empty"
android:textColor="@color/color_bbbbbb"
android:textSize="13sp" />
</LinearLayout>
</FrameLayout>
</LinearLayout>

View File

@@ -39,7 +39,7 @@
android:id="@+id/iv_charge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginStart="24dp"
android:contentDescription="@null"
android:src="@drawable/ic_can" />
@@ -47,8 +47,17 @@
android:id="@+id/iv_storage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:contentDescription="@null"
android:src="@drawable/ic_storage" />
<ImageView
android:id="@+id/iv_push_notification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:contentDescription="@null"
android:src="@drawable/ic_bell" />
</LinearLayout>
</RelativeLayout>

View File

@@ -0,0 +1,84 @@
<?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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="13.3dp"
android:paddingVertical="13.3dp">
<ImageView
android:id="@+id/iv_profile"
android:layout_width="60dp"
android:layout_height="60dp"
android:contentDescription="@null"
tools:src="@drawable/ic_place_holder" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="13.3dp"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:fontFamily="@font/medium"
android:maxLines="1"
android:textColor="@color/color_bbbbbb"
android:textSize="13.3sp"
tools:text="란월" />
<TextView
android:id="@+id/tv_time_ago"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:ellipsize="end"
android:fontFamily="@font/medium"
android:maxLines="1"
android:textColor="@color/color_909090"
android:textSize="10sp"
tools:text="・10분 전" />
</LinearLayout>
<TextView
android:id="@+id/tv_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:ellipsize="end"
android:fontFamily="@font/medium"
android:lineSpacingExtra="2dp"
android:maxLines="2"
android:textColor="@color/color_eeeeee"
android:textSize="13.3sp"
tools:text="라이브를 시작했습니다 ‘모여라 라이브 제목 1234567890" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginHorizontal="13.3dp"
android:background="@color/color_555555" />
</LinearLayout>

View File

@@ -172,6 +172,8 @@
<string name="dialog_unfollow_title">Unfollow</string>
<string name="dialog_unfollow_message">Are you sure you want to unfollow %1$s?</string>
<string name="screen_home_theme_all">All</string>
<string name="screen_push_notification_title">Notifications</string>
<string name="screen_push_notification_empty">No notifications yet.</string>
<string name="screen_home_sort_revenue">Revenue</string>
<string name="screen_home_sort_sales_count">Units</string>
<string name="screen_home_sort_comment_count">Comments</string>

View File

@@ -172,6 +172,8 @@
<string name="dialog_unfollow_title">フォロー解除</string>
<string name="dialog_unfollow_message">%1$sさんのフォロー를解除しますか</string>
<string name="screen_home_theme_all"></string>
<string name="screen_push_notification_title">通知</string>
<string name="screen_push_notification_empty">通知はありません。</string>
<string name="screen_home_sort_revenue">売上</string>
<string name="screen_home_sort_sales_count">販売数</string>
<string name="screen_home_sort_comment_count">コメント</string>

View File

@@ -171,6 +171,8 @@
<string name="dialog_unfollow_title">팔로우 해제</string>
<string name="dialog_unfollow_message">%1$s님을 팔로우 해제 하시겠습니까?</string>
<string name="screen_home_theme_all">전체</string>
<string name="screen_push_notification_title">알림</string>
<string name="screen_push_notification_empty">받은 알림이 없습니다.</string>
<string name="screen_home_sort_revenue">매출</string>
<string name="screen_home_sort_sales_count">판매량</string>
<string name="screen_home_sort_comment_count">댓글</string>