feat(widget): 오디오 콘텐츠 카드 배지를 정리한다
This commit is contained in:
@@ -115,6 +115,11 @@ class AudioContentCardView @JvmOverloads constructor(
|
||||
|
||||
private fun createIconTag(drawableResId: Int): ImageView {
|
||||
return ImageView(context).apply {
|
||||
id = when (drawableResId) {
|
||||
R.drawable.ic_content_tag_original -> R.id.iv_audio_content_tag_original
|
||||
R.drawable.ic_content_tag_point -> R.id.iv_audio_content_tag_point
|
||||
else -> View.NO_ID
|
||||
}
|
||||
setImageResource(drawableResId)
|
||||
contentDescription = null
|
||||
importantForAccessibility = IMPORTANT_FOR_ACCESSIBILITY_NO
|
||||
@@ -124,9 +129,20 @@ class AudioContentCardView @JvmOverloads constructor(
|
||||
|
||||
private fun createFirstTag(): LinearLayout {
|
||||
return LinearLayout(context).apply {
|
||||
id = R.id.ll_audio_content_tag_first
|
||||
orientation = HORIZONTAL
|
||||
background = ContextCompat.getDrawable(context, R.drawable.bg_audio_content_tag_first)
|
||||
layoutParams = LinearLayout.LayoutParams(FIRST_TAG_WIDTH_DP.dpToPx(), TAG_HEIGHT_DP.dpToPx())
|
||||
gravity = Gravity.CENTER
|
||||
setPadding(
|
||||
FIRST_TAG_PADDING_DP.dpToPx(),
|
||||
FIRST_TAG_PADDING_DP.dpToPx(),
|
||||
FIRST_TAG_PADDING_DP.dpToPx(),
|
||||
FIRST_TAG_PADDING_DP.dpToPx()
|
||||
)
|
||||
layoutParams = LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT,
|
||||
TAG_HEIGHT_DP.dpToPx()
|
||||
)
|
||||
addView(createFirstStarView())
|
||||
addView(createFirstTextView())
|
||||
}
|
||||
@@ -137,10 +153,7 @@ class AudioContentCardView @JvmOverloads constructor(
|
||||
setImageResource(R.drawable.ic_content_tag_first_star)
|
||||
contentDescription = null
|
||||
importantForAccessibility = IMPORTANT_FOR_ACCESSIBILITY_NO
|
||||
layoutParams = LinearLayout.LayoutParams(FIRST_STAR_SIZE_DP.dpToPx(), FIRST_STAR_SIZE_DP.dpToPx()).apply {
|
||||
marginStart = 2.dpToPx()
|
||||
topMargin = 4.dpToPx()
|
||||
}
|
||||
layoutParams = LinearLayout.LayoutParams(FIRST_STAR_SIZE_DP.dpToPx(), FIRST_STAR_SIZE_DP.dpToPx())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,29 +164,27 @@ class AudioContentCardView @JvmOverloads constructor(
|
||||
setTextColor(ContextCompat.getColor(context, R.color.white))
|
||||
textSize = 16f
|
||||
isSingleLine = true
|
||||
includeFontPadding = false
|
||||
includeFontPadding = true
|
||||
gravity = Gravity.CENTER_VERTICAL
|
||||
layoutParams = LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
).apply {
|
||||
marginStart = 1.dpToPx()
|
||||
topMargin = 2.dpToPx()
|
||||
marginStart = FIRST_TEXT_MARGIN_START_DP.dpToPx()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun createFreeTag(): TextView {
|
||||
return TextView(context).apply {
|
||||
id = R.id.tv_audio_content_tag_free
|
||||
text = context.getString(R.string.audio_content_tag_free)
|
||||
background = ContextCompat.getDrawable(context, R.drawable.bg_audio_content_tag_free)
|
||||
setTextColor(ContextCompat.getColor(context, R.color.white))
|
||||
textSize = 14f
|
||||
setTextAppearance(R.style.Typography_Body4)
|
||||
gravity = Gravity.CENTER
|
||||
isSingleLine = true
|
||||
includeFontPadding = false
|
||||
minWidth = FREE_TAG_MIN_WIDTH_DP.dpToPx()
|
||||
setPadding(FREE_TAG_HORIZONTAL_PADDING_DP.dpToPx(), 0, FREE_TAG_HORIZONTAL_PADDING_DP.dpToPx(), 0)
|
||||
layoutParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, TAG_HEIGHT_DP.dpToPx())
|
||||
}
|
||||
}
|
||||
@@ -216,10 +227,9 @@ class AudioContentCardView @JvmOverloads constructor(
|
||||
private companion object {
|
||||
const val TITLE_CREATOR_GAP_DP = 2
|
||||
const val TAG_HEIGHT_DP = 24
|
||||
const val FIRST_TAG_WIDTH_DP = 62
|
||||
const val FIRST_STAR_SIZE_DP = 17
|
||||
const val FREE_TAG_MIN_WIDTH_DP = 34
|
||||
const val FREE_TAG_HORIZONTAL_PADDING_DP = 6
|
||||
const val FIRST_TAG_PADDING_DP = 4
|
||||
const val FIRST_TEXT_MARGIN_START_DP = 2
|
||||
const val FIRST_TEXT = "FIRST"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#052742" />
|
||||
<padding
|
||||
android:left="4dp"
|
||||
android:right="4dp" />
|
||||
</shape>
|
||||
|
||||
@@ -21,39 +21,40 @@
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_audio_content_tag_top"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/spacing_24"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="top|start"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_audio_content_tag_original"
|
||||
android:layout_width="@dimen/spacing_24"
|
||||
android:layout_height="@dimen/spacing_24"
|
||||
android:contentDescription="@null"
|
||||
android:src="@drawable/ic_content_tag_original" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="62dp"
|
||||
android:id="@+id/ll_audio_content_tag_first"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/spacing_24"
|
||||
android:background="@drawable/bg_audio_content_tag_first"
|
||||
android:orientation="horizontal">
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
android:paddingHorizontal="4dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="17dp"
|
||||
android:layout_height="17dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:contentDescription="@null"
|
||||
android:src="@drawable/ic_content_tag_first_star" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="2dp"
|
||||
android:layout_marginStart="2dp"
|
||||
android:fontFamily="@font/phosphate_solid"
|
||||
android:includeFontPadding="false"
|
||||
android:includeFontPadding="true"
|
||||
android:singleLine="true"
|
||||
android:text="FIRST"
|
||||
android:textColor="@color/white"
|
||||
@@ -65,30 +66,30 @@
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_audio_content_tag_bottom"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/spacing_24"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|start"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone"
|
||||
tools:ignore="UseCompoundDrawables"
|
||||
tools:visibility="visible">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_audio_content_tag_point"
|
||||
android:layout_width="@dimen/spacing_24"
|
||||
android:layout_height="@dimen/spacing_24"
|
||||
android:contentDescription="@null"
|
||||
android:src="@drawable/ic_content_tag_point" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_audio_content_tag_free"
|
||||
style="@style/Typography.Body4"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/spacing_24"
|
||||
android:background="@drawable/bg_audio_content_tag_free"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:minWidth="34dp"
|
||||
android:paddingHorizontal="6dp"
|
||||
android:singleLine="true"
|
||||
android:text="@string/audio_content_tag_free"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp" />
|
||||
android:textColor="@color/white" />
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user