콘텐츠 메인 - 배너 광고 추가

This commit is contained in:
klaus 2023-09-15 01:22:51 +09:00
parent 26e43bd548
commit cae15b7f39
5 changed files with 50 additions and 5 deletions

View File

@ -52,12 +52,12 @@ android {
buildConfigField 'String', 'BOOTPAY_APP_ID', '"64c35be1d25985001dc50c87"'
buildConfigField 'String', 'AGORA_APP_ID', '"e34e40046e9847baba3adfe2b8ffb4f6"'
buildConfigField 'String', 'AGORA_APP_CERTIFICATE', '"15cadeea4ba94ff7b091c9a10f4bf4a6"'
buildConfigField 'String', 'ADMOB_FREE_CONTENT_BANNER_UNIT_ID', '"ca-app-pub-1299501215847962/8351317711"'
// manifest
manifestPlaceholders["ADMOB_APP_ID"] = "ca-app-pub-1299501215847962~1110535210"
resValue 'string', 'admob_free_content_banner_unit_id', 'ca-app-pub-1299501215847962/8351317711'
resValue 'string', 'admob_curation_banner_unit_id', 'ca-app-pub-1299501215847962/3008928485'
}
debug {
@ -69,12 +69,12 @@ android {
buildConfigField 'String', 'BOOTPAY_APP_ID', '"6242a7772701800023f68b2e"'
buildConfigField 'String', 'AGORA_APP_ID', '"b96574e191a9430fa54c605528aa3ef7"'
buildConfigField 'String', 'AGORA_APP_CERTIFICATE', '"ae18ade3afcf4086bd4397726eb0654c"'
buildConfigField 'String', 'ADMOB_FREE_CONTENT_BANNER_UNIT_ID', '"ca-app-pub-3940256099942544/6300978111"'
// manifest
manifestPlaceholders["ADMOB_APP_ID"] = "ca-app-pub-1299501215847962~3769074871"
resValue 'string', 'admob_free_content_banner_unit_id', 'ca-app-pub-3940256099942544/6300978111'
resValue 'string', 'admob_curation_banner_unit_id', 'ca-app-pub-3940256099942544/6300978111'
}
}
compileOptions {

View File

@ -8,6 +8,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.gms.ads.AdRequest
import kr.co.vividnext.sodalive.databinding.ItemAudioContentMainCurationBinding
import kr.co.vividnext.sodalive.extensions.dpToPx
@ -22,10 +23,16 @@ class AudioContentMainCurationAdapter(
private val context: Context,
private val binding: ItemAudioContentMainCurationBinding
) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: GetAudioContentCurationResponse) {
fun bind(item: GetAudioContentCurationResponse, index: Int) {
binding.tvTitle.text = item.title
binding.tvDesc.text = item.description
setAudioContentList(item.audioContents)
if (index % 2 != 0) {
setupAdMob()
} else {
binding.adView.visibility = View.GONE
}
}
private fun setAudioContentList(audioContents: List<GetAudioContentMainItem>) {
@ -68,6 +75,12 @@ class AudioContentMainCurationAdapter(
binding.rvCuration.adapter = adapter
adapter.addItems(audioContents)
}
private fun setupAdMob() {
val adRequest = AdRequest.Builder().build()
binding.adView.visibility = View.VISIBLE
binding.adView.loadAd(adRequest)
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ViewHolder(
@ -80,7 +93,7 @@ class AudioContentMainCurationAdapter(
)
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bind(items[position])
holder.bind(items[position], position)
}
override fun getItemCount() = items.size

View File

@ -12,6 +12,7 @@ import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.gms.ads.AdRequest
import com.zhpan.bannerview.BaseBannerAdapter
import com.zhpan.indicator.enums.IndicatorSlideMode
import com.zhpan.indicator.enums.IndicatorStyle
@ -55,11 +56,16 @@ class AudioContentMainFragment : BaseFragment<FragmentAudioContentMainBinding>(
) as InputMethodManager
setupView()
setupAdMob()
bindData()
viewModel.getMain()
}
private fun setupAdMob() {
binding.adView.loadAd(AdRequest.Builder().build())
}
private fun setupView() {
if (SharedPreferenceManager.role == MemberRole.CREATOR.name) {
binding.llUploadContent.visibility = View.VISIBLE

View File

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
@ -53,6 +55,17 @@
android:layout_marginTop="6.7dp"
android:layout_marginBottom="40dp" />
<com.google.android.gms.ads.AdView
android:id="@+id/ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="13.3dp"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/admob_curation_banner_unit_id"
app:layout_constraintEnd_toEndOf="@+id/tv_title"
app:layout_constraintStart_toStartOf="@+id/tv_title"
app:layout_constraintTop_toBottomOf="@+id/rv_curation" />
<LinearLayout
android:id="@+id/ll_my_stash"
android:layout_width="match_parent"

View File

@ -1,4 +1,5 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
@ -21,9 +22,9 @@
android:id="@+id/tv_desc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:fontFamily="@font/gmarket_sans_medium"
android:paddingHorizontal="13.3dp"
android:layout_marginTop="4dp"
android:textColor="@color/color_777777"
android:textSize="13sp"
app:layout_constraintEnd_toEndOf="@+id/tv_title"
@ -43,4 +44,16 @@
app:layout_constraintStart_toStartOf="@+id/tv_title"
app:layout_constraintTop_toBottomOf="@+id/tv_desc" />
<com.google.android.gms.ads.AdView
android:id="@+id/ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13.3dp"
android:visibility="gone"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/admob_curation_banner_unit_id"
app:layout_constraintEnd_toEndOf="@+id/tv_title"
app:layout_constraintStart_toStartOf="@+id/tv_title"
app:layout_constraintTop_toBottomOf="@+id/rv_curation" />
</androidx.constraintlayout.widget.ConstraintLayout>