From 9b3d672e782ff4df7d734bed97b6d7d62a63a698 Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 13 Nov 2025 23:02:24 +0900 Subject: [PATCH] =?UTF-8?q?feat(chat-character):=20=EC=BA=90=EB=A6=AD?= =?UTF-8?q?=ED=84=B0=20=EC=8B=A0=EA=B7=9C=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=20UI=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/chat/character/Character.kt | 3 +- .../chat/character/CharacterAdapter.kt | 6 ++++ .../newcharacters/NewCharactersAllAdapter.kt | 6 ++++ .../detail/OriginalWorkDetailAdapter.kt | 6 ++++ app/src/main/res/layout/item_character.xml | 17 +++++++++ .../res/layout/item_new_character_all.xml | 35 ++++++++++++++----- .../layout/item_original_detail_character.xml | 19 ++++++++++ 7 files changed, 83 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/Character.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/Character.kt index ad403a8b..9865e3c4 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/Character.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/Character.kt @@ -11,5 +11,6 @@ data class Character( @SerializedName("characterId") val characterId: Long, @SerializedName("name") val name: String, @SerializedName("description") val description: String, - @SerializedName("imageUrl") val imageUrl: String + @SerializedName("imageUrl") val imageUrl: String, + @SerializedName("isNew") val isNew: Boolean ) : Parcelable diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterAdapter.kt index 194898d6..8a1cb535 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterAdapter.kt @@ -49,6 +49,12 @@ class CharacterAdapter( binding.tvRanking.visibility = View.GONE } + binding.tvNew.visibility = if (character.isNew) { + View.VISIBLE + } else { + View.GONE + } + binding.ivCharacter.load(character.imageUrl) { crossfade(true) placeholder(R.drawable.ic_logo_service_center) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllAdapter.kt index a7a2d568..4f41442c 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/newcharacters/NewCharactersAllAdapter.kt @@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.chat.character.newcharacters import android.annotation.SuppressLint import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import coil.load @@ -26,6 +27,11 @@ class NewCharactersAllAdapter( placeholder(R.drawable.ic_logo_service_center) transformations(RoundedCornersTransformation(16f.dpToPx())) } + binding.tvNew.visibility = if (item.isNew) { + View.VISIBLE + } else { + View.GONE + } binding.root.setOnClickListener { onClick(item.characterId) } } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/original/detail/OriginalWorkDetailAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/original/detail/OriginalWorkDetailAdapter.kt index 6aee90fc..8bdc057f 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/original/detail/OriginalWorkDetailAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/original/detail/OriginalWorkDetailAdapter.kt @@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.chat.original.detail import android.annotation.SuppressLint import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import coil.load @@ -27,6 +28,11 @@ class OriginalWorkDetailAdapter( placeholder(R.drawable.ic_logo_service_center) transformations(RoundedCornersTransformation(16f.dpToPx())) } + binding.tvNew.visibility = if (item.isNew) { + View.VISIBLE + } else { + View.GONE + } binding.root.setOnClickListener { onClickCharacter(item.characterId) } } } diff --git a/app/src/main/res/layout/item_character.xml b/app/src/main/res/layout/item_character.xml index 2e638148..eb2e5447 100644 --- a/app/src/main/res/layout/item_character.xml +++ b/app/src/main/res/layout/item_character.xml @@ -28,6 +28,23 @@ android:textColor="@color/white" android:textSize="72sp" tools:text="1" /> + + + + diff --git a/app/src/main/res/layout/item_original_detail_character.xml b/app/src/main/res/layout/item_original_detail_character.xml index b4d55c97..a59281df 100644 --- a/app/src/main/res/layout/item_original_detail_character.xml +++ b/app/src/main/res/layout/item_original_detail_character.xml @@ -17,6 +17,25 @@ app:layout_constraintTop_toTopOf="parent" tools:src="@drawable/ic_logo_service_center" /> + +