AudioContent 상세 문자열 리소스화

상세 화면과 다이얼로그의 하드코딩 텍스트를 문자열 리소스로 이동했습니다.

ko/en/ja 리소스 추가 및 기본 시간 표시, 토스트, 공유 문구를 리소스 키로 통일했습니다.
This commit is contained in:
2025-12-03 15:03:23 +09:00
parent 96d14356be
commit dc00fd0277
12 changed files with 360 additions and 127 deletions

View File

@@ -8,6 +8,7 @@ import android.view.LayoutInflater
import android.view.WindowManager import android.view.WindowManager
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.databinding.DialogAudioContentDeleteBinding import kr.co.vividnext.sodalive.databinding.DialogAudioContentDeleteBinding
import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.dpToPx
@@ -31,7 +32,10 @@ class AudioContentDeleteDialog(
alertDialog.setCancelable(false) alertDialog.setCancelable(false)
alertDialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) alertDialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dialogView.tvTitle.text = "[$title]을 삭제하시겠습니까?" dialogView.tvTitle.text = activity.getString(
R.string.screen_audio_content_detail_delete_confirm_message,
title
)
dialogView.tvCancel.setOnClickListener { dialogView.tvCancel.setOnClickListener {
alertDialog.dismiss() alertDialog.dismiss()
} }
@@ -43,7 +47,9 @@ class AudioContentDeleteDialog(
} else { } else {
Toast.makeText( Toast.makeText(
activity, activity,
"동의하셔야 삭제할 수 있습니다.", activity.getString(
R.string.screen_audio_content_detail_delete_consent_required
),
Toast.LENGTH_LONG Toast.LENGTH_LONG
).show() ).show()
} }

View File

