오디션 문자열 리소스로 이관
This commit is contained in:
@@ -124,8 +124,13 @@ class AuditionFragment : BaseFragment<FragmentAuditionBinding>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun bindData() {
|
private fun bindData() {
|
||||||
viewModel.toastLiveData.observe(viewLifecycleOwner) {
|
viewModel.toastLiveData.observe(viewLifecycleOwner) { toastMessage ->
|
||||||
it?.let { Toast.makeText(requireActivity(), it, Toast.LENGTH_LONG).show() }
|
toastMessage?.let {
|
||||||
|
val message = it.message ?: it.resId?.let(::getString)
|
||||||
|
message?.let { text ->
|
||||||
|
Toast.makeText(requireActivity(), text, Toast.LENGTH_LONG).show()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.isLoading.observe(viewLifecycleOwner) {
|
viewModel.isLoading.observe(viewLifecycleOwner) {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package kr.co.vividnext.sodalive.audition
|
package kr.co.vividnext.sodalive.audition
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
@@ -47,18 +46,18 @@ class AuditionListAdapter(
|
|||||||
inner class InProgressHeaderViewHolder(
|
inner class InProgressHeaderViewHolder(
|
||||||
private val binding: ItemAuditionListInProgressHeaderBinding
|
private val binding: ItemAuditionListInProgressHeaderBinding
|
||||||
) : RecyclerView.ViewHolder(binding.root) {
|
) : RecyclerView.ViewHolder(binding.root) {
|
||||||
@SuppressLint("SetTextI18n")
|
|
||||||
fun bind(totalCount: Int) {
|
fun bind(totalCount: Int) {
|
||||||
binding.tvTotalCount.text = "총 ${totalCount}개"
|
binding.tvTotalCount.text =
|
||||||
|
binding.root.context.getString(R.string.screen_audition_total_count, totalCount)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class CompletedHeaderViewHolder(
|
inner class CompletedHeaderViewHolder(
|
||||||
private val binding: ItemAuditionListCompletedHeaderBinding
|
private val binding: ItemAuditionListCompletedHeaderBinding
|
||||||
) : RecyclerView.ViewHolder(binding.root) {
|
) : RecyclerView.ViewHolder(binding.root) {
|
||||||
@SuppressLint("SetTextI18n")
|
|
||||||
fun bind(totalCount: Int) {
|
fun bind(totalCount: Int) {
|
||||||
binding.tvTotalCount.text = "총 ${totalCount}개"
|
binding.tvTotalCount.text =
|
||||||
|
binding.root.context.getString(R.string.screen_audition_total_count, totalCount)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,9 @@ 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.base.BaseViewModel
|
import kr.co.vividnext.sodalive.base.BaseViewModel
|
||||||
|
import kr.co.vividnext.sodalive.R
|
||||||
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.settings.notification.UpdateNotificationSettingRequest
|
import kr.co.vividnext.sodalive.settings.notification.UpdateNotificationSettingRequest
|
||||||
import kr.co.vividnext.sodalive.user.UserRepository
|
import kr.co.vividnext.sodalive.user.UserRepository
|
||||||
|
|
||||||
@@ -14,8 +16,8 @@ class AuditionViewModel(
|
|||||||
private val repository: AuditionRepository,
|
private val repository: AuditionRepository,
|
||||||
private val userRepository: UserRepository
|
private val userRepository: UserRepository
|
||||||
) : BaseViewModel() {
|
) : BaseViewModel() {
|
||||||
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)
|
||||||
@@ -53,10 +55,10 @@ class AuditionViewModel(
|
|||||||
}
|
}
|
||||||
} 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)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -64,7 +66,9 @@ class AuditionViewModel(
|
|||||||
{
|
{
|
||||||
_isLoading.postValue(false)
|
_isLoading.postValue(false)
|
||||||
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)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
android:fontFamily="@font/pretendard_bold"
|
android:fontFamily="@font/pretendard_bold"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:minHeight="48dp"
|
android:minHeight="48dp"
|
||||||
android:text="오디션"
|
android:text="@string/screen_audition_title"
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textSize="21.3sp"
|
android:textSize="21.3sp"
|
||||||
app:drawableStartCompat="@drawable/ic_back"
|
app:drawableStartCompat="@drawable/ic_back"
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_centerVertical="true"
|
android:layout_centerVertical="true"
|
||||||
android:fontFamily="@font/gmarket_sans_medium"
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
android:text="보이스온 오디션 이용방법"
|
android:text="@string/screen_audition_how_to_use"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="13.3sp" />
|
android:textSize="13.3sp" />
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
android:layout_centerVertical="true"
|
android:layout_centerVertical="true"
|
||||||
android:fontFamily="@font/gmarket_sans_medium"
|
android:fontFamily="@font/gmarket_sans_medium"
|
||||||
android:text="자세히>"
|
android:text="@string/screen_audition_how_to_use_more"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="13.3sp" />
|
android:textSize="13.3sp" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="30dp"
|
android:layout_marginTop="30dp"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:text="오디션"
|
android:text="@string/screen_audition_title"
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textSize="18.3sp"
|
android:textSize="18.3sp"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@@ -31,8 +31,9 @@
|
|||||||
android:id="@+id/tv_audition_title_off"
|
android:id="@+id/tv_audition_title_off"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:text=" OFF"
|
android:text="@string/screen_audition_off"
|
||||||
android:textColor="@color/color_bbbbbb"
|
android:textColor="@color/color_bbbbbb"
|
||||||
android:textSize="18.3sp"
|
android:textSize="18.3sp"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tv_audition_title"
|
app:layout_constraintBottom_toBottomOf="@+id/tv_audition_title"
|
||||||
|
|||||||
@@ -10,7 +10,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_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:text="오디션"
|
android:text="@string/screen_audition_title"
|
||||||
android:textColor="@color/color_eeeeee"
|
android:textColor="@color/color_eeeeee"
|
||||||
android:textSize="18.3sp"
|
android:textSize="18.3sp"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@@ -20,8 +20,9 @@
|
|||||||
android:id="@+id/tv_audition_title_on"
|
android:id="@+id/tv_audition_title_on"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
android:fontFamily="@font/gmarket_sans_bold"
|
android:fontFamily="@font/gmarket_sans_bold"
|
||||||
android:text=" ON"
|
android:text="@string/screen_audition_on"
|
||||||
android:textColor="@color/color_ff5c49"
|
android:textColor="@color/color_ff5c49"
|
||||||
android:textSize="18.3sp"
|
android:textSize="18.3sp"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tv_audition_title"
|
app:layout_constraintBottom_toBottomOf="@+id/tv_audition_title"
|
||||||
|
|||||||
@@ -185,6 +185,14 @@
|
|||||||
<string name="following_creator_total_suffix">creators</string>
|
<string name="following_creator_total_suffix">creators</string>
|
||||||
<string name="following_creator_empty">You are not following any channels.</string>
|
<string name="following_creator_empty">You are not following any channels.</string>
|
||||||
|
|
||||||
|
<!-- Audition -->
|
||||||
|
<string name="screen_audition_title">Audition</string>
|
||||||
|
<string name="screen_audition_on">ON</string>
|
||||||
|
<string name="screen_audition_off">OFF</string>
|
||||||
|
<string name="screen_audition_total_count">Total %1$d</string>
|
||||||
|
<string name="screen_audition_how_to_use">How to use VoiceOn audition</string>
|
||||||
|
<string name="screen_audition_how_to_use_more">See details></string>
|
||||||
|
|
||||||
<!-- Settings / Notices / Events -->
|
<!-- Settings / Notices / Events -->
|
||||||
<string name="screen_settings_title">Settings</string>
|
<string name="screen_settings_title">Settings</string>
|
||||||
<string name="screen_settings_notification">Notification settings</string>
|
<string name="screen_settings_notification">Notification settings</string>
|
||||||
|
|||||||
@@ -185,6 +185,14 @@
|
|||||||
<string name="following_creator_total_suffix">人</string>
|
<string name="following_creator_total_suffix">人</string>
|
||||||
<string name="following_creator_empty">フォロー中のチャンネルがありません。</string>
|
<string name="following_creator_empty">フォロー中のチャンネルがありません。</string>
|
||||||
|
|
||||||
|
<!-- Audition -->
|
||||||
|
<string name="screen_audition_title">オーディション</string>
|
||||||
|
<string name="screen_audition_on">ON</string>
|
||||||
|
<string name="screen_audition_off">OFF</string>
|
||||||
|
<string name="screen_audition_total_count">合計 %1$d件</string>
|
||||||
|
<string name="screen_audition_how_to_use">ボイスオンオーディションの利用方法</string>
|
||||||
|
<string name="screen_audition_how_to_use_more">詳しく></string>
|
||||||
|
|
||||||
<!-- Settings / Notices / Events -->
|
<!-- Settings / Notices / Events -->
|
||||||
<string name="screen_settings_title">設定</string>
|
<string name="screen_settings_title">設定</string>
|
||||||
<string name="screen_settings_notification">通知設定</string>
|
<string name="screen_settings_notification">通知設定</string>
|
||||||
|
|||||||
@@ -184,6 +184,14 @@
|
|||||||
<string name="following_creator_total_suffix">명</string>
|
<string name="following_creator_total_suffix">명</string>
|
||||||
<string name="following_creator_empty">팔로우 중인 채널이 없습니다.</string>
|
<string name="following_creator_empty">팔로우 중인 채널이 없습니다.</string>
|
||||||
|
|
||||||
|
<!-- Audition -->
|
||||||
|
<string name="screen_audition_title">오디션</string>
|
||||||
|
<string name="screen_audition_on">ON</string>
|
||||||
|
<string name="screen_audition_off">OFF</string>
|
||||||
|
<string name="screen_audition_total_count">총 %1$d개</string>
|
||||||
|
<string name="screen_audition_how_to_use">보이스온 오디션 이용방법</string>
|
||||||
|
<string name="screen_audition_how_to_use_more">자세히></string>
|
||||||
|
|
||||||
<!-- Settings / Notices / Events -->
|
<!-- Settings / Notices / Events -->
|
||||||
<string name="screen_settings_title">설정</string>
|
<string name="screen_settings_title">설정</string>
|
||||||
<string name="screen_settings_notification">알림 설정</string>
|
<string name="screen_settings_notification">알림 설정</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user