TextMessageDetailActivity 문자열 리소스화
This commit is contained in:
@@ -12,8 +12,8 @@ import java.util.TimeZone
|
|||||||
fun String.convertDateFormat(
|
fun String.convertDateFormat(
|
||||||
from: String,
|
from: String,
|
||||||
to: String,
|
to: String,
|
||||||
inputLocale: Locale = Locale.KOREAN,
|
inputLocale: Locale = Locale.getDefault(),
|
||||||
outputLocale: Locale = Locale.KOREAN
|
outputLocale: Locale = Locale.getDefault()
|
||||||
): String {
|
): String {
|
||||||
val fromDateFormat = SimpleDateFormat(from, inputLocale)
|
val fromDateFormat = SimpleDateFormat(from, inputLocale)
|
||||||
val toDateFormat = SimpleDateFormat(to, outputLocale)
|
val toDateFormat = SimpleDateFormat(to, outputLocale)
|
||||||
|
|||||||
@@ -53,21 +53,24 @@ class TextMessageDetailActivity : BaseActivity<ActivityTextMessageDetailBinding>
|
|||||||
|
|
||||||
when {
|
when {
|
||||||
messageBox!! == MessageBox.RECEIVE.name -> {
|
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.tvKeep.visibility = View.VISIBLE
|
||||||
binding.tvReply.visibility = View.VISIBLE
|
binding.tvReply.visibility = View.VISIBLE
|
||||||
binding.tvDelete.visibility = View.VISIBLE
|
binding.tvDelete.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
|
|
||||||
messageBox == MessageBox.KEEP.name -> {
|
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.tvKeep.visibility = View.GONE
|
||||||
binding.tvReply.visibility = View.GONE
|
binding.tvReply.visibility = View.GONE
|
||||||
binding.tvDelete.visibility = View.VISIBLE
|
binding.tvDelete.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> {
|
else -> {
|
||||||
binding.toolbar.tvBack.text = "보낸 메시지 상세"
|
binding.toolbar.tvBack.text =
|
||||||
|
getString(R.string.screen_message_detail_title_sent)
|
||||||
binding.tvKeep.visibility = View.GONE
|
binding.tvKeep.visibility = View.GONE
|
||||||
binding.tvReply.visibility = View.GONE
|
binding.tvReply.visibility = View.GONE
|
||||||
binding.tvDelete.visibility = View.VISIBLE
|
binding.tvDelete.visibility = View.VISIBLE
|
||||||
@@ -86,7 +89,7 @@ class TextMessageDetailActivity : BaseActivity<ActivityTextMessageDetailBinding>
|
|||||||
if (messageItem!!.isKept) {
|
if (messageItem!!.isKept) {
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
applicationContext,
|
applicationContext,
|
||||||
"이미 보관된 메시지 입니다.",
|
R.string.screen_message_detail_keep_already,
|
||||||
Toast.LENGTH_LONG
|
Toast.LENGTH_LONG
|
||||||
).show()
|
).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
@@ -98,7 +101,7 @@ class TextMessageDetailActivity : BaseActivity<ActivityTextMessageDetailBinding>
|
|||||||
viewModel.deleteMessage {
|
viewModel.deleteMessage {
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
applicationContext,
|
applicationContext,
|
||||||
"메시지가 삭제되었습니다.",
|
R.string.screen_message_detail_delete_success,
|
||||||
Toast.LENGTH_LONG
|
Toast.LENGTH_LONG
|
||||||
).show()
|
).show()
|
||||||
|
|
||||||
@@ -132,13 +135,23 @@ class TextMessageDetailActivity : BaseActivity<ActivityTextMessageDetailBinding>
|
|||||||
binding.tvMessage.text = messageItem?.textMessage
|
binding.tvMessage.text = messageItem?.textMessage
|
||||||
binding.tvDate.text = messageItem?.date!!.convertDateFormat(
|
binding.tvDate.text = messageItem?.date!!.convertDateFormat(
|
||||||
from = "yyyy-MM-dd hh:mm:ss",
|
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() {
|
private fun bindData() {
|
||||||
viewModel.toastLiveData.observe(this) {
|
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) {
|
viewModel.isLoading.observe(this) {
|
||||||
|
|||||||
@@ -5,15 +5,17 @@ import androidx.lifecycle.MutableLiveData
|
|||||||
import com.orhanobut.logger.Logger
|
import com.orhanobut.logger.Logger
|
||||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||||
|
import kr.co.vividnext.sodalive.R
|
||||||
import kr.co.vividnext.sodalive.base.BaseViewModel
|
import kr.co.vividnext.sodalive.base.BaseViewModel
|
||||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
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.MessageRepository
|
||||||
|
|
||||||
class TextMessageDetailViewModel(private val repository: MessageRepository) : BaseViewModel() {
|
class TextMessageDetailViewModel(private val repository: MessageRepository) : BaseViewModel() {
|
||||||
var messageId: Long = 0
|
var messageId: Long = 0
|
||||||
|
|
||||||
private val _toastLiveData = MutableLiveData<String?>()
|
private val _toastLiveData = MutableLiveData<ToastMessage?>()
|
||||||
val toastLiveData: LiveData<String?>
|
val toastLiveData: LiveData<ToastMessage?>
|
||||||
get() = _toastLiveData
|
get() = _toastLiveData
|
||||||
|
|
||||||
private var _isLoading = MutableLiveData(false)
|
private var _isLoading = MutableLiveData(false)
|
||||||
@@ -22,7 +24,7 @@ class TextMessageDetailViewModel(private val repository: MessageRepository) : Ba
|
|||||||
|
|
||||||
fun keepTextMessage() {
|
fun keepTextMessage() {
|
||||||
if (messageId <= 0) {
|
if (messageId <= 0) {
|
||||||
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
_toastLiveData.postValue(ToastMessage(resId = R.string.common_error_unknown))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,21 +41,23 @@ class TextMessageDetailViewModel(private val repository: MessageRepository) : Ba
|
|||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
if (it.success) {
|
if (it.success) {
|
||||||
_toastLiveData.postValue(
|
_toastLiveData.postValue(
|
||||||
"보관되었습니다."
|
ToastMessage(resId = R.string.screen_message_detail_keep_success)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
if (it.message != null) {
|
if (it.message != null) {
|
||||||
_toastLiveData.postValue(it.message)
|
_toastLiveData.postValue(ToastMessage(message = it.message))
|
||||||
} else {
|
} else {
|
||||||
_toastLiveData.postValue(
|
_toastLiveData.postValue(
|
||||||
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
ToastMessage(resId = R.string.common_error_unknown)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
it.message?.let { message -> Logger.e(message) }
|
it.message?.let { message -> Logger.e(message) }
|
||||||
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
_toastLiveData.postValue(
|
||||||
|
ToastMessage(resId = R.string.common_error_unknown)
|
||||||
|
)
|
||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -62,7 +66,7 @@ class TextMessageDetailViewModel(private val repository: MessageRepository) : Ba
|
|||||||
|
|
||||||
fun deleteMessage(onSuccess: () -> Unit) {
|
fun deleteMessage(onSuccess: () -> Unit) {
|
||||||
if (messageId <= 0) {
|
if (messageId <= 0) {
|
||||||
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
_toastLiveData.postValue(ToastMessage(resId = R.string.common_error_unknown))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,17 +85,19 @@ class TextMessageDetailViewModel(private val repository: MessageRepository) : Ba
|
|||||||
onSuccess()
|
onSuccess()
|
||||||
} else {
|
} else {
|
||||||
if (it.message != null) {
|
if (it.message != null) {
|
||||||
_toastLiveData.postValue(it.message)
|
_toastLiveData.postValue(ToastMessage(message = it.message))
|
||||||
} else {
|
} else {
|
||||||
_toastLiveData.postValue(
|
_toastLiveData.postValue(
|
||||||
"알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."
|
ToastMessage(resId = R.string.common_error_unknown)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
it.message?.let { message -> Logger.e(message) }
|
it.message?.let { message -> Logger.e(message) }
|
||||||
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
_toastLiveData.postValue(
|
||||||
|
ToastMessage(resId = R.string.common_error_unknown)
|
||||||
|
)
|
||||||
_isLoading.value = false
|
_isLoading.value = false
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
android:background="@drawable/bg_round_corner_6_7_3bb9f1"
|
android:background="@drawable/bg_round_corner_6_7_3bb9f1"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="답장"
|
android:text="@string/screen_message_detail_action_reply"
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textSize="14.7sp" />
|
android:textSize="14.7sp" />
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
android:background="@drawable/bg_round_corner_6_7_13181b"
|
android:background="@drawable/bg_round_corner_6_7_13181b"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="보관"
|
android:text="@string/screen_message_detail_action_keep"
|
||||||
android:textColor="@color/color_3bb9f1"
|
android:textColor="@color/color_3bb9f1"
|
||||||
android:textSize="14.7sp" />
|
android:textSize="14.7sp" />
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@
|
|||||||
android:background="@drawable/bg_round_corner_6_7_13181b"
|
android:background="@drawable/bg_round_corner_6_7_13181b"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="삭제"
|
android:text="@string/screen_message_detail_action_delete"
|
||||||
android:textColor="@color/color_3bb9f1"
|
android:textColor="@color/color_3bb9f1"
|
||||||
android:textSize="14.7sp" />
|
android:textSize="14.7sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -260,6 +260,16 @@
|
|||||||
<string name="screen_message_empty">No messages.\nTry connecting with friends!</string>
|
<string name="screen_message_empty">No messages.\nTry connecting with friends!</string>
|
||||||
<string name="screen_message_loading_text">Loading text messages…</string>
|
<string name="screen_message_loading_text">Loading text messages…</string>
|
||||||
<string name="screen_message_loading_voice">Loading voice messages…</string>
|
<string name="screen_message_loading_voice">Loading voice messages…</string>
|
||||||
|
<string name="screen_message_detail_title_receive">Received message</string>
|
||||||
|
<string name="screen_message_detail_title_keep">Saved message</string>
|
||||||
|
<string name="screen_message_detail_title_sent">Sent message</string>
|
||||||
|
<string name="screen_message_detail_action_reply">Reply</string>
|
||||||
|
<string name="screen_message_detail_action_keep">Save</string>
|
||||||
|
<string name="screen_message_detail_action_delete">Delete</string>
|
||||||
|
<string name="screen_message_detail_keep_success">Saved.</string>
|
||||||
|
<string name="screen_message_detail_keep_already">Already saved.</string>
|
||||||
|
<string name="screen_message_detail_delete_success">Message deleted.</string>
|
||||||
|
<string name="screen_message_detail_date_format">MMM d, yyyy (EEE) HH:mm</string>
|
||||||
<string name="screen_live_loading">Loading live rooms…</string>
|
<string name="screen_live_loading">Loading live rooms…</string>
|
||||||
<string name="screen_live_cancel_title">Cancel reservation</string>
|
<string name="screen_live_cancel_title">Cancel reservation</string>
|
||||||
<string name="screen_live_cancel_hint">Enter a reason for cancellation.</string>
|
<string name="screen_live_cancel_hint">Enter a reason for cancellation.</string>
|
||||||
|
|||||||
@@ -260,6 +260,16 @@
|
|||||||
<string name="screen_message_empty">メッセージがありません。\n友達と交流してみましょう!</string>
|
<string name="screen_message_empty">メッセージがありません。\n友達と交流してみましょう!</string>
|
||||||
<string name="screen_message_loading_text">テキストメッセージを読み込み中です。</string>
|
<string name="screen_message_loading_text">テキストメッセージを読み込み中です。</string>
|
||||||
<string name="screen_message_loading_voice">ボイスメッセージを読み込み中です。</string>
|
<string name="screen_message_loading_voice">ボイスメッセージを読み込み中です。</string>
|
||||||
|
<string name="screen_message_detail_title_receive">受信メッセージ詳細</string>
|
||||||
|
<string name="screen_message_detail_title_keep">保存メッセージ詳細</string>
|
||||||
|
<string name="screen_message_detail_title_sent">送信メッセージ詳細</string>
|
||||||
|
<string name="screen_message_detail_action_reply">返信</string>
|
||||||
|
<string name="screen_message_detail_action_keep">保存</string>
|
||||||
|
<string name="screen_message_detail_action_delete">削除</string>
|
||||||
|
<string name="screen_message_detail_keep_success">保存しました。</string>
|
||||||
|
<string name="screen_message_detail_keep_already">既に保存されたメッセージです。</string>
|
||||||
|
<string name="screen_message_detail_delete_success">メッセージを削除しました。</string>
|
||||||
|
<string name="screen_message_detail_date_format">yyyy年 MM月 dd日 E曜日 HH:mm</string>
|
||||||
<string name="screen_live_loading">ライブを読み込み中です。</string>
|
<string name="screen_live_loading">ライブを読み込み中です。</string>
|
||||||
<string name="screen_live_cancel_title">予約キャンセル</string>
|
<string name="screen_live_cancel_title">予約キャンセル</string>
|
||||||
<string name="screen_live_cancel_hint">キャンセル理由を入力してください。</string>
|
<string name="screen_live_cancel_hint">キャンセル理由を入力してください。</string>
|
||||||
|
|||||||
@@ -259,6 +259,16 @@
|
|||||||
<string name="screen_message_empty">메시지가 없습니다.\n친구들과 소통해보세요!</string>
|
<string name="screen_message_empty">메시지가 없습니다.\n친구들과 소통해보세요!</string>
|
||||||
<string name="screen_message_loading_text">문자 메시지를 불러오고 있습니다.</string>
|
<string name="screen_message_loading_text">문자 메시지를 불러오고 있습니다.</string>
|
||||||
<string name="screen_message_loading_voice">음성 메시지를 불러오고 있습니다.</string>
|
<string name="screen_message_loading_voice">음성 메시지를 불러오고 있습니다.</string>
|
||||||
|
<string name="screen_message_detail_title_receive">받은 메시지 상세</string>
|
||||||
|
<string name="screen_message_detail_title_keep">저장한 메시지 상세</string>
|
||||||
|
<string name="screen_message_detail_title_sent">보낸 메시지 상세</string>
|
||||||
|
<string name="screen_message_detail_action_reply">답장</string>
|
||||||
|
<string name="screen_message_detail_action_keep">보관</string>
|
||||||
|
<string name="screen_message_detail_action_delete">삭제</string>
|
||||||
|
<string name="screen_message_detail_keep_success">보관되었습니다.</string>
|
||||||
|
<string name="screen_message_detail_keep_already">이미 보관된 메시지 입니다.</string>
|
||||||
|
<string name="screen_message_detail_delete_success">메시지가 삭제되었습니다.</string>
|
||||||
|
<string name="screen_message_detail_date_format">yyyy년 MM월 dd일 E요일 HH:mm</string>
|
||||||
<string name="screen_live_loading">라이브를 불러오고 있습니다.</string>
|
<string name="screen_live_loading">라이브를 불러오고 있습니다.</string>
|
||||||
<string name="screen_live_cancel_title">예약취소</string>
|
<string name="screen_live_cancel_title">예약취소</string>
|
||||||
<string name="screen_live_cancel_hint">취소사유를 입력하세요.</string>
|
<string name="screen_live_cancel_hint">취소사유를 입력하세요.</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user