From 19b74b26712502ffd18b7b032d70a24774a8f654 Mon Sep 17 00:00:00 2001 From: klaus Date: Tue, 2 Dec 2025 14:14:33 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8F=AC=EC=9D=B8=ED=8A=B8=20=EB=82=B4?= =?UTF-8?q?=EC=97=AD=20=ED=99=94=EB=A9=B4=20=EB=AC=B8=EC=9E=90=EC=97=B4=20?= =?UTF-8?q?=EB=A6=AC=EC=86=8C=EC=8A=A4=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mypage/point/PointStatusActivity.kt | 19 ++++++-- .../mypage/point/PointStatusViewModel.kt | 48 +++++++++---------- .../main/res/layout/activity_point_status.xml | 2 +- app/src/main/res/values-en/strings.xml | 5 ++ app/src/main/res/values-ja/strings.xml | 5 ++ app/src/main/res/values/strings.xml | 5 ++ 6 files changed, 53 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/mypage/point/PointStatusActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/point/PointStatusActivity.kt index 3097f2c6..ecc7c430 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/point/PointStatusActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/point/PointStatusActivity.kt @@ -37,14 +37,22 @@ class PointStatusActivity : BaseActivity( } override fun setupView() { - binding.toolbar.tvBack.text = "포인트 내역" + binding.toolbar.tvBack.text = getString(R.string.screen_point_status_title) binding.toolbar.tvBack.setOnClickListener { onClickBackButton() } loadingDialog = LoadingDialog(this, layoutInflater) val tabs = binding.tabs - tabs.addTab(tabs.newTab().setText("받은내역").setTag("reward_status")) - tabs.addTab(tabs.newTab().setText("사용내역").setTag("use_status")) + tabs.addTab( + tabs.newTab() + .setText(R.string.screen_point_status_tab_reward) + .setTag("reward_status") + ) + tabs.addTab( + tabs.newTab() + .setText(R.string.screen_point_status_tab_use) + .setTag("use_status") + ) changeFragment("reward_status") @@ -96,7 +104,10 @@ class PointStatusActivity : 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/point/PointStatusViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/mypage/point/PointStatusViewModel.kt index adb5e85e..b915b35c 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/mypage/point/PointStatusViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/mypage/point/PointStatusViewModel.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.point.reward.GetPointRewardStatusResponse import kr.co.vividnext.sodalive.mypage.point.use.GetPointUseStatusResponse @@ -23,8 +25,8 @@ class PointStatusViewModel(private val repository: PointStatusRepository) : Base val pointRewardStatusLiveData: LiveData> get() = _pointRewardStatusLiveData - private val _toastLiveData = MutableLiveData() - val toastLiveData: LiveData + private val _toastLiveData = MutableLiveData() + val toastLiveData: LiveData get() = _toastLiveData private var _isLoading = MutableLiveData(false) @@ -43,19 +45,17 @@ class PointStatusViewModel(private val repository: PointStatusRepository) : Base if (it.success && it.data != null) { _totalPointLiveData.value = it.data.point } 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)) } ) ) @@ -73,19 +73,17 @@ class PointStatusViewModel(private val repository: PointStatusRepository) : Base if (it.success && it.data != null) { _pointRewardStatusLiveData.value = 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)) } ) ) @@ -103,19 +101,17 @@ class PointStatusViewModel(private val repository: PointStatusRepository) : Base if (it.success && it.data != null) { _pointUseStatusLiveData.value = 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_point_status.xml b/app/src/main/res/layout/activity_point_status.xml index 8316d2d0..98c97e46 100644 --- a/app/src/main/res/layout/activity_point_status.xml +++ b/app/src/main/res/layout/activity_point_status.xml @@ -49,7 +49,7 @@ android:layout_marginTop="13.3dp" android:fontFamily="@font/gmarket_sans_medium" android:gravity="center" - android:text="※ 획득한 포인트는 72시간이 지나면 자동소멸 됩니다." + android:text="@string/screen_point_status_notice" android:textColor="@color/color_eeeeee" android:textSize="13.3sp" /> diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 8ef470ac..0f1877c7 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -357,6 +357,11 @@ Select interests Apply selection + + Point history + Earned + Used + ※ Earned points expire after 72 hours. 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 ca0fdbbd..ac6b06a4 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -357,6 +357,11 @@ 関心事を選択 選択する + + ポイント履歴 + 獲得履歴 + 使用履歴 + ※ 獲得したポイントは72時間後に自動失効します。 カスタマーセンター VoiceOn カスタマーセンター diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0c97d2d5..d05a572c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -356,6 +356,11 @@ 관심사 선택 선택하기 + + 포인트 내역 + 받은내역 + 사용내역 + ※ 획득한 포인트는 72시간이 지나면 자동소멸 됩니다. 고객센터 보이스온 고객센터