콘텐츠 상세

- 한정판이 매진된 경우 Player 가운데 Sold Out 표시
This commit is contained in:
klaus 2024-03-28 01:35:21 +09:00
parent 8a2a497fcf
commit a29c50eae3
3 changed files with 70 additions and 7 deletions

View File

@ -238,10 +238,16 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
} }
}) })
val layoutParams = binding.ivCover.layoutParams as RelativeLayout.LayoutParams val ivCoverLp = binding.ivCover.layoutParams as RelativeLayout.LayoutParams
layoutParams.width = (screenWidth - 13.3f.dpToPx()).toInt() ivCoverLp.width = (screenWidth - 13.3f.dpToPx()).toInt()
layoutParams.height = (screenWidth - 13.3f.dpToPx()).toInt() ivCoverLp.height = (screenWidth - 13.3f.dpToPx()).toInt()
binding.ivCover.layoutParams = layoutParams binding.ivCover.layoutParams = ivCoverLp
val flSoldOutLp = binding.flSoldOut.layoutParams as RelativeLayout.LayoutParams
flSoldOutLp.width = (screenWidth - 13.3f.dpToPx()).toInt()
flSoldOutLp.height = (screenWidth - 13.3f.dpToPx()).toInt()
binding.flSoldOut.layoutParams = flSoldOutLp
binding.ivPlayLoop.setOnClickListener { viewModel.togglePlayLoop() } binding.ivPlayLoop.setOnClickListener { viewModel.togglePlayLoop() }
binding.llDonation.setOnClickListener { binding.llDonation.setOnClickListener {
val dialog = LiveRoomDonationDialog( val dialog = LiveRoomDonationDialog(
@ -552,6 +558,8 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
.apply(RequestOptions().override((screenWidth - 13.3f.dpToPx()).toInt())) .apply(RequestOptions().override((screenWidth - 13.3f.dpToPx()).toInt()))
.into(binding.ivCover) .into(binding.ivCover)
binding.flSoldOut.visibility = View.GONE
binding.tvSoldOutBig.visibility = View.GONE
binding.ivPlayOrPause.visibility = View.GONE binding.ivPlayOrPause.visibility = View.GONE
binding.tvPreviewNo.visibility = View.GONE binding.tvPreviewNo.visibility = View.GONE
binding.tvTotalDuration.text = " / ${response.duration}" binding.tvTotalDuration.text = " / ${response.duration}"
@ -561,9 +569,16 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
response.price > 0 response.price > 0
if ( if (
!response.existOrdered &&
response.totalContentCount != null && response.remainingContentCount != null &&
response.remainingContentCount <= 0
) {
binding.flSoldOut.visibility = View.VISIBLE
binding.tvSoldOutBig.visibility = View.VISIBLE
} else if (
response.releaseDate == null && response.releaseDate == null &&
!isAlertPreview || !isAlertPreview ||
(isAlertPreview && response.isActivePreview) (response.isActivePreview && response.contentUrl.isNotBlank())
) { ) {
binding.ivPlayOrPause.visibility = View.VISIBLE binding.ivPlayOrPause.visibility = View.VISIBLE
binding.ivPlayOrPause.setOnClickListener { binding.ivPlayOrPause.setOnClickListener {
@ -597,7 +612,7 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
R.drawable.btn_audio_content_preview_play R.drawable.btn_audio_content_preview_play
} }
) )
} else { } else if (response.releaseDate == null) {
binding.tvPreviewNo.visibility = View.VISIBLE binding.tvPreviewNo.visibility = View.VISIBLE
} }
} }
@ -689,10 +704,18 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
if (response.existOrdered) { if (response.existOrdered) {
binding.tvRemaining.visibility = View.GONE binding.tvRemaining.visibility = View.GONE
binding.tvTotalCount.visibility = View.VISIBLE binding.tvTotalCount.visibility = View.VISIBLE
binding.tvRemainingCount.visibility = View.VISIBLE
binding.tvRemainingCount.text = "${response.orderSequence}" binding.tvRemainingCount.text = "${response.orderSequence}"
binding.tvTotalCount.text = " / ${response.totalContentCount}" binding.tvTotalCount.text = " / ${response.totalContentCount}"
} else if (response.remainingContentCount <= 0) {
binding.tvRemainingCount.visibility = View.GONE
binding.tvTotalCount.visibility = View.GONE
binding.tvRemaining.visibility = View.GONE
binding.tvSoldOutSmall.visibility = View.VISIBLE
} else { } else {
binding.tvRemainingCount.visibility = View.VISIBLE
binding.tvRemaining.visibility = View.VISIBLE binding.tvRemaining.visibility = View.VISIBLE
binding.tvTotalCount.visibility = View.GONE binding.tvTotalCount.visibility = View.GONE

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent" />
<corners android:radius="3.3dp" />
<stroke
android:width="1dp"
android:color="@color/color_d2d2d2" />
</shape>

View File

@ -140,6 +140,24 @@
android:paddingEnd="0dp" android:paddingEnd="0dp"
android:progressDrawable="@drawable/audio_content_player_seekbar" android:progressDrawable="@drawable/audio_content_player_seekbar"
android:thumb="@null" /> android:thumb="@null" />
<FrameLayout
android:id="@+id/fl_sold_out"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/color_99000000"
android:visibility="gone" />
<TextView
android:id="@+id/tv_sold_out_big"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:fontFamily="@font/gmarket_sans_bold"
android:text="Sold Out"
android:textColor="@color/white"
android:textSize="36.7sp"
android:visibility="gone" />
</RelativeLayout> </RelativeLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@ -387,7 +405,21 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:orientation="horizontal"> android:orientation="horizontal"
tools:ignore="RelativeOverlap">
<TextView
android:id="@+id/tv_sold_out_small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_round_corner_2_6_transparent_d2d2d2"
android:fontFamily="@font/gmarket_sans_medium"
android:paddingHorizontal="5.3dp"
android:paddingVertical="3.3dp"
android:text="Sold Out"
android:textColor="@color/color_d2d2d2"
android:textSize="12sp"
android:visibility="gone" />
<TextView <TextView
android:id="@+id/tv_remaining" android:id="@+id/tv_remaining"