쿠폰 등록 화면 문자열 리소스화

This commit is contained in:
2025-12-02 15:23:19 +09:00
parent 3cfab2c57b
commit 7023324920
6 changed files with 61 additions and 24 deletions

View File

@@ -4,6 +4,7 @@ import android.os.Bundle
import android.text.InputFilter
import android.widget.Toast
import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.databinding.ActivityCanCouponBinding
import org.koin.android.ext.android.inject
@@ -25,7 +26,7 @@ class CanCouponActivity : BaseActivity<ActivityCanCouponBinding>(
override fun setupView() {
loadingDialog = LoadingDialog(this, layoutInflater)
binding.toolbar.tvBack.text = "쿠폰등록"
binding.toolbar.tvBack.text = getString(R.string.screen_can_coupon_title)
binding.toolbar.tvBack.setOnClickListener { finish() }
binding.etCouponNumber.filters = arrayOf(InputFilter.AllCaps())
@@ -37,7 +38,10 @@ class CanCouponActivity : BaseActivity<ActivityCanCouponBinding>(
private fun bindData() {
viewModel.toastLiveData.observe(this) {
it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() }
val message = it?.resId?.let(::getString) ?: it?.message
message?.let { text ->
Toast.makeText(applicationContext, text, Toast.LENGTH_LONG).show()
}
}
viewModel.isLoading.observe(this) {

View File

@@ -6,7 +6,9 @@ import com.orhanobut.logger.Logger
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.common.ToastMessage
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.mypage.can.CanRepository
class CanCouponViewModel(private val repository: CanRepository) : BaseViewModel() {
@@ -14,8 +16,8 @@ class CanCouponViewModel(private val repository: CanRepository) : BaseViewModel(
val isLoading: LiveData<Boolean>
get() = _isLoading
private val _toastLiveData = MutableLiveData<String?>()
val toastLiveData: LiveData<String?>
private val _toastLiveData = MutableLiveData<ToastMessage?>()
val toastLiveData: LiveData<ToastMessage?>
get() = _toastLiveData
fun useCoupon(couponNumber: String, onSuccess: () -> Unit) {
@@ -31,24 +33,22 @@ class CanCouponViewModel(private val repository: CanRepository) : BaseViewModel(
{
_isLoading.value = false
if (it.success && it.data != null) {
_toastLiveData.value = it.message
_toastLiveData.value = it.message?.let { message ->
ToastMessage(message = message)
}
onSuccess()
} else {
if (it.message != null) {
_toastLiveData.value = it.message
} else {
_toastLiveData.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
}
_toastLiveData.value = it.message?.let { message ->
ToastMessage(message = message)
} ?: ToastMessage(resId = R.string.msg_can_coupon_unknown_error)
}
},
{
_isLoading.value = false
if (it.message != null) {
_toastLiveData.value = it.message
Logger.e(it.message!!)
} else {
_toastLiveData.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
}
it.message?.let { message -> Logger.e(message) }
_toastLiveData.value = it.message?.let { message ->
ToastMessage(message = message)
} ?: ToastMessage(resId = R.string.msg_can_coupon_unknown_error)
}
)