@@ -94,8 +94,11 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
binding.scrollView.scrollTo(0, 0) binding.scrollView.scrollTo(0, 0)
binding.sbProgress.progress = 0 binding.sbProgress.progress = 0
binding.ivPlayOrPause.setImageResource(0) binding.ivPlayOrPause.setImageResource(0)
binding.tvTotalDuration.text = " / 00:00:00" binding.tvTotalDuration.text = getString(
binding.tvCurrentDuration.text = "00:00:00" R.string.screen_audio_content_detail_time_total_default
)
binding.tvCurrentDuration.text =
getString(R.string.screen_audio_content_detail_time_default)
binding.rlPreviewAlert.visibility = View.GONE binding.rlPreviewAlert.visibility = View.GONE
audioContentId = intent.getLongExtra(Constants.EXTRA_AUDIO_CONTENT_ID, 0) audioContentId = intent.getLongExtra(Constants.EXTRA_AUDIO_CONTENT_ID, 0)
@@ -109,7 +112,11 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
if (audioContentId <= 0) { if (audioContentId <= 0) {
Toast.makeText(applicationContext, "잘못된 요청입니다.", Toast.LENGTH_LONG).show() Toast.makeText(
applicationContext,
getString(R.string.screen_audio_content_error_invalid_request),
Toast.LENGTH_LONG
).show()
finish() finish()
} }
@@ -148,7 +155,7 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
override fun setupView() { override fun setupView() {
loadingDialog = LoadingDialog(this, layoutInflater) loadingDialog = LoadingDialog(this, layoutInflater)
binding.tvBack.text = "콘텐츠 상세" binding.tvBack.text = getString(R.string.screen_audio_content_detail_title)
binding.tvBack.setOnClickListener { finish() } binding.tvBack.setOnClickListener { finish() }
binding.ivClosePreviewAlert.setOnClickListener { viewModel.toggleShowPreviewAlert() } binding.ivClosePreviewAlert.setOnClickListener { viewModel.toggleShowPreviewAlert() }
binding.ivMenu.setOnClickListener { binding.ivMenu.setOnClickListener {
@@ -292,9 +299,11 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
LayoutInflater.from(this) LayoutInflater.from(this)
) { can, message, _ -> ) { can, message, _ ->
if (can <= 0) { if (can <= 0) {
showToast("1캔 이상 후원하실 수 있습니다.") showToast(getString(R.string.screen_audio_content_detail_donation_minimum))
} else if (message.isBlank()) { } else if (message.isBlank()) {
showToast("함께 보낼 메시지를 입력하세요.") showToast(
getString(R.string.screen_audio_content_detail_donation_empty_message)
)
} else { } else {
donation(can, message) donation(can, message)
} }
@@ -355,13 +364,11 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
SodaDialog( SodaDialog(
this@AudioContentDetailActivity, this@AudioContentDetailActivity,
layoutInflater, layoutInflater,
"고정 한도 도달", getString(R.string.screen_audio_content_detail_pin_limit_title),
"이 콘텐츠를 고정하시겠어요? " + getString(R.string.screen_audio_content_detail_pin_limit_message),
"채널에 콘텐츠를 최대 3개까지 고정할 수 있습니다." + getString(R.string.confirm),
"이 콘텐츠를 고정하면 가장 오래된 콘텐츠가 대체됩니다.",
"확인",
{ viewModel.pinContent(audioContentId) }, { viewModel.pinContent(audioContentId) },
"취소", getString(R.string.cancel),
{} {}
).show(screenWidth) ).show(screenWidth)
} }
@@ -694,28 +701,31 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
} }
binding.tvUnit.text = if (SharedPreferenceManager.userId == 17958L) { binding.tvUnit.text = if (SharedPreferenceManager.userId == 17958L) {
"원으로" getString(R.string.screen_audio_content_detail_purchase_unit_won)
} else { } else {
"캔으로" getString(R.string.screen_audio_content_detail_purchase_unit_can)
} }
when (response.purchaseOption) { when (response.purchaseOption) {
PurchaseOption.BOTH -> { PurchaseOption.BOTH -> {
binding.tvStrPurchaseOrRental.text = " 구매하기" binding.tvStrPurchaseOrRental.text =
getString(R.string.screen_audio_content_detail_action_buy)
binding.llPurchase.setBackgroundResource( binding.llPurchase.setBackgroundResource(
R.drawable.bg_round_corner_5_3_3bb9f1 R.drawable.bg_round_corner_5_3_3bb9f1
) )
} }
PurchaseOption.BUY_ONLY -> { PurchaseOption.BUY_ONLY -> {
binding.tvStrPurchaseOrRental.text = " 소장하기" binding.tvStrPurchaseOrRental.text =
getString(R.string.screen_audio_content_detail_action_keep)
binding.llPurchase.setBackgroundResource( binding.llPurchase.setBackgroundResource(
R.drawable.bg_round_corner_5_3_59548f R.drawable.bg_round_corner_5_3_59548f
) )
} }
PurchaseOption.RENT_ONLY -> { PurchaseOption.RENT_ONLY -> {
binding.tvStrPurchaseOrRental.text = " 대여하기" binding.tvStrPurchaseOrRental.text =
getString(R.string.screen_audio_content_detail_action_rental)
binding.llPurchase.setBackgroundResource( binding.llPurchase.setBackgroundResource(
R.drawable.bg_round_corner_5_3_548f7d R.drawable.bg_round_corner_5_3_548f7d
) )
@@ -757,7 +767,10 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
binding.ivSeekBackward10.visibility = View.GONE binding.ivSeekBackward10.visibility = View.GONE
binding.ivSeekForward10.visibility = View.GONE binding.ivSeekForward10.visibility = View.GONE
binding.tvPreviewNo.visibility = View.GONE binding.tvPreviewNo.visibility = View.GONE
binding.tvTotalDuration.text = " / ${response.duration}" binding.tvTotalDuration.text = getString(
R.string.screen_audio_content_detail_total_duration_format,
response.duration
)
isAlertPreview = response.creator.creatorId != SharedPreferenceManager.userId && isAlertPreview = response.creator.creatorId != SharedPreferenceManager.userId &&
!response.existOrdered && !response.existOrdered &&
@@ -941,7 +954,10 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
intent.type = "text/plain" intent.type = "text/plain"
intent.putExtra(Intent.EXTRA_TEXT, it) intent.putExtra(Intent.EXTRA_TEXT, it)
val shareIntent = Intent.createChooser(intent, "오디오 콘텐츠 공유") val shareIntent = Intent.createChooser(
intent,
getString(R.string.screen_audio_content_detail_share_title)
)
startActivity(shareIntent) startActivity(shareIntent)
} }
} }
@@ -1219,7 +1235,10 @@ class AudioContentDetailActivity : BaseActivity<ActivityAudioContentDetailBindin
if (duration != null && duration > 0) { if (duration != null && duration > 0) {
binding.sbProgress.max = duration binding.sbProgress.max = duration
binding.tvTotalDuration.text = " / ${Utils.convertDurationToString(duration)}" binding.tvTotalDuration.text = getString(
R.string.screen_audio_content_detail_total_duration_format,
Utils.convertDurationToString(duration)
)
} }
if (progress != null && progress > 0) { if (progress != null && progress > 0) {

View File

@@ -36,10 +36,11 @@ class AudioContentDetailMenuBottomSheetDialog(
if (isPin) { if (isPin) {
dialog.ivPin.setImageResource(R.drawable.ic_pin_cancel) dialog.ivPin.setImageResource(R.drawable.ic_pin_cancel)
dialog.tvPin.text = "내 채널에 고정 취소" dialog.tvPin.text =
getString(R.string.screen_audio_content_detail_pin_cancel)
} else { } else {
dialog.ivPin.setImageResource(R.drawable.ic_pin) dialog.ivPin.setImageResource(R.drawable.ic_pin)
dialog.tvPin.text = "내 채널에 고정" dialog.tvPin.text = getString(R.string.screen_audio_content_detail_pin)
} }
dialog.llPin.setOnClickListener { dialog.llPin.setOnClickListener {

View File

@@ -1,15 +1,18 @@
package kr.co.vividnext.sodalive.audio_content.detail package kr.co.vividnext.sodalive.audio_content.detail
import androidx.annotation.StringRes
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import com.orhanobut.logger.Logger import com.orhanobut.logger.Logger
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.AudioContentRepository import kr.co.vividnext.sodalive.audio_content.AudioContentRepository
import kr.co.vividnext.sodalive.audio_content.comment.AudioContentCommentRepository import kr.co.vividnext.sodalive.audio_content.comment.AudioContentCommentRepository
import kr.co.vividnext.sodalive.audio_content.order.OrderType import kr.co.vividnext.sodalive.audio_content.order.OrderType
import kr.co.vividnext.sodalive.base.BaseViewModel import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.common.SodaLiveApplicationHolder
import kr.co.vividnext.sodalive.common.Utils import kr.co.vividnext.sodalive.common.Utils
import kr.co.vividnext.sodalive.extensions.moneyFormat import kr.co.vividnext.sodalive.extensions.moneyFormat
import kr.co.vividnext.sodalive.mypage.auth.AuthRepository import kr.co.vividnext.sodalive.mypage.auth.AuthRepository
@@ -52,6 +55,9 @@ class AudioContentDetailViewModel(
val isContentPlayLoopLiveData: LiveData<Boolean> val isContentPlayLoopLiveData: LiveData<Boolean>
get() = _isContentPlayLoopLiveData get() = _isContentPlayLoopLiveData
private fun getString(@StringRes resId: Int, vararg args: Any) =
SodaLiveApplicationHolder.get().getString(resId, *args)
fun getAudioContentDetail(audioContentId: Long, onFailure: (() -> Unit)? = null) { fun getAudioContentDetail(audioContentId: Long, onFailure: (() -> Unit)? = null) {
if (!isLoading.value!!) { if (!isLoading.value!!) {
isLoading.value = true isLoading.value = true
@@ -73,7 +79,7 @@ class AudioContentDetailViewModel(
_toastLiveData.postValue(it.message) _toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." getString(R.string.common_error_unknown)
) )
} }
@@ -87,7 +93,7 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(getString(R.string.common_error_unknown))
if (onFailure != null) { if (onFailure != null) {
onFailure() onFailure()
} }
@@ -116,7 +122,7 @@ class AudioContentDetailViewModel(
_toastLiveData.postValue(it.message) _toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." getString(R.string.common_error_unknown)
) )
} }
} }
@@ -125,7 +131,7 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(getString(R.string.common_error_unknown))
} }
) )
) )
@@ -155,9 +161,13 @@ class AudioContentDetailViewModel(
getAudioContentDetail(audioContentId = contentId) getAudioContentDetail(audioContentId = contentId)
_toastLiveData.postValue( _toastLiveData.postValue(
if (orderType == OrderType.RENTAL) { if (orderType == OrderType.RENTAL) {
"대여가 완료되었습니다." getString(
R.string.screen_audio_content_detail_order_rental_success
)
} else { } else {
"구매가 완료되었습니다." getString(
R.string.screen_audio_content_detail_order_keep_success
)
} }
) )
} else { } else {
@@ -168,7 +178,7 @@ class AudioContentDetailViewModel(
} }
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." getString(R.string.common_error_unknown)
) )
} }
} }
@@ -177,7 +187,7 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(getString(R.string.common_error_unknown))
} }
) )
) )
@@ -201,7 +211,7 @@ class AudioContentDetailViewModel(
_toastLiveData.postValue(it.message) _toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." getString(R.string.common_error_unknown)
) )
} }
@@ -211,7 +221,7 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(getString(R.string.common_error_unknown))
} }
) )
) )
@@ -240,7 +250,7 @@ class AudioContentDetailViewModel(
_toastLiveData.postValue(it.message) _toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." getString(R.string.common_error_unknown)
) )
} }
@@ -250,7 +260,7 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(getString(R.string.common_error_unknown))
} }
) )
) )
@@ -283,7 +293,7 @@ class AudioContentDetailViewModel(
_toastLiveData.postValue(it.message) _toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." getString(R.string.common_error_unknown)
) )
} }
} }
@@ -291,7 +301,7 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(getString(R.string.common_error_unknown))
} }
) )
) )
@@ -327,7 +337,7 @@ class AudioContentDetailViewModel(
if (it.success) { if (it.success) {
_toastLiveData.postValue( _toastLiveData.postValue(
"삭제되었습니다." getString(R.string.screen_audio_content_detail_delete_success)
) )
onSuccess() onSuccess()
} else { } else {
@@ -335,7 +345,7 @@ class AudioContentDetailViewModel(
_toastLiveData.postValue(it.message) _toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." getString(R.string.common_error_unknown)
) )
} }
} }
@@ -343,7 +353,7 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(getString(R.string.common_error_unknown))
} }
) )
) )
@@ -365,7 +375,7 @@ class AudioContentDetailViewModel(
_toastLiveData.postValue(it.message) _toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"신고가 접수되었습니다." getString(R.string.screen_audio_content_detail_report_submitted)
) )
} }
@@ -374,7 +384,9 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("신고가 접수되었습니다.") _toastLiveData.postValue(
getString(R.string.screen_audio_content_detail_report_submitted)
)
} }
) )
) )
@@ -404,7 +416,10 @@ class AudioContentDetailViewModel(
if (it.success) { if (it.success) {
SharedPreferenceManager.can -= can SharedPreferenceManager.can -= can
_toastLiveData.postValue( _toastLiveData.postValue(
"${can.moneyFormat()}캔을 후원하였습니다." getString(
R.string.screen_audio_content_detail_donation_success,
can.moneyFormat()
)
) )
onSuccess() onSuccess()
} else { } else {
@@ -412,7 +427,7 @@ class AudioContentDetailViewModel(
_toastLiveData.postValue(it.message) _toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." getString(R.string.common_error_unknown)
) )
} }
} }
@@ -420,7 +435,7 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(getString(R.string.common_error_unknown))
} }
) )
) )
@@ -440,14 +455,16 @@ class AudioContentDetailViewModel(
isLoading.value = false isLoading.value = false
if (it.success) { if (it.success) {
_toastLiveData.postValue("고정되었습니다.") _toastLiveData.postValue(
getString(R.string.screen_audio_content_detail_pin_success)
)
getAudioContentDetail(audioContentId) getAudioContentDetail(audioContentId)
} else { } else {
if (it.message != null) { if (it.message != null) {
_toastLiveData.postValue(it.message) _toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." getString(R.string.common_error_unknown)
) )
} }
} }
@@ -455,7 +472,7 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(getString(R.string.common_error_unknown))
} }
) )
) )
@@ -475,14 +492,16 @@ class AudioContentDetailViewModel(
isLoading.value = false isLoading.value = false
if (it.success) { if (it.success) {
_toastLiveData.postValue("해제되었습니다.") _toastLiveData.postValue(
getString(R.string.screen_audio_content_detail_unpin_success)
)
getAudioContentDetail(audioContentId) getAudioContentDetail(audioContentId)
} else { } else {
if (it.message != null) { if (it.message != null) {
_toastLiveData.postValue(it.message) _toastLiveData.postValue(it.message)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." getString(R.string.common_error_unknown)
) )
} }
} }
@@ -490,7 +509,7 @@ class AudioContentDetailViewModel(
{ {
isLoading.value = false isLoading.value = false
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(getString(R.string.common_error_unknown))
} }
) )
) )

