feat(mypage): 최하단에 배너 광고 추가
This commit is contained in:
@@ -15,6 +15,15 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import coil.load
|
||||
import coil.transform.CircleCropTransformation
|
||||
import com.google.gson.Gson
|
||||
import com.orhanobut.logger.Logger
|
||||
import droom.daro.core.adunit.DaroBannerAdUnit
|
||||
import droom.daro.core.model.DaroAdInfo
|
||||
import droom.daro.core.model.DaroAdLoadError
|
||||
import droom.daro.core.model.DaroBannerSize
|
||||
import droom.daro.core.model.DaroViewAd
|
||||
import droom.daro.view.DaroAdViewListener
|
||||
import droom.daro.view.DaroBannerAdView
|
||||
import kr.co.vividnext.sodalive.BuildConfig
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.audio_content.box.AudioContentBoxActivity
|
||||
import kr.co.vividnext.sodalive.audio_content.detail.AudioContentDetailActivity
|
||||
@@ -57,6 +66,9 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
|
||||
|
||||
companion object {
|
||||
private const val FUNCTION_BUTTON_SPAN_COUNT = 4
|
||||
|
||||
private const val DARO_BANNER_AD_UNIT_KEY = "43df2529-31d8-45f8-a17d-1a760f5bc777"
|
||||
private const val DARO_BANNER_PLACEMENT = "MyPage"
|
||||
}
|
||||
|
||||
private val viewModel: MyPageViewModel by inject()
|
||||
@@ -64,6 +76,7 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
|
||||
|
||||
private lateinit var loadingDialog: LoadingDialog
|
||||
private val functionButtonAdapter = FunctionButtonAdapter()
|
||||
private var daroBannerAdView: DaroBannerAdView? = null
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
@@ -73,6 +86,71 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
|
||||
bindData()
|
||||
setupRecentContentSection()
|
||||
setupLatestNotice()
|
||||
setupDaroBottomBanner()
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
daroBannerAdView?.destroy()
|
||||
daroBannerAdView = null
|
||||
binding.flDaroBannerContainer.removeAllViews()
|
||||
super.onDestroyView()
|
||||
}
|
||||
|
||||
private fun setupDaroBottomBanner() {
|
||||
binding.flDaroBannerContainer.visibility = View.GONE
|
||||
binding.flDaroBannerContainer.removeAllViews()
|
||||
|
||||
val adUnit = DaroBannerAdUnit(
|
||||
key = DARO_BANNER_AD_UNIT_KEY,
|
||||
placement = DARO_BANNER_PLACEMENT,
|
||||
bannerSize = DaroBannerSize.Banner
|
||||
)
|
||||
|
||||
val adView = DaroBannerAdView(
|
||||
context = requireContext(),
|
||||
adUnit = adUnit
|
||||
).apply {
|
||||
setListener(object : DaroAdViewListener {
|
||||
override fun onAdImpression(adInfo: DaroAdInfo) = Unit
|
||||
|
||||
override fun onAdClicked(adInfo: DaroAdInfo) = Unit
|
||||
|
||||
override fun onAdLoadSuccess(ad: DaroViewAd, adInfo: DaroAdInfo) {
|
||||
binding.flDaroBannerContainer.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
override fun onAdLoadFail(err: DaroAdLoadError) {
|
||||
handleDaroBannerLoadFail(err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
daroBannerAdView = adView
|
||||
binding.flDaroBannerContainer.addView(adView)
|
||||
adView.loadAd()
|
||||
}
|
||||
|
||||
private fun handleDaroBannerLoadFail(err: DaroAdLoadError) {
|
||||
binding.flDaroBannerContainer.visibility = View.GONE
|
||||
|
||||
Logger.w(
|
||||
"Daro banner load failed. package=${BuildConfig.APPLICATION_ID}, placement=$DARO_BANNER_PLACEMENT"
|
||||
)
|
||||
Logger.w(
|
||||
"Daro banner load failed. code=${err.code}, message=${err.message}"
|
||||
)
|
||||
|
||||
if (err.message.contains("no fill", ignoreCase = true)) {
|
||||
Logger.w(
|
||||
"Daro no fill. Verify app-ads.txt, Live status, registered package=${BuildConfig.APPLICATION_ID}"
|
||||
)
|
||||
|
||||
if (BuildConfig.DEBUG && BuildConfig.APPLICATION_ID.endsWith(".debug")) {
|
||||
Logger.w(
|
||||
"Debug package differs from release. Register ${BuildConfig.APPLICATION_ID} in Daro or test release package."
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupLatestNotice() {
|
||||
|
||||
@@ -346,6 +346,15 @@
|
||||
android:clipToPadding="false"
|
||||
android:paddingHorizontal="24dp" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Daro bottom banner container -->
|
||||
<FrameLayout
|
||||
android:id="@+id/fl_daro_banner_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="24dp"
|
||||
android:layout_marginTop="32dp"
|
||||
android:visibility="gone" />
|
||||
</LinearLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
Reference in New Issue
Block a user