feat(can-payment): 다국적 통화 표기 지원 및 결제 금액 표시 개선
- KRW 고정 표기에서 벗어나 PG/해외 결제 등 다양한 통화 표기를 정확히 지원하기 위함
This commit is contained in:
@@ -3,7 +3,9 @@ package kr.co.vividnext.sodalive.extensions
|
||||
import android.graphics.Typeface
|
||||
import android.text.SpannableString
|
||||
import kr.co.vividnext.sodalive.common.CustomTypefaceSpan
|
||||
import java.text.NumberFormat
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Currency
|
||||
import java.util.Locale
|
||||
|
||||
fun String.convertDateFormat(
|
||||
@@ -54,3 +56,14 @@ fun String.prefix(length: Int): String {
|
||||
this
|
||||
}
|
||||
}
|
||||
|
||||
fun String.formatMoney(currencyCode: String, locale: Locale = Locale.getDefault()): String {
|
||||
val newCurrency = Currency.getInstance(currencyCode)
|
||||
val nf = NumberFormat.getCurrencyInstance(locale).apply {
|
||||
currency = newCurrency
|
||||
minimumFractionDigits = newCurrency.defaultFractionDigits
|
||||
maximumFractionDigits = newCurrency.defaultFractionDigits
|
||||
}
|
||||
val bd = this.toBigDecimal()
|
||||
return nf.format(bd)
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.databinding.ItemCanChargeBinding
|
||||
import kr.co.vividnext.sodalive.extensions.fontSpan
|
||||
import kr.co.vividnext.sodalive.extensions.moneyFormat
|
||||
import kr.co.vividnext.sodalive.extensions.formatMoney
|
||||
|
||||
class CanChargePgAdapter(
|
||||
private val onClick: (CanResponse) -> Unit
|
||||
@@ -21,7 +21,9 @@ class CanChargePgAdapter(
|
||||
private val binding: ItemCanChargeBinding
|
||||
) : RecyclerView.ViewHolder(binding.root) {
|
||||
fun bind(canCharge: CanResponse) {
|
||||
binding.tvPrice.text = canCharge.price.moneyFormat()
|
||||
binding.tvPrice.text = canCharge.priceStr.formatMoney(
|
||||
currencyCode = canCharge.currency
|
||||
)
|
||||
|
||||
val typeface = ResourcesCompat.getFont(context, R.font.gmarket_sans_medium)
|
||||
binding.tvTitle.text = canCharge.title.fontSpan(
|
||||
|
||||
@@ -17,5 +17,9 @@ data class CanResponse(
|
||||
@SerializedName("rewardCan")
|
||||
val rewardCan: Int,
|
||||
@SerializedName("price")
|
||||
val price: Int
|
||||
val price: Int,
|
||||
@SerializedName("currency")
|
||||
val currency: String,
|
||||
@SerializedName("priceStr")
|
||||
val priceStr: String
|
||||
) : Parcelable
|
||||
|
||||
@@ -28,8 +28,7 @@ import kr.co.vividnext.sodalive.base.BaseActivity
|
||||
import kr.co.vividnext.sodalive.common.Constants
|
||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||
import kr.co.vividnext.sodalive.databinding.ActivityCanPaymentBinding
|
||||
import kr.co.vividnext.sodalive.extensions.fontSpan
|
||||
import kr.co.vividnext.sodalive.extensions.moneyFormat
|
||||
import kr.co.vividnext.sodalive.extensions.formatMoney
|
||||
import kr.co.vividnext.sodalive.mypage.auth.BootpayResponse
|
||||
import kr.co.vividnext.sodalive.mypage.can.charge.pg.CanResponse
|
||||
import kr.co.vividnext.sodalive.mypage.can.charge.pg.VerifyRequest
|
||||
@@ -81,10 +80,11 @@ class CanPaymentActivity : BaseActivity<ActivityCanPaymentBinding>(
|
||||
binding.toolbar.tvBack.setOnClickListener { finish() }
|
||||
|
||||
binding.tvChargeCanTitle.text = canResponse!!.title
|
||||
binding.tvPrice.text = canResponse!!.price.moneyFormat()
|
||||
binding.tvPaymentPrice.text = "${canResponse!!.price.moneyFormat()}원".fontSpan(
|
||||
ResourcesCompat.getFont(applicationContext, R.font.gmarket_sans_light),
|
||||
"원"
|
||||
binding.tvPrice.text = canResponse!!.priceStr.formatMoney(
|
||||
currencyCode = canResponse!!.currency
|
||||
)
|
||||
binding.tvPaymentPrice.text = canResponse!!.priceStr.formatMoney(
|
||||
currencyCode = canResponse!!.currency
|
||||
)
|
||||
|
||||
binding.tvAgree.setOnClickListener {
|
||||
|
||||
@@ -60,33 +60,17 @@
|
||||
tools:text="5000 캔 + 1000 캔" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_price"
|
||||
<TextView
|
||||
android:id="@+id/tv_price"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:fontFamily="@font/gmarket_sans_bold"
|
||||
android:textColor="@color/color_eeeeee"
|
||||
android:textSize="15.3sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_price"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/gmarket_sans_bold"
|
||||
android:textColor="@color/color_eeeeee"
|
||||
android:textSize="15.3sp"
|
||||
tools:text="3,300" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/gmarket_sans_light"
|
||||
android:text=" 원"
|
||||
android:textColor="@color/color_eeeeee"
|
||||
android:textSize="15.3sp" />
|
||||
|
||||
</LinearLayout>
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="3,300" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<TextView
|
||||
|
||||
Reference in New Issue
Block a user