닉네임 변경 화면 문자열 리소스화

This commit is contained in:
2025-12-02 12:24:34 +09:00
parent 5ff35b1da4
commit 3909920a4c
6 changed files with 108 additions and 65 deletions

View File

@@ -6,6 +6,7 @@ import android.widget.Toast
import com.jakewharton.rxbinding4.widget.textChanges
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
@@ -31,7 +32,7 @@ class NicknameUpdateActivity : BaseActivity<ActivityNicknameUpdateBinding>(
}
override fun setupView() {
binding.toolbar.tvBack.text = "닉네임 변경"
binding.toolbar.tvBack.text = getString(R.string.screen_nickname_update_title)
binding.toolbar.tvBack.setOnClickListener { finish() }
loadingDialog = LoadingDialog(this, layoutInflater)
@@ -59,8 +60,9 @@ class NicknameUpdateActivity : BaseActivity<ActivityNicknameUpdateBinding>(
)
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()
}
}
@@ -72,11 +74,12 @@ class NicknameUpdateActivity : BaseActivity<ActivityNicknameUpdateBinding>(
}
}
viewModel.priceLiveData.observe(this) {
if (it > 0) {
binding.tvChangeNickname.text = "${it}캔으로 닉네임 변경하기"
viewModel.priceLiveData.observe(this) { price ->
if (price > 0) {
binding.tvChangeNickname.text =
getString(R.string.screen_nickname_update_submit_with_can, price)
} else {
binding.tvChangeNickname.text = "닉네임 변경하기"
binding.tvChangeNickname.text = getString(R.string.screen_nickname_update_submit)
}
}
}

View File

@@ -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.base.BaseViewModel
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.common.ToastMessage
import kr.co.vividnext.sodalive.mypage.profile.ProfileUpdateRequest
import kr.co.vividnext.sodalive.user.UserRepository
@@ -21,8 +23,8 @@ class NicknameUpdateViewModel(private val repository: UserRepository) : BaseView
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
var isCheckedNickname = false
@@ -40,19 +42,17 @@ class NicknameUpdateViewModel(private val repository: UserRepository) : BaseView
if (it.success && it.data != null) {
_priceLiveData.value = it.data.price
} 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))
}
)
)
@@ -68,31 +68,31 @@ class NicknameUpdateViewModel(private val repository: UserRepository) : BaseView
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
_isLoading.value = false
if (it.success) {
isCheckedNickname = true
_toastLiveData.postValue("사용가능한 닉네임 입니다.")
} else {
if (it.message != null) {
_toastLiveData.postValue(it.message)
} else {
_toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
)
}
}
},
{
_isLoading.value = false
it.message?.let { message -> Logger.e(message) }
_isLoading.value = false
if (it.success) {
isCheckedNickname = true
_toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
ToastMessage(resId = R.string.msg_nickname_update_available)
)
} else {
_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(ToastMessage(resId = R.string.common_error_unknown))
}
)
)
} else {
_toastLiveData.postValue(
ToastMessage(resId = R.string.msg_nickname_update_input_required)
)
} else {
_toastLiveData.postValue("닉네임을 입력하세요.")
}
}
@@ -111,32 +111,32 @@ class NicknameUpdateViewModel(private val repository: UserRepository) : BaseView
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
_isLoading.value = false
if (it.success) {
_toastLiveData.postValue("닉네임이 변경되었습니다.")
SharedPreferenceManager.nickname = nickname
onSuccess()
} else {
if (it.message != null) {
_toastLiveData.postValue(it.message)
} else {
_toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
)
}
}
},
{
_isLoading.value = false
it.message?.let { message -> Logger.e(message) }
_isLoading.value = false
if (it.success) {
_toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
ToastMessage(resId = R.string.msg_nickname_update_success)
)
SharedPreferenceManager.nickname = nickname
onSuccess()
} else {
_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(ToastMessage(resId = R.string.common_error_unknown))
}
)
)
} else {
_toastLiveData.postValue(
ToastMessage(resId = R.string.msg_nickname_update_check_required)
)
} else {
_toastLiveData.postValue("닉네임 중복체크를 해주세요.")
}
}
}