feat(home): 콘텐츠 카드 클릭을 연결한다
This commit is contained in:
@@ -9,7 +9,9 @@ import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationAiCharacter
|
||||
import kr.co.vividnext.sodalive.v2.widget.characterchatthumbnail.CharacterChatThumbnailItem
|
||||
import kr.co.vividnext.sodalive.v2.widget.characterchatthumbnail.CharacterChatThumbnailView
|
||||
|
||||
class HomeAiCharacterAdapter : RecyclerView.Adapter<HomeAiCharacterAdapter.CharacterViewHolder>() {
|
||||
class HomeAiCharacterAdapter(
|
||||
private val onClickItem: (CharacterChatThumbnailItem) -> Unit = {}
|
||||
) : RecyclerView.Adapter<HomeAiCharacterAdapter.CharacterViewHolder>() {
|
||||
private var items: List<HomeRecommendationAiCharacterUiModel> = emptyList()
|
||||
|
||||
fun submitItems(items: List<HomeRecommendationAiCharacterUiModel>) {
|
||||
@@ -25,7 +27,7 @@ class HomeAiCharacterAdapter : RecyclerView.Adapter<HomeAiCharacterAdapter.Chara
|
||||
) as CharacterChatThumbnailView
|
||||
(view.layoutParams as ViewGroup.MarginLayoutParams).marginEnd =
|
||||
parent.resources.getDimensionPixelSize(R.dimen.spacing_4)
|
||||
return CharacterViewHolder(view)
|
||||
return CharacterViewHolder(view, onClickItem)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: CharacterViewHolder, position: Int) {
|
||||
@@ -35,12 +37,13 @@ class HomeAiCharacterAdapter : RecyclerView.Adapter<HomeAiCharacterAdapter.Chara
|
||||
override fun getItemCount(): Int = items.size
|
||||
|
||||
class CharacterViewHolder(
|
||||
private val view: CharacterChatThumbnailView
|
||||
private val view: CharacterChatThumbnailView,
|
||||
private val onClickItem: (CharacterChatThumbnailItem) -> Unit
|
||||
) : RecyclerView.ViewHolder(view) {
|
||||
fun bind(item: CharacterChatThumbnailItem) {
|
||||
view.bind(item)
|
||||
view.imageView().loadUrl(item.imageUrl)
|
||||
view.setOnCharacterClick(null)
|
||||
view.setOnCharacterClick(onClickItem)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,9 @@ import kr.co.vividnext.sodalive.extensions.loadUrl
|
||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationFirstAudioContentUiModel
|
||||
import kr.co.vividnext.sodalive.v2.widget.AudioContentTag
|
||||
|
||||
class HomeFirstAudioAdapter : RecyclerView.Adapter<HomeFirstAudioAdapter.AudioViewHolder>() {
|
||||
class HomeFirstAudioAdapter(
|
||||
private val onClickItem: (HomeRecommendationFirstAudioContentUiModel) -> Unit = {}
|
||||
) : RecyclerView.Adapter<HomeFirstAudioAdapter.AudioViewHolder>() {
|
||||
private var items: List<HomeRecommendationFirstAudioContentUiModel> = emptyList()
|
||||
|
||||
fun submitItems(items: List<HomeRecommendationFirstAudioContentUiModel>) {
|
||||
@@ -31,7 +33,7 @@ class HomeFirstAudioAdapter : RecyclerView.Adapter<HomeFirstAudioAdapter.AudioVi
|
||||
false
|
||||
)
|
||||
view.layoutParams = recyclerItemLayoutParams(parent, R.dimen.spacing_4)
|
||||
return AudioViewHolder(view)
|
||||
return AudioViewHolder(view, onClickItem)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: AudioViewHolder, position: Int) {
|
||||
@@ -41,7 +43,8 @@ class HomeFirstAudioAdapter : RecyclerView.Adapter<HomeFirstAudioAdapter.AudioVi
|
||||
override fun getItemCount(): Int = items.size
|
||||
|
||||
class AudioViewHolder(
|
||||
private val view: View
|
||||
private val view: View,
|
||||
private val onClickItem: (HomeRecommendationFirstAudioContentUiModel) -> Unit
|
||||
) : RecyclerView.ViewHolder(view) {
|
||||
private val thumbnail: ImageView = view.findViewById(R.id.iv_home_first_audio_thumbnail)
|
||||
private val thumbnailContainer: FrameLayout = view.findViewById(R.id.fl_home_first_audio_thumbnail_container)
|
||||
@@ -67,6 +70,7 @@ class HomeFirstAudioAdapter : RecyclerView.Adapter<HomeFirstAudioAdapter.AudioVi
|
||||
bindImage(creatorProfile, item.creatorProfileImage)
|
||||
creatorNickname.text = item.creatorNickname
|
||||
bindTags(item.tags)
|
||||
view.setOnClickListener { onClickItem(item) }
|
||||
}
|
||||
|
||||
private fun bindImage(
|
||||
|
||||
Reference in New Issue
Block a user