From 5e6225d14c1b1dedcae4062d29f2aec27cd9d067 Mon Sep 17 00:00:00 2001 From: klaus Date: Fri, 3 Jan 2025 17:42:19 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=EB=94=94=EC=85=98=20=EC=A7=80?= =?UTF-8?q?=EC=9B=90=EC=9E=90=20=ED=88=AC=ED=91=9C=20-=20=EC=95=88?= =?UTF-8?q?=EB=82=B4=20=ED=8C=9D=EC=97=85=20Dialog=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../role/AuditionRoleDetailActivity.kt | 41 +++++++++++++------ .../role/AuditionRoleDetailViewModel.kt | 12 +++++- 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailActivity.kt index 38d040b..f716b2e 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailActivity.kt @@ -165,19 +165,34 @@ class AuditionRoleDetailActivity : BaseActivity mediaPlayerManager.toggleContent(position, applicantId, voiceUrl) }, - onClickVote = { - if (isShowNotifyVote) { - SodaDialog( - activity = this@AuditionRoleDetailActivity, - layoutInflater = layoutInflater, - "투표 안내", - "첫 투표 무료 - 이후 투표 유료 (하루에 총 11번 투표 가능)", - confirmButtonTitle = "확인", - confirmButtonClick = { isShowNotifyVote = false } - ).show(screenWidth) - } else { - viewModel.voteApplicant(it) - } + onClickVote = { applicantId -> + viewModel.voteApplicant( + applicantId, + onSuccess = { + if (isShowNotifyVote) { + SodaDialog( + activity = this@AuditionRoleDetailActivity, + layoutInflater = layoutInflater, + "[오디션 응원]", + "오디션을 응원하셨습니다\n(무료응원 : 1계정당 1일 1회)\n1캔으로 추가 응원을 해보세요.", + confirmButtonTitle = "확인", + confirmButtonClick = { + isShowNotifyVote = false + } + ).show(screenWidth) + } + }, + onFailure = { + SodaDialog( + activity = this@AuditionRoleDetailActivity, + layoutInflater = layoutInflater, + "[오늘 응원 제한]", + "오늘 응원은 여기까지!\n하루 최대 10회까지 이용이 가능합니다.\n내일 다시 이용해주세요.", + confirmButtonTitle = "확인", + confirmButtonClick = {} + ).show(screenWidth) + } + ) } ) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailViewModel.kt index 36ddadd..ca76eac 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audition/role/AuditionRoleDetailViewModel.kt @@ -264,7 +264,7 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) : } } - fun voteApplicant(position: Int) { + fun voteApplicant(position: Int, onSuccess: () -> Unit, onFailure: (() -> Unit)? = null) { val applicantId = _applicantListLiveData.value?.get(position)?.applicantId if (applicantId != null) { @@ -293,9 +293,17 @@ class AuditionRoleDetailViewModel(private val repository: AuditionRepository) : } } _applicantListLiveData.value = updatedList!! + onSuccess() } else { if (it.message != null) { - _toastLiveData.value = it.message + if ( + it.message.contains("오늘 응원은 여기까지") && + onFailure != null + ) { + onFailure() + } else { + _toastLiveData.value = it.message + } } else { _toastLiveData.value = "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요."