refactor(modal): V2 확인 모달 사용처를 교체한다

This commit is contained in:
2026-07-08 16:04:01 +09:00
parent 8e086c4888
commit 809ed5ce23
9 changed files with 281 additions and 39 deletions

View File

@@ -6,14 +6,12 @@ import android.animation.ValueAnimator
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.View.MeasureSpec
import android.view.animation.Interpolator
import android.widget.LinearLayout
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AlertDialog
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
@@ -31,7 +29,6 @@ import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity
import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity
import kr.co.vividnext.sodalive.audio_content.upload.AudioContentUploadActivity
import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.base.SodaDialog
import kr.co.vividnext.sodalive.chat.talk.room.ChatRoomActivity
import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.LoadingDialog
@@ -53,9 +50,11 @@ import kr.co.vividnext.sodalive.mypage.MyPageViewModel
import kr.co.vividnext.sodalive.mypage.auth.Auth
import kr.co.vividnext.sodalive.mypage.auth.AuthVerifyRequest
import kr.co.vividnext.sodalive.mypage.auth.BootpayResponse
import kr.co.vividnext.sodalive.report.ProfileReportDialog
import kr.co.vividnext.sodalive.report.UserReportDialog
import kr.co.vividnext.sodalive.settings.ContentSettingsActivity
import kr.co.vividnext.sodalive.splash.SplashActivity
import kr.co.vividnext.sodalive.user.login.LoginActivity
import kr.co.vividnext.sodalive.v2.components.modal.V2ModalDialog
import kr.co.vividnext.sodalive.v2.common.CreatorActivityType
import kr.co.vividnext.sodalive.v2.creator.channel.audio.CreatorChannelAudioFragment
import kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityFragment
@@ -75,8 +74,6 @@ import kr.co.vividnext.sodalive.v2.creator.channel.model.CreatorChannelTitleBarS
import kr.co.vividnext.sodalive.v2.creator.channel.series.CreatorChannelSeriesFragment
import kr.co.vividnext.sodalive.v2.main.MainV2Activity
import kr.co.vividnext.sodalive.v2.main.chat.dm.DmChatRoomActivity
import kr.co.vividnext.sodalive.splash.SplashActivity
import kr.co.vividnext.sodalive.user.login.LoginActivity
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody.Companion.toRequestBody
import org.koin.android.ext.android.inject
@@ -383,14 +380,18 @@ class CreatorChannelActivity :
private fun showUserBlockDialog() {
val nickname = currentHeader?.nickname.orEmpty()
AlertDialog.Builder(this)
.setTitle(getString(R.string.screen_live_room_block_title))
.setMessage(getString(R.string.screen_live_room_block_message_user, nickname))
.setPositiveButton(getString(R.string.screen_live_room_block_confirm)) { _, _ ->
V2ModalDialog(
activity = this,
layoutInflater = layoutInflater,
title = getString(R.string.screen_live_room_block_title),
desc = getString(R.string.screen_live_room_block_message_user, nickname),
confirmButtonTitle = getString(R.string.screen_live_room_block_confirm),
confirmButtonClick = {
homeActionDelegate?.blockUser()
}
.setNegativeButton(getString(R.string.cancel)) { _, _ -> }
.show()
},
cancelButtonTitle = getString(R.string.cancel),
cancelButtonClick = {}
).show(screenWidth)
}
private fun showUserReportDialog() {
@@ -400,9 +401,18 @@ class CreatorChannelActivity :
}
private fun showProfileReportDialog() {
ProfileReportDialog(this, layoutInflater) {
homeActionDelegate?.reportProfile()
}.show(resources.displayMetrics.widthPixels)
V2ModalDialog(
activity = this,
layoutInflater = layoutInflater,
title = getString(R.string.dialog_profile_report_title),
desc = getString(R.string.dialog_profile_report_notice),
confirmButtonTitle = getString(R.string.report_button),
confirmButtonClick = {
homeActionDelegate?.reportProfile()
},
cancelButtonTitle = getString(R.string.cancel),
cancelButtonClick = {}
).show(resources.displayMetrics.widthPixels)
}
private fun setupTabsAndPager() {
@@ -604,7 +614,7 @@ class CreatorChannelActivity :
}
override fun onCreatorChannelFanTalkDeleteClicked(fanTalkId: Long) {
SodaDialog(
V2ModalDialog(
activity = this,
layoutInflater = layoutInflater,
title = getString(R.string.screen_user_profile_cheer_delete_title),
@@ -640,7 +650,7 @@ class CreatorChannelActivity :
}
private fun showCreatorChannelCommunityDeleteDialog(item: CreatorChannelCommunityPostUiModel) {
SodaDialog(
V2ModalDialog(
activity = this,
layoutInflater = layoutInflater,
title = getString(R.string.screen_creator_community_delete_title),
@@ -977,7 +987,7 @@ class CreatorChannelActivity :
if (isAdult) {
val isKoreanCountry = SharedPreferenceManager.countryCode.ifBlank { "KR" } == "KR"
if (isKoreanCountry && !SharedPreferenceManager.isAuth) {
SodaDialog(
V2ModalDialog(
activity = this,
layoutInflater = layoutInflater,
title = getString(R.string.auth_title),
@@ -985,8 +995,7 @@ class CreatorChannelActivity :
confirmButtonTitle = getString(R.string.auth_go),
confirmButtonClick = { startAuthFlow() },
cancelButtonTitle = getString(R.string.cancel),
cancelButtonClick = {},
descGravity = Gravity.CENTER
cancelButtonClick = {}
).show(screenWidth)
return
}

View File

@@ -3,7 +3,6 @@ package kr.co.vividnext.sodalive.v2.creator.channel.fantalk.write
import android.content.Context
import android.content.Intent
import android.text.InputFilter
import android.view.Gravity
import android.view.inputmethod.InputMethodManager
import android.widget.Toast
import androidx.activity.addCallback
@@ -13,8 +12,8 @@ import androidx.core.view.WindowInsetsCompat
import androidx.core.widget.addTextChangedListener
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.base.SodaDialog
import kr.co.vividnext.sodalive.databinding.ActivityCreatorChannelFantalkWriteBinding
import kr.co.vividnext.sodalive.v2.components.modal.V2ModalDialog
import org.koin.androidx.viewmodel.ext.android.viewModel
class CreatorChannelFanTalkWriteActivity : BaseActivity<ActivityCreatorChannelFantalkWriteBinding>(
@@ -121,7 +120,7 @@ class CreatorChannelFanTalkWriteActivity : BaseActivity<ActivityCreatorChannelFa
}
private fun showCancelConfirmDialog() {
SodaDialog(
V2ModalDialog(
activity = this,
layoutInflater = layoutInflater,
title = getString(R.string.creator_channel_fantalk_write_exit_title),
@@ -129,8 +128,7 @@ class CreatorChannelFanTalkWriteActivity : BaseActivity<ActivityCreatorChannelFa
confirmButtonTitle = getString(R.string.creator_channel_fantalk_write_exit_confirm),
confirmButtonClick = { finish() },
cancelButtonTitle = getString(R.string.creator_channel_fantalk_write_exit_cancel),
cancelButtonClick = {},
descGravity = Gravity.CENTER
cancelButtonClick = {}
).show(screenWidth)
}

View File

@@ -3,7 +3,6 @@ package kr.co.vividnext.sodalive.v2.live.onair
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.Gravity
import android.widget.Toast
import androidx.core.view.isVisible
import androidx.media3.common.util.UnstableApi
@@ -14,7 +13,6 @@ import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService
import kr.co.vividnext.sodalive.base.BaseActivity
import kr.co.vividnext.sodalive.base.SodaDialog
import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.LoadingDialog
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
@@ -34,6 +32,7 @@ import kr.co.vividnext.sodalive.settings.language.LanguageManager
import kr.co.vividnext.sodalive.settings.language.LocaleHelper
import kr.co.vividnext.sodalive.splash.SplashActivity
import kr.co.vividnext.sodalive.user.login.LoginActivity
import kr.co.vividnext.sodalive.v2.components.modal.V2ModalDialog
import kr.co.vividnext.sodalive.v2.live.onair.model.HomeOnAirLivePageUiState
import kr.co.vividnext.sodalive.v2.live.onair.model.canEnterHomeOnAirLiveRoom
import kr.co.vividnext.sodalive.v2.live.onair.ui.HomeOnAirLiveAdapter
@@ -183,7 +182,7 @@ class HomeOnAirLiveActivity : BaseActivity<ActivityHomeOnAirLiveBinding>(
if (isAdult) {
val isKoreanCountry = SharedPreferenceManager.countryCode.ifBlank { "KR" } == "KR"
if (isKoreanCountry && !SharedPreferenceManager.isAuth) {
SodaDialog(
V2ModalDialog(
activity = this,
layoutInflater = layoutInflater,
title = getString(R.string.auth_title),
@@ -191,8 +190,7 @@ class HomeOnAirLiveActivity : BaseActivity<ActivityHomeOnAirLiveBinding>(
confirmButtonTitle = getString(R.string.auth_go),
confirmButtonClick = { startAuthFlow() },
cancelButtonTitle = getString(R.string.cancel),
cancelButtonClick = {},
descGravity = Gravity.CENTER
cancelButtonClick = {}
).show(screenWidth)
return
}

View File

@@ -1,11 +1,9 @@
package kr.co.vividnext.sodalive.v2.main
import android.content.Intent
import android.view.Gravity
import androidx.fragment.app.Fragment
import com.google.gson.Gson
import kr.co.vividnext.sodalive.R
import kr.co.vividnext.sodalive.base.SodaDialog
import kr.co.vividnext.sodalive.common.Constants
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
import kr.co.vividnext.sodalive.mypage.MyPageViewModel
@@ -14,6 +12,7 @@ import kr.co.vividnext.sodalive.mypage.auth.AuthVerifyRequest
import kr.co.vividnext.sodalive.mypage.auth.BootpayResponse
import kr.co.vividnext.sodalive.settings.ContentSettingsActivity
import kr.co.vividnext.sodalive.splash.SplashActivity
import kr.co.vividnext.sodalive.v2.components.modal.V2ModalDialog
import org.koin.android.ext.android.get
fun Fragment.ensureMainV2NavigationAllowed(
@@ -46,7 +45,7 @@ fun Fragment.ensureMainV2NavigationAllowed(
}
private fun Fragment.showMainV2AuthDialog() {
SodaDialog(
V2ModalDialog(
activity = requireActivity(),
layoutInflater = layoutInflater,
title = getString(R.string.auth_title),
@@ -54,8 +53,7 @@ private fun Fragment.showMainV2AuthDialog() {
confirmButtonTitle = getString(R.string.auth_go),
confirmButtonClick = { startMainV2AuthFlow() },
cancelButtonTitle = getString(R.string.cancel),
cancelButtonClick = {},
descGravity = Gravity.CENTER
cancelButtonClick = {}
).show(resources.displayMetrics.widthPixels)
}