콘텐츠 업로드 문자열 리소스화

This commit is contained in:
2025-12-03 18:11:54 +09:00
parent ad1c58bbf5
commit de042abd79
9 changed files with 441 additions and 140 deletions

View File

@@ -1,7 +1,6 @@
package kr.co.vividnext.sodalive.audio_content.upload package kr.co.vividnext.sodalive.audio_content.upload
import android.Manifest import android.Manifest
import android.annotation.SuppressLint
import android.app.DatePickerDialog import android.app.DatePickerDialog
import android.app.TimePickerDialog import android.app.TimePickerDialog
import android.content.Intent import android.content.Intent
@@ -84,16 +83,17 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
} else { } else {
Toast.makeText( Toast.makeText(
this, this,
"잘못된 파일입니다.\n다시 선택해 주세요.", getString(R.string.audio_content_upload_error_invalid_file),
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
).show() ).show()
} }
} else { } else {
binding.tvSelectContent.text = "파일 선택" binding.tvSelectContent.text =
getString(R.string.screen_audio_content_upload_select_file)
viewModel.contentUri = null viewModel.contentUri = null
Toast.makeText( Toast.makeText(
this, this,
"파일 선택을 실패했습니다.\n다시 시도해 주세요.", getString(R.string.audio_content_upload_error_select_file),
Toast.LENGTH_SHORT Toast.LENGTH_SHORT
).show() ).show()
} }
@@ -177,11 +177,11 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
) )
binding.tvServiceDate.text = if (SharedPreferenceManager.userId == 17958L) { binding.tvServiceDate.text = if (SharedPreferenceManager.userId == 17958L) {
"※ 이용기간 : 대여(5일) | 소장(이용 기간 1년)" getString(R.string.screen_audio_content_upload_service_period_one_year)
} else { } else {
"※ 이용기간 : 대여(5일) | 소장(서비스 종료시까지)" getString(R.string.screen_audio_content_upload_service_period_until_end)
} }
binding.toolbar.tvBack.text = "콘텐츠 등록" binding.toolbar.tvBack.text = getString(R.string.screen_audio_content_upload_title)
binding.toolbar.tvBack.setOnClickListener { finish() } binding.toolbar.tvBack.setOnClickListener { finish() }
binding.llTheme.setOnClickListener { binding.llTheme.setOnClickListener {
if (themeFragment.isAdded) return@setOnClickListener if (themeFragment.isAdded) return@setOnClickListener
@@ -200,7 +200,7 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
selectAudioActivityResultLauncher.launch( selectAudioActivityResultLauncher.launch(
Intent.createChooser( Intent.createChooser(
intent, intent,
"Select Audio" getString(R.string.audio_content_upload_select_audio_title)
) )
) )
} }
@@ -235,11 +235,9 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
LiveDialog( LiveDialog(
activity = this, activity = this,
layoutInflater = layoutInflater, layoutInflater = layoutInflater,
title = "콘텐츠 업로드", title = getString(R.string.audio_content_upload_dialog_title),
desc = "등록한 콘텐츠가 업로드 중입니다.\n" + desc = getString(R.string.audio_content_upload_dialog_desc),
"콘텐츠 등록이 완료되면 알림을 보내드립니다.\n" + confirmButtonTitle = getString(R.string.confirm),
"이 페이지를 나가도 콘텐츠는 자동으로 등록됩니다.",
confirmButtonTitle = "확인",
confirmButtonClick = { finish() }, confirmButtonClick = { finish() },
).show(screenWidth) ).show(screenWidth)
} }
@@ -309,6 +307,13 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
timePicker.show() timePicker.show()
} }
viewModel.setReservationDate(
getString(R.string.screen_audio_content_upload_reservation_date_placeholder)
)
viewModel.setReservationTime(
getString(R.string.screen_audio_content_upload_reservation_time_placeholder)
)
} }
private fun checkPermissions() { private fun checkPermissions() {
@@ -332,8 +337,12 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
.check() .check()
} }
@SuppressLint("SetTextI18n")
private fun bindData() { private fun bindData() {
binding.tvNumberOfCharacters.text = getString(
R.string.screen_audio_content_upload_char_count_format,
binding.etDetail.text?.length ?: 0
)
compositeDisposable.add( compositeDisposable.add(
binding.etTitle.textChanges().skip(1) binding.etTitle.textChanges().skip(1)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
@@ -348,7 +357,10 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe { .subscribe {
binding.tvNumberOfCharacters.text = "${it.length}" binding.tvNumberOfCharacters.text = getString(
R.string.screen_audio_content_upload_char_count_format,
it.length
)
viewModel.detail = it.toString() viewModel.detail = it.toString()
} }
) )
@@ -424,13 +436,21 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
} }
) )
viewModel.toastLiveData.observe(this) { viewModel.toastLiveData.observe(this) { toastMessage ->
it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() } toastMessage?.let {
val message = it.message ?: it.resId?.let(::getString)
message?.let { text ->
Toast.makeText(applicationContext, text, Toast.LENGTH_LONG).show()
}
}
} }
viewModel.isLoading.observe(this) { viewModel.isLoading.observe(this) {
if (it) { if (it) {
loadingDialog.show(screenWidth, "콘텐츠를 업로드 하는 중입니다.") loadingDialog.show(
screenWidth,
getString(R.string.screen_audio_content_upload_loading_message)
)
} else { } else {
loadingDialog.dismiss() loadingDialog.dismiss()
} }
@@ -876,7 +896,8 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
private fun checkBoth() { private fun checkBoth() {
uncheckPurchaseOption() uncheckPurchaseOption()
binding.tvPriceTitle.text = "소장 가격" binding.tvPriceTitle.text =
getString(R.string.screen_audio_content_upload_price_title_keep)
binding.ivBoth.visibility = View.VISIBLE binding.ivBoth.visibility = View.VISIBLE
binding.tvBoth.setTextColor( binding.tvBoth.setTextColor(
ContextCompat.getColor( ContextCompat.getColor(
@@ -889,7 +910,8 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
private fun checkBuyOnly() { private fun checkBuyOnly() {
uncheckPurchaseOption() uncheckPurchaseOption()
binding.tvPriceTitle.text = "소장 가격" binding.tvPriceTitle.text =
getString(R.string.screen_audio_content_upload_price_title_keep)
binding.ivBuyOnly.visibility = View.VISIBLE binding.ivBuyOnly.visibility = View.VISIBLE
binding.tvBuyOnly.setTextColor( binding.tvBuyOnly.setTextColor(
ContextCompat.getColor( ContextCompat.getColor(
@@ -902,7 +924,8 @@ class AudioContentUploadActivity : BaseActivity<ActivityAudioContentUploadBindin
private fun checkRentOnly() { private fun checkRentOnly() {
uncheckPurchaseOption() uncheckPurchaseOption()
binding.tvPriceTitle.text = "대여 가격" binding.tvPriceTitle.text =
getString(R.string.screen_audio_content_upload_price_title_rent)
binding.ivRentOnly.visibility = View.VISIBLE binding.ivRentOnly.visibility = View.VISIBLE
binding.tvRentOnly.setTextColor( binding.tvRentOnly.setTextColor(
ContextCompat.getColor( ContextCompat.getColor(

View File

@@ -11,7 +11,9 @@ import kr.co.vividnext.sodalive.audio_content.AudioContentRepository
import kr.co.vividnext.sodalive.audio_content.PurchaseOption import kr.co.vividnext.sodalive.audio_content.PurchaseOption
import kr.co.vividnext.sodalive.audio_content.upload.theme.GetAudioContentThemeResponse import kr.co.vividnext.sodalive.audio_content.upload.theme.GetAudioContentThemeResponse
import kr.co.vividnext.sodalive.base.BaseViewModel import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.common.ToastMessage
import okhttp3.MediaType import okhttp3.MediaType
import okhttp3.MediaType.Companion.toMediaType import okhttp3.MediaType.Companion.toMediaType
import okhttp3.MultipartBody import okhttp3.MultipartBody
@@ -27,8 +29,8 @@ class AudioContentUploadViewModel(
private val repository: AudioContentRepository private val repository: AudioContentRepository
) : BaseViewModel() { ) : BaseViewModel() {
private val _toastLiveData = MutableLiveData<String?>() private val _toastLiveData = MutableLiveData<ToastMessage?>()
val toastLiveData: LiveData<String?> val toastLiveData: LiveData<ToastMessage?>
get() = _toastLiveData get() = _toastLiveData
private var _isLoading = MutableLiveData(false) private var _isLoading = MutableLiveData(false)
@@ -71,11 +73,11 @@ class AudioContentUploadViewModel(
val isActiveReservationLiveData: LiveData<Boolean> val isActiveReservationLiveData: LiveData<Boolean>
get() = _isActiveReservationLiveData get() = _isActiveReservationLiveData
private val _reservationDateLiveData = MutableLiveData("날짜를 선택해주세요") private val _reservationDateLiveData = MutableLiveData("")
val reservationDateLiveData: LiveData<String> val reservationDateLiveData: LiveData<String>
get() = _reservationDateLiveData get() = _reservationDateLiveData
private val _reservationTimeLiveData = MutableLiveData("시간을 설정해주세요") private val _reservationTimeLiveData = MutableLiveData("")
val reservationTimeLiveData: LiveData<String> val reservationTimeLiveData: LiveData<String>
get() = _reservationTimeLiveData get() = _reservationTimeLiveData
@@ -262,12 +264,16 @@ class AudioContentUploadViewModel(
} }
if (coverImage == null) { if (coverImage == null) {
_toastLiveData.postValue("커버이미지를 선택해 주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_cover_required)
)
return return
} }
if (contentFile == null) { if (contentFile == null) {
_toastLiveData.postValue("오디오 콘텐츠를 선택해 주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_content_required)
)
return return
} }
@@ -286,10 +292,12 @@ class AudioContentUploadViewModel(
onSuccess() onSuccess()
} else { } else {
if (it.message != null) { if (it.message != null) {
_toastLiveData.postValue(it.message) _toastLiveData.postValue(
ToastMessage(message = it.message)
)
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." ToastMessage(resId = R.string.common_error_unknown)
) )
} }
} }
@@ -299,7 +307,7 @@ class AudioContentUploadViewModel(
_isLoading.postValue(false) _isLoading.postValue(false)
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." ToastMessage(resId = R.string.common_error_unknown)
) )
} }
) )
@@ -309,48 +317,64 @@ class AudioContentUploadViewModel(
private fun validateData(): Boolean { private fun validateData(): Boolean {
if (title.isBlank()) { if (title.isBlank()) {
_toastLiveData.postValue("제목을 입력해 주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_title_required)
)
return false return false
} }
if (detail.isBlank() || detail.length < 5) { if (detail.isBlank() || detail.length < 5) {
_toastLiveData.postValue("내용을 5자 이상 입력해 주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_detail_min_length)
)
return false return false
} }
if (theme == null) { if (theme == null) {
_toastLiveData.postValue("테마를 선택해 주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_theme_required)
)
return false return false
} }
if (coverImageFile == null) { if (coverImageFile == null) {
_toastLiveData.postValue("커버이미지를 선택해 주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_cover_required)
)
return false return false
} }
if (previewStartTime != null && previewEndTime != null) { if (previewStartTime != null && previewEndTime != null) {
val startTimeArray = previewStartTime!!.split(":") val startTimeArray = previewStartTime!!.split(":")
if (startTimeArray.size != 3) { if (startTimeArray.size != 3) {
_toastLiveData.postValue("미리 듣기 시간 형식은 00:30:00 과 같아야 합니다") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_preview_format)
)
return false return false
} }
for (time in startTimeArray) { for (time in startTimeArray) {
if (time.length != 2) { if (time.length != 2) {
_toastLiveData.postValue("미리 듣기 시간 형식은 00:30:00 과 같아야 합니다") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_preview_format)
)
return false return false
} }
} }
val endTimeArray = previewEndTime!!.split(":") val endTimeArray = previewEndTime!!.split(":")
if (endTimeArray.size != 3) { if (endTimeArray.size != 3) {
_toastLiveData.postValue("미리 듣기 시간 형식은 00:30:00 과 같아야 합니다") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_preview_format)
)
return false return false
} }
for (time in endTimeArray) { for (time in endTimeArray) {
if (time.length != 2) { if (time.length != 2) {
_toastLiveData.postValue("미리 듣기 시간 형식은 00:30:00 과 같아야 합니다") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_preview_format)
)
return false return false
} }
} }
@@ -359,7 +383,7 @@ class AudioContentUploadViewModel(
if (timeDifference < 15000) { if (timeDifference < 15000) {
_toastLiveData.postValue( _toastLiveData.postValue(
"미리 듣기의 최소 시간은 15초 입니다." ToastMessage(resId = R.string.audio_content_upload_error_preview_minimum)
) )
return false return false
@@ -367,7 +391,9 @@ class AudioContentUploadViewModel(
} else { } else {
if (previewStartTime != null || previewEndTime != null) { if (previewStartTime != null || previewEndTime != null) {
_toastLiveData.postValue( _toastLiveData.postValue(
"미리 듣기 시작 시간과 종료 시간 둘 다 입력을 하거나 둘 다 입력 하지 않아야 합니다." ToastMessage(
resId = R.string.audio_content_upload_error_preview_both_required
)
) )
return false return false
@@ -375,12 +401,16 @@ class AudioContentUploadViewModel(
} }
if (contentUri == null) { if (contentUri == null) {
_toastLiveData.postValue("오디오 콘텐츠를 선택해 주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_content_required)
)
return false return false
} }
if (!isPriceFreeLiveData.value!! && price < 5) { if (!isPriceFreeLiveData.value!! && price < 5) {
_toastLiveData.postValue("콘텐츠의 최소금액은 5캔 입니다.") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_minimum_price)
)
return false return false
} }
@@ -388,7 +418,9 @@ class AudioContentUploadViewModel(
_isActiveReservationLiveData.value!! && _isActiveReservationLiveData.value!! &&
(releaseDate.isBlank() || releaseTime.isBlank()) (releaseDate.isBlank() || releaseTime.isBlank())
) { ) {
_toastLiveData.postValue("예약날짜와 시간을 선택해주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.audio_content_upload_error_reservation_required)
)
return false return false
} }

View File

@@ -91,7 +91,13 @@ class AudioContentThemeFragment(
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
private fun bindData() { private fun bindData() {
viewModel.toastLiveData.observe(viewLifecycleOwner) { viewModel.toastLiveData.observe(viewLifecycleOwner) {
it?.let { Toast.makeText(requireActivity(), it, Toast.LENGTH_LONG).show() } it?.let { toastMessage ->
val message = toastMessage.message
?: toastMessage.resId?.let(::getString)
message?.let { text ->
Toast.makeText(requireActivity(), text, Toast.LENGTH_LONG).show()
}
}
} }
viewModel.themeLiveData.observe(viewLifecycleOwner) { viewModel.themeLiveData.observe(viewLifecycleOwner) {

View File

@@ -7,11 +7,13 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
import kr.co.vividnext.sodalive.audio_content.AudioContentRepository import kr.co.vividnext.sodalive.audio_content.AudioContentRepository
import kr.co.vividnext.sodalive.base.BaseViewModel import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.common.ToastMessage
class AudioContentThemeViewModel(private val repository: AudioContentRepository) : BaseViewModel() { class AudioContentThemeViewModel(private val repository: AudioContentRepository) : BaseViewModel() {
private val _toastLiveData = MutableLiveData<String?>() private val _toastLiveData = MutableLiveData<ToastMessage?>()
val toastLiveData: LiveData<String?> val toastLiveData: LiveData<ToastMessage?>
get() = _toastLiveData get() = _toastLiveData
private val _themeLiveData = MutableLiveData<List<GetAudioContentThemeResponse>>() private val _themeLiveData = MutableLiveData<List<GetAudioContentThemeResponse>>()
@@ -29,17 +31,19 @@ class AudioContentThemeViewModel(private val repository: AudioContentRepository)
_themeLiveData.postValue(it.data!!) _themeLiveData.postValue(it.data!!)
} else { } else {
if (it.message != null) { if (it.message != null) {
_toastLiveData.postValue(it.message) _toastLiveData.postValue(ToastMessage(message = it.message))
} else { } else {
_toastLiveData.postValue( _toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." ToastMessage(resId = R.string.common_error_unknown)
) )
} }
} }
}, },
{ {
it.message?.let { message -> Logger.e(message) } it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") _toastLiveData.postValue(
ToastMessage(resId = R.string.common_error_unknown)
)
} }
) )
) )

View File

@@ -37,7 +37,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_upload_thumbnail_label"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -81,7 +81,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_upload_section_upload"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -95,7 +95,7 @@
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="center" android:gravity="center"
android:paddingVertical="8dp" android:paddingVertical="8dp"
android:text="파일 선택" android:text="@string/screen_audio_content_upload_select_file"
android:textColor="@color/color_80d8ff" android:textColor="@color/color_80d8ff"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
</LinearLayout> </LinearLayout>
@@ -116,7 +116,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="제목" android:text="@string/screen_audio_content_upload_title_label"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -127,7 +127,7 @@
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:background="@drawable/bg_round_corner_6_7_222222" android:background="@drawable/bg_round_corner_6_7_222222"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:hint="제목을 입력하세요." android:hint="@string/screen_audio_content_upload_title_hint"
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="textWebEditText" android:inputType="textWebEditText"
android:paddingHorizontal="13.3dp" android:paddingHorizontal="13.3dp"
@@ -157,7 +157,7 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="5sp" android:lineSpacingExtra="5sp"
android:text="내용" android:text="@string/screen_audio_content_upload_content_label"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -171,7 +171,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="0자" android:text="@string/screen_audio_content_upload_char_count_format"
android:textColor="@color/color_ff5c49" android:textColor="@color/color_ff5c49"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -179,7 +179,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=" / 최대 500자" android:text="@string/screen_audio_content_upload_char_limit_suffix"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -194,7 +194,7 @@
android:background="@drawable/bg_round_corner_6_7_222222" android:background="@drawable/bg_round_corner_6_7_222222"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:gravity="top" android:gravity="top"
android:hint="내용을 입력하세요" android:hint="@string/screen_audio_content_upload_content_hint"
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="textMultiLine" android:inputType="textMultiLine"
android:padding="20dp" android:padding="20dp"
@@ -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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="테마" android:text="@string/screen_audio_content_upload_theme_label"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -243,7 +243,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="테마 선택" android:text="@string/screen_audio_content_upload_theme_select"
android:textColor="@color/color_80d8ff" android:textColor="@color/color_80d8ff"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
</LinearLayout> </LinearLayout>
@@ -260,7 +260,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="태그" android:text="@string/screen_audio_content_upload_tag_label"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -271,7 +271,7 @@
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:background="@drawable/bg_round_corner_6_7_222222" android:background="@drawable/bg_round_corner_6_7_222222"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:hint="예 : #연애 #커버곡 #태그" android:hint="@string/screen_audio_content_upload_tag_hint"
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="textWebEditText" android:inputType="textWebEditText"
android:paddingHorizontal="13.3dp" android:paddingHorizontal="13.3dp"
@@ -296,7 +296,7 @@
android:layout_marginHorizontal="13.3dp" android:layout_marginHorizontal="13.3dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="5sp" android:lineSpacingExtra="5sp"
android:text="가격 설정" android:text="@string/screen_audio_content_upload_price_section_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -331,7 +331,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="무료" android:text="@string/screen_audio_content_upload_price_free"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -360,7 +360,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="유료" android:text="@string/screen_audio_content_upload_price_paid"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -374,7 +374,7 @@
android:layout_marginTop="26.7dp" android:layout_marginTop="26.7dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="5sp" android:lineSpacingExtra="5sp"
android:text="소장 설정" android:text="@string/screen_audio_content_upload_keep_section_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -409,7 +409,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="소장/대여" android:text="@string/screen_audio_content_upload_purchase_option_both"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -438,7 +438,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="소장만" android:text="@string/screen_audio_content_upload_purchase_option_buy_only"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -466,7 +466,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="대여만" android:text="@string/screen_audio_content_upload_purchase_option_rent_only"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -486,7 +486,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_upload_price_title_keep"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -524,7 +524,7 @@
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
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_upload_price_unit_can"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
</RelativeLayout> </RelativeLayout>
@@ -540,7 +540,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="※ 이용기간 : 대여(5일) | 소장(서비스 종료시까지)" android:text="@string/screen_audio_content_upload_service_period_until_end"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -549,7 +549,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="※ 대여가격은 소장가격의 70%로 자동 반영" android:text="@string/screen_audio_content_upload_price_rent_rate_notice"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -558,7 +558,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="※ 콘텐츠의 최소금액은 5캔 입니다" android:text="@string/screen_audio_content_upload_price_min_notice"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
</LinearLayout> </LinearLayout>
@@ -571,7 +571,7 @@
android:layout_marginTop="30dp" android:layout_marginTop="30dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="5sp" android:lineSpacingExtra="5sp"
android:text="한정판 설정" android:text="@string/screen_audio_content_upload_limited_section_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -606,7 +606,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="무제한" android:text="@string/screen_audio_content_upload_limited_unlimited"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -635,7 +635,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="한정판" android:text="@string/screen_audio_content_upload_limited_limited"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -649,7 +649,7 @@
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:background="@drawable/bg_round_corner_6_7_222222" android:background="@drawable/bg_round_corner_6_7_222222"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:hint="한정판 개수를 입력하세요" android:hint="@string/screen_audio_content_upload_limited_hint"
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="numberSigned" android:inputType="numberSigned"
android:padding="13.3dp" android:padding="13.3dp"
@@ -669,7 +669,7 @@
android:layout_marginTop="30dp" android:layout_marginTop="30dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="5sp" android:lineSpacingExtra="5sp"
android:text="포인트 사용" android:text="@string/screen_audio_content_upload_point_section_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -704,7 +704,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="가능" android:text="@string/screen_audio_content_upload_point_available"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -733,7 +733,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="불가능" android:text="@string/screen_audio_content_upload_point_unavailable"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -752,7 +752,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="5sp" android:lineSpacingExtra="5sp"
android:text="미리듣기" android:text="@string/screen_audio_content_upload_preview_section_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -785,7 +785,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="생성" android:text="@string/screen_audio_content_upload_preview_generate"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -814,7 +814,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="생성 안 함" android:text="@string/screen_audio_content_upload_preview_not_generate"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -832,7 +832,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="5sp" android:lineSpacingExtra="5sp"
android:text="미리듣기 시간 설정" android:text="@string/screen_audio_content_upload_preview_time_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -841,7 +841,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="미리듣기 시간을 직접 설정하지 않으면 콘텐츠 앞부분 15초가 자동으로 설정됩니다. 미리듣기의 시간제한은 없습니다." android:text="@string/screen_audio_content_upload_preview_time_desc"
android:textColor="@color/color_777777" android:textColor="@color/color_777777"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -861,7 +861,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_upload_preview_start_time"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -873,7 +873,7 @@
android:background="@drawable/bg_round_corner_6_7_222222" android:background="@drawable/bg_round_corner_6_7_222222"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center" android:gravity="center"
android:hint="00:00:00" android:hint="@string/screen_audio_content_upload_preview_start_time_default"
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="textWebEditText" android:inputType="textWebEditText"
android:paddingHorizontal="13.3dp" android:paddingHorizontal="13.3dp"
@@ -897,7 +897,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_upload_preview_end_time"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -909,7 +909,7 @@
android:background="@drawable/bg_round_corner_6_7_222222" android:background="@drawable/bg_round_corner_6_7_222222"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center" android:gravity="center"
android:hint="00:00:15" android:hint="@string/screen_audio_content_upload_preview_end_time_default"
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="textWebEditText" android:inputType="textWebEditText"
android:paddingHorizontal="13.3dp" android:paddingHorizontal="13.3dp"
@@ -938,7 +938,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="5sp" android:lineSpacingExtra="5sp"
android:text="연령 제한" android:text="@string/screen_audio_content_upload_age_section_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -971,7 +971,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="전체 연령" android:text="@string/screen_audio_content_upload_age_all"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -1000,7 +1000,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="19세 이상" android:text="@string/screen_audio_content_upload_age_19"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -1011,7 +1011,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="13.3dp" android:layout_marginTop="13.3dp"
android:fontFamily="@font/gmarket_sans_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="성인콘텐츠를 전체관람가로 등록할 시 발생하는 법적 책임은 회사와 상관 없이 콘텐츠를 등록한 본인에게 있습니다.\n콘텐츠 내용은 물론 제목도 19금 여부를 체크해 주시기 바랍니다." android:text="@string/screen_audio_content_upload_age_notice"
android:textColor="@color/color_dd4500" android:textColor="@color/color_dd4500"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
</LinearLayout> </LinearLayout>
@@ -1029,7 +1029,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="5sp" android:lineSpacingExtra="5sp"
android:text="댓글 가능 여부" android:text="@string/screen_audio_content_upload_comment_section_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -1062,7 +1062,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="댓글 가능" android:text="@string/screen_audio_content_upload_comment_allow"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -1091,7 +1091,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="댓글 불가" android:text="@string/screen_audio_content_upload_comment_disallow"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -1111,7 +1111,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:lineSpacingExtra="5sp" android:lineSpacingExtra="5sp"
android:text="예약 공개" android:text="@string/screen_audio_content_upload_reservation_section_title"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="16.7sp" /> android:textSize="16.7sp" />
@@ -1144,7 +1144,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="지금 공개" android:text="@string/screen_audio_content_upload_active_now"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -1173,7 +1173,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_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="예약 공개" android:text="@string/screen_audio_content_upload_active_reservation"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="14.7sp" /> android:textSize="14.7sp" />
</LinearLayout> </LinearLayout>
@@ -1200,7 +1200,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_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="예약 날짜" android:text="@string/screen_audio_content_upload_reservation_date"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -1230,7 +1230,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_medium" android:fontFamily="@font/gmarket_sans_medium"
android:text="예약 시간" android:text="@string/screen_audio_content_upload_reservation_time"
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
@@ -1267,7 +1267,7 @@
android:background="@drawable/bg_round_corner_6_7_13181b_3bb9f1" android:background="@drawable/bg_round_corner_6_7_13181b_3bb9f1"
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_upload_cancel"
android:textColor="@color/color_3bb9f1" android:textColor="@color/color_3bb9f1"
android:textSize="18.3sp" /> android:textSize="18.3sp" />
@@ -1280,7 +1280,7 @@
android:background="@drawable/bg_round_corner_6_7_3bb9f1" android:background="@drawable/bg_round_corner_6_7_3bb9f1"
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_upload_submit"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="18.3sp" /> android:textSize="18.3sp" />
</LinearLayout> </LinearLayout>

View File

@@ -15,7 +15,7 @@
android:layout_marginStart="26.7dp" android:layout_marginStart="26.7dp"
android:layout_marginTop="26.7dp" android:layout_marginTop="26.7dp"
android:fontFamily="@font/gmarket_sans_bold" android:fontFamily="@font/gmarket_sans_bold"
android:text="테마 선택" android:text="@string/screen_audio_content_upload_theme_select"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="18.3sp" /> android:textSize="18.3sp" />

View File

@@ -837,6 +837,86 @@
<string name="screen_audio_content_all_title_point_only">All point rentals</string> <string name="screen_audio_content_all_title_point_only">All point rentals</string>
<string name="screen_audio_content_error_invalid_request">Invalid request.</string> <string name="screen_audio_content_error_invalid_request">Invalid request.</string>
<string name="audio_content_player_error_launch_failed">Couldn\'t start the player.\nPlease try again.</string> <string name="audio_content_player_error_launch_failed">Couldn\'t start the player.\nPlease try again.</string>
<string name="screen_audio_content_upload_title">Upload content</string>
<string name="screen_audio_content_upload_thumbnail_label">Thumbnail</string>
<string name="screen_audio_content_upload_section_upload">Upload</string>
<string name="screen_audio_content_upload_select_file">Select file</string>
<string name="screen_audio_content_upload_title_label">Title</string>
<string name="screen_audio_content_upload_title_hint">Enter a title.</string>
<string name="screen_audio_content_upload_content_label">Description</string>
<string name="screen_audio_content_upload_char_count_format">%1$d chars</string>
<string name="screen_audio_content_upload_char_limit_suffix"> / Max 500 chars</string>
<string name="screen_audio_content_upload_content_hint">Enter a description</string>
<string name="screen_audio_content_upload_theme_label">Theme</string>
<string name="screen_audio_content_upload_theme_select">Select theme</string>
<string name="screen_audio_content_upload_tag_label">Tags</string>
<string name="screen_audio_content_upload_tag_hint">Ex: #romance #cover #tag</string>
<string name="screen_audio_content_upload_price_section_title">Pricing</string>
<string name="screen_audio_content_upload_price_free">Free</string>
<string name="screen_audio_content_upload_price_paid">Paid</string>
<string name="screen_audio_content_upload_keep_section_title">Ownership options</string>
<string name="screen_audio_content_upload_purchase_option_both">Buy/Rent</string>
<string name="screen_audio_content_upload_purchase_option_buy_only">Buy only</string>
<string name="screen_audio_content_upload_purchase_option_rent_only">Rent only</string>
<string name="screen_audio_content_upload_price_title_keep">Purchase price</string>
<string name="screen_audio_content_upload_price_title_rent">Rental price</string>
<string name="screen_audio_content_upload_price_unit_can">cans</string>
<string name="screen_audio_content_upload_service_period_one_year">※ Usage period: Rent (5 days) | Own (1 year)</string>
<string name="screen_audio_content_upload_service_period_until_end">※ Usage period: Rent (5 days) | Own (until service ends)</string>
<string name="screen_audio_content_upload_price_rent_rate_notice">※ Rental price is automatically set to 70% of purchase price</string>
<string name="screen_audio_content_upload_price_min_notice">※ Minimum price is 5 cans</string>
<string name="screen_audio_content_upload_limited_section_title">Limited edition</string>
<string name="screen_audio_content_upload_limited_unlimited">Unlimited</string>
<string name="screen_audio_content_upload_limited_limited">Limited</string>
<string name="screen_audio_content_upload_limited_hint">Enter the limited quantity</string>
<string name="screen_audio_content_upload_point_section_title">Points</string>
<string name="screen_audio_content_upload_point_available">Enabled</string>
<string name="screen_audio_content_upload_point_unavailable">Disabled</string>
<string name="screen_audio_content_upload_preview_section_title">Preview</string>
<string name="screen_audio_content_upload_preview_generate">Generate</string>
<string name="screen_audio_content_upload_preview_not_generate">Do not generate</string>
<string name="screen_audio_content_upload_preview_time_title">Preview time</string>
<string name="screen_audio_content_upload_preview_time_desc">If you dont set a preview time, the first 15 seconds will be used automatically. There is no time limit for previews.</string>
<string name="screen_audio_content_upload_preview_start_time">Start time</string>
<string name="screen_audio_content_upload_preview_end_time">End time</string>
<string name="screen_audio_content_upload_preview_start_time_default">00:00:00</string>
<string name="screen_audio_content_upload_preview_end_time_default">00:00:15</string>
<string name="screen_audio_content_upload_age_section_title">Age restriction</string>
<string name="screen_audio_content_upload_age_all">All ages</string>
<string name="screen_audio_content_upload_age_19">19+</string>
<string name="screen_audio_content_upload_age_notice">If you register adult content as all-ages, you are solely responsible for any legal issues. Please ensure both the content and title are appropriately marked 19+.</string>
<string name="screen_audio_content_upload_comment_section_title">Comments</string>
<string name="screen_audio_content_upload_comment_allow">Allow comments</string>
<string name="screen_audio_content_upload_comment_disallow">Disable comments</string>
<string name="screen_audio_content_upload_reservation_section_title">Scheduled release</string>
<string name="screen_audio_content_upload_active_now">Release now</string>
<string name="screen_audio_content_upload_active_reservation">Schedule release</string>
<string name="screen_audio_content_upload_reservation_date">Date</string>
<string name="screen_audio_content_upload_reservation_time">Time</string>
<string name="screen_audio_content_upload_reservation_date_placeholder">Select a release date</string>
<string name="screen_audio_content_upload_reservation_time_placeholder">Set a release time</string>
<string name="screen_audio_content_upload_cancel">Cancel</string>
<string name="screen_audio_content_upload_submit">Submit</string>
<string name="screen_audio_content_upload_loading_message">Uploading content…</string>
<string name="audio_content_upload_dialog_title">Uploading content</string>
<string name="audio_content_upload_dialog_desc">Your content is being uploaded.
We will notify you when its done.
The upload will continue even if you leave this page.</string>
<string name="audio_content_upload_error_invalid_file">Invalid file.
Please choose again.</string>
<string name="audio_content_upload_error_select_file">Failed to select a file.
Please try again.</string>
<string name="audio_content_upload_error_cover_required">Select a cover image.</string>
<string name="audio_content_upload_error_content_required">Select an audio file.</string>
<string name="audio_content_upload_error_title_required">Enter a title.</string>
<string name="audio_content_upload_error_detail_min_length">Enter at least 5 characters.</string>
<string name="audio_content_upload_error_theme_required">Select a theme.</string>
<string name="audio_content_upload_error_preview_format">Preview time must be in the format 00:30:00.</string>
<string name="audio_content_upload_error_preview_minimum">Preview must be at least 15 seconds.</string>
<string name="audio_content_upload_error_preview_both_required">Enter both preview start and end times or leave both empty.</string>
<string name="audio_content_upload_error_minimum_price">Minimum price is 5 cans.</string>
<string name="audio_content_upload_error_reservation_required">Select a release date and time.</string>
<string name="audio_content_upload_select_audio_title">Select audio</string>
<string name="screen_audio_content_new_content">Add new content</string> <string name="screen_audio_content_new_content">Add new content</string>
<string name="screen_audio_content_sort_newest">Newest</string> <string name="screen_audio_content_sort_newest">Newest</string>
<string name="screen_audio_content_sort_price_high">Price: High to Low</string> <string name="screen_audio_content_sort_price_high">Price: High to Low</string>

View File

@@ -837,6 +837,86 @@
<string name="screen_audio_content_all_title_point_only">ポイントレンタル一覧</string> <string name="screen_audio_content_all_title_point_only">ポイントレンタル一覧</string>
<string name="screen_audio_content_error_invalid_request">無効なリクエストです。</string> <string name="screen_audio_content_error_invalid_request">無効なリクエストです。</string>
<string name="audio_content_player_error_launch_failed">プレイヤーを起動できませんでした。\nもう一度お試しください。</string> <string name="audio_content_player_error_launch_failed">プレイヤーを起動できませんでした。\nもう一度お試しください。</string>
<string name="screen_audio_content_upload_title">コンテンツ登録</string>
<string name="screen_audio_content_upload_thumbnail_label">サムネイル</string>
<string name="screen_audio_content_upload_section_upload">登録</string>
<string name="screen_audio_content_upload_select_file">ファイル選択</string>
<string name="screen_audio_content_upload_title_label">タイトル</string>
<string name="screen_audio_content_upload_title_hint">タイトルを入力してください。</string>
<string name="screen_audio_content_upload_content_label">内容</string>
<string name="screen_audio_content_upload_char_count_format">%1$d文字</string>
<string name="screen_audio_content_upload_char_limit_suffix"> / 最大500文字</string>
<string name="screen_audio_content_upload_content_hint">内容を入力してください</string>
<string name="screen_audio_content_upload_theme_label">テーマ</string>
<string name="screen_audio_content_upload_theme_select">テーマを選択</string>
<string name="screen_audio_content_upload_tag_label">タグ</string>
<string name="screen_audio_content_upload_tag_hint">例: #恋愛 #カバー曲 #タグ</string>
<string name="screen_audio_content_upload_price_section_title">価格設定</string>
<string name="screen_audio_content_upload_price_free">無料</string>
<string name="screen_audio_content_upload_price_paid">有料</string>
<string name="screen_audio_content_upload_keep_section_title">購入設定</string>
<string name="screen_audio_content_upload_purchase_option_both">購入/レンタル</string>
<string name="screen_audio_content_upload_purchase_option_buy_only">購入のみ</string>
<string name="screen_audio_content_upload_purchase_option_rent_only">レンタルのみ</string>
<string name="screen_audio_content_upload_price_title_keep">購入価格</string>
<string name="screen_audio_content_upload_price_title_rent">レンタル価格</string>
<string name="screen_audio_content_upload_price_unit_can">キャン</string>
<string name="screen_audio_content_upload_service_period_one_year">※ 利用期間 : レンタル(5日) | 購入(利用期間1年)</string>
<string name="screen_audio_content_upload_service_period_until_end">※ 利用期間 : レンタル(5日) | 購入(サービス終了まで)</string>
<string name="screen_audio_content_upload_price_rent_rate_notice">※ レンタル価格は購入価格の70%で自動設定されます</string>
<string name="screen_audio_content_upload_price_min_notice">※ コンテンツの最低価格は5キャンです</string>
<string name="screen_audio_content_upload_limited_section_title">限定版設定</string>
<string name="screen_audio_content_upload_limited_unlimited">無制限</string>
<string name="screen_audio_content_upload_limited_limited">限定版</string>
<string name="screen_audio_content_upload_limited_hint">限定数を入力してください</string>
<string name="screen_audio_content_upload_point_section_title">ポイント使用</string>
<string name="screen_audio_content_upload_point_available">利用可</string>
<string name="screen_audio_content_upload_point_unavailable">利用不可</string>
<string name="screen_audio_content_upload_preview_section_title">プレビュー</string>
<string name="screen_audio_content_upload_preview_generate">生成</string>
<string name="screen_audio_content_upload_preview_not_generate">生成しない</string>
<string name="screen_audio_content_upload_preview_time_title">プレビュー時間設定</string>
<string name="screen_audio_content_upload_preview_time_desc">プレビュー時間を設定しない場合、冒頭15秒が自動で設定されます。プレビュー時間に制限はありません。</string>
<string name="screen_audio_content_upload_preview_start_time">開始時間</string>
<string name="screen_audio_content_upload_preview_end_time">終了時間</string>
<string name="screen_audio_content_upload_preview_start_time_default">00:00:00</string>
<string name="screen_audio_content_upload_preview_end_time_default">00:00:15</string>
<string name="screen_audio_content_upload_age_section_title">年齢制限</string>
<string name="screen_audio_content_upload_age_all">全年齢</string>
<string name="screen_audio_content_upload_age_19">19歳以上</string>
<string name="screen_audio_content_upload_age_notice">成人向けコンテンツを全年齢で登録した場合の法的責任は会社ではなく登録者本人にあります。コンテンツ内容はもちろんタイトルも19禁か確認してください。</string>
<string name="screen_audio_content_upload_comment_section_title">コメント可否</string>
<string name="screen_audio_content_upload_comment_allow">コメント可</string>
<string name="screen_audio_content_upload_comment_disallow">コメント不可</string>
<string name="screen_audio_content_upload_reservation_section_title">予約公開</string>
<string name="screen_audio_content_upload_active_now">今すぐ公開</string>
<string name="screen_audio_content_upload_active_reservation">予約公開</string>
<string name="screen_audio_content_upload_reservation_date">予約日付</string>
<string name="screen_audio_content_upload_reservation_time">予約時間</string>
<string name="screen_audio_content_upload_reservation_date_placeholder">予約日付を選択してください</string>
<string name="screen_audio_content_upload_reservation_time_placeholder">予約時間を設定してください</string>
<string name="screen_audio_content_upload_cancel">キャンセル</string>
<string name="screen_audio_content_upload_submit">登録</string>
<string name="screen_audio_content_upload_loading_message">コンテンツをアップロードしています。</string>
<string name="audio_content_upload_dialog_title">コンテンツアップロード</string>
<string name="audio_content_upload_dialog_desc">登録したコンテンツをアップロード中です。
登録完了後にお知らせします。
このページを離れても自動で登録されます。</string>
<string name="audio_content_upload_error_invalid_file">無効なファイルです。
再度選択してください。</string>
<string name="audio_content_upload_error_select_file">ファイルの選択に失敗しました。
もう一度お試しください。</string>
<string name="audio_content_upload_error_cover_required">カバー画像を選択してください。</string>
<string name="audio_content_upload_error_content_required">オーディオコンテンツを選択してください。</string>
<string name="audio_content_upload_error_title_required">タイトルを入力してください。</string>
<string name="audio_content_upload_error_detail_min_length">内容を5文字以上入力してください。</string>
<string name="audio_content_upload_error_theme_required">テーマを選択してください。</string>
<string name="audio_content_upload_error_preview_format">プレビュー時間は 00:30:00 の形式で入力してください</string>
<string name="audio_content_upload_error_preview_minimum">プレビューの最短時間は15秒です。</string>
<string name="audio_content_upload_error_preview_both_required">プレビュー開始時間と終了時間は両方入力するか、両方空にしてください。</string>
<string name="audio_content_upload_error_minimum_price">コンテンツの最低価格は5キャンです。</string>
<string name="audio_content_upload_error_reservation_required">予約日付と時間を選択してください。</string>
<string name="audio_content_upload_select_audio_title">オーディオを選択</string>
<string name="screen_audio_content_new_content">新しいコンテンツを登録</string> <string name="screen_audio_content_new_content">新しいコンテンツを登録</string>
<string name="screen_audio_content_sort_newest">最新順</string> <string name="screen_audio_content_sort_newest">最新順</string>
<string name="screen_audio_content_sort_price_high">価格が高い順</string> <string name="screen_audio_content_sort_price_high">価格が高い順</string>

View File

@@ -836,6 +836,82 @@
<string name="screen_audio_content_all_title_point_only">포인트 대여 전체</string> <string name="screen_audio_content_all_title_point_only">포인트 대여 전체</string>
<string name="screen_audio_content_error_invalid_request">잘못된 요청입니다.</string> <string name="screen_audio_content_error_invalid_request">잘못된 요청입니다.</string>
<string name="audio_content_player_error_launch_failed">플레이어를 실행하지 못했습니다.\n다시 시도해 주세요.</string> <string name="audio_content_player_error_launch_failed">플레이어를 실행하지 못했습니다.\n다시 시도해 주세요.</string>
<string name="screen_audio_content_upload_title">콘텐츠 등록</string>
<string name="screen_audio_content_upload_thumbnail_label">썸네일</string>
<string name="screen_audio_content_upload_section_upload">등록</string>
<string name="screen_audio_content_upload_select_file">파일 선택</string>
<string name="screen_audio_content_upload_title_label">제목</string>
<string name="screen_audio_content_upload_title_hint">제목을 입력하세요.</string>
<string name="screen_audio_content_upload_content_label">내용</string>
<string name="screen_audio_content_upload_char_count_format">%1$d자</string>
<string name="screen_audio_content_upload_char_limit_suffix"> / 최대 500자</string>
<string name="screen_audio_content_upload_content_hint">내용을 입력하세요</string>
<string name="screen_audio_content_upload_theme_label">테마</string>
<string name="screen_audio_content_upload_theme_select">테마 선택</string>
<string name="screen_audio_content_upload_tag_label">태그</string>
<string name="screen_audio_content_upload_tag_hint">예 : #연애 #커버곡 #태그</string>
<string name="screen_audio_content_upload_price_section_title">가격 설정</string>
<string name="screen_audio_content_upload_price_free">무료</string>
<string name="screen_audio_content_upload_price_paid">유료</string>
<string name="screen_audio_content_upload_keep_section_title">소장 설정</string>
<string name="screen_audio_content_upload_purchase_option_both">소장/대여</string>
<string name="screen_audio_content_upload_purchase_option_buy_only">소장만</string>
<string name="screen_audio_content_upload_purchase_option_rent_only">대여만</string>
<string name="screen_audio_content_upload_price_title_keep">소장 가격</string>
<string name="screen_audio_content_upload_price_title_rent">대여 가격</string>
<string name="screen_audio_content_upload_price_unit_can"></string>
<string name="screen_audio_content_upload_service_period_one_year">※ 이용기간 : 대여(5일) | 소장(이용 기간 1년)</string>
<string name="screen_audio_content_upload_service_period_until_end">※ 이용기간 : 대여(5일) | 소장(서비스 종료시까지)</string>
<string name="screen_audio_content_upload_price_rent_rate_notice">※ 대여가격은 소장가격의 70%로 자동 반영</string>
<string name="screen_audio_content_upload_price_min_notice">※ 콘텐츠의 최소금액은 5캔 입니다</string>
<string name="screen_audio_content_upload_limited_section_title">한정판 설정</string>
<string name="screen_audio_content_upload_limited_unlimited">무제한</string>
<string name="screen_audio_content_upload_limited_limited">한정판</string>
<string name="screen_audio_content_upload_limited_hint">한정판 개수를 입력하세요</string>
<string name="screen_audio_content_upload_point_section_title">포인트 사용</string>
<string name="screen_audio_content_upload_point_available">가능</string>
<string name="screen_audio_content_upload_point_unavailable">불가능</string>
<string name="screen_audio_content_upload_preview_section_title">미리듣기</string>
<string name="screen_audio_content_upload_preview_generate">생성</string>
<string name="screen_audio_content_upload_preview_not_generate">생성 안 함</string>
<string name="screen_audio_content_upload_preview_time_title">미리듣기 시간 설정</string>
<string name="screen_audio_content_upload_preview_time_desc">미리듣기 시간을 직접 설정하지 않으면 콘텐츠 앞부분 15초가 자동으로 설정됩니다. 미리듣기의 시간제한은 없습니다.</string>
<string name="screen_audio_content_upload_preview_start_time">시작 시간</string>
<string name="screen_audio_content_upload_preview_end_time">종료 시간</string>
<string name="screen_audio_content_upload_preview_start_time_default">00:00:00</string>
<string name="screen_audio_content_upload_preview_end_time_default">00:00:15</string>
<string name="screen_audio_content_upload_age_section_title">연령 제한</string>
<string name="screen_audio_content_upload_age_all">전체 연령</string>
<string name="screen_audio_content_upload_age_19">19세 이상</string>
<string name="screen_audio_content_upload_age_notice">성인콘텐츠를 전체관람가로 등록할 시 발생하는 법적 책임은 회사와 상관 없이 콘텐츠를 등록한 본인에게 있습니다.\n콘텐츠 내용은 물론 제목도 19금 여부를 체크해 주시기 바랍니다.</string>
<string name="screen_audio_content_upload_comment_section_title">댓글 가능 여부</string>
<string name="screen_audio_content_upload_comment_allow">댓글 가능</string>
<string name="screen_audio_content_upload_comment_disallow">댓글 불가</string>
<string name="screen_audio_content_upload_reservation_section_title">예약 공개</string>
<string name="screen_audio_content_upload_active_now">지금 공개</string>
<string name="screen_audio_content_upload_active_reservation">예약 공개</string>
<string name="screen_audio_content_upload_reservation_date">예약 날짜</string>
<string name="screen_audio_content_upload_reservation_time">예약 시간</string>
<string name="screen_audio_content_upload_reservation_date_placeholder">예약 날짜를 선택하세요</string>
<string name="screen_audio_content_upload_reservation_time_placeholder">예약 시간을 설정하세요</string>
<string name="screen_audio_content_upload_cancel">취소</string>
<string name="screen_audio_content_upload_submit">등록</string>
<string name="screen_audio_content_upload_loading_message">콘텐츠를 업로드 하는 중입니다.</string>
<string name="audio_content_upload_dialog_title">콘텐츠 업로드</string>
<string name="audio_content_upload_dialog_desc">등록한 콘텐츠가 업로드 중입니다.\n콘텐츠 등록이 완료되면 알림을 보내드립니다.\n이 페이지를 나가도 콘텐츠는 자동으로 등록됩니다.</string>
<string name="audio_content_upload_error_invalid_file">잘못된 파일입니다.\n다시 선택해 주세요.</string>
<string name="audio_content_upload_error_select_file">파일 선택을 실패했습니다.\n다시 시도해 주세요.</string>
<string name="audio_content_upload_error_cover_required">커버이미지를 선택해 주세요.</string>
<string name="audio_content_upload_error_content_required">오디오 콘텐츠를 선택해 주세요.</string>
<string name="audio_content_upload_error_title_required">제목을 입력해 주세요.</string>
<string name="audio_content_upload_error_detail_min_length">내용을 5자 이상 입력해 주세요.</string>
<string name="audio_content_upload_error_theme_required">테마를 선택해 주세요.</string>
<string name="audio_content_upload_error_preview_format">미리 듣기 시간 형식은 00:30:00 과 같아야 합니다</string>
<string name="audio_content_upload_error_preview_minimum">미리 듣기의 최소 시간은 15초 입니다.</string>
<string name="audio_content_upload_error_preview_both_required">미리 듣기 시작 시간과 종료 시간 둘 다 입력을 하거나 둘 다 입력 하지 않아야 합니다.</string>
<string name="audio_content_upload_error_minimum_price">콘텐츠의 최소금액은 5캔 입니다.</string>
<string name="audio_content_upload_error_reservation_required">예약날짜와 시간을 선택해주세요.</string>
<string name="audio_content_upload_select_audio_title">오디오 선택</string>
<string name="screen_audio_content_new_content">새로운 콘텐츠 등록하기</string> <string name="screen_audio_content_new_content">새로운 콘텐츠 등록하기</string>
<string name="screen_audio_content_sort_newest">최신순</string> <string name="screen_audio_content_sort_newest">최신순</string>
<string name="screen_audio_content_sort_price_high">높은 가격순</string> <string name="screen_audio_content_sort_price_high">높은 가격순</string>