TextMessageDetailActivity 문자열 리소스화

This commit is contained in:
2025-12-01 18:11:41 +09:00
parent 7e4202db1b
commit 2e528f8c7d
7 changed files with 72 additions and 23 deletions

View File

@@ -12,8 +12,8 @@ import java.util.TimeZone
fun String.convertDateFormat(
from: String,
to: String,
inputLocale: Locale = Locale.KOREAN,
outputLocale: Locale = Locale.KOREAN
inputLocale: Locale = Locale.getDefault(),
outputLocale: Locale = Locale.getDefault()
): String {
val fromDateFormat = SimpleDateFormat(from, inputLocale)
val toDateFormat = SimpleDateFormat(to, outputLocale)

View File

@@ -53,21 +53,24 @@ class TextMessageDetailActivity : BaseActivity<ActivityTextMessageDetailBinding>
when {
messageBox!! == MessageBox.RECEIVE.name -> {
binding.toolbar.tvBack.text = "받은 메시지 상세"
binding.toolbar.tvBack.text =
getString(R.string.screen_message_detail_title_receive)
binding.tvKeep.visibility = View.VISIBLE
binding.tvReply.visibility = View.VISIBLE
binding.tvDelete.visibility = View.VISIBLE
}
messageBox == MessageBox.KEEP.name -> {
binding.toolbar.tvBack.text = "저장한 메시지 상세"
binding.toolbar.tvBack.text =
getString(R.string.screen_message_detail_title_keep)
binding.tvKeep.visibility = View.GONE
binding.tvReply.visibility = View.GONE
binding.tvDelete.visibility = View.VISIBLE
}
else -> {
binding.toolbar.tvBack.text = "보낸 메시지 상세"
binding.toolbar.tvBack.text =
getString(R.string.screen_message_detail_title_sent)
binding.tvKeep.visibility = View.GONE
binding.tvReply.visibility = View.GONE
binding.tvDelete.visibility = View.VISIBLE
@@ -86,7 +89,7 @@ class TextMessageDetailActivity : BaseActivity<ActivityTextMessageDetailBinding>
if (messageItem!!.isKept) {
Toast.makeText(
applicationContext,
"이미 보관된 메시지 입니다.",
R.string.screen_message_detail_keep_already,
Toast.LENGTH_LONG
).show()
return@setOnClickListener
@@ -98,7 +101,7 @@ class TextMessageDetailActivity : BaseActivity<ActivityTextMessageDetailBinding>
viewModel.deleteMessage {
Toast.makeText(
applicationContext,
"메시지가 삭제되었습니다.",
R.string.screen_message_detail_delete_success,
Toast.LENGTH_LONG
).show()
@@ -132,13 +135,23 @@ class TextMessageDetailActivity : BaseActivity<ActivityTextMessageDetailBinding>
binding.tvMessage.text = messageItem?.textMessage
binding.tvDate.text = messageItem?.date!!.convertDateFormat(
from = "yyyy-MM-dd hh:mm:ss",
to = "yyyy년 MM월 dd일 E요일 HH:mm"
to = getString(R.string.screen_message_detail_date_format)
)
}
private fun bindData() {
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,15 +5,17 @@ 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
class TextMessageDetailViewModel(private val repository: MessageRepository) : BaseViewModel() {
var messageId: 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)
@@ -22,7 +24,7 @@ class TextMessageDetailViewModel(private val repository: MessageRepository) : Ba
fun keepTextMessage() {
if (messageId <= 0) {
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
_toastLiveData.postValue(ToastMessage(resId = R.string.common_error_unknown))
return
}
@@ -39,21 +41,23 @@ class TextMessageDetailViewModel(private val repository: MessageRepository) : Ba
_isLoading.value = false
if (it.success) {
_toastLiveData.postValue(
"보관되었습니다."
ToastMessage(resId = R.string.screen_message_detail_keep_success)
)
} 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.value = false
}
)
@@ -62,7 +66,7 @@ class TextMessageDetailViewModel(private val repository: MessageRepository) : Ba
fun deleteMessage(onSuccess: () -> Unit) {
if (messageId <= 0) {
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
_toastLiveData.postValue(ToastMessage(resId = R.string.common_error_unknown))
return
}
@@ -81,17 +85,19 @@ class TextMessageDetailViewModel(private val repository: MessageRepository) : Ba
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.value = false
}
)