Skip to content

Commit

Permalink
Updated the Line adapter for better FiveAdConfig instance handling.
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 716324584
  • Loading branch information
Mobile Ads Developer Relations authored and copybara-github committed Jan 16, 2025
1 parent 4e5a54b commit 0e18547
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import android.util.Log
import android.view.View
import com.five_corp.ad.AdLoader
import com.five_corp.ad.BidData
import com.five_corp.ad.FiveAdConfig
import com.five_corp.ad.FiveAdCustomLayout
import com.five_corp.ad.FiveAdCustomLayoutEventListener
import com.five_corp.ad.FiveAdErrorCode
Expand Down Expand Up @@ -83,7 +82,7 @@ private constructor(
}

fun loadRtbAd() {
val fiveAdConfig = FiveAdConfig(appId)
val fiveAdConfig = LineInitializer.getFiveAdConfig(appId)
val adLoader = AdLoader.forConfig(context, fiveAdConfig) ?: return
val bidData = BidData(bidResponse, watermark)
adLoader.loadBannerAd(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
package com.google.ads.mediation.line

import android.content.Context
import androidx.annotation.VisibleForTesting
import com.five_corp.ad.FiveAdConfig
import com.five_corp.ad.NeedChildDirectedTreatment
import com.google.android.gms.ads.MobileAds
import com.google.android.gms.ads.RequestConfiguration
Expand All @@ -24,24 +26,37 @@ import com.google.android.gms.ads.RequestConfiguration
* testing of the class.
*/
object LineInitializer {
private var fiveAdConfig: FiveAdConfig? = null

fun initialize(context: Context, appId: String) {

if (LineSdkWrapper.delegate.isInitialized()) {
return
}

val config = LineSdkFactory.delegate.createFiveAdConfig(appId)
val config = getFiveAdConfig(appId)
LineSdkWrapper.delegate.initialize(context, config)
}

config.needChildDirectedTreatment =
when (MobileAds.getRequestConfiguration().tagForChildDirectedTreatment) {
RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE ->
NeedChildDirectedTreatment.TRUE
RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE ->
NeedChildDirectedTreatment.FALSE
else -> NeedChildDirectedTreatment.UNSPECIFIED
}
fun getFiveAdConfig(appId: String): FiveAdConfig {
if (fiveAdConfig == null) {
fiveAdConfig = LineSdkFactory.delegate.createFiveAdConfig(appId)
fiveAdConfig?.needChildDirectedTreatment =
when (MobileAds.getRequestConfiguration().tagForChildDirectedTreatment) {
RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE ->
NeedChildDirectedTreatment.TRUE
RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE ->
NeedChildDirectedTreatment.FALSE
else -> NeedChildDirectedTreatment.UNSPECIFIED
}

config.isTest = MobileAds.getRequestConfiguration().testDeviceIds.isNotEmpty()
LineSdkWrapper.delegate.initialize(context, config)
fiveAdConfig?.isTest = MobileAds.getRequestConfiguration().testDeviceIds.isNotEmpty()
}
return fiveAdConfig as FiveAdConfig
}

@VisibleForTesting
internal fun resetFiveAdConfig() {
fiveAdConfig = null
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import android.os.Bundle
import android.util.Log
import com.five_corp.ad.AdLoader
import com.five_corp.ad.BidData
import com.five_corp.ad.FiveAdConfig
import com.five_corp.ad.FiveAdErrorCode
import com.five_corp.ad.FiveAdInterface
import com.five_corp.ad.FiveAdInterstitial
Expand Down Expand Up @@ -77,7 +76,7 @@ private constructor(

fun loadRtbAd() {
val activity = activityReference.get() ?: return
val fiveAdConfig = FiveAdConfig(appId)
val fiveAdConfig = LineInitializer.getFiveAdConfig(appId)
val adLoader = AdLoader.forConfig(activity, fiveAdConfig) ?: return
val bidData = BidData(bidResponse, watermark)
adLoader.loadInterstitialAd(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import androidx.annotation.VisibleForTesting
import com.five_corp.ad.AdLoader
import com.five_corp.ad.AdLoader.CollectSignalCallback
import com.five_corp.ad.AdSlotConfig
import com.five_corp.ad.FiveAdConfig
import com.five_corp.ad.FiveAdErrorCode
import com.google.android.gms.ads.AdError
import com.google.android.gms.ads.VersionInfo
Expand Down Expand Up @@ -157,7 +156,7 @@ class LineMediationAdapter : RtbAdapter() {
signalCallbacks.onFailure(adError)
return
}
val adConfig = FiveAdConfig(initAppId)
val adConfig = LineInitializer.getFiveAdConfig(initAppId)
val adLoader = AdLoader.forConfig(signalData.context, adConfig)
if (adLoader == null) {
val adError = AdError(ERROR_CODE_NULL_AD_LOADER, ERROR_MSG_NULL_AD_LOADER, SDK_ERROR_DOMAIN)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import android.widget.ImageView
import androidx.core.graphics.drawable.toDrawable
import com.five_corp.ad.AdLoader
import com.five_corp.ad.BidData
import com.five_corp.ad.FiveAdConfig
import com.five_corp.ad.FiveAdErrorCode
import com.five_corp.ad.FiveAdInterface
import com.five_corp.ad.FiveAdLoadListener
Expand Down Expand Up @@ -87,7 +86,7 @@ private constructor(
}

fun loadRtbAd() {
val fiveAdConfig = FiveAdConfig(appId)
val fiveAdConfig = LineInitializer.getFiveAdConfig(appId)
val adLoader = AdLoader.forConfig(context, fiveAdConfig) ?: return
val bidData = BidData(bidResponse, watermark)
adLoader.loadNativeAd(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import android.os.Bundle
import android.util.Log
import com.five_corp.ad.AdLoader
import com.five_corp.ad.BidData
import com.five_corp.ad.FiveAdConfig
import com.five_corp.ad.FiveAdErrorCode
import com.five_corp.ad.FiveAdInterface
import com.five_corp.ad.FiveAdLoadListener
Expand Down Expand Up @@ -78,7 +77,7 @@ private constructor(

fun loadRtbAd() {
val activity = activityReference.get() ?: return
val fiveAdConfig = FiveAdConfig(appId)
val fiveAdConfig = LineInitializer.getFiveAdConfig(appId)
val adLoader = AdLoader.forConfig(activity, fiveAdConfig) ?: return
val bidData = BidData(bidResponse, watermark)
adLoader.loadRewardAd(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ class LineMediationAdapterTest {
fun setUp() {
LineSdkWrapper.delegate = mockSdkWrapper
LineSdkFactory.delegate = mockSdkFactory
LineInitializer.resetFiveAdConfig()
}

// region Version Tests
Expand Down

0 comments on commit 0e18547

Please sign in to comment.