feat(home): 크리에이터 카드 클릭을 연결한다
This commit is contained in:
@@ -12,7 +12,8 @@ import kr.co.vividnext.sodalive.extensions.loadUrl
|
|||||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationCreatorUiModel
|
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationCreatorUiModel
|
||||||
|
|
||||||
class HomeCheerCreatorAdapter(
|
class HomeCheerCreatorAdapter(
|
||||||
private val onFollowAllClick: (List<Long>) -> Unit
|
private val onFollowAllClick: (List<Long>) -> Unit,
|
||||||
|
private val onCreatorClick: (HomeRecommendationCreatorUiModel) -> Unit = {}
|
||||||
) : RecyclerView.Adapter<HomeCheerCreatorAdapter.CheerCreatorGroupViewHolder>() {
|
) : RecyclerView.Adapter<HomeCheerCreatorAdapter.CheerCreatorGroupViewHolder>() {
|
||||||
private var creators: List<HomeRecommendationCreatorUiModel> = emptyList()
|
private var creators: List<HomeRecommendationCreatorUiModel> = emptyList()
|
||||||
private var isFollowCompleted: Boolean = false
|
private var isFollowCompleted: Boolean = false
|
||||||
@@ -29,7 +30,7 @@ class HomeCheerCreatorAdapter(
|
|||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CheerCreatorGroupViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CheerCreatorGroupViewHolder {
|
||||||
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_home_cheer_creator_group, parent, false)
|
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_home_cheer_creator_group, parent, false)
|
||||||
view.layoutParams = cheerGroupLayoutParams(parent)
|
view.layoutParams = cheerGroupLayoutParams(parent)
|
||||||
return CheerCreatorGroupViewHolder(view, parent, onFollowAllClick)
|
return CheerCreatorGroupViewHolder(view, parent, onFollowAllClick, onCreatorClick)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: CheerCreatorGroupViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: CheerCreatorGroupViewHolder, position: Int) {
|
||||||
@@ -41,7 +42,8 @@ class HomeCheerCreatorAdapter(
|
|||||||
class CheerCreatorGroupViewHolder(
|
class CheerCreatorGroupViewHolder(
|
||||||
itemView: View,
|
itemView: View,
|
||||||
private val parent: ViewGroup,
|
private val parent: ViewGroup,
|
||||||
private val onFollowAllClick: (List<Long>) -> Unit
|
private val onFollowAllClick: (List<Long>) -> Unit,
|
||||||
|
private val onCreatorClick: (HomeRecommendationCreatorUiModel) -> Unit
|
||||||
) : RecyclerView.ViewHolder(itemView) {
|
) : RecyclerView.ViewHolder(itemView) {
|
||||||
private val creatorGrid = itemView.findViewById<GridLayout>(R.id.gl_home_cheer_creator_profiles)
|
private val creatorGrid = itemView.findViewById<GridLayout>(R.id.gl_home_cheer_creator_profiles)
|
||||||
private val followAllButton = itemView.findViewById<View>(R.id.view_home_cheer_group_follow_all)
|
private val followAllButton = itemView.findViewById<View>(R.id.view_home_cheer_group_follow_all)
|
||||||
@@ -117,6 +119,7 @@ class HomeCheerCreatorAdapter(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
profileView.findViewById<TextView>(R.id.tv_home_genre_creator_profile_nickname).text = creator.nickname
|
profileView.findViewById<TextView>(R.id.tv_home_genre_creator_profile_nickname).text = creator.nickname
|
||||||
|
profileView.setOnClickListener { onCreatorClick(creator) }
|
||||||
creatorGrid.addView(profileView)
|
creatorGrid.addView(profileView)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationCreatorUiMo
|
|||||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationGenreCreatorGroupUiModel
|
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationGenreCreatorGroupUiModel
|
||||||
|
|
||||||
class HomeGenreCreatorAdapter(
|
class HomeGenreCreatorAdapter(
|
||||||
private val onFollowAllClick: (List<Long>) -> Unit
|
private val onFollowAllClick: (List<Long>) -> Unit,
|
||||||
|
private val onCreatorClick: (HomeRecommendationCreatorUiModel) -> Unit = {}
|
||||||
) : RecyclerView.Adapter<HomeGenreCreatorAdapter.GenreCreatorGroupViewHolder>() {
|
) : RecyclerView.Adapter<HomeGenreCreatorAdapter.GenreCreatorGroupViewHolder>() {
|
||||||
private var groups: List<HomeRecommendationGenreCreatorGroupUiModel> = emptyList()
|
private var groups: List<HomeRecommendationGenreCreatorGroupUiModel> = emptyList()
|
||||||
|
|
||||||
@@ -25,7 +26,7 @@ class HomeGenreCreatorAdapter(
|
|||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GenreCreatorGroupViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GenreCreatorGroupViewHolder {
|
||||||
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_home_genre_creator_group, parent, false)
|
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_home_genre_creator_group, parent, false)
|
||||||
view.layoutParams = genreGroupLayoutParams(parent)
|
view.layoutParams = genreGroupLayoutParams(parent)
|
||||||
return GenreCreatorGroupViewHolder(view, parent, onFollowAllClick)
|
return GenreCreatorGroupViewHolder(view, parent, onFollowAllClick, onCreatorClick)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: GenreCreatorGroupViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: GenreCreatorGroupViewHolder, position: Int) {
|
||||||
@@ -37,7 +38,8 @@ class HomeGenreCreatorAdapter(
|
|||||||
class GenreCreatorGroupViewHolder(
|
class GenreCreatorGroupViewHolder(
|
||||||
itemView: View,
|
itemView: View,
|
||||||
private val parent: ViewGroup,
|
private val parent: ViewGroup,
|
||||||
private val onFollowAllClick: (List<Long>) -> Unit
|
private val onFollowAllClick: (List<Long>) -> Unit,
|
||||||
|
private val onCreatorClick: (HomeRecommendationCreatorUiModel) -> Unit
|
||||||
) : RecyclerView.ViewHolder(itemView) {
|
) : RecyclerView.ViewHolder(itemView) {
|
||||||
private val genreText = itemView.findViewById<TextView>(R.id.tv_home_genre_creator_group_title_genre)
|
private val genreText = itemView.findViewById<TextView>(R.id.tv_home_genre_creator_group_title_genre)
|
||||||
private val creatorGrid = itemView.findViewById<GridLayout>(R.id.gl_home_genre_creator_profiles)
|
private val creatorGrid = itemView.findViewById<GridLayout>(R.id.gl_home_genre_creator_profiles)
|
||||||
@@ -115,6 +117,7 @@ class HomeGenreCreatorAdapter(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
profileView.findViewById<TextView>(R.id.tv_home_genre_creator_profile_nickname).text = creator.nickname
|
profileView.findViewById<TextView>(R.id.tv_home_genre_creator_profile_nickname).text = creator.nickname
|
||||||
|
profileView.setOnClickListener { onCreatorClick(creator) }
|
||||||
creatorGrid.addView(profileView)
|
creatorGrid.addView(profileView)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ import kr.co.vividnext.sodalive.R
|
|||||||
import kr.co.vividnext.sodalive.extensions.loadUrl
|
import kr.co.vividnext.sodalive.extensions.loadUrl
|
||||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationRecentlyActiveCreatorUiModel
|
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationRecentlyActiveCreatorUiModel
|
||||||
|
|
||||||
class HomeRecentActivityCreatorAdapter : RecyclerView.Adapter<HomeRecentActivityCreatorAdapter.CreatorViewHolder>() {
|
class HomeRecentActivityCreatorAdapter(
|
||||||
|
private val onClickItem: (HomeRecommendationRecentlyActiveCreatorUiModel) -> Unit = {}
|
||||||
|
) : RecyclerView.Adapter<HomeRecentActivityCreatorAdapter.CreatorViewHolder>() {
|
||||||
private var items: List<HomeRecommendationRecentlyActiveCreatorUiModel> = emptyList()
|
private var items: List<HomeRecommendationRecentlyActiveCreatorUiModel> = emptyList()
|
||||||
|
|
||||||
fun submitItems(items: List<HomeRecommendationRecentlyActiveCreatorUiModel>) {
|
fun submitItems(items: List<HomeRecommendationRecentlyActiveCreatorUiModel>) {
|
||||||
@@ -21,7 +23,7 @@ class HomeRecentActivityCreatorAdapter : RecyclerView.Adapter<HomeRecentActivity
|
|||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CreatorViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CreatorViewHolder {
|
||||||
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_home_recent_activity_creator, parent, false)
|
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_home_recent_activity_creator, parent, false)
|
||||||
view.layoutParams = recyclerItemLayoutParams(parent)
|
view.layoutParams = recyclerItemLayoutParams(parent)
|
||||||
return CreatorViewHolder(view)
|
return CreatorViewHolder(view, onClickItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: CreatorViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: CreatorViewHolder, position: Int) {
|
||||||
@@ -30,7 +32,10 @@ class HomeRecentActivityCreatorAdapter : RecyclerView.Adapter<HomeRecentActivity
|
|||||||
|
|
||||||
override fun getItemCount(): Int = items.size
|
override fun getItemCount(): Int = items.size
|
||||||
|
|
||||||
class CreatorViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
class CreatorViewHolder(
|
||||||
|
itemView: View,
|
||||||
|
private val onClickItem: (HomeRecommendationRecentlyActiveCreatorUiModel) -> Unit
|
||||||
|
) : RecyclerView.ViewHolder(itemView) {
|
||||||
private val profileImage = itemView.findViewById<ImageView>(R.id.iv_home_recent_activity_creator_profile)
|
private val profileImage = itemView.findViewById<ImageView>(R.id.iv_home_recent_activity_creator_profile)
|
||||||
private val activityTypeText = itemView.findViewById<TextView>(R.id.tv_home_recent_activity_type)
|
private val activityTypeText = itemView.findViewById<TextView>(R.id.tv_home_recent_activity_type)
|
||||||
private val titleText = itemView.findViewById<TextView>(R.id.tv_home_recent_activity_title)
|
private val titleText = itemView.findViewById<TextView>(R.id.tv_home_recent_activity_title)
|
||||||
@@ -47,6 +52,7 @@ class HomeRecentActivityCreatorAdapter : RecyclerView.Adapter<HomeRecentActivity
|
|||||||
titleText.text = item.activityAt.orEmpty()
|
titleText.text = item.activityAt.orEmpty()
|
||||||
titleText.visibility = if (item.activityAt.isNullOrBlank()) View.GONE else View.VISIBLE
|
titleText.visibility = if (item.activityAt.isNullOrBlank()) View.GONE else View.VISIBLE
|
||||||
nicknameText.text = item.nickname
|
nicknameText.text = item.nickname
|
||||||
|
itemView.setOnClickListener { onClickItem(item) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ import kr.co.vividnext.sodalive.R
|
|||||||
import kr.co.vividnext.sodalive.extensions.loadUrl
|
import kr.co.vividnext.sodalive.extensions.loadUrl
|
||||||
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationCreatorUiModel
|
import kr.co.vividnext.sodalive.v2.main.home.model.HomeRecommendationCreatorUiModel
|
||||||
|
|
||||||
class HomeRecentDebutCreatorAdapter : RecyclerView.Adapter<HomeRecentDebutCreatorAdapter.CreatorViewHolder>() {
|
class HomeRecentDebutCreatorAdapter(
|
||||||
|
private val onClickItem: (HomeRecommendationCreatorUiModel) -> Unit = {}
|
||||||
|
) : RecyclerView.Adapter<HomeRecentDebutCreatorAdapter.CreatorViewHolder>() {
|
||||||
private var items: List<HomeRecommendationCreatorUiModel> = emptyList()
|
private var items: List<HomeRecommendationCreatorUiModel> = emptyList()
|
||||||
|
|
||||||
fun submitItems(items: List<HomeRecommendationCreatorUiModel>) {
|
fun submitItems(items: List<HomeRecommendationCreatorUiModel>) {
|
||||||
@@ -21,7 +23,7 @@ class HomeRecentDebutCreatorAdapter : RecyclerView.Adapter<HomeRecentDebutCreato
|
|||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CreatorViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CreatorViewHolder {
|
||||||
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_home_recent_debut_creator, parent, false)
|
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_home_recent_debut_creator, parent, false)
|
||||||
view.layoutParams = recentDebutItemLayoutParams(parent)
|
view.layoutParams = recentDebutItemLayoutParams(parent)
|
||||||
return CreatorViewHolder(view)
|
return CreatorViewHolder(view, onClickItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: CreatorViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: CreatorViewHolder, position: Int) {
|
||||||
@@ -30,13 +32,17 @@ class HomeRecentDebutCreatorAdapter : RecyclerView.Adapter<HomeRecentDebutCreato
|
|||||||
|
|
||||||
override fun getItemCount(): Int = items.size
|
override fun getItemCount(): Int = items.size
|
||||||
|
|
||||||
class CreatorViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
class CreatorViewHolder(
|
||||||
|
itemView: View,
|
||||||
|
private val onClickItem: (HomeRecommendationCreatorUiModel) -> Unit
|
||||||
|
) : RecyclerView.ViewHolder(itemView) {
|
||||||
private val profileImage = itemView.findViewById<ImageView>(R.id.iv_home_recent_debut_creator_profile)
|
private val profileImage = itemView.findViewById<ImageView>(R.id.iv_home_recent_debut_creator_profile)
|
||||||
private val nicknameText = itemView.findViewById<TextView>(R.id.tv_home_recent_debut_creator_nickname)
|
private val nicknameText = itemView.findViewById<TextView>(R.id.tv_home_recent_debut_creator_nickname)
|
||||||
|
|
||||||
fun bind(item: HomeRecommendationCreatorUiModel) {
|
fun bind(item: HomeRecommendationCreatorUiModel) {
|
||||||
profileImage.loadUrl(item.profileImage)
|
profileImage.loadUrl(item.profileImage)
|
||||||
nicknameText.text = item.nickname
|
nicknameText.text = item.nickname
|
||||||
|
itemView.setOnClickListener { onClickItem(item) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user