feat: 메인 라이브

- 변경된 커뮤니티 게시글 아이템 UI 적용
This commit is contained in:
2025-07-18 21:32:35 +09:00
parent 45fd75ab36
commit 6e5a4cff45
9 changed files with 71 additions and 105 deletions

View File

@@ -896,6 +896,10 @@ class UserProfileActivity : BaseActivity<ActivityUserProfileBinding>(
item: GetCommunityPostListResponse,
index: Int
) {
val lp = layout.root.layoutParams
lp.width = screenWidth - 24.dpToPx().toInt() * 2
layout.root.layoutParams = lp
layout.ivCreatorProfile.loadUrl(item.creatorProfileUrl) {
crossfade(true)
placeholder(R.drawable.ic_place_holder)

View File

@@ -13,6 +13,7 @@ import kr.co.vividnext.sodalive.extensions.dpToPx
import kr.co.vividnext.sodalive.extensions.loadUrl
class CreatorCommunityAdapter(
private val width: Int,
private val onClickItem: (Long) -> Unit
) : RecyclerView.Adapter<CreatorCommunityAdapter.ViewHolder>() {
@@ -51,6 +52,10 @@ class CreatorCommunityAdapter(
binding.tvLikeCount.text = "${item.likeCount}"
binding.tvCommentCount.text = "${item.commentCount}"
val lp = binding.root.layoutParams
lp.width = width
binding.root.layoutParams = lp
binding.root.setOnClickListener { onClickItem(item.creatorId) }
}
}

View File

@@ -1,54 +0,0 @@
package kr.co.vividnext.sodalive.home
import android.content.Context
import android.graphics.Bitmap
import android.graphics.drawable.Drawable
import android.widget.FrameLayout
import android.widget.ImageView
import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.CustomTarget
import com.bumptech.glide.request.transition.Transition
import com.zhpan.bannerview.BaseBannerAdapter
import com.zhpan.bannerview.BaseViewHolder
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audition.GetAuditionListItem
class AuditionBannerAdapter(
private val context: Context,
private val itemWidth: Int,
private val itemHeight: Int,
private val onClick: (Long) -> Unit
) : BaseBannerAdapter<GetAuditionListItem>() {
override fun bindData(
holder: BaseViewHolder<GetAuditionListItem>,
data: GetAuditionListItem,
position: Int,
pageSize: Int
) {
val ivBanner = holder.findViewById<ImageView>(R.id.iv_recommend_live)
val layoutParams = ivBanner.layoutParams as FrameLayout.LayoutParams
layoutParams.width = itemWidth
layoutParams.height = itemHeight
Glide
.with(context)
.asBitmap()
.load(data.imageUrl)
.into(object : CustomTarget<Bitmap>() {
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
ivBanner.layoutParams = layoutParams
ivBanner.setImageBitmap(resource)
}
override fun onLoadCleared(placeholder: Drawable?) {
}
})
ivBanner.setOnClickListener { onClick(data.id) }
}
override fun getLayoutId(viewType: Int): Int {
return R.layout.item_recommend_live
}
}

View File

@@ -69,7 +69,6 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(FragmentHomeBinding::infl
private lateinit var homeContentAdapter: HomeContentAdapter
private lateinit var contentBannerAdapter: AudioContentMainBannerAdapter
private lateinit var originalSeriesAdapter: HomeSeriesAdapter
private lateinit var auditionAdapter: AuditionBannerAdapter
private lateinit var seriesDayOfWeekAdapter: HomeSeriesAdapter
private lateinit var weelyChartAdapter: HomeWeeklyChartAdapter
private lateinit var recommendChannelAdapter: HomeRecommendChannelAdapter

View File

@@ -686,7 +686,9 @@ class LiveFragment : BaseFragment<FragmentLiveBinding>(FragmentLiveBinding::infl
@SuppressLint("NotifyDataSetChanged")
private fun setupCommunityPost() {
creatorCommunityAdapter = CreatorCommunityAdapter {
creatorCommunityAdapter = CreatorCommunityAdapter(
width = (screenWidth - 48f.dpToPx()).toInt()
) {
if (SharedPreferenceManager.token.isNotBlank()) {
startActivity(
Intent(