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.CharacterChatThumbnailItem
|
||||||
import kr.co.vividnext.sodalive.v2.widget.characterchatthumbnail.CharacterChatThumbnailView
|
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()
|
private var items: List<HomeRecommendationAiCharacterUiModel> = emptyList()
|
||||||
|
|
||||||
fun submitItems(items: List<HomeRecommendationAiCharacterUiModel>) {
|
fun submitItems(items: List<HomeRecommendationAiCharacterUiModel>) {
|
||||||
@@ -25,7 +27,7 @@ class HomeAiCharacterAdapter : RecyclerView.Adapter<HomeAiCharacterAdapter.Chara
|
|||||||
) as CharacterChatThumbnailView
|
) as CharacterChatThumbnailView
|
||||||
(view.layoutParams as ViewGroup.MarginLayoutParams).marginEnd =
|
(view.layoutParams as ViewGroup.MarginLayoutParams).marginEnd =
|
||||||
parent.resources.getDimensionPixelSize(R.dimen.spacing_4)
|
parent.resources.getDimensionPixelSize(R.dimen.spacing_4)
|
||||||
return CharacterViewHolder(view)
|
return CharacterViewHolder(view, onClickItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: CharacterViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: CharacterViewHolder, position: Int) {
|
||||||
@@ -35,12 +37,13 @@ class HomeAiCharacterAdapter : RecyclerView.Adapter<HomeAiCharacterAdapter.Chara
|
|||||||
override fun getItemCount(): Int = items.size
|
override fun getItemCount(): Int = items.size
|
||||||
|
|
||||||
class CharacterViewHolder(
|
class CharacterViewHolder(
|
||||||
private val view: CharacterChatThumbnailView
|
private val view: CharacterChatThumbnailView,
|
||||||
|
private val onClickItem: (CharacterChatThumbnailItem) -> Unit
|
||||||
) : RecyclerView.ViewHolder(view) {
|
) : RecyclerView.ViewHolder(view) {
|
||||||
fun bind(item: CharacterChatThumbnailItem) {
|
fun bind(item: CharacterChatThumbnailItem) {
|
||||||
view.bind(item)
|
view.bind(item)
|
||||||
view.imageView().loadUrl(item.imageUrl)
|
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.main.home.model.HomeRecommendationFirstAudioContentUiModel
|
||||||
import kr.co.vividnext.sodalive.v2.widget.AudioContentTag
|
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()
|
private var items: List<HomeRecommendationFirstAudioContentUiModel> = emptyList()
|
||||||
|
|
||||||
fun submitItems(items: List<HomeRecommendationFirstAudioContentUiModel>) {
|
fun submitItems(items: List<HomeRecommendationFirstAudioContentUiModel>) {
|
||||||
@@ -31,7 +33,7 @@ class HomeFirstAudioAdapter : RecyclerView.Adapter<HomeFirstAudioAdapter.AudioVi
|
|||||||
false
|
false
|
||||||
)
|
)
|
||||||
view.layoutParams = recyclerItemLayoutParams(parent, R.dimen.spacing_4)
|
view.layoutParams = recyclerItemLayoutParams(parent, R.dimen.spacing_4)
|
||||||
return AudioViewHolder(view)
|
return AudioViewHolder(view, onClickItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: AudioViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: AudioViewHolder, position: Int) {
|
||||||
@@ -41,7 +43,8 @@ class HomeFirstAudioAdapter : RecyclerView.Adapter<HomeFirstAudioAdapter.AudioVi
|
|||||||
override fun getItemCount(): Int = items.size
|
override fun getItemCount(): Int = items.size
|
||||||
|
|
||||||
class AudioViewHolder(
|
class AudioViewHolder(
|
||||||
private val view: View
|
private val view: View,
|
||||||
|
private val onClickItem: (HomeRecommendationFirstAudioContentUiModel) -> Unit
|
||||||
) : RecyclerView.ViewHolder(view) {
|
) : RecyclerView.ViewHolder(view) {
|
||||||
private val thumbnail: ImageView = view.findViewById(R.id.iv_home_first_audio_thumbnail)
|
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)
|
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)
|
bindImage(creatorProfile, item.creatorProfileImage)
|
||||||
creatorNickname.text = item.creatorNickname
|
creatorNickname.text = item.creatorNickname
|
||||||
bindTags(item.tags)
|
bindTags(item.tags)
|
||||||
|
view.setOnClickListener { onClickItem(item) }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun bindImage(
|
private fun bindImage(
|
||||||
|
|||||||
Reference in New Issue
Block a user