From c5a173138c731eb286a89a6d86aab5ca48742279 Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 14 Apr 2025 15:03:58 +0900 Subject: [PATCH] =?UTF-8?q?=ED=95=9C=EC=A0=95=ED=8C=90=20=EC=BD=98?= =?UTF-8?q?=ED=85=90=EC=B8=A0=20=EC=83=81=EC=84=B8=20-=20=ED=95=B4?= =?UTF-8?q?=EB=8B=B9=20=EC=BD=98=ED=85=90=EC=B8=A0=EB=A5=BC=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=ED=95=9C=20=ED=81=AC=EB=A6=AC=EC=97=90?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=EA=B0=80=20=EC=BD=98=ED=85=90=EC=B8=A0=20?= =?UTF-8?q?=EA=B5=AC=EB=A7=A4=EC=9E=90=EB=A5=BC=20=EB=B3=BC=20=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=8A=94=20UI=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- .../detail/AudioContentBuyerAdapter.kt | 56 +++++++++++++++++++ .../detail/AudioContentDetailActivity.kt | 39 +++++++++++++ .../detail/GetAudioContentDetailResponse.kt | 9 ++- .../layout/activity_audio_content_detail.xml | 28 +++++++++- .../res/layout/item_live_room_detail_user.xml | 2 +- 6 files changed, 130 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentBuyerAdapter.kt diff --git a/app/build.gradle b/app/build.gradle index 74be30c..cd10efa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -35,7 +35,7 @@ android { applicationId "kr.co.vividnext.sodalive" minSdk 23 targetSdk 34 - versionCode 158 + versionCode 159 versionName "1.34.0" } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentBuyerAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentBuyerAdapter.kt new file mode 100644 index 0000000..a3a61e2 --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentBuyerAdapter.kt @@ -0,0 +1,56 @@ +package kr.co.vividnext.sodalive.audio_content.detail + +import android.annotation.SuppressLint +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import coil.load +import coil.transform.CircleCropTransformation +import kr.co.vividnext.sodalive.R +import kr.co.vividnext.sodalive.databinding.ItemLiveRoomDetailUserBinding + +class AudioContentBuyerAdapter : RecyclerView.Adapter() { + + private val items = mutableListOf() + + inner class ViewHolder( + private val binding: ItemLiveRoomDetailUserBinding + ) : RecyclerView.ViewHolder(binding.root) { + fun bind(item: ContentBuyer) { + binding.tvNickname.text = item.nickname + binding.ivProfile.load(item.profileImageUrl) { + crossfade(true) + placeholder(R.drawable.ic_place_holder) + transformations(CircleCropTransformation()) + } + } + } + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): ViewHolder { + return ViewHolder( + ItemLiveRoomDetailUserBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) + ) + } + + override fun onBindViewHolder( + holder: ViewHolder, + position: Int + ) { + holder.bind(items[position]) + } + + override fun getItemCount() = items.count() + + @SuppressLint("NotifyDataSetChanged") + fun addItems(buyerList: List) { + items.addAll(buyerList) + notifyDataSetChanged() + } +} diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt index b954d57..e46bf7a 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt @@ -81,6 +81,7 @@ class AudioContentDetailActivity : BaseActivity + private lateinit var contentBuyerAdapter: AudioContentBuyerAdapter private lateinit var audioContent: GetAudioContentDetailResponse private lateinit var orderType: OrderType private lateinit var imm: InputMethodManager @@ -298,6 +299,36 @@ class AudioContentDetailActivity : BaseActivity ) @Keep @@ -60,3 +61,9 @@ data class AudioContentCreator( @SerializedName("isFollow") var isFollow: Boolean, @SerializedName("isNotify") var isNotify: Boolean ) + +@Keep +data class ContentBuyer( + @SerializedName("nickname") val nickname: String, + @SerializedName("profileImageUrl") val profileImageUrl: String +) diff --git a/app/src/main/res/layout/activity_audio_content_detail.xml b/app/src/main/res/layout/activity_audio_content_detail.xml index 7fd7cf8..9960e06 100644 --- a/app/src/main/res/layout/activity_audio_content_detail.xml +++ b/app/src/main/res/layout/activity_audio_content_detail.xml @@ -534,6 +534,7 @@ @@ -589,10 +591,31 @@ + + + + + android:layout_marginHorizontal="13.3dp" + android:layout_marginTop="13.3dp">