View File

@@ -8,6 +8,7 @@ import android.view.WindowManager
import android.widget.RadioButton import android.widget.RadioButton
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.databinding.DialogAudioContentReportBinding import kr.co.vividnext.sodalive.databinding.DialogAudioContentReportBinding
import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.dpToPx
@@ -37,7 +38,13 @@ class AudioContentReportDialog(
alertDialog.dismiss() alertDialog.dismiss()
confirmButtonClick(reason) confirmButtonClick(reason)
} else { } else {
Toast.makeText(activity, "신고 이유를 선택하세요.", Toast.LENGTH_LONG).show() Toast.makeText(
activity,
activity.getString(
R.string.screen_audio_content_detail_report_reason_required
),
Toast.LENGTH_LONG
).show()
} }
} }

View File

@@ -147,7 +147,7 @@
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:background="@drawable/bg_round_corner_46_7_333333" android:background="@drawable/bg_round_corner_46_7_333333"
android:padding="13.3dp" android:padding="13.3dp"
android:text="해당 콘텐츠는 크리에이터의 요청으로\n미리듣기를 제공하지 않습니다" android:text="@string/screen_audio_content_detail_preview_unavailable"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" android:textSize="16.7sp"
android:visibility="gone" /> android:visibility="gone" />
@@ -176,7 +176,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="Sold Out" android:text="@string/audio_content_badge_sold_out"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="36.7sp" android:textSize="36.7sp"
android:visibility="gone" /> android:visibility="gone" />
@@ -205,7 +205,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="00:00:00" android:text="@string/screen_audio_content_detail_time_default"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="12sp" android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@@ -216,7 +216,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text=" / 00:00:00" android:text="@string/screen_audio_content_detail_time_total_default"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="12sp" android:textSize="12sp"
app:layout_constraintStart_toEndOf="@+id/tv_current_duration" app:layout_constraintStart_toEndOf="@+id/tv_current_duration"
@@ -287,7 +287,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="5.3dp" android:layout_marginTop="5.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="이전화" android:text="@string/screen_audio_content_detail_previous"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
</LinearLayout> </LinearLayout>
@@ -332,7 +332,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="5.3dp" android:layout_marginTop="5.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="다음화" android:text="@string/screen_audio_content_detail_next"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
</LinearLayout> </LinearLayout>
@@ -365,7 +365,7 @@
android:background="@drawable/bg_round_corner_2_6_003851" android:background="@drawable/bg_round_corner_2_6_003851"
android:paddingHorizontal="5.3dp" android:paddingHorizontal="5.3dp"
android:paddingVertical="3.3dp" android:paddingVertical="3.3dp"
android:text="오픈예정" android:text="@string/audio_content_badge_scheduled"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:visibility="gone" /> android:visibility="gone" />
@@ -396,13 +396,13 @@
android:id="@+id/tv_purchased" android:id="@+id/tv_purchased"
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:background="@drawable/bg_round_corner_2_6_26310f" android:background="@drawable/bg_round_corner_2_6_26310f"
android:paddingHorizontal="5.3dp" android:paddingHorizontal="5.3dp"
android:paddingVertical="3.3dp" android:paddingVertical="3.3dp"
android:text="소장중" android:text="@string/audio_content_badge_owned"
android:textColor="@color/color_b1ef2c" android:textColor="@color/color_b1ef2c"
android:visibility="gone" /> android:visibility="gone" />
<TextView <TextView
android:id="@+id/tv_remaining_time" android:id="@+id/tv_remaining_time"
@@ -422,13 +422,13 @@
android:id="@+id/tv_rental" android:id="@+id/tv_rental"
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:background="@drawable/bg_round_corner_2_6_30176f" android:background="@drawable/bg_round_corner_2_6_30176f"
android:paddingHorizontal="5.3dp" android:paddingHorizontal="5.3dp"
android:paddingVertical="3.3dp" android:paddingVertical="3.3dp"
android:text="대여중" android:text="@string/audio_content_badge_rented"
android:textColor="@color/color_9970ff" android:textColor="@color/color_9970ff"
android:visibility="gone" /> android:visibility="gone" />
</RelativeLayout> </RelativeLayout>
<TextView <TextView
@@ -495,7 +495,7 @@
android:orientation="horizontal" android:orientation="horizontal"
android:paddingHorizontal="13.3dp" android:paddingHorizontal="13.3dp"
android:paddingVertical="5.3dp" android:paddingVertical="5.3dp"
android:text="공유" android:text="@string/screen_audio_content_detail_share"
android:textColor="@color/color_d2d2d2" android:textColor="@color/color_d2d2d2"
android:textSize="13.3sp" android:textSize="13.3sp"
app:drawableStartCompat="@drawable/ic_audio_content_share" /> app:drawableStartCompat="@drawable/ic_audio_content_share" />
@@ -524,7 +524,7 @@
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="후원" android:text="@string/screen_audio_content_detail_donation"
android:textColor="@color/color_d2d2d2" android:textColor="@color/color_d2d2d2"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
</LinearLayout> </LinearLayout>
@@ -547,7 +547,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="한정판" android:text="@string/screen_audio_content_detail_limited_edition"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -567,7 +567,7 @@
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:paddingHorizontal="5.3dp" android:paddingHorizontal="5.3dp"
android:paddingVertical="3.3dp" android:paddingVertical="3.3dp"
android:text="Sold Out" android:text="@string/audio_content_badge_sold_out"
android:textColor="@color/color_d2d2d2" android:textColor="@color/color_d2d2d2"
android:textSize="12sp" android:textSize="12sp"
android:visibility="gone" /> android:visibility="gone" />
@@ -577,7 +577,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="잔여수량" android:text="@string/screen_audio_content_detail_remaining"
android:textColor="@color/color_d2d2d2" android:textColor="@color/color_d2d2d2"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -609,7 +609,7 @@
android:layout_marginHorizontal="13.3dp" android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="구매자" android:text="@string/screen_audio_content_detail_buyer_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" android:textSize="18.3sp"
android:visibility="gone" /> android:visibility="gone" />
@@ -665,11 +665,11 @@
android:visibility="gone"> android:visibility="gone">
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="미리듣기 중입니다.\n콘텐츠 구매 후 전체를 감상해 보세요." android:text="@string/screen_audio_content_detail_preview_message"
android:textColor="@color/color_bbbbbb" android:textColor="@color/color_bbbbbb"
android:textSize="12sp" /> android:textSize="12sp" />
<ImageView <ImageView
android:id="@+id/iv_close_preview_alert" android:id="@+id/iv_close_preview_alert"
@@ -692,7 +692,7 @@
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center" android:gravity="center"
android:paddingVertical="16dp" android:paddingVertical="16dp"
android:text="해당 콘텐츠가 매진되었습니다." android:text="@string/screen_audio_content_detail_purchase_sold_out"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="13.3sp" android:textSize="13.3sp"
android:visibility="gone" /> android:visibility="gone" />
@@ -739,7 +739,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_light" android:fontFamily="@font/gmarket_sans_light"
android:text="캔으로" android:text="@string/screen_audio_content_detail_purchase_unit_can"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="12sp" /> android:textSize="12sp" />
@@ -747,8 +747,9 @@
android:id="@+id/tv_str_purchase_or_rental" android:id="@+id/tv_str_purchase_or_rental"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text=" 구매하기" android:text="@string/screen_audio_content_detail_action_buy"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -786,12 +787,12 @@
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="댓글" android:text="@string/screen_audio_content_detail_comment_title"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="12sp" /> android:textSize="12sp" />
<TextView <TextView
android:id="@+id/tv_comment_count" android:id="@+id/tv_comment_count"
@@ -813,7 +814,7 @@
android:drawablePadding="8dp" android:drawablePadding="8dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="비밀댓글" android:text="@string/screen_audio_content_detail_comment_secret"
android:textColor="@color/color_selected_secret" android:textColor="@color/color_selected_secret"
android:textSize="12.5sp" android:textSize="12.5sp"
android:visibility="gone" android:visibility="gone"
@@ -847,7 +848,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_round_corner_10_13181b_3bb9f1" android:background="@drawable/bg_round_corner_10_13181b_3bb9f1"
android:hint="댓글을 입력해 보세요" android:hint="@string/screen_audio_content_detail_comment_hint"
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="text|textMultiLine" android:inputType="text|textMultiLine"
android:paddingVertical="13.3dp" android:paddingVertical="13.3dp"
@@ -897,7 +898,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="크리에이터의 다른 콘텐츠" android:text="@string/screen_audio_content_detail_creator_other_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" /> android:textSize="18.3sp" />
@@ -929,7 +930,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="크리에이터의 다른 콘텐츠를 준비중입니다.\n조금만 기다려주세요." android:text="@string/screen_audio_content_detail_creator_other_empty"
android:textColor="@color/color_bbbbbb" android:textColor="@color/color_bbbbbb"
android:textSize="10.7sp" android:textSize="10.7sp"
tools:ignore="SmallSp" /> tools:ignore="SmallSp" />
@@ -953,7 +954,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="테마의 다른 콘텐츠" android:text="@string/screen_audio_content_detail_theme_other_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" /> android:textSize="18.3sp" />
@@ -985,7 +986,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="테마의 다른 콘텐츠를 준비중입니다.\n조금만 기다려주세요." android:text="@string/screen_audio_content_detail_theme_other_empty"
android:textColor="@color/color_bbbbbb" android:textColor="@color/color_bbbbbb"
android:textSize="10.7sp" android:textSize="10.7sp"
tools:ignore="SmallSp" /> tools:ignore="SmallSp" />
@@ -1026,7 +1027,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="21.3dp" android:layout_marginTop="21.3dp"
android:text="본 콘텐츠는 만 19세 미만의 청소년이\n이용할 수 없습니다.\n본인인증 후 콘텐츠를 이용해 주세요." android:text="@string/screen_audio_content_detail_adult_notice"
android:textColor="@color/color_bbbbbb" android:textColor="@color/color_bbbbbb"
android:textSize="18.7sp" /> android:textSize="18.7sp" />
@@ -1038,7 +1039,7 @@
android:background="@drawable/bg_round_corner_26_7_26ffffff" android:background="@drawable/bg_round_corner_26_7_26ffffff"
android:paddingHorizontal="13.3dp" android:paddingHorizontal="13.3dp"
android:paddingVertical="8dp" android:paddingVertical="8dp"
android:text="본인인증" android:text="@string/auth_title"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="18.7sp" /> android:textSize="18.7sp" />

