오디션 상세 문자열 리소스화
This commit is contained in:
@@ -13,6 +13,7 @@ import androidx.media3.common.util.UnstableApi
|
||||
import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService
|
||||
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService
|
||||
import java.io.IOException
|
||||
import kr.co.vividnext.sodalive.R
|
||||
|
||||
@OptIn(UnstableApi::class)
|
||||
class AuditionApplicantMediaPlayerManager(
|
||||
@@ -101,7 +102,11 @@ class AuditionApplicantMediaPlayerManager(
|
||||
}
|
||||
} catch (e: IOException) {
|
||||
e.printStackTrace()
|
||||
Toast.makeText(context, "콘텐츠를 재생하지 못했습니다.\n다시 시도해 주세요", Toast.LENGTH_SHORT).show()
|
||||
Toast.makeText(
|
||||
context,
|
||||
context.getString(R.string.screen_audition_play_error),
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
showLoadingDialog(false)
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import kr.co.vividnext.sodalive.databinding.FragmentAuditionApplyDialogBinding
|
||||
import kr.co.vividnext.sodalive.R
|
||||
|
||||
class AuditionApplyDialogFragment(
|
||||
private val fileName: String,
|
||||
@@ -59,13 +60,13 @@ class AuditionApplyDialogFragment(
|
||||
if (phoneNumber.isBlank() || phoneNumber.length != 11) {
|
||||
Toast.makeText(
|
||||
activity,
|
||||
"잘못된 연락처 입니다.\n다시 입력해 주세요.",
|
||||
getString(R.string.dialog_audition_apply_error_invalid_phone),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
} else if (!binding.tvAgree.isSelected) {
|
||||
Toast.makeText(
|
||||
activity,
|
||||
"연락처 수집 및 활용에 동의하셔야 오디션 지원이 가능합니다.",
|
||||
getString(R.string.dialog_audition_apply_error_need_agreement),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
} else {
|
||||
|
||||
@@ -7,8 +7,6 @@ import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import coil.load
|
||||
import coil.transform.RoundedCornersTransformation
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.load.MultiTransformation
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop
|
||||
@@ -19,6 +17,7 @@ import kr.co.vividnext.sodalive.audition.role.AuditionRoleDetailActivity
|
||||
import kr.co.vividnext.sodalive.base.BaseActivity
|
||||
import kr.co.vividnext.sodalive.common.Constants
|
||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
||||
import kr.co.vividnext.sodalive.common.ToastMessage
|
||||
import kr.co.vividnext.sodalive.databinding.ActivityAuditionDetailBinding
|
||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||
import org.koin.android.ext.android.inject
|
||||
@@ -40,7 +39,7 @@ class AuditionDetailActivity : BaseActivity<ActivityAuditionDetailBinding>(
|
||||
if (auditionId <= 0) {
|
||||
Toast.makeText(
|
||||
applicationContext,
|
||||
"잘못된 요청입니다.\n다시 시도해 주세요.",
|
||||
getString(R.string.screen_audition_error_invalid_request),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
|
||||
@@ -60,7 +59,7 @@ class AuditionDetailActivity : BaseActivity<ActivityAuditionDetailBinding>(
|
||||
isOpenInformation = !isOpenInformation
|
||||
if (isOpenInformation) {
|
||||
binding.tvInformation.maxLines = Int.MAX_VALUE
|
||||
binding.tvOpen.text = "접기"
|
||||
binding.tvOpen.text = getString(R.string.screen_audition_detail_collapse)
|
||||
binding.tvOpen.setCompoundDrawablesWithIntrinsicBounds(
|
||||
R.drawable.ic_live_detail_top,
|
||||
0,
|
||||
@@ -69,7 +68,7 @@ class AuditionDetailActivity : BaseActivity<ActivityAuditionDetailBinding>(
|
||||
)
|
||||
} else {
|
||||
binding.tvInformation.maxLines = 3
|
||||
binding.tvOpen.text = "펼치기"
|
||||
binding.tvOpen.text = getString(R.string.screen_audition_detail_expand)
|
||||
binding.tvOpen.setCompoundDrawablesWithIntrinsicBounds(
|
||||
R.drawable.ic_live_detail_bottom,
|
||||
0,
|
||||
@@ -125,8 +124,13 @@ class AuditionDetailActivity : BaseActivity<ActivityAuditionDetailBinding>(
|
||||
}
|
||||
|
||||
private fun bindData() {
|
||||
viewModel.toastLiveData.observe(this) {
|
||||
it?.let { Toast.makeText(applicationContext, it, Toast.LENGTH_LONG).show() }
|
||||
viewModel.toastLiveData.observe(this) { toastMessage ->
|
||||
toastMessage?.let {
|
||||
val message = it.message ?: it.resId?.let(::getString)
|
||||
message?.let { text ->
|
||||
Toast.makeText(applicationContext, text, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.isLoading.observe(this) {
|
||||
|
||||
@@ -60,11 +60,11 @@ class AuditionDetailRoleAdapter(
|
||||
|
||||
if (item.isComplete) {
|
||||
binding.blackCover.visibility = View.VISIBLE
|
||||
binding.tvStatus.text = "모집완료"
|
||||
binding.tvStatus.text = context.getString(R.string.screen_audition_status_closed)
|
||||
binding.tvStatus.setBackgroundResource(R.drawable.bg_round_corner_13_3_909090)
|
||||
} else {
|
||||
binding.blackCover.visibility = View.GONE
|
||||
binding.tvStatus.text = "모집중"
|
||||
binding.tvStatus.text = context.getString(R.string.screen_audition_status_open)
|
||||
binding.tvStatus.setBackgroundResource(R.drawable.bg_round_corner_13_3_3bb9f1)
|
||||
}
|
||||
|
||||
|
||||
@@ -7,13 +7,15 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import kr.co.vividnext.sodalive.audition.AuditionRepository
|
||||
import kr.co.vividnext.sodalive.base.BaseViewModel
|
||||
import kr.co.vividnext.sodalive.common.ToastMessage
|
||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||
import kr.co.vividnext.sodalive.R
|
||||
|
||||
class AuditionDetailViewModel(
|
||||
private val repository: AuditionRepository
|
||||
) : BaseViewModel() {
|
||||
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)
|
||||
@@ -39,10 +41,10 @@ class AuditionDetailViewModel(
|
||||
_auditionDetailLiveData.value = it.data
|
||||
} 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)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -56,7 +58,9 @@ class AuditionDetailViewModel(
|
||||
{
|
||||
_isLoading.value = false
|
||||
it.message?.let { message -> Logger.e(message) }
|
||||
_toastLiveData.postValue("알 수 없는 오류가 발생했습니다. 다시 시도해 주세요.")
|
||||
_toastLiveData.postValue(
|
||||
ToastMessage(resId = R.string.common_error_unknown)
|
||||
)
|
||||
if (onFailure != null) {
|
||||
onFailure()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user