VoiceMessageWriteFragment 문자열 리소스화
This commit is contained in:
@@ -96,7 +96,7 @@ class VoiceMessageWriteFragment(
|
|||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setDeniedMessage("오디오 녹음 권한을 거부하시면 음성 메시지를 이용하실 수 없습니다.")
|
.setDeniedMessage(getString(R.string.screen_voice_message_write_permission_denied))
|
||||||
.setPermissions(Manifest.permission.RECORD_AUDIO)
|
.setPermissions(Manifest.permission.RECORD_AUDIO)
|
||||||
.check()
|
.check()
|
||||||
}
|
}
|
||||||
@@ -173,7 +173,7 @@ class VoiceMessageWriteFragment(
|
|||||||
if (viewModel.recipientId <= 0) {
|
if (viewModel.recipientId <= 0) {
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
"받는 사람을 선택해 주세요.",
|
R.string.screen_message_write_toast_select_recipient,
|
||||||
Toast.LENGTH_LONG
|
Toast.LENGTH_LONG
|
||||||
).show()
|
).show()
|
||||||
|
|
||||||
@@ -246,7 +246,16 @@ class VoiceMessageWriteFragment(
|
|||||||
|
|
||||||
private fun bindData() {
|
private fun bindData() {
|
||||||
viewModel.toastLiveData.observe(viewLifecycleOwner) {
|
viewModel.toastLiveData.observe(viewLifecycleOwner) {
|
||||||
it?.let { Toast.makeText(requireActivity(), it, Toast.LENGTH_LONG).show() }
|
it?.let { toast ->
|
||||||
|
val message = toast.message
|
||||||
|
val text = if (message != null) {
|
||||||
|
message
|
||||||
|
} else {
|
||||||
|
toast.resId?.let { resId -> getString(resId) }
|
||||||
|
}
|
||||||
|
|
||||||
|
text?.let { Toast.makeText(requireActivity(), it, Toast.LENGTH_LONG).show() }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.isLoading.observe(this) {
|
viewModel.isLoading.observe(this) {
|
||||||
|
|||||||
@@ -6,8 +6,10 @@ import com.google.gson.Gson
|
|||||||
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
|
||||||
import kr.co.vividnext.sodalive.message.SendVoiceMessageRequest
|
import kr.co.vividnext.sodalive.message.SendVoiceMessageRequest
|
||||||
import okhttp3.MediaType.Companion.toMediaType
|
import okhttp3.MediaType.Companion.toMediaType
|
||||||
@@ -19,8 +21,8 @@ import java.io.File
|
|||||||
class VoiceMessageWriteViewModel(private val repository: MessageRepository) : BaseViewModel() {
|
class VoiceMessageWriteViewModel(private val repository: MessageRepository) : BaseViewModel() {
|
||||||
var recipientId: Long = 0
|
var recipientId: 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)
|
||||||
@@ -29,7 +31,9 @@ class VoiceMessageWriteViewModel(private val repository: MessageRepository) : Ba
|
|||||||
|
|
||||||
fun write(file: File, onSuccess: () -> Unit) {
|
fun write(file: File, onSuccess: () -> Unit) {
|
||||||
if (recipientId <= 0) {
|
if (recipientId <= 0) {
|
||||||
_toastLiveData.postValue("받는 사람을 선택해 주세요.")
|
_toastLiveData.postValue(
|
||||||
|
ToastMessage(resId = R.string.screen_message_write_toast_select_recipient)
|
||||||
|
)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,21 +58,25 @@ class VoiceMessageWriteViewModel(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_write_toast_send_success)
|
||||||
|
)
|
||||||
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.postValue(false)
|
_isLoading.postValue(false)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:paddingHorizontal="26.7dp"
|
android:paddingHorizontal="26.7dp"
|
||||||
android:paddingTop="26.7dp"
|
android:paddingTop="26.7dp"
|
||||||
android:text="음성메시지"
|
android:text="@string/screen_voice_message_write_title"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="18.3sp"
|
android:textSize="18.3sp"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fontFamily="@font/gmarket_sans_medium"
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
android:text="TO."
|
android:text="@string/screen_voice_message_write_recipient_prefix"
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textSize="13.3sp" />
|
android:textSize="13.3sp" />
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:fontFamily="@font/gmarket_sans_light"
|
android:fontFamily="@font/gmarket_sans_light"
|
||||||
android:text="받는 사람"
|
android:text="@string/screen_voice_message_write_recipient_placeholder"
|
||||||
android:textColor="@color/color_bbbbbb"
|
android:textColor="@color/color_bbbbbb"
|
||||||
android:textSize="16.7sp" />
|
android:textSize="16.7sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@@ -160,7 +160,7 @@
|
|||||||
android:layout_marginStart="60dp"
|
android:layout_marginStart="60dp"
|
||||||
android:layout_toEndOf="@+id/iv_record_play"
|
android:layout_toEndOf="@+id/iv_record_play"
|
||||||
android:fontFamily="@font/gmarket_sans_medium"
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
android:text="삭제"
|
android:text="@string/screen_message_detail_action_delete"
|
||||||
android:textColor="@color/color_bbbbbb"
|
android:textColor="@color/color_bbbbbb"
|
||||||
android:textSize="15.3sp" />
|
android:textSize="15.3sp" />
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
android:background="@drawable/bg_round_corner_10_13181b_3bb9f1"
|
android:background="@drawable/bg_round_corner_10_13181b_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_voice_message_write_retry"
|
||||||
android:textColor="@color/color_3bb9f1"
|
android:textColor="@color/color_3bb9f1"
|
||||||
android:textSize="18.3sp" />
|
android:textSize="18.3sp" />
|
||||||
|
|
||||||
@@ -197,7 +197,7 @@
|
|||||||
android:background="@drawable/bg_round_corner_10_3bb9f1"
|
android:background="@drawable/bg_round_corner_10_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_write_button_send"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="18.3sp" />
|
android:textSize="18.3sp" />
|
||||||
|
|
||||||
|
|||||||
@@ -279,6 +279,11 @@
|
|||||||
<string name="screen_message_write_toast_select_recipient">Please select a recipient.</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_input_required">Please enter a message.</string>
|
||||||
<string name="screen_message_write_toast_send_success">Message sent.</string>
|
<string name="screen_message_write_toast_send_success">Message sent.</string>
|
||||||
|
<string name="screen_voice_message_write_title">Voice message</string>
|
||||||
|
<string name="screen_voice_message_write_recipient_prefix">To.</string>
|
||||||
|
<string name="screen_voice_message_write_recipient_placeholder">Recipient</string>
|
||||||
|
<string name="screen_voice_message_write_retry">Record again</string>
|
||||||
|
<string name="screen_voice_message_write_permission_denied">Audio recording permission is required to use voice messages.</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>
|
||||||
|
|||||||
@@ -279,6 +279,11 @@
|
|||||||
<string name="screen_message_write_toast_select_recipient">受信者を選択してください。</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_input_required">メッセージを入力してください。</string>
|
||||||
<string name="screen_message_write_toast_send_success">メッセージを送信しました。</string>
|
<string name="screen_message_write_toast_send_success">メッセージを送信しました。</string>
|
||||||
|
<string name="screen_voice_message_write_title">ボイスメッセージ</string>
|
||||||
|
<string name="screen_voice_message_write_recipient_prefix">宛先</string>
|
||||||
|
<string name="screen_voice_message_write_recipient_placeholder">受信者</string>
|
||||||
|
<string name="screen_voice_message_write_retry">録音をやり直す</string>
|
||||||
|
<string name="screen_voice_message_write_permission_denied">音声メッセージを利用するには録音権限が必要です。</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>
|
||||||
|
|||||||
@@ -278,6 +278,11 @@
|
|||||||
<string name="screen_message_write_toast_select_recipient">받는 사람을 선택해 주세요.</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_input_required">메시지를 입력하세요.</string>
|
||||||
<string name="screen_message_write_toast_send_success">메시지 전송이 완료되었습니다.</string>
|
<string name="screen_message_write_toast_send_success">메시지 전송이 완료되었습니다.</string>
|
||||||
|
<string name="screen_voice_message_write_title">음성메시지</string>
|
||||||
|
<string name="screen_voice_message_write_recipient_prefix">TO.</string>
|
||||||
|
<string name="screen_voice_message_write_recipient_placeholder">받는 사람</string>
|
||||||
|
<string name="screen_voice_message_write_retry">다시 녹음</string>
|
||||||
|
<string name="screen_voice_message_write_permission_denied">오디오 녹음 권한을 거부하시면 음성 메시지를 이용하실 수 없습니다.</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