View File

@@ -15,7 +15,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center" android:gravity="center"
android:text="콘텐츠 삭제" android:text="@string/screen_audio_content_detail_delete_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" /> android:textSize="18.3sp" />
@@ -44,7 +44,7 @@
android:drawablePadding="13.3dp" android:drawablePadding="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text="삭제된 콘텐츠는 되돌릴 수 없음을 알고 있습니다." android:text="@string/screen_audio_content_detail_delete_notice"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="13.3sp" android:textSize="13.3sp"
app:drawableStartCompat="@drawable/ic_select" /> app:drawableStartCompat="@drawable/ic_select" />
@@ -57,7 +57,7 @@
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:lineSpacingExtra="4dp" android:lineSpacingExtra="4dp"
android:text="콘텐츠를 삭제하더라도 이미 구매한\n사용자는 콘텐츠를 이용할 수 있습니다." android:text="@string/screen_audio_content_detail_delete_desc"
android:textColor="@color/color_dd4500" android:textColor="@color/color_dd4500"
android:textSize="12sp" /> android:textSize="12sp" />
@@ -77,7 +77,7 @@
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center" android:gravity="center"
android:paddingVertical="15.7dp" android:paddingVertical="15.7dp"
android:text="취소" android:text="@string/cancel"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="18.3sp" /> android:textSize="18.3sp" />
@@ -91,7 +91,7 @@
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center" android:gravity="center"
android:paddingVertical="15.7dp" android:paddingVertical="15.7dp"
android:text="확인" android:text="@string/confirm"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="18.3sp" /> android:textSize="18.3sp" />
</LinearLayout> </LinearLayout>

