diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllActivity.kt index 06b0d00..577457e 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllActivity.kt @@ -6,6 +6,7 @@ import android.graphics.Rect import android.os.Bundle import android.view.View import android.widget.Toast +import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService @@ -17,6 +18,7 @@ import kr.co.vividnext.sodalive.databinding.ActivityLiveNowAllBinding import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.moneyFormat import kr.co.vividnext.sodalive.live.LiveViewModel +import kr.co.vividnext.sodalive.live.now.LiveNowAdapter import kr.co.vividnext.sodalive.live.room.LiveRoomActivity import kr.co.vividnext.sodalive.live.room.detail.LiveRoomDetailFragment import kr.co.vividnext.sodalive.live.room.dialog.LivePaymentDialog @@ -63,12 +65,7 @@ class LiveNowAllActivity : BaseActivity( ) } - recyclerView.layoutManager = LinearLayoutManager( - applicationContext, - LinearLayoutManager.VERTICAL, - false - ) - + recyclerView.layoutManager = GridLayoutManager(this, 3) recyclerView.addItemDecoration(object : RecyclerView.ItemDecoration() { override fun getItemOffsets( outRect: Rect, @@ -78,27 +75,13 @@ class LiveNowAllActivity : BaseActivity( ) { super.getItemOffsets(outRect, view, parent, state) - when (parent.getChildAdapterPosition(view)) { - 0 -> { - outRect.top = 0.dpToPx().toInt() - outRect.bottom = 6.7f.dpToPx().toInt() - } - - adapter.itemCount - 1 -> { - outRect.top = 6.7f.dpToPx().toInt() - outRect.bottom = 0.dpToPx().toInt() - } - - else -> { - outRect.top = 6.7f.dpToPx().toInt() - outRect.bottom = 6.7f.dpToPx().toInt() - } - } + outRect.top = 16f.dpToPx().toInt() + outRect.bottom = 16f.dpToPx().toInt() + outRect.left = 4f.dpToPx().toInt() + outRect.right = 4f.dpToPx().toInt() } }) - recyclerView.adapter = adapter - recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { super.onScrolled(recyclerView, dx, dy) @@ -113,6 +96,8 @@ class LiveNowAllActivity : BaseActivity( } }) + recyclerView.adapter = adapter + binding.swipeRefreshLayout.setOnRefreshListener { adapter.clear() viewModel.page = 1 diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllAdapter.kt index d104168..00a997e 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/now/all/LiveNowAllAdapter.kt @@ -8,10 +8,12 @@ import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import coil.load +import coil.transform.CircleCropTransformation import coil.transform.RoundedCornersTransformation import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.databinding.ItemLiveNowAllBinding import kr.co.vividnext.sodalive.extensions.dpToPx +import kr.co.vividnext.sodalive.extensions.loadUrl import kr.co.vividnext.sodalive.extensions.moneyFormat import kr.co.vividnext.sodalive.live.GetRoomListResponse @@ -27,48 +29,56 @@ class LiveNowAllAdapter( ) : RecyclerView.ViewHolder(binding.root) { @SuppressLint("SetTextI18n") fun bind(item: GetRoomListResponse) { - binding.ivCover.load(item.coverImageUrl) { + binding.ivCover.loadUrl(item.coverImageUrl) { crossfade(true) - placeholder(R.drawable.bg_placeholder) + placeholder(R.drawable.ic_place_holder) transformations(RoundedCornersTransformation(4.7f.dpToPx())) } - binding.tvNickname.text = item.creatorNickname - binding.tvTitle.text = item.title binding.ivLock.visibility = if (item.isPrivateRoom) { View.VISIBLE } else { View.GONE } - if (item.numberOfPeople > item.numberOfParticipate) { - binding.tvAvailableParticipate.text = "참여가능" - binding.tvAvailableParticipate.setTextColor( - ContextCompat.getColor( - context, - R.color.color_3bb9f1 - ) - ) - } else { - binding.tvAvailableParticipate.text = "Sold out" - binding.tvAvailableParticipate.setTextColor( - ContextCompat.getColor( - context, - R.color.color_ffd300 - ) - ) - } - - if (item.price < 1) { - binding.tvPrice.text = "무료" - binding.tvPrice.setCompoundDrawables(null, null, null, null) - } else { - binding.tvPrice.text = item.price.moneyFormat() + if (item.price > 0) { + binding.tvPrice.text = "${item.price}" binding.tvPrice.setCompoundDrawablesWithIntrinsicBounds( + R.drawable.ic_can_white, 0, 0, - R.drawable.ic_can, 0 ) + binding.tvPrice.setBackgroundResource(R.drawable.bg_round_corner_13_3_dd4500) + } else { + binding.tvPrice.text = "무료" + binding.tvPrice.setCompoundDrawables(null, null, null, null) + binding.tvPrice.setBackgroundResource(R.drawable.bg_round_corner_13_3_111111) + } + + if (item.tags.isNotEmpty()) { + binding.tvTags.visibility = View.VISIBLE + binding.tvTags.text = item.tags.joinToString(" ") { "#$it" } + } else { + binding.tvTags.visibility = View.GONE + } + + binding.tvTitle.text = item.title + binding.tvNickname.text = item.creatorNickname + binding.ivProfile.loadUrl(item.creatorProfileImage) { + crossfade(true) + placeholder(R.drawable.ic_place_holder) + transformations(CircleCropTransformation()) + } + + if (item.numberOfPeople > item.numberOfParticipate) { + binding.tvRemainingParticipantNumber.visibility = View.VISIBLE + binding.tvRemainingParticipant.text = "잔여" + binding.tvRemainingParticipantNumber.text = + "${item.numberOfPeople - item.numberOfParticipate}" + } else { + binding.tvRemainingParticipantNumber.visibility = View.GONE + binding.tvRemainingParticipant.text = "Sold out" + binding.tvRemainingParticipantNumber.text = "" } binding.root.setOnClickListener { onClick(item) } diff --git a/app/src/main/res/layout/activity_live_now_all.xml b/app/src/main/res/layout/activity_live_now_all.xml index 20ed613..6e0bec1 100644 --- a/app/src/main/res/layout/activity_live_now_all.xml +++ b/app/src/main/res/layout/activity_live_now_all.xml @@ -2,6 +2,7 @@ + tools:src="@drawable/ic_launcher_background" /> + + + + - + android:layout_marginEnd="3.3dp" + android:layout_marginBottom="11dp" + android:background="@drawable/bg_round_corner_13_3_b3333333" + android:gravity="center" + android:orientation="horizontal" + android:paddingHorizontal="4dp" + android:paddingVertical="3dp" + app:layout_constraintBottom_toTopOf="@+id/tv_title" + app:layout_constraintEnd_toEndOf="parent"> + + + + + - - - - + android:textSize="12sp" + app:layout_constraintEnd_toEndOf="@+id/iv_cover" + app:layout_constraintStart_toStartOf="@+id/iv_cover" + app:layout_constraintTop_toBottomOf="@+id/iv_cover" + tools:text="test" /> - + android:layout_height="wrap_content" + android:orientation="vertical" + app:layout_constraintEnd_toEndOf="@+id/tv_title" + app:layout_constraintStart_toStartOf="@+id/tv_title" + app:layout_constraintTop_toBottomOf="@+id/tv_title"> + + + + + + + + +