오디오 콘텐츠 주문 화면 문자열 리소스화
주문 목록/확인 UI의 텍스트를 ko/en/ja 리소스로 이전
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
package kr.co.vividnext.sodalive.audio_content.box
|
||||
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.widget.LinearLayout
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import kr.co.vividnext.sodalive.R
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package kr.co.vividnext.sodalive.audio_content.order
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
@@ -17,7 +16,6 @@ import kr.co.vividnext.sodalive.databinding.DialogAudioContentOrderConfirmBindin
|
||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||
import kr.co.vividnext.sodalive.extensions.moneyFormat
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
class AudioContentOrderConfirmDialog(
|
||||
activity: Activity,
|
||||
layoutInflater: LayoutInflater,
|
||||
@@ -38,6 +36,7 @@ class AudioContentOrderConfirmDialog(
|
||||
val dialogView = DialogAudioContentOrderConfirmBinding.inflate(layoutInflater)
|
||||
|
||||
init {
|
||||
val context = dialogView.root.context
|
||||
val dialogBuilder = AlertDialog.Builder(activity)
|
||||
dialogBuilder.setView(dialogView.root)
|
||||
|
||||
@@ -82,7 +81,10 @@ class AudioContentOrderConfirmDialog(
|
||||
dialogView.tvPoint.visibility = View.GONE
|
||||
dialogView.tvPlus.visibility = View.GONE
|
||||
dialogView.ivCan.visibility = View.GONE
|
||||
dialogView.tvCan.text = "${(price * 110).moneyFormat()}원"
|
||||
dialogView.tvCan.text = context.getString(
|
||||
R.string.audio_content_order_price_won_format,
|
||||
(price * 110).moneyFormat()
|
||||
)
|
||||
} else {
|
||||
if (usablePoint > 0) {
|
||||
dialogView.ivPoint.visibility = View.VISIBLE
|
||||
@@ -111,19 +113,19 @@ class AudioContentOrderConfirmDialog(
|
||||
}
|
||||
}
|
||||
|
||||
if (SharedPreferenceManager.userId == 17958L) {
|
||||
dialogView.tvNotice.text = if (orderType == OrderType.RENTAL) {
|
||||
"콘텐츠를 대여하시겠습니까?"
|
||||
} else {
|
||||
"콘텐츠를 소장하시겠습니까?"
|
||||
}
|
||||
} else {
|
||||
dialogView.tvNotice.text = if (orderType == OrderType.RENTAL) {
|
||||
"콘텐츠를 대여하시겠습니까?\n아래 금액이 차감됩니다."
|
||||
} else {
|
||||
"콘텐츠를 소장하시겠습니까?\n아래 금액이 차감됩니다."
|
||||
}
|
||||
val noticeResId = when {
|
||||
SharedPreferenceManager.userId == 17958L && orderType == OrderType.RENTAL ->
|
||||
R.string.audio_content_order_confirm_notice_rental_simple
|
||||
|
||||
SharedPreferenceManager.userId == 17958L && orderType == OrderType.KEEP ->
|
||||
R.string.audio_content_order_confirm_notice_keep_simple
|
||||
|
||||
orderType == OrderType.RENTAL ->
|
||||
R.string.audio_content_order_confirm_notice_rental
|
||||
|
||||
else -> R.string.audio_content_order_confirm_notice_keep
|
||||
}
|
||||
dialogView.tvNotice.text = dialogView.root.context.getString(noticeResId)
|
||||
|
||||
dialogView.tvCancel.setOnClickListener {
|
||||
alertDialog.dismiss()
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package kr.co.vividnext.sodalive.audio_content.order
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||
import kr.co.vividnext.sodalive.databinding.FragmentAudioContentOrderBinding
|
||||
import kr.co.vividnext.sodalive.extensions.moneyFormat
|
||||
@@ -28,23 +28,31 @@ class AudioContentOrderFragment(
|
||||
return binding.root
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val context = requireContext()
|
||||
if (SharedPreferenceManager.userId == 17958L) {
|
||||
binding.tvKeepDate.text = "(이용기간 1년)"
|
||||
binding.tvKeepDate.text =
|
||||
context.getString(R.string.audio_content_order_keep_period_special)
|
||||
binding.ivKeepCan.visibility = View.GONE
|
||||
binding.ivRentalCan.visibility = View.GONE
|
||||
} else {
|
||||
binding.tvKeepDate.text = "(서비스 종료시까지)"
|
||||
binding.tvKeepDate.text =
|
||||
context.getString(R.string.audio_content_order_keep_period_default)
|
||||
binding.ivKeepCan.visibility = View.VISIBLE
|
||||
binding.ivRentalCan.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
if (SharedPreferenceManager.userId == 17958L) {
|
||||
binding.tvKeep.text = "${(price * 110).moneyFormat()}원"
|
||||
binding.tvRental.text = "${(ceil(price * 0.7).toInt() * 110).moneyFormat()}원"
|
||||
binding.tvKeep.text = context.getString(
|
||||
R.string.audio_content_order_price_won_format,
|
||||
(price * 110).moneyFormat()
|
||||
)
|
||||
binding.tvRental.text = context.getString(
|
||||
R.string.audio_content_order_price_won_format,
|
||||
(ceil(price * 0.7).toInt() * 110).moneyFormat()
|
||||
)
|
||||
} else {
|
||||
binding.tvKeep.text = price.moneyFormat()
|
||||
binding.tvRental.text = ceil(price * 0.7).toInt().moneyFormat()
|
||||
|
||||
@@ -33,7 +33,7 @@ class AudioContentOrderListActivity : BaseActivity<ActivityAudioContentOrderList
|
||||
}
|
||||
|
||||
private fun setupToolbar() {
|
||||
binding.toolbar.tvBack.text = "콘텐츠 보관함"
|
||||
binding.toolbar.tvBack.text = getString(R.string.screen_audio_content_order_title)
|
||||
binding.toolbar.tvBack.setOnClickListener { finish() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ class AudioContentOrderListFragment : BaseFragment<FragmentAudioContentOrderList
|
||||
}
|
||||
|
||||
viewModel.totalCount.observe(viewLifecycleOwner) {
|
||||
binding.tvTotalCount.text = "$it"
|
||||
binding.tvTotalCount.text = it.toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,10 @@ import androidx.lifecycle.MutableLiveData
|
||||
import com.orhanobut.logger.Logger
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
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.base.BaseViewModel
|
||||
import kr.co.vividnext.sodalive.common.SodaLiveApplicationHolder
|
||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||
|
||||
class AudioContentOrderListViewModel(
|
||||
@@ -34,6 +36,7 @@ class AudioContentOrderListViewModel(
|
||||
private val size = 10
|
||||
|
||||
fun getAudioContentOrderList(onFailure: (() -> Unit)? = null) {
|
||||
val unknownError = SodaLiveApplicationHolder.get().getString(R.string.common_error_unknown)
|
||||
if (_isLoading.value == false) {
|
||||
_isLoading.value = true
|
||||
compositeDisposable.add(
|
||||
@@ -59,9 +62,7 @@ class AudioContentOrderListViewModel(
|
||||
if (it.message != null) {
|
||||
_toastLiveData.postValue(it.message)
|
||||
} else {
|
||||
_toastLiveData.postValue(
|
||||
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
||||
)
|
||||
_toastLiveData.postValue(unknownError)
|
||||
}
|
||||
|
||||
if (onFailure != null) {
|
||||
@@ -73,7 +74,7 @@ class AudioContentOrderListViewModel(
|
||||
{
|
||||
_isLoading.value = false
|
||||
it.message?.let { message -> Logger.e(message) }
|
||||
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
||||
_toastLiveData.postValue(unknownError)
|
||||
if (onFailure != null) {
|
||||
onFailure()
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/gmarket_sans_bold"
|
||||
android:gravity="center"
|
||||
android:text="구매확인"
|
||||
android:text="@string/audio_content_order_confirm_title"
|
||||
android:textColor="@color/color_eeeeee"
|
||||
android:textSize="18.3sp" />
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
android:gravity="center"
|
||||
android:textColor="@color/color_eeeeee"
|
||||
android:textSize="13.3sp"
|
||||
tools:text="콘텐츠를 소장하시겠습니까?\n아래 캔이 차감됩니다." />
|
||||
tools:text="@string/audio_content_order_confirm_notice_keep" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -153,7 +153,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/gmarket_sans_medium"
|
||||
android:text="+"
|
||||
android:text="@string/audio_content_order_plus"
|
||||
android:visibility="gone"
|
||||
android:layout_marginHorizontal="10dp"
|
||||
android:textColor="@color/color_eeeeee"
|
||||
@@ -192,7 +192,7 @@
|
||||
android:fontFamily="@font/gmarket_sans_bold"
|
||||
android:gravity="center"
|
||||
android:paddingVertical="15.7dp"
|
||||
android:text="취소"
|
||||
android:text="@string/cancel"
|
||||
android:textColor="@color/color_3bb9f1"
|
||||
android:textSize="18.3sp" />
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
android:fontFamily="@font/gmarket_sans_bold"
|
||||
android:gravity="center"
|
||||
android:paddingVertical="15.7dp"
|
||||
android:text="확인"
|
||||
android:text="@string/confirm"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="18.3sp" />
|
||||
</LinearLayout>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/gmarket_sans_bold"
|
||||
android:text="대여"
|
||||
android:text="@string/audio_content_order_label_rental"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13.3sp" />
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/gmarket_sans_light"
|
||||
android:text="(이용기간 5일)"
|
||||
android:text="@string/audio_content_order_label_rental_period"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp" />
|
||||
</LinearLayout>
|
||||
@@ -80,7 +80,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/gmarket_sans_bold"
|
||||
android:text="소장"
|
||||
android:text="@string/audio_content_order_label_keep"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="13.3sp" />
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/gmarket_sans_light"
|
||||
android:text="(이용기간 1년)"
|
||||
android:text="@string/audio_content_order_keep_period_default"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp" />
|
||||
</LinearLayout>
|
||||
|
||||
@@ -11,8 +11,9 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="13.3dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:fontFamily="@font/gmarket_sans_medium"
|
||||
android:text="총 "
|
||||
android:text="@string/screen_audio_content_order_total_prefix"
|
||||
android:textColor="@color/color_eeeeee"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -22,6 +23,7 @@
|
||||
android:id="@+id/tv_total_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="4dp"
|
||||
android:fontFamily="@font/gmarket_sans_medium"
|
||||
android:textColor="@color/color_dd4500"
|
||||
android:textSize="12sp"
|
||||
@@ -33,7 +35,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/gmarket_sans_medium"
|
||||
android:text=" 개"
|
||||
android:text="@string/audio_content_total_unit"
|
||||
android:textColor="@color/color_eeeeee"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_total_count"
|
||||
|
||||
@@ -842,6 +842,20 @@
|
||||
<string name="screen_audio_content_sort_price_low">Price: Low to High</string>
|
||||
<string name="screen_audio_content_sort_popularity">Popularity</string>
|
||||
<string name="screen_audio_content_empty">No content to display.</string>
|
||||
<string name="screen_audio_content_order_title">Content library</string>
|
||||
<string name="screen_audio_content_order_total_prefix">Total</string>
|
||||
<string name="audio_content_order_label_rental">Rent</string>
|
||||
<string name="audio_content_order_label_rental_period">(Valid for 5 days)</string>
|
||||
<string name="audio_content_order_label_keep">Own</string>
|
||||
<string name="audio_content_order_keep_period_default">(Until service ends)</string>
|
||||
<string name="audio_content_order_keep_period_special">(Valid for 1 year)</string>
|
||||
<string name="audio_content_order_price_won_format">₩%1$s</string>
|
||||
<string name="audio_content_order_confirm_title">Purchase confirmation</string>
|
||||
<string name="audio_content_order_confirm_notice_rental">Rent this content?\nThe amount below will be charged.</string>
|
||||
<string name="audio_content_order_confirm_notice_keep">Own this content?\nThe amount below will be charged.</string>
|
||||
<string name="audio_content_order_confirm_notice_rental_simple">Rent this content?</string>
|
||||
<string name="audio_content_order_confirm_notice_keep_simple">Own this content?</string>
|
||||
<string name="audio_content_order_plus">+</string>
|
||||
<string name="audio_content_label_all">All</string>
|
||||
<string name="audio_content_total_unit">items</string>
|
||||
<string name="audio_content_price_free">Free</string>
|
||||
|
||||
@@ -842,6 +842,20 @@
|
||||
<string name="screen_audio_content_sort_price_low">価格が低い順</string>
|
||||
<string name="screen_audio_content_sort_popularity">人気順</string>
|
||||
<string name="screen_audio_content_empty">表示できるコンテンツがありません。</string>
|
||||
<string name="screen_audio_content_order_title">コンテンツライブラリ</string>
|
||||
<string name="screen_audio_content_order_total_prefix">合計</string>
|
||||
<string name="audio_content_order_label_rental">レンタル</string>
|
||||
<string name="audio_content_order_label_rental_period">(利用期間5日)</string>
|
||||
<string name="audio_content_order_label_keep">購入</string>
|
||||
<string name="audio_content_order_keep_period_default">(サービス終了まで)</string>
|
||||
<string name="audio_content_order_keep_period_special">(利用期間1年)</string>
|
||||
<string name="audio_content_order_price_won_format">₩%1$s</string>
|
||||
<string name="audio_content_order_confirm_title">購入確認</string>
|
||||
<string name="audio_content_order_confirm_notice_rental">このコンテンツをレンタルしますか?\n下記の金額が差し引かれます。</string>
|
||||
<string name="audio_content_order_confirm_notice_keep">このコンテンツを購入しますか?\n下記の金額が差し引かれます。</string>
|
||||
<string name="audio_content_order_confirm_notice_rental_simple">このコンテンツをレンタルしますか?</string>
|
||||
<string name="audio_content_order_confirm_notice_keep_simple">このコンテンツを購入しますか?</string>
|
||||
<string name="audio_content_order_plus">+</string>
|
||||
<string name="audio_content_label_all">すべて</string>
|
||||
<string name="audio_content_total_unit">件</string>
|
||||
<string name="audio_content_price_free">無料</string>
|
||||
|
||||
@@ -841,6 +841,20 @@
|
||||
<string name="screen_audio_content_sort_price_low">낮은 가격순</string>
|
||||
<string name="screen_audio_content_sort_popularity">인기순</string>
|
||||
<string name="screen_audio_content_empty">표시할 콘텐츠가 없습니다.</string>
|
||||
<string name="screen_audio_content_order_title">콘텐츠 보관함</string>
|
||||
<string name="screen_audio_content_order_total_prefix">총</string>
|
||||
<string name="audio_content_order_label_rental">대여</string>
|
||||
<string name="audio_content_order_label_rental_period">(이용기간 5일)</string>
|
||||
<string name="audio_content_order_label_keep">소장</string>
|
||||
<string name="audio_content_order_keep_period_default">(서비스 종료시까지)</string>
|
||||
<string name="audio_content_order_keep_period_special">(이용기간 1년)</string>
|
||||
<string name="audio_content_order_price_won_format">%1$s원</string>
|
||||
<string name="audio_content_order_confirm_title">구매확인</string>
|
||||
<string name="audio_content_order_confirm_notice_rental">콘텐츠를 대여하시겠습니까?\n아래 금액이 차감됩니다.</string>
|
||||
<string name="audio_content_order_confirm_notice_keep">콘텐츠를 소장하시겠습니까?\n아래 금액이 차감됩니다.</string>
|
||||
<string name="audio_content_order_confirm_notice_rental_simple">콘텐츠를 대여하시겠습니까?</string>
|
||||
<string name="audio_content_order_confirm_notice_keep_simple">콘텐츠를 소장하시겠습니까?</string>
|
||||
<string name="audio_content_order_plus">+</string>
|
||||
<string name="audio_content_label_all">전체</string>
|
||||
<string name="audio_content_total_unit">개</string>
|
||||
<string name="audio_content_price_free">무료</string>
|
||||
|
||||
Reference in New Issue
Block a user