View File

@@ -37,7 +37,7 @@
android:layout_marginStart="13.3dp" android:layout_marginStart="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="내 채널에 고정" android:text="@string/screen_audio_content_detail_pin"
android:textColor="@color/color_e2e2e2" android:textColor="@color/color_e2e2e2"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -64,7 +64,7 @@
android:layout_marginStart="13.3dp" android:layout_marginStart="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="수정" android:text="@string/screen_audio_content_detail_edit"
android:textColor="@color/color_e2e2e2" android:textColor="@color/color_e2e2e2"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -91,7 +91,7 @@
android:layout_marginStart="13.3dp" android:layout_marginStart="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="삭제" android:text="@string/screen_audio_content_detail_delete"
android:textColor="@color/color_e2e2e2" android:textColor="@color/color_e2e2e2"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -101,10 +101,10 @@
android:id="@+id/tv_report" android:id="@+id/tv_report"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:paddingHorizontal="21.3dp" android:paddingHorizontal="21.3dp"
android:paddingVertical="8dp" android:paddingVertical="8dp"
android:text="신고하기" android:text="@string/screen_audio_content_detail_report"
android:textColor="@color/color_e2e2e2" android:textColor="@color/color_e2e2e2"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>

View File

@@ -13,7 +13,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="콘텐츠 신고" android:text="@string/screen_audio_content_detail_report_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" /> android:textSize="18.3sp" />
@@ -32,7 +32,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:buttonTint="@color/color_9970ff" android:buttonTint="@color/color_9970ff"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="괴롭힘 및 사이버 폭력" android:text="@string/screen_audio_content_detail_report_reason_harassment"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14sp" /> android:textSize="14sp" />
@@ -42,7 +42,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:buttonTint="@color/color_9970ff" android:buttonTint="@color/color_9970ff"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="개인정보 침해" android:text="@string/screen_audio_content_detail_report_reason_privacy"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14sp" /> android:textSize="14sp" />
@@ -52,7 +52,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:buttonTint="@color/color_9970ff" android:buttonTint="@color/color_9970ff"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="명의도용" android:text="@string/screen_audio_content_detail_report_reason_impersonation"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14sp" /> android:textSize="14sp" />
@@ -62,7 +62,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:buttonTint="@color/color_9970ff" android:buttonTint="@color/color_9970ff"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="폭력적 위협" android:text="@string/screen_audio_content_detail_report_reason_threat"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14sp" /> android:textSize="14sp" />
@@ -72,7 +72,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:buttonTint="@color/color_9970ff" android:buttonTint="@color/color_9970ff"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="아동학대" android:text="@string/screen_audio_content_detail_report_reason_child_abuse"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14sp" /> android:textSize="14sp" />
@@ -82,7 +82,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:buttonTint="@color/color_9970ff" android:buttonTint="@color/color_9970ff"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="보호대상 집단에 대한 증오심 표현" android:text="@string/screen_audio_content_detail_report_reason_hate"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14sp" /> android:textSize="14sp" />
@@ -92,7 +92,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:buttonTint="@color/color_9970ff" android:buttonTint="@color/color_9970ff"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="스팸 및 사기" android:text="@string/screen_audio_content_detail_report_reason_spam"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="14sp" /> android:textSize="14sp" />
</RadioGroup> </RadioGroup>
@@ -103,7 +103,7 @@
android:layout_marginTop="21.3dp" android:layout_marginTop="21.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:text="신고한 콘텐츠를 관리자가 확인 후, 서비스 정책을\n위반한 경우 삭제 조치할 예정입니다." android:text="@string/screen_audio_content_detail_report_desc"
android:textColor="@color/color_dd4500" android:textColor="@color/color_dd4500"
android:textSize="12sp" /> android:textSize="12sp" />
@@ -123,7 +123,7 @@
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center" android:gravity="center"
android:paddingVertical="15.7dp" android:paddingVertical="15.7dp"
android:text="취소" android:text="@string/cancel"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="18.3sp" /> android:textSize="18.3sp" />
@@ -137,7 +137,7 @@
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center" android:gravity="center"
android:paddingVertical="15.7dp" android:paddingVertical="15.7dp"
android:text="신고" android:text="@string/report_button"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="18.3sp" /> android:textSize="18.3sp" />
</LinearLayout> </LinearLayout>

