- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
293 lines
16 KiB
Java
293 lines
16 KiB
Java
package com.ironsource.adapters.admob.banner;
|
|
|
|
import android.os.Bundle;
|
|
import android.text.TextUtils;
|
|
import androidx.annotation.NonNull;
|
|
import com.google.android.gms.ads.AdFormat;
|
|
import com.google.android.gms.ads.AdLoader;
|
|
import com.google.android.gms.ads.AdRequest;
|
|
import com.google.android.gms.ads.AdSize;
|
|
import com.google.android.gms.ads.AdView;
|
|
import com.google.android.gms.ads.VideoOptions;
|
|
import com.google.android.gms.ads.nativead.NativeAd;
|
|
import com.google.android.gms.ads.nativead.NativeAdOptions;
|
|
import com.ironsource.adapters.admob.AdMobAdapter;
|
|
import com.ironsource.environment.ContextProvider;
|
|
import com.ironsource.mediationsdk.AdapterUtils;
|
|
import com.ironsource.mediationsdk.ISBannerSize;
|
|
import com.ironsource.mediationsdk.IronSource;
|
|
import com.ironsource.mediationsdk.IronSourceBannerLayout;
|
|
import com.ironsource.mediationsdk.adapter.AbstractBannerAdapter;
|
|
import com.ironsource.mediationsdk.bidding.BiddingDataCallback;
|
|
import com.ironsource.mediationsdk.logger.IronLog;
|
|
import com.ironsource.mediationsdk.sdk.BannerSmashListener;
|
|
import com.ironsource.mediationsdk.utils.ErrorBuilder;
|
|
import java.util.Iterator;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
import org.json.JSONObject;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class AdMobBannerAdapter extends AbstractBannerAdapter<AdMobAdapter> {
|
|
private final String IS_NATIVE;
|
|
private final ConcurrentHashMap<String, AdView> mAdUnitIdToBannerAd;
|
|
private final ConcurrentHashMap<String, BannerSmashListener> mAdUnitIdToListener;
|
|
public final ConcurrentHashMap<String, NativeAd> mAdUnitIdToNativeBannerAd;
|
|
|
|
public AdMobBannerAdapter(AdMobAdapter adMobAdapter) {
|
|
super(adMobAdapter);
|
|
this.IS_NATIVE = "isNative";
|
|
this.mAdUnitIdToListener = new ConcurrentHashMap<>();
|
|
this.mAdUnitIdToBannerAd = new ConcurrentHashMap<>();
|
|
this.mAdUnitIdToNativeBannerAd = new ConcurrentHashMap<>();
|
|
}
|
|
|
|
@Override // com.ironsource.mediationsdk.adapter.AbstractBannerAdapter, com.ironsource.mediationsdk.sdk.BannerAdapterInterface
|
|
public void initBanners(String str, String str2, @NonNull JSONObject jSONObject, @NonNull BannerSmashListener bannerSmashListener) {
|
|
initBannersInternal(jSONObject, bannerSmashListener);
|
|
}
|
|
|
|
@Override // com.ironsource.mediationsdk.adapter.AbstractBannerAdapter, com.ironsource.mediationsdk.sdk.BannerAdapterInterface
|
|
public void initBannerForBidding(String str, String str2, @NonNull JSONObject jSONObject, @NonNull BannerSmashListener bannerSmashListener) {
|
|
initBannersInternal(jSONObject, bannerSmashListener);
|
|
}
|
|
|
|
private void initBannersInternal(@NonNull JSONObject jSONObject, @NonNull BannerSmashListener bannerSmashListener) {
|
|
String adUnitIdKey = getAdapter().getAdUnitIdKey();
|
|
String configStringValueFromKey = getConfigStringValueFromKey(jSONObject, adUnitIdKey);
|
|
if (TextUtils.isEmpty(configStringValueFromKey)) {
|
|
bannerSmashListener.onBannerInitFailed(ErrorBuilder.buildInitFailedError(getAdUnitIdMissingErrorString(adUnitIdKey), "Banner"));
|
|
return;
|
|
}
|
|
IronLog.ADAPTER_API.verbose("adUnitId = " + configStringValueFromKey);
|
|
this.mAdUnitIdToListener.put(configStringValueFromKey, bannerSmashListener);
|
|
if (getAdapter().getInitState() == AdMobAdapter.InitState.INIT_STATE_SUCCESS) {
|
|
IronLog.INTERNAL.verbose("onBannerInitSuccess - adUnitId = " + configStringValueFromKey);
|
|
bannerSmashListener.onBannerInitSuccess();
|
|
return;
|
|
}
|
|
if (getAdapter().getInitState() == AdMobAdapter.InitState.INIT_STATE_FAILED) {
|
|
IronLog.INTERNAL.verbose("onBannerInitFailed - adUnitId = " + configStringValueFromKey);
|
|
bannerSmashListener.onBannerInitFailed(ErrorBuilder.buildInitFailedError("AdMob sdk init failed", "Banner"));
|
|
return;
|
|
}
|
|
getAdapter().initSDK(jSONObject);
|
|
}
|
|
|
|
@Override // com.ironsource.mediationsdk.adapter.AbstractAdUnitAdapter, com.ironsource.mediationsdk.INetworkInitCallbackListener
|
|
public void onNetworkInitCallbackSuccess() {
|
|
Iterator<BannerSmashListener> it = this.mAdUnitIdToListener.values().iterator();
|
|
while (it.hasNext()) {
|
|
it.next().onBannerInitSuccess();
|
|
}
|
|
}
|
|
|
|
@Override // com.ironsource.mediationsdk.adapter.AbstractAdUnitAdapter, com.ironsource.mediationsdk.INetworkInitCallbackListener
|
|
public void onNetworkInitCallbackFailed(String str) {
|
|
Iterator<BannerSmashListener> it = this.mAdUnitIdToListener.values().iterator();
|
|
while (it.hasNext()) {
|
|
it.next().onBannerInitFailed(ErrorBuilder.buildInitFailedError(str, "Banner"));
|
|
}
|
|
}
|
|
|
|
@Override // com.ironsource.mediationsdk.adapter.AbstractBannerAdapter, com.ironsource.mediationsdk.sdk.BannerAdapterInterface
|
|
public void loadBanner(@NonNull JSONObject jSONObject, JSONObject jSONObject2, @NonNull IronSourceBannerLayout ironSourceBannerLayout, @NonNull BannerSmashListener bannerSmashListener) {
|
|
loadBannerInternal(jSONObject, jSONObject2, null, ironSourceBannerLayout, bannerSmashListener);
|
|
}
|
|
|
|
@Override // com.ironsource.mediationsdk.adapter.AbstractBannerAdapter, com.ironsource.mediationsdk.sdk.BannerAdapterInterface
|
|
public void loadBannerForBidding(@NonNull JSONObject jSONObject, JSONObject jSONObject2, String str, @NonNull IronSourceBannerLayout ironSourceBannerLayout, @NonNull BannerSmashListener bannerSmashListener) {
|
|
loadBannerInternal(jSONObject, jSONObject2, str, ironSourceBannerLayout, bannerSmashListener);
|
|
}
|
|
|
|
private void loadBannerInternal(@NonNull final JSONObject jSONObject, final JSONObject jSONObject2, final String str, @NonNull final IronSourceBannerLayout ironSourceBannerLayout, @NonNull final BannerSmashListener bannerSmashListener) {
|
|
final String configStringValueFromKey = getConfigStringValueFromKey(jSONObject, getAdapter().getAdUnitIdKey());
|
|
IronLog.ADAPTER_API.verbose("adUnitId = " + configStringValueFromKey);
|
|
if (ironSourceBannerLayout == null) {
|
|
IronLog.INTERNAL.error("banner is null");
|
|
bannerSmashListener.onBannerAdLoadFailed(ErrorBuilder.buildNoConfigurationAvailableError("banner is null"));
|
|
} else {
|
|
final boolean parseBoolean = Boolean.parseBoolean(getConfigStringValueFromKey(jSONObject, "isNative"));
|
|
postOnUIThread(new Runnable() { // from class: com.ironsource.adapters.admob.banner.AdMobBannerAdapter.1
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
try {
|
|
AdRequest createAdRequest = AdMobBannerAdapter.this.getAdapter().createAdRequest(jSONObject2, str);
|
|
if (parseBoolean) {
|
|
AdMobBannerAdapter.this.loadNativeBanner(ironSourceBannerLayout, bannerSmashListener, configStringValueFromKey, createAdRequest, jSONObject);
|
|
return;
|
|
}
|
|
AdSize adSize = AdMobBannerAdapter.this.getAdSize(ironSourceBannerLayout.getSize(), AdapterUtils.isLargeScreen(ContextProvider.getInstance().getApplicationContext()));
|
|
if (adSize == null) {
|
|
bannerSmashListener.onBannerAdLoadFailed(ErrorBuilder.unsupportedBannerSize(AdMobBannerAdapter.this.getAdapter().getProviderName()));
|
|
return;
|
|
}
|
|
AdView adView = new AdView(ContextProvider.getInstance().getApplicationContext());
|
|
adView.setAdSize(adSize);
|
|
adView.setAdUnitId(configStringValueFromKey);
|
|
adView.setAdListener(new AdMobBannerAdListener(bannerSmashListener, configStringValueFromKey, adView));
|
|
AdMobBannerAdapter.this.mAdUnitIdToBannerAd.put(configStringValueFromKey, adView);
|
|
IronLog.ADAPTER_API.verbose("loadAd");
|
|
adView.loadAd(createAdRequest);
|
|
} catch (Exception e) {
|
|
bannerSmashListener.onBannerAdLoadFailed(ErrorBuilder.buildLoadFailedError("AdMobAdapter loadBanner exception " + e.getMessage()));
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public void loadNativeBanner(IronSourceBannerLayout ironSourceBannerLayout, BannerSmashListener bannerSmashListener, String str, AdRequest adRequest, JSONObject jSONObject) {
|
|
if (!isNativeBannerSizeSupported(ironSourceBannerLayout.getSize(), AdapterUtils.isLargeScreen(ContextProvider.getInstance().getApplicationContext()))) {
|
|
IronLog.INTERNAL.error("size not supported, size = " + ironSourceBannerLayout.getSize().getDescription());
|
|
bannerSmashListener.onBannerAdLoadFailed(ErrorBuilder.unsupportedBannerSize(getAdapter().getProviderName()));
|
|
return;
|
|
}
|
|
IronLog.ADAPTER_API.verbose("adUnitId = " + str);
|
|
NativeTemplateType createTemplateType = NativeTemplateType.createTemplateType(jSONObject, ironSourceBannerLayout.getSize());
|
|
AdMobNativeBannerAdListener adMobNativeBannerAdListener = new AdMobNativeBannerAdListener(this, bannerSmashListener, str, ironSourceBannerLayout.getSize(), createTemplateType);
|
|
new AdLoader.Builder(ironSourceBannerLayout.getContext(), str).forNativeAd(adMobNativeBannerAdListener).withNativeAdOptions(createNativeAdOptions(createTemplateType)).withAdListener(adMobNativeBannerAdListener).build().loadAd(adRequest);
|
|
}
|
|
|
|
private NativeAdOptions createNativeAdOptions(NativeTemplateType nativeTemplateType) {
|
|
NativeAdOptions.Builder builder = new NativeAdOptions.Builder();
|
|
builder.setVideoOptions(new VideoOptions.Builder().setStartMuted(true).build());
|
|
builder.setAdChoicesPlacement(nativeTemplateType.getAdChoicesPlacement());
|
|
builder.setMediaAspectRatio(nativeTemplateType.getMediaAspectRatio());
|
|
return builder.build();
|
|
}
|
|
|
|
@Override // com.ironsource.mediationsdk.adapter.AbstractBannerAdapter, com.ironsource.mediationsdk.sdk.BannerAdapterInterface
|
|
public void destroyBanner(@NonNull final JSONObject jSONObject) {
|
|
postOnUIThread(new Runnable() { // from class: com.ironsource.adapters.admob.banner.AdMobBannerAdapter.2
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
try {
|
|
AdMobBannerAdapter adMobBannerAdapter = AdMobBannerAdapter.this;
|
|
String configStringValueFromKey = adMobBannerAdapter.getConfigStringValueFromKey(jSONObject, adMobBannerAdapter.getAdapter().getAdUnitIdKey());
|
|
IronLog.ADAPTER_API.verbose("adUnitId = " + configStringValueFromKey);
|
|
if (AdMobBannerAdapter.this.mAdUnitIdToBannerAd.containsKey(configStringValueFromKey)) {
|
|
AdView adView = (AdView) AdMobBannerAdapter.this.mAdUnitIdToBannerAd.get(configStringValueFromKey);
|
|
if (adView != null) {
|
|
adView.destroy();
|
|
}
|
|
AdMobBannerAdapter.this.mAdUnitIdToBannerAd.remove(configStringValueFromKey);
|
|
}
|
|
if (AdMobBannerAdapter.this.mAdUnitIdToNativeBannerAd.containsKey(configStringValueFromKey)) {
|
|
NativeAd nativeAd = AdMobBannerAdapter.this.mAdUnitIdToNativeBannerAd.get(configStringValueFromKey);
|
|
if (nativeAd != null) {
|
|
nativeAd.destroy();
|
|
}
|
|
AdMobBannerAdapter.this.mAdUnitIdToNativeBannerAd.remove(configStringValueFromKey);
|
|
}
|
|
} catch (Exception e) {
|
|
IronLog.ADAPTER_API.error("e = " + e);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override // com.ironsource.mediationsdk.sdk.ReleaseMemoryAdapterInterface
|
|
public void releaseMemory(@NonNull IronSource.AD_UNIT ad_unit, JSONObject jSONObject) {
|
|
postOnUIThread(new Runnable() { // from class: com.ironsource.adapters.admob.banner.AdMobBannerAdapter.3
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
Iterator it = AdMobBannerAdapter.this.mAdUnitIdToBannerAd.values().iterator();
|
|
while (it.hasNext()) {
|
|
((AdView) it.next()).destroy();
|
|
}
|
|
Iterator<NativeAd> it2 = AdMobBannerAdapter.this.mAdUnitIdToNativeBannerAd.values().iterator();
|
|
while (it2.hasNext()) {
|
|
it2.next().destroy();
|
|
}
|
|
AdMobBannerAdapter.this.mAdUnitIdToBannerAd.clear();
|
|
AdMobBannerAdapter.this.mAdUnitIdToListener.clear();
|
|
AdMobBannerAdapter.this.mAdUnitIdToNativeBannerAd.clear();
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override // com.ironsource.mediationsdk.adapter.AbstractBannerAdapter, com.ironsource.mediationsdk.sdk.BannerAdapterInterface
|
|
public void collectBannerBiddingData(@NonNull JSONObject jSONObject, JSONObject jSONObject2, BiddingDataCallback biddingDataCallback) {
|
|
IronSourceBannerLayout ironSourceBannerLayout;
|
|
Bundle bundle = new Bundle();
|
|
if (jSONObject2 != null && (ironSourceBannerLayout = (IronSourceBannerLayout) jSONObject2.opt("bannerLayout")) != null) {
|
|
ISBannerSize size = ironSourceBannerLayout.getSize();
|
|
if (size.isAdaptive()) {
|
|
AdSize adSize = getAdSize(size, AdapterUtils.isLargeScreen(ContextProvider.getInstance().getApplicationContext()));
|
|
bundle.putInt("adaptive_banner_w", adSize.getWidth());
|
|
bundle.putInt("adaptive_banner_h", adSize.getHeight());
|
|
IronLog.ADAPTER_API.verbose("adaptive banner width = " + adSize.getWidth() + ", height = " + adSize.getHeight());
|
|
}
|
|
}
|
|
getAdapter().collectBiddingData(biddingDataCallback, AdFormat.BANNER, bundle);
|
|
}
|
|
|
|
@Override // com.ironsource.mediationsdk.adapter.AbstractBannerAdapter, com.ironsource.mediationsdk.sdk.BannerAdapterInterface
|
|
public int getAdaptiveHeight(int i) {
|
|
int height = getAdaptiveBannerSize(i).getHeight();
|
|
IronLog.ADAPTER_API.verbose("height - " + height + " for width - " + i);
|
|
return height;
|
|
}
|
|
|
|
public AdSize getAdSize(ISBannerSize iSBannerSize, boolean z) {
|
|
AdSize adSize;
|
|
String description = iSBannerSize.getDescription();
|
|
description.hashCode();
|
|
switch (description) {
|
|
case "RECTANGLE":
|
|
adSize = AdSize.MEDIUM_RECTANGLE;
|
|
break;
|
|
case "LARGE":
|
|
adSize = AdSize.LARGE_BANNER;
|
|
break;
|
|
case "SMART":
|
|
if (!z) {
|
|
adSize = AdSize.BANNER;
|
|
break;
|
|
} else {
|
|
adSize = AdSize.LEADERBOARD;
|
|
break;
|
|
}
|
|
case "BANNER":
|
|
adSize = AdSize.BANNER;
|
|
break;
|
|
case "CUSTOM":
|
|
adSize = new AdSize(iSBannerSize.getWidth(), iSBannerSize.getHeight());
|
|
break;
|
|
default:
|
|
adSize = null;
|
|
break;
|
|
}
|
|
try {
|
|
if (iSBannerSize.isAdaptive() && adSize != null) {
|
|
AdSize adaptiveBannerSize = getAdaptiveBannerSize(iSBannerSize.containerParams.getWidth());
|
|
IronLog.INTERNAL.verbose("default height - " + adSize.getHeight() + " adaptive height - " + adaptiveBannerSize.getHeight() + " container height - " + iSBannerSize.containerParams.getHeight() + " default width - " + adSize.getWidth() + " container width - " + iSBannerSize.containerParams.getWidth());
|
|
return adaptiveBannerSize;
|
|
}
|
|
} catch (Exception unused) {
|
|
IronLog.INTERNAL.error("containerParams is not supported");
|
|
}
|
|
return adSize;
|
|
}
|
|
|
|
private static AdSize getAdaptiveBannerSize(int i) {
|
|
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(ContextProvider.getInstance().getApplicationContext(), i);
|
|
}
|
|
|
|
private boolean isNativeBannerSizeSupported(ISBannerSize iSBannerSize, boolean z) {
|
|
String description = iSBannerSize.getDescription();
|
|
description.hashCode();
|
|
switch (description) {
|
|
case "RECTANGLE":
|
|
case "LARGE":
|
|
case "BANNER":
|
|
return true;
|
|
case "SMART":
|
|
return !z;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
}
|