TextMessageDetailActivity 문자열 리소스화
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:fontFamily="@font/gmarket_sans_bold"
|
||||
android:text="새로운 메시지"
|
||||
android:text="@string/screen_message_write_title_new"
|
||||
android:textColor="@color/color_eeeeee"
|
||||
android:textSize="18.3sp" />
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginEnd="13.3dp"
|
||||
android:fontFamily="@font/gmarket_sans_medium"
|
||||
android:text="취소"
|
||||
android:text="@string/screen_message_write_cancel"
|
||||
android:textColor="@color/color_3bb9f1"
|
||||
android:textSize="16.7sp" />
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginStart="13.3dp"
|
||||
android:fontFamily="@font/gmarket_sans_medium"
|
||||
android:text="받는 사람"
|
||||
android:text="@string/screen_message_write_recipient_label"
|
||||
android:textColor="@color/color_777777"
|
||||
android:textSize="16.7sp" />
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
android:background="@null"
|
||||
android:fontFamily="@font/gmarket_sans_medium"
|
||||
android:gravity="top"
|
||||
android:hint="내용을 입력해 주세요"
|
||||
android:hint="@string/screen_message_write_input_hint"
|
||||
android:importantForAutofill="no"
|
||||
android:inputType="textMultiLine"
|
||||
android:minHeight="239dp"
|
||||
@@ -120,7 +120,7 @@
|
||||
android:background="@drawable/bg_round_corner_6_7_3bb9f1"
|
||||
android:fontFamily="@font/gmarket_sans_bold"
|
||||
android:gravity="center"
|
||||
android:text="메시지 보내기"
|
||||
android:text="@string/screen_message_write_button_send"
|
||||
android:textColor="@color/color_eeeeee"
|
||||
android:textSize="14.7sp" />
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -270,6 +270,15 @@
|
||||
<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_message_write_title_new">New message</string>
|
||||
<string name="screen_message_write_title_send">Send message</string>
|
||||
<string name="screen_message_write_cancel">Cancel</string>
|
||||
<string name="screen_message_write_recipient_label">Recipient</string>
|
||||
<string name="screen_message_write_input_hint">Enter your message</string>
|
||||
<string name="screen_message_write_button_send">Send message</string>
|
||||
<string name="screen_message_write_toast_select_recipient">Please select a recipient.</string>
|
||||
<string name="screen_message_write_toast_input_required">Please enter a message.</string>
|
||||
<string name="screen_message_write_toast_send_success">Message sent.</string>
|
||||
<string name="screen_live_loading">Loading live rooms…</string>
|
||||
<string name="screen_live_cancel_title">Cancel reservation</string>
|
||||
<string name="screen_live_cancel_hint">Enter a reason for cancellation.</string>
|
||||
|
||||
@@ -270,6 +270,15 @@
|
||||
<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_message_write_title_new">新規メッセージ</string>
|
||||
<string name="screen_message_write_title_send">メッセージ送信</string>
|
||||
<string name="screen_message_write_cancel">キャンセル</string>
|
||||
<string name="screen_message_write_recipient_label">受信者</string>
|
||||
<string name="screen_message_write_input_hint">内容を入力してください</string>
|
||||
<string name="screen_message_write_button_send">メッセージを送信</string>
|
||||
<string name="screen_message_write_toast_select_recipient">受信者を選択してください。</string>
|
||||
<string name="screen_message_write_toast_input_required">メッセージを入力してください。</string>
|
||||
<string name="screen_message_write_toast_send_success">メッセージを送信しました。</string>
|
||||
<string name="screen_live_loading">ライブを読み込み中です。</string>
|
||||
<string name="screen_live_cancel_title">予約キャンセル</string>
|
||||
<string name="screen_live_cancel_hint">キャンセル理由を入力してください。</string>
|
||||
|
||||
@@ -269,6 +269,15 @@
|
||||
<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_message_write_title_new">새로운 메시지</string>
|
||||
<string name="screen_message_write_title_send">메시지 보내기</string>
|
||||
<string name="screen_message_write_cancel">취소</string>
|
||||
<string name="screen_message_write_recipient_label">받는 사람</string>
|
||||
<string name="screen_message_write_input_hint">내용을 입력해 주세요</string>
|
||||
<string name="screen_message_write_button_send">메시지 보내기</string>
|
||||
<string name="screen_message_write_toast_select_recipient">받는 사람을 선택해 주세요.</string>
|
||||
<string name="screen_message_write_toast_input_required">메시지를 입력하세요.</string>
|
||||
<string name="screen_message_write_toast_send_success">메시지 전송이 완료되었습니다.</string>
|
||||
<string name="screen_live_loading">라이브를 불러오고 있습니다.</string>
|
||||
<string name="screen_live_cancel_title">예약취소</string>
|
||||
<string name="screen_live_cancel_hint">취소사유를 입력하세요.</string>
|
||||
|
||||
Reference in New Issue
Block a user