TextMessageDetailActivity 문자열 리소스화

This commit is contained in:
2025-12-01 18:29:43 +09:00
parent 2e528f8c7d
commit 480b47ee3d
6 changed files with 64 additions and 15 deletions

View File

@@ -12,6 +12,7 @@ import androidx.core.content.IntentCompat
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.Constants
import kr.co.vividnext.sodalive.common.LoadingDialog
@@ -58,6 +59,8 @@ class TextMessageWriteActivity : BaseActivity<ActivityTextMessageWriteBinding>(
@SuppressLint("SetTextI18n")
override fun setupView() {
loadingDialog = LoadingDialog(this, layoutInflater)
binding.tvTitle.setText(R.string.screen_message_write_title_new)
binding.tvSend.setText(R.string.screen_message_write_button_send)
val replySenderNickname = intent.getStringExtra(Constants.EXTRA_NICKNAME)
val replySenderId = intent.getLongExtra(Constants.EXTRA_USER_ID, 0)
@@ -67,7 +70,7 @@ class TextMessageWriteActivity : BaseActivity<ActivityTextMessageWriteBinding>(
binding.tvRecipientNickname.text = replySenderNickname
viewModel.recipientId = replySenderId
binding.tvTitle.text = "메시지 보내기"
binding.tvTitle.setText(R.string.screen_message_write_title_send)
}
binding.tvCancel.setOnClickListener { finish() }
@@ -76,7 +79,7 @@ class TextMessageWriteActivity : BaseActivity<ActivityTextMessageWriteBinding>(
viewModel.write {
Toast.makeText(
applicationContext,
"메시지 전송이 완료되었습니다.",
R.string.screen_message_write_toast_send_success,
Toast.LENGTH_LONG
).show()
@@ -103,7 +106,18 @@ class TextMessageWriteActivity : BaseActivity<ActivityTextMessageWriteBinding>(
)
viewModel.toastLiveData.observe(this) {
it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() }
it?.let { toast ->
val message = toast.message
val text = message ?: toast.resId?.let { resId -> getString(resId) }
text?.let { textMessage ->
Toast.makeText(
applicationContext,
textMessage,
Toast.LENGTH_LONG
).show()
}
}
}
viewModel.isLoading.observe(this) {

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.message.MessageRepository
import kr.co.vividnext.sodalive.message.SendTextMessageRequest
@@ -14,8 +16,8 @@ class TextMessageWriteViewModel(private val repository: MessageRepository) : Bas
var textMessage = ""
var recipientId: Long = 0
private val _toastLiveData = MutableLiveData<String?>()
val toastLiveData: LiveData<String?>
private val _toastLiveData = MutableLiveData<ToastMessage?>()
val toastLiveData: LiveData<ToastMessage?>
get() = _toastLiveData
private var _isLoading = MutableLiveData(false)
@@ -24,12 +26,16 @@ class TextMessageWriteViewModel(private val repository: MessageRepository) : Bas
fun write(onSuccess: () -> Unit) {
if (recipientId <= 0) {
_toastLiveData.postValue("받는 사람을 선택해 주세요.")
_toastLiveData.postValue(
ToastMessage(resId = R.string.screen_message_write_toast_select_recipient)
)
return
}
if (textMessage.isBlank()) {
_toastLiveData.postValue("메시지를 입력하세요.")
_toastLiveData.postValue(
ToastMessage(resId = R.string.screen_message_write_toast_input_required)
)
return
}
@@ -49,17 +55,19 @@ class TextMessageWriteViewModel(private val repository: MessageRepository) : Bas
onSuccess()
} else {
if (it.message != null) {
_toastLiveData.postValue(it.message)
_toastLiveData.postValue(ToastMessage(message = it.message))
} else {
_toastLiveData.postValue(
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
ToastMessage(resId = R.string.common_error_unknown)
)
}
}
},
{
it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
_toastLiveData.postValue(
ToastMessage(resId = R.string.common_error_unknown)
)
_isLoading.postValue(false)
}
)