View File

@@ -863,6 +863,66 @@
<string name="screen_audio_content_ranking_title">Popular content</string> <string name="screen_audio_content_ranking_title">Popular content</string>
<string name="screen_audio_content_ranking_notice">※ Rankings are updated weekly.</string> <string name="screen_audio_content_ranking_notice">※ Rankings are updated weekly.</string>
<string name="screen_audio_content_error_invalid_request_retry">Invalid request.\nPlease try again.</string> <string name="screen_audio_content_error_invalid_request_retry">Invalid request.\nPlease try again.</string>
<!-- Audio Content Detail -->
<string name="screen_audio_content_detail_title">Content details</string>
<string name="screen_audio_content_detail_donation_minimum">You can donate 1 can or more.</string>
<string name="screen_audio_content_detail_donation_empty_message">Enter a message to send.</string>
<string name="screen_audio_content_detail_pin_limit_title">Pin limit reached</string>
<string name="screen_audio_content_detail_pin_limit_message">Pin this content?\nYou can pin up to 3 items on your channel.\nPinning this will replace the oldest item.</string>
<string name="screen_audio_content_detail_time_default">00:00:00</string>
<string name="screen_audio_content_detail_time_total_default"> / 00:00:00</string>
<string name="screen_audio_content_detail_total_duration_format"> / %1$s</string>
<string name="screen_audio_content_detail_preview_unavailable">Preview is unavailable at the creators request.</string>
<string name="screen_audio_content_detail_previous">Previous</string>
<string name="screen_audio_content_detail_next">Next</string>
<string name="screen_audio_content_detail_share_title">Share audio content</string>
<string name="screen_audio_content_detail_share">Share</string>
<string name="screen_audio_content_detail_donation">Donate</string>
<string name="screen_audio_content_detail_limited_edition">Limited</string>
<string name="screen_audio_content_detail_remaining">Remaining</string>
<string name="screen_audio_content_detail_buyer_title">Buyers</string>
<string name="screen_audio_content_detail_preview_message">Preview is playing.\nPurchase to listen to the full content.</string>
<string name="screen_audio_content_detail_purchase_sold_out">This content is sold out.</string>
<string name="screen_audio_content_detail_purchase_unit_won">Pay with KRW</string>
<string name="screen_audio_content_detail_purchase_unit_can">Pay with cans</string>
<string name="screen_audio_content_detail_action_buy">Buy</string>
<string name="screen_audio_content_detail_action_keep">Own</string>
<string name="screen_audio_content_detail_action_rental">Rent</string>
<string name="screen_audio_content_detail_comment_title">Comments</string>
<string name="screen_audio_content_detail_comment_secret">Private comment</string>
<string name="screen_audio_content_detail_comment_hint">Leave a comment</string>
<string name="screen_audio_content_detail_creator_other_title">Creators other content</string>
<string name="screen_audio_content_detail_creator_other_empty">Other content from this creator is being prepared.\nPlease check back soon.</string>
<string name="screen_audio_content_detail_theme_other_title">Other content in this theme</string>
<string name="screen_audio_content_detail_theme_other_empty">Other content for this theme is being prepared.\nPlease wait a moment.</string>
<string name="screen_audio_content_detail_adult_notice">This content is not available to users under 19.\nPlease verify your identity to continue.</string>
<string name="screen_audio_content_detail_pin">Pin to my channel</string>
<string name="screen_audio_content_detail_pin_cancel">Unpin from my channel</string>
<string name="screen_audio_content_detail_edit">Edit</string>
<string name="screen_audio_content_detail_delete">Delete</string>
<string name="screen_audio_content_detail_report">Report</string>
<string name="screen_audio_content_detail_delete_title">Delete content</string>
<string name="screen_audio_content_detail_delete_notice">I understand that deleted content cannot be restored.</string>
<string name="screen_audio_content_detail_delete_desc">Even if you delete this content, users who purchased it can still access it.</string>
<string name="screen_audio_content_detail_delete_confirm_message">Delete [%1$s]?</string>
<string name="screen_audio_content_detail_delete_consent_required">You must agree before deleting.</string>
<string name="screen_audio_content_detail_report_title">Report content</string>
<string name="screen_audio_content_detail_report_reason_harassment">Harassment or cyberbullying</string>
<string name="screen_audio_content_detail_report_reason_privacy">Privacy violation</string>
<string name="screen_audio_content_detail_report_reason_impersonation">Identity theft</string>
<string name="screen_audio_content_detail_report_reason_threat">Violent threats</string>
<string name="screen_audio_content_detail_report_reason_child_abuse">Child abuse</string>
<string name="screen_audio_content_detail_report_reason_hate">Hate speech against protected groups</string>
<string name="screen_audio_content_detail_report_reason_spam">Spam or fraud</string>
<string name="screen_audio_content_detail_report_desc">Our team will review the report and remove the content if it violates our policy.</string>
<string name="screen_audio_content_detail_report_reason_required">Select a reason to report.</string>
<string name="screen_audio_content_detail_order_rental_success">Rental completed.</string>
<string name="screen_audio_content_detail_order_keep_success">Purchase completed.</string>
<string name="screen_audio_content_detail_delete_success">Deleted.</string>
<string name="screen_audio_content_detail_report_submitted">Your report has been submitted.</string>
<string name="screen_audio_content_detail_donation_success">You donated %1$s cans.</string>
<string name="screen_audio_content_detail_pin_success">Pinned.</string>
<string name="screen_audio_content_detail_unpin_success">Unpinned.</string>
<!-- Alarm --> <!-- Alarm -->
<string name="alarm_time_format">hh:mm</string> <string name="alarm_time_format">hh:mm</string>

View File

@@ -863,6 +863,66 @@
<string name="screen_audio_content_ranking_title">人気コンテンツ</string> <string name="screen_audio_content_ranking_title">人気コンテンツ</string>
<string name="screen_audio_content_ranking_notice">※人気コンテンツの順位は毎週更新されます。</string> <string name="screen_audio_content_ranking_notice">※人気コンテンツの順位は毎週更新されます。</string>
<string name="screen_audio_content_error_invalid_request_retry">無効なリクエストです。\nもう一度お試しください。</string> <string name="screen_audio_content_error_invalid_request_retry">無効なリクエストです。\nもう一度お試しください。</string>
<!-- Audio Content Detail -->
<string name="screen_audio_content_detail_title">コンテンツ詳細</string>
<string name="screen_audio_content_detail_donation_minimum">1缶以上支援できます。</string>
<string name="screen_audio_content_detail_donation_empty_message">一緒に送るメッセージを入力してください。</string>
<string name="screen_audio_content_detail_pin_limit_title">固定上限に到達</string>
<string name="screen_audio_content_detail_pin_limit_message">このコンテンツを固定しますか?\nチャンネルには最大3件まで固定できます。\nこのコンテンツを固定すると最も古いコンテンツが置き換えられます。</string>
<string name="screen_audio_content_detail_time_default">00:00:00</string>
<string name="screen_audio_content_detail_time_total_default"> / 00:00:00</string>
<string name="screen_audio_content_detail_total_duration_format"> / %1$s</string>
<string name="screen_audio_content_detail_preview_unavailable">このコンテンツはクリエイターの要請により\n試聴を提供していません。</string>
<string name="screen_audio_content_detail_previous">前の話</string>
<string name="screen_audio_content_detail_next">次の話</string>
<string name="screen_audio_content_detail_share_title">音声コンテンツを共有</string>
<string name="screen_audio_content_detail_share">共有</string>
<string name="screen_audio_content_detail_donation">支援</string>
<string name="screen_audio_content_detail_limited_edition">限定版</string>
<string name="screen_audio_content_detail_remaining">残り数</string>
<string name="screen_audio_content_detail_buyer_title">購入者</string>
<string name="screen_audio_content_detail_preview_message">試聴中です。\n購入して全編をお楽しみください。</string>
<string name="screen_audio_content_detail_purchase_sold_out">このコンテンツは売り切れました。</string>
<string name="screen_audio_content_detail_purchase_unit_won">ウォンで</string>
<string name="screen_audio_content_detail_purchase_unit_can">缶で</string>
<string name="screen_audio_content_detail_action_buy">購入</string>
<string name="screen_audio_content_detail_action_keep">所持する</string>
<string name="screen_audio_content_detail_action_rental">レンタル</string>
<string name="screen_audio_content_detail_comment_title">コメント</string>
<string name="screen_audio_content_detail_comment_secret">非公開コメント</string>
<string name="screen_audio_content_detail_comment_hint">コメントを入力してください</string>
<string name="screen_audio_content_detail_creator_other_title">クリエイターの他のコンテンツ</string>
<string name="screen_audio_content_detail_creator_other_empty">クリエイターの他のコンテンツを準備中です。\nもう少しお待ちください。</string>
<string name="screen_audio_content_detail_theme_other_title">このテーマの他のコンテンツ</string>
<string name="screen_audio_content_detail_theme_other_empty">このテーマの他のコンテンツを準備中です。\nしばらくお待ちください。</string>
<string name="screen_audio_content_detail_adult_notice">このコンテンツは19歳未満の方は利用できません。\n本人確認を行ってご利用ください。</string>
<string name="screen_audio_content_detail_pin">マイチャンネルに固定</string>
<string name="screen_audio_content_detail_pin_cancel">マイチャンネルの固定を解除</string>
<string name="screen_audio_content_detail_edit">編集</string>
<string name="screen_audio_content_detail_delete">削除</string>
<string name="screen_audio_content_detail_report">通報する</string>
<string name="screen_audio_content_detail_delete_title">コンテンツ削除</string>
<string name="screen_audio_content_detail_delete_notice">削除されたコンテンツは復元できません。</string>
<string name="screen_audio_content_detail_delete_desc">コンテンツを削除しても、すでに購入したユーザーは利用できます。</string>
<string name="screen_audio_content_detail_delete_confirm_message">[%1$s]を削除しますか?</string>
<string name="screen_audio_content_detail_delete_consent_required">同意が必要です。</string>
<string name="screen_audio_content_detail_report_title">コンテンツ通報</string>
<string name="screen_audio_content_detail_report_reason_harassment">嫌がらせ・サイバーブリング</string>
<string name="screen_audio_content_detail_report_reason_privacy">個人情報の侵害</string>
<string name="screen_audio_content_detail_report_reason_impersonation">なりすまし</string>
<string name="screen_audio_content_detail_report_reason_threat">暴力的な脅迫</string>
<string name="screen_audio_content_detail_report_reason_child_abuse">児童虐待</string>
<string name="screen_audio_content_detail_report_reason_hate">保護対象集団へのヘイトスピーチ</string>
<string name="screen_audio_content_detail_report_reason_spam">スパム・詐欺</string>
<string name="screen_audio_content_detail_report_desc">通報されたコンテンツを確認し、規約違反の場合は削除します。</string>
<string name="screen_audio_content_detail_report_reason_required">通報理由を選択してください。</string>
<string name="screen_audio_content_detail_order_rental_success">レンタルが完了しました。</string>
<string name="screen_audio_content_detail_order_keep_success">購入が完了しました。</string>
<string name="screen_audio_content_detail_delete_success">削除しました。</string>
<string name="screen_audio_content_detail_report_submitted">通報を受け付けました。</string>
<string name="screen_audio_content_detail_donation_success">%1$s缶を支援しました。</string>
<string name="screen_audio_content_detail_pin_success">固定しました。</string>
<string name="screen_audio_content_detail_unpin_success">解除しました。</string>
<!-- Alarm --> <!-- Alarm -->
<string name="alarm_time_format">hh:mm</string> <string name="alarm_time_format">hh:mm</string>

View File

@@ -862,6 +862,66 @@
<string name="screen_audio_content_ranking_title">인기 콘텐츠</string> <string name="screen_audio_content_ranking_title">인기 콘텐츠</string>
<string name="screen_audio_content_ranking_notice">※ 인기 콘텐츠의 순위는 매주 업데이트됩니다.</string> <string name="screen_audio_content_ranking_notice">※ 인기 콘텐츠의 순위는 매주 업데이트됩니다.</string>
<string name="screen_audio_content_error_invalid_request_retry">잘못된 요청입니다.\n다시 시도해 주세요.</string> <string name="screen_audio_content_error_invalid_request_retry">잘못된 요청입니다.\n다시 시도해 주세요.</string>
<!-- Audio Content Detail -->
<string name="screen_audio_content_detail_title">콘텐츠 상세</string>
<string name="screen_audio_content_detail_donation_minimum">1캔 이상 후원하실 수 있습니다.</string>
<string name="screen_audio_content_detail_donation_empty_message">함께 보낼 메시지를 입력하세요.</string>
<string name="screen_audio_content_detail_pin_limit_title">고정 한도 도달</string>
<string name="screen_audio_content_detail_pin_limit_message">이 콘텐츠를 고정하시겠어요?\n채널에 콘텐츠를 최대 3개까지 고정할 수 있습니다.\n이 콘텐츠를 고정하면 가장 오래된 콘텐츠가 대체됩니다.</string>
<string name="screen_audio_content_detail_time_default">00:00:00</string>
<string name="screen_audio_content_detail_time_total_default"> / 00:00:00</string>
<string name="screen_audio_content_detail_total_duration_format"> / %1$s</string>
<string name="screen_audio_content_detail_preview_unavailable">해당 콘텐츠는 크리에이터의 요청으로\n미리듣기를 제공하지 않습니다</string>
<string name="screen_audio_content_detail_previous">이전화</string>
<string name="screen_audio_content_detail_next">다음화</string>
<string name="screen_audio_content_detail_share_title">오디오 콘텐츠 공유</string>
<string name="screen_audio_content_detail_share">공유</string>
<string name="screen_audio_content_detail_donation">후원</string>
<string name="screen_audio_content_detail_limited_edition">한정판</string>
<string name="screen_audio_content_detail_remaining">잔여수량</string>
<string name="screen_audio_content_detail_buyer_title">구매자</string>
<string name="screen_audio_content_detail_preview_message">미리듣기 중입니다.\n콘텐츠 구매 후 전체를 감상해 보세요.</string>
<string name="screen_audio_content_detail_purchase_sold_out">해당 콘텐츠가 매진되었습니다.</string>
<string name="screen_audio_content_detail_purchase_unit_won">원으로</string>
<string name="screen_audio_content_detail_purchase_unit_can">캔으로</string>
<string name="screen_audio_content_detail_action_buy">구매하기</string>
<string name="screen_audio_content_detail_action_keep">소장하기</string>
<string name="screen_audio_content_detail_action_rental">대여하기</string>
<string name="screen_audio_content_detail_comment_title">댓글</string>
<string name="screen_audio_content_detail_comment_secret">비밀댓글</string>
<string name="screen_audio_content_detail_comment_hint">댓글을 입력해 보세요</string>
<string name="screen_audio_content_detail_creator_other_title">크리에이터의 다른 콘텐츠</string>
<string name="screen_audio_content_detail_creator_other_empty">크리에이터의 다른 콘텐츠를 준비중입니다.\n조금만 기다려주세요.</string>
<string name="screen_audio_content_detail_theme_other_title">테마의 다른 콘텐츠</string>
<string name="screen_audio_content_detail_theme_other_empty">테마의 다른 콘텐츠를 준비중입니다.\n조금만 기다려주세요.</string>
<string name="screen_audio_content_detail_adult_notice">본 콘텐츠는 만 19세 미만의 청소년이\n이용할 수 없습니다.\n본인인증 후 콘텐츠를 이용해 주세요.</string>
<string name="screen_audio_content_detail_pin">내 채널에 고정</string>
<string name="screen_audio_content_detail_pin_cancel">내 채널에 고정 취소</string>
<string name="screen_audio_content_detail_edit">수정</string>
<string name="screen_audio_content_detail_delete">삭제</string>
<string name="screen_audio_content_detail_report">신고하기</string>
<string name="screen_audio_content_detail_delete_title">콘텐츠 삭제</string>
<string name="screen_audio_content_detail_delete_notice">삭제된 콘텐츠는 되돌릴 수 없음을 알고 있습니다.</string>
<string name="screen_audio_content_detail_delete_desc">콘텐츠를 삭제하더라도 이미 구매한\n사용자는 콘텐츠를 이용할 수 있습니다.</string>
<string name="screen_audio_content_detail_delete_confirm_message">[%1$s]을 삭제하시겠습니까?</string>
<string name="screen_audio_content_detail_delete_consent_required">동의하셔야 삭제할 수 있습니다.</string>
<string name="screen_audio_content_detail_report_title">콘텐츠 신고</string>
<string name="screen_audio_content_detail_report_reason_harassment">괴롭힘 및 사이버 폭력</string>
<string name="screen_audio_content_detail_report_reason_privacy">개인정보 침해</string>
<string name="screen_audio_content_detail_report_reason_impersonation">명의도용</string>
<string name="screen_audio_content_detail_report_reason_threat">폭력적 위협</string>
<string name="screen_audio_content_detail_report_reason_child_abuse">아동학대</string>
<string name="screen_audio_content_detail_report_reason_hate">보호대상 집단에 대한 증오심 표현</string>
<string name="screen_audio_content_detail_report_reason_spam">스팸 및 사기</string>
<string name="screen_audio_content_detail_report_desc">신고한 콘텐츠를 관리자가 확인 후, 서비스 정책을\n위반한 경우 삭제 조치할 예정입니다.</string>
<string name="screen_audio_content_detail_report_reason_required">신고 이유를 선택하세요.</string>
<string name="screen_audio_content_detail_order_rental_success">대여가 완료되었습니다.</string>
<string name="screen_audio_content_detail_order_keep_success">구매가 완료되었습니다.</string>
<string name="screen_audio_content_detail_delete_success">삭제되었습니다.</string>
<string name="screen_audio_content_detail_report_submitted">신고가 접수되었습니다.</string>
<string name="screen_audio_content_detail_donation_success">%1$s캔을 후원하였습니다.</string>
<string name="screen_audio_content_detail_pin_success">고정되었습니다.</string>
<string name="screen_audio_content_detail_unpin_success">해제되었습니다.</string>
<!-- Alarm --> <!-- Alarm -->
<string name="alarm_time_format">hh:mm</string> <string name="alarm_time_format">hh:mm</string>