diff --git a/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/status/CanStatusActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/status/CanStatusActivity.kt index 3f05b57d..2501bb61 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/status/CanStatusActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/status/CanStatusActivity.kt @@ -39,7 +39,7 @@ class CanStatusActivity : BaseActivity( } override fun setupView() { - binding.toolbar.tvBack.text = "캔내역" + binding.toolbar.tvBack.text = getString(R.string.screen_can_status_title) binding.toolbar.tvBack.setOnClickListener { onClickBackButton() } binding.flChargeCan.setOnClickListener { startActivity( @@ -52,8 +52,16 @@ class CanStatusActivity : BaseActivity( loadingDialog = LoadingDialog(this, layoutInflater) val tabs = binding.tabs - tabs.addTab(tabs.newTab().setText("충전내역").setTag("charge_status")) - tabs.addTab(tabs.newTab().setText("사용내역").setTag("use_status")) + tabs.addTab( + tabs.newTab() + .setText(R.string.screen_can_status_tab_charge) + .setTag("charge_status") + ) + tabs.addTab( + tabs.newTab() + .setText(R.string.screen_can_status_tab_use) + .setTag("use_status") + ) changeFragment("charge_status") @@ -113,7 +121,10 @@ class CanStatusActivity : BaseActivity( } 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) { diff --git a/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/status/CanStatusViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/status/CanStatusViewModel.kt index 336c7312..147ce71a 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/status/CanStatusViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/can/status/CanStatusViewModel.kt @@ -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 import kr.co.vividnext.sodalive.mypage.can.status.charge.GetCanChargeStatusResponseItem import kr.co.vividnext.sodalive.mypage.can.status.use.GetCanUseStatusResponseItem @@ -32,8 +34,8 @@ class CanStatusViewModel(private val repository: CanRepository) : BaseViewModel( val canChargeStatusLiveData: LiveData> get() = _canChargeStatusLiveData - private val _toastLiveData = MutableLiveData() - val toastLiveData: LiveData + private val _toastLiveData = MutableLiveData() + val toastLiveData: LiveData get() = _toastLiveData private var _isLoading = MutableLiveData(false) @@ -57,19 +59,17 @@ class CanStatusViewModel(private val repository: CanRepository) : BaseViewModel( _paidCanLiveData.postValue(it.data.chargeCan) _rewardCanLiveData.postValue(it.data.rewardCan) } else { - if (it.message != null) { - _toastLiveData.postValue(it.message) - } else { - _toastLiveData.postValue( - "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." - ) - } + _toastLiveData.postValue( + it.message?.let { message -> + ToastMessage(message = message) + } ?: ToastMessage(resId = R.string.common_error_unknown) + ) } }, { _isLoading.value = false it.message?.let { message -> Logger.e(message) } - _toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") + _toastLiveData.postValue(ToastMessage(resId = R.string.common_error_unknown)) } ) ) @@ -91,19 +91,17 @@ class CanStatusViewModel(private val repository: CanRepository) : BaseViewModel( if (it.success && it.data != null) { _canUseStatusLiveData.postValue(it.data!!) } else { - if (it.message != null) { - _toastLiveData.postValue(it.message) - } else { - _toastLiveData.postValue( - "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." - ) - } + _toastLiveData.postValue( + it.message?.let { message -> + ToastMessage(message = message) + } ?: ToastMessage(resId = R.string.common_error_unknown) + ) } }, { _isLoading.value = false it.message?.let { message -> Logger.e(message) } - _toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") + _toastLiveData.postValue(ToastMessage(resId = R.string.common_error_unknown)) } ) ) @@ -125,19 +123,17 @@ class CanStatusViewModel(private val repository: CanRepository) : BaseViewModel( if (it.success && it.data != null) { _canChargeStatusLiveData.postValue(it.data!!) } else { - if (it.message != null) { - _toastLiveData.postValue(it.message) - } else { - _toastLiveData.postValue( - "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." - ) - } + _toastLiveData.postValue( + it.message?.let { message -> + ToastMessage(message = message) + } ?: ToastMessage(resId = R.string.common_error_unknown) + ) } }, { _isLoading.value = false it.message?.let { message -> Logger.e(message) } - _toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.") + _toastLiveData.postValue(ToastMessage(resId = R.string.common_error_unknown)) } ) ) diff --git a/app/src/main/res/layout/activity_can_status.xml b/app/src/main/res/layout/activity_can_status.xml index 272d121c..e4acdaef 100644 --- a/app/src/main/res/layout/activity_can_status.xml +++ b/app/src/main/res/layout/activity_can_status.xml @@ -60,7 +60,7 @@ android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:fontFamily="@font/gmarket_sans_light" - android:text="결제 캔" + android:text="@string/screen_can_status_label_paid" android:textColor="@color/color_777777" android:textSize="12sp" /> @@ -86,7 +86,7 @@ android:layout_height="wrap_content" android:layout_marginStart="6.7dp" android:fontFamily="@font/gmarket_sans_medium" - android:text="캔" + android:text="@string/screen_can_status_unit" android:textColor="@color/color_bbbbbb" android:textSize="10.7sp" tools:ignore="SmallSp" /> @@ -110,7 +110,7 @@ android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:fontFamily="@font/gmarket_sans_light" - android:text="리워드 캔" + android:text="@string/screen_can_status_label_reward" android:textColor="@color/color_777777" android:textSize="12sp" /> @@ -136,7 +136,7 @@ android:layout_height="wrap_content" android:layout_marginStart="6.7dp" android:fontFamily="@font/gmarket_sans_medium" - android:text="캔" + android:text="@string/screen_can_status_unit" android:textColor="@color/color_bbbbbb" android:textSize="10.7sp" tools:ignore="SmallSp" /> @@ -177,23 +177,22 @@ android:id="@+id/fl_charge_can" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginVertical="13.7dp" - android:layout_weight="2" - android:background="@drawable/bg_round_corner_10_80d8ff" - android:paddingVertical="16dp"> + android:layout_marginVertical="13.7dp" + android:layout_weight="2" + android:background="@drawable/bg_round_corner_10_80d8ff" + android:paddingVertical="16dp"> - + - diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 0f1877c7..4df14e22 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -362,6 +362,14 @@ Earned Used ※ Earned points expire after 72 hours. + + Can history + Top-ups + Usage + Paid cans + Reward cans + cans + Top up Customer service VoiceOn Customer Service diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index ac6b06a4..08068c60 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -362,6 +362,14 @@ 獲得履歴 使用履歴 ※ 獲得したポイントは72時間後に自動失効します。 + + CAN履歴 + チャージ履歴 + 使用履歴 + 決済CAN + リワードCAN + CAN + チャージする カスタマーセンター VoiceOn カスタマーセンター diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d05a572c..9098225c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -361,6 +361,14 @@ 받은내역 사용내역 ※ 획득한 포인트는 72시간이 지나면 자동소멸 됩니다. + + 캔내역 + 충전내역 + 사용내역 + 결제 캔 + 리워드 캔 + + 충전하기 고객센터 보이스온 고객센터