From 1b952054fbc60327cea8c6d1cf9be55d16b60d48 Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 13 Jul 2026 16:59:10 +0900 Subject: [PATCH] =?UTF-8?q?fix(content):=20=EC=83=81=EC=84=B8=20=EC=98=A4?= =?UTF-8?q?=EB=94=94=EC=98=A4=20=EA=B4=91=EA=B3=A0=EB=A5=BC=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 - .../detail/AudioContentDetailActivity.kt | 144 +----------------- .../layout/activity_audio_content_detail.xml | 8 - 3 files changed, 1 insertion(+), 155 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bd8c7858..ee3113c3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -116,8 +116,6 @@ android { // release용 ad unit id는 배포 전 실제 값으로 교체한다. buildConfigField 'String', 'YANDEX_INLINE_BANNER_LIVE_TAB_AD_UNIT_ID', '"R-M-19140295-3"' buildConfigField 'String', 'YANDEX_INLINE_BANNER_LIVE_ROOM_DETAIL_AD_UNIT_ID', '"R-M-19140295-4"' - buildConfigField 'String', 'YANDEX_INLINE_BANNER_AUDIO_CONTENT_DETAIL_AD_UNIT_ID', '"R-M-19140295-5"' - buildConfigField 'String', 'YANDEX_INTERSTITIAL_AUDIO_CONTENT_PLAY_AD_UNIT_ID', '"R-M-19140295-6"' buildConfigField 'String', 'YANDEX_INLINE_BANNER_CREATOR_COMMUNITY_ALL_AD_UNIT_ID', '"R-M-19140295-7"' buildConfigField 'String', 'YANDEX_INLINE_BANNER_SERIES_MAIN_HOME_AD_UNIT_ID', '"R-M-19140295-8"' buildConfigField 'String', 'YANDEX_INLINE_BANNER_SERIES_MAIN_DAY_OF_WEEK_AD_UNIT_ID', '"R-M-19140295-9"' @@ -160,8 +158,6 @@ android { buildConfigField 'String', 'YANDEX_INLINE_BANNER_LIVE_TAB_AD_UNIT_ID', '"R-M-19140297-3"' buildConfigField 'String', 'YANDEX_INLINE_BANNER_LIVE_ROOM_DETAIL_AD_UNIT_ID', '"R-M-19140297-4"' - buildConfigField 'String', 'YANDEX_INLINE_BANNER_AUDIO_CONTENT_DETAIL_AD_UNIT_ID', '"R-M-19140297-5"' - buildConfigField 'String', 'YANDEX_INTERSTITIAL_AUDIO_CONTENT_PLAY_AD_UNIT_ID', '"R-M-19140297-6"' buildConfigField 'String', 'YANDEX_INLINE_BANNER_CREATOR_COMMUNITY_ALL_AD_UNIT_ID', '"R-M-19140297-7"' buildConfigField 'String', 'YANDEX_INLINE_BANNER_SERIES_MAIN_HOME_AD_UNIT_ID', '"R-M-19140297-8"' buildConfigField 'String', 'YANDEX_INLINE_BANNER_SERIES_MAIN_DAY_OF_WEEK_AD_UNIT_ID', '"R-M-19140297-9"' diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt index ed2f1104..354a0571 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/detail/AudioContentDetailActivity.kt @@ -28,18 +28,6 @@ import coil.transform.RoundedCornersTransformation import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions import com.google.gson.Gson -import com.orhanobut.logger.Logger -import com.yandex.mobile.ads.banner.BannerAdSize -import com.yandex.mobile.ads.common.AdError -import com.yandex.mobile.ads.common.AdRequest -import com.yandex.mobile.ads.common.AdRequestConfiguration -import com.yandex.mobile.ads.common.AdRequestError -import com.yandex.mobile.ads.common.ImpressionData -import com.yandex.mobile.ads.interstitial.InterstitialAd -import com.yandex.mobile.ads.interstitial.InterstitialAdEventListener -import com.yandex.mobile.ads.interstitial.InterstitialAdLoadListener -import com.yandex.mobile.ads.interstitial.InterstitialAdLoader -import kr.co.vividnext.sodalive.BuildConfig import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.audio_content.AudioContentPlayService import kr.co.vividnext.sodalive.audio_content.PurchaseOption @@ -72,7 +60,6 @@ import kr.co.vividnext.sodalive.report.ReportType import kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivity import org.koin.android.ext.android.inject import kotlin.math.ceil -import kotlin.math.roundToInt @UnstableApi class AudioContentDetailActivity : BaseActivity( @@ -101,42 +88,9 @@ class AudioContentDetailActivity : BaseActivity Unit)? = null - private var hasConsumedAudioContentPlayInterstitialAttempt = false private var isAudioContentPlaying = false - private var isAudioContentInterstitialEligible = false private var audioContentStartPlaybackAction: (() -> Unit)? = null - private val audioContentPlayInterstitialAdLoadListener = object : InterstitialAdLoadListener { - override fun onAdLoaded(interstitialAd: InterstitialAd) { - clearAudioContentPlayInterstitialAd() - audioContentPlayInterstitialAd = interstitialAd - } - - override fun onAdFailedToLoad(error: AdRequestError) { - Logger.e("Audio content interstitial failed to load: ${error.description}") - } - } - - private val audioContentPlayInterstitialAdEventListener = object : InterstitialAdEventListener { - override fun onAdShown() = Unit - - override fun onAdFailedToShow(adError: AdError) { - Logger.e("Audio content interstitial failed to show: ${adError.description}") - continuePendingAudioContentPlayAction() - } - - override fun onAdDismissed() { - continuePendingAudioContentPlayAction() - } - - override fun onAdClicked() = Unit - - override fun onAdImpression(impressionData: ImpressionData?) = Unit - } - @SuppressLint("SetTextI18n") override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) @@ -154,9 +108,6 @@ class AudioContentDetailActivity : BaseActivity 0 } ?: screenWidth - val adWidthDp = (adWidthPixels / density).roundToInt() - val maxAdHeightDp = 90 - - binding.yandexInlineBannerView.apply { - setAdUnitId(BuildConfig.YANDEX_INLINE_BANNER_AUDIO_CONTENT_DETAIL_AD_UNIT_ID) - setAdSize( - BannerAdSize.inlineSize( - this@AudioContentDetailActivity, - adWidthDp, - maxAdHeightDp - ) - ) - loadAd(AdRequest.Builder().build()) - } - } - } - - private fun setupAudioContentPlayInterstitial() { - val adUnitId = BuildConfig.YANDEX_INTERSTITIAL_AUDIO_CONTENT_PLAY_AD_UNIT_ID - if (adUnitId.isBlank()) { - Logger.e("Audio content interstitial blocked: ad unit id is blank.") - return - } - - audioContentPlayInterstitialAdLoader = InterstitialAdLoader(this).apply { - setAdLoadListener(audioContentPlayInterstitialAdLoadListener) - } - audioContentPlayInterstitialAdLoader?.loadAd( - AdRequestConfiguration.Builder(adUnitId).build() - ) - } - - private fun playAudioContentWithInterstitialIfAvailable(playAction: () -> Unit) { - if (hasConsumedAudioContentPlayInterstitialAttempt || isFinishing || isDestroyed) { - playAction() - return - } - - val interstitialAd = audioContentPlayInterstitialAd ?: run { - playAction() - return - } - - hasConsumedAudioContentPlayInterstitialAttempt = true - pendingAudioContentPlayAction = playAction - interstitialAd.setAdEventListener(audioContentPlayInterstitialAdEventListener) - runCatching { - interstitialAd.show(this) - }.onFailure { - Logger.e("Audio content interstitial failed to show: ${it.message}") - continuePendingAudioContentPlayAction() - } - } - - private fun continuePendingAudioContentPlayAction() { - val playAction = pendingAudioContentPlayAction - pendingAudioContentPlayAction = null - clearAudioContentPlayInterstitialAd() - if (isFinishing || isDestroyed) { - return - } - playAction?.invoke() - } - - private fun clearAudioContentPlayInterstitialAd() { - audioContentPlayInterstitialAd?.setAdEventListener(null) - audioContentPlayInterstitialAd = null - } - - private fun releaseAudioContentPlayInterstitial() { - audioContentPlayInterstitialAdLoader?.setAdLoadListener(null) - audioContentPlayInterstitialAdLoader = null - pendingAudioContentPlayAction = null - clearAudioContentPlayInterstitialAd() - } - private fun pauseAudioContentPlayback() { startService( Intent(this, AudioContentPlayService::class.java).apply { @@ -474,13 +343,7 @@ class AudioContentDetailActivity : BaseActivity 0 - isAudioContentInterstitialEligible = response.price <= 0 || isAlertPreview if ( response.creator.creatorId != SharedPreferenceManager.userId && !response.existOrdered && @@ -1046,7 +907,6 @@ class AudioContentDetailActivity : BaseActivity - -