From 480b47ee3de0d95a98b90039d4c5942695d1de0d Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 1 Dec 2025 18:29:43 +0900 Subject: [PATCH] =?UTF-8?q?TextMessageDetailActivity=20=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EC=97=B4=20=EB=A6=AC=EC=86=8C=EC=8A=A4=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../message/text/TextMessageWriteActivity.kt | 20 ++++++++++++++--- .../message/text/TextMessageWriteViewModel.kt | 22 +++++++++++++------ .../layout/activity_text_message_write.xml | 10 ++++----- app/src/main/res/values-en/strings.xml | 9 ++++++++ app/src/main/res/values-ja/strings.xml | 9 ++++++++ app/src/main/res/values/strings.xml | 9 ++++++++ 6 files changed, 64 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageWriteActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageWriteActivity.kt index fd73e1d6..f3bb30a9 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageWriteActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageWriteActivity.kt @@ -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( @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( 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( viewModel.write { Toast.makeText( applicationContext, - "메시지 전송이 완료되었습니다.", + R.string.screen_message_write_toast_send_success, Toast.LENGTH_LONG ).show() @@ -103,7 +106,18 @@ class TextMessageWriteActivity : BaseActivity( ) 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) { diff --git a/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageWriteViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageWriteViewModel.kt index 6fa796a0..20a5d223 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageWriteViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/message/text/TextMessageWriteViewModel.kt @@ -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() - val toastLiveData: LiveData + private val _toastLiveData = MutableLiveData() + val toastLiveData: LiveData 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) } ) diff --git a/app/src/main/res/layout/activity_text_message_write.xml b/app/src/main/res/layout/activity_text_message_write.xml index 9bd38db0..1dd866ec 100644 --- a/app/src/main/res/layout/activity_text_message_write.xml +++ b/app/src/main/res/layout/activity_text_message_write.xml @@ -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" /> diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index f9514838..6ab5ab2c 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -270,6 +270,15 @@ Already saved. Message deleted. MMM d, yyyy (EEE) HH:mm + New message + Send message + Cancel + Recipient + Enter your message + Send message + Please select a recipient. + Please enter a message. + Message sent. Loading live rooms… Cancel reservation Enter a reason for cancellation. diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index ee0b90f8..1f97f42a 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -270,6 +270,15 @@ 既に保存されたメッセージです。 メッセージを削除しました。 yyyy年 MM月 dd日 E曜日 HH:mm + 新規メッセージ + メッセージ送信 + キャンセル + 受信者 + 内容を入力してください + メッセージを送信 + 受信者を選択してください。 + メッセージを入力してください。 + メッセージを送信しました。 ライブを読み込み中です。 予約キャンセル キャンセル理由を入力してください。 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 89a8d50f..74b32ee8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -269,6 +269,15 @@ 이미 보관된 메시지 입니다. 메시지가 삭제되었습니다. yyyy년 MM월 dd일 E요일 HH:mm + 새로운 메시지 + 메시지 보내기 + 취소 + 받는 사람 + 내용을 입력해 주세요 + 메시지 보내기 + 받는 사람을 선택해 주세요. + 메시지를 입력하세요. + 메시지 전송이 완료되었습니다. 라이브를 불러오고 있습니다. 예약취소 취소사유를 입력하세요.