正在查看: CallApp v2.226 应用的 MobileFuseBidder.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: CallApp v2.226 应用的 MobileFuseBidder.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.callapp.ads.api.bidder;
import android.content.Context;
import android.content.res.Resources;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import com.callapp.ads.AdSdk;
import com.callapp.ads.C0233a;
import com.callapp.ads.C0239g;
import com.callapp.ads.F;
import com.callapp.ads.H;
import com.callapp.ads.M;
import com.callapp.ads.api.AdErrorCode;
import com.callapp.ads.api.AdTypeAndSize;
import com.callapp.ads.api.Constants;
import com.callapp.ads.api.InterstitialAdWrapper;
import com.callapp.ads.api.LogLevel;
import com.callapp.ads.api.bidder.OpenRTBJsonObjects;
import com.callapp.ads.api.models.JSONBidder;
import com.callapp.ads.interfaces.AdEvents;
import com.callapp.ads.interfaces.ConsentStatus;
import com.callapp.ads.s;
import com.callapp.ads.u;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.module.kotlin.ExtensionsKt;
import com.mobilefuse.sdk.AdError;
import com.mobilefuse.sdk.MobileFuse;
import com.mobilefuse.sdk.MobileFuseBannerAd;
import com.mobilefuse.sdk.MobileFuseInterstitialAd;
import com.mobilefuse.sdk.MobileFuseSettings;
import com.mobilefuse.sdk.SdkInitListener;
import com.mobilefuse.sdk.internal.MobileFuseBiddingTokenProvider;
import com.mobilefuse.sdk.internal.MobileFuseBiddingTokenRequest;
import com.mobilefuse.sdk.internal.TokenGeneratorListener;
import com.mobilefuse.sdk.privacy.MobileFusePrivacyPreferences;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicBoolean;
import net.pubnative.lite.sdk.models.AdRequest;
import net.pubnative.lite.sdk.models.AdRequestFactory;
import net.pubnative.lite.sdk.models.AdSize;
import net.pubnative.lite.sdk.models.OpenRTBAdRequestFactory;
import net.pubnative.lite.sdk.models.request.OpenRTBAdRequest;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import s4.y;
public class MobileFuseBidder extends DefaultSimpleBidder {
public static final String BUNDLE_PARAM_KEY = "MOBILEFUSE_BIDDER_BUNDLE";
private static final String ENDPOINT = "https://mfx.mobilefuse.com/openrtb?ssp=";
public static final String FLOOR_PRICE_PARAM_KEY = "MOBILEFUSE_BIDDER_FLOOR_PRICE";
public static final String SSP_PARTNER_ID_PARAM_KEY = "MOBILEFUSE_BIDDER_SSP_PARTNER_ID";
private static final AtomicBoolean networkInitialized = new AtomicBoolean(false);
private OpenRTBJsonObjects.Bid bid;
private InterstitialAdWrapper interstitialAdWrapper;
private MobileFuseBannerAd mobileFuseBannerAd;
private MobileFuseInterstitialAd mobileFuseInterstitialAd;
private AdTypeAndSize typeAndSize;
public class AnonymousClass2 implements Runnable {
final s val$bidListener;
final Context val$context;
final JSONBidder val$jsonBidder;
final String val$sspPartnerId;
public class AnonymousClass1 implements TokenGeneratorListener {
public AnonymousClass1() {
}
public void onTokenGenerated(@NonNull final String str) {
MobileFuseBidder.this.handler.post(new Runnable() {
@Override
public void run() {
new OpenRTBAdRequestFactory().createAdRequest(str, AnonymousClass2.this.val$jsonBidder.getAdUnitId(), AdSize.SIZE_300x50, false, false, new AdRequestFactory.Callback() {
public void onRequestCreated(AdRequest adRequest) {
OpenRTBJsonObjects.Seatbid seatbid;
OpenRTBJsonObjects.Imp imp = new OpenRTBJsonObjects.Imp();
imp.id = "1";
imp.tagid = AnonymousClass2.this.val$jsonBidder.getAdUnitId();
double d = MobileFuseBidder.this.minFloor;
if (d <= 0.0d) {
d = AdSdk.b(MobileFuseBidder.FLOOR_PRICE_PARAM_KEY);
}
if (d > 0.0d) {
imp.bidfloor = MobileFuseBidder.this.minFloor;
imp.bidfloorcur = "USD";
}
int adType = AnonymousClass2.this.val$jsonBidder.getAdType();
if (adType == 0) {
AnonymousClass2.this.val$bidListener.onBidFailure(AdErrorCode.ADAPTER_CONFIGURATION_ERROR.toString());
return;
}
if (adType == 1) {
imp.instl = 0;
OpenRTBJsonObjects.Banner banner = new OpenRTBJsonObjects.Banner();
OpenRTBJsonObjects.Format format = new OpenRTBJsonObjects.Format();
format.h = 50;
format.w = 320;
banner.format = Collections.singletonList(format);
imp.banner = banner;
MobileFuseBidder.this.typeAndSize = AdTypeAndSize.BANNER_320X50;
} else if (adType == 2) {
imp.instl = 0;
OpenRTBJsonObjects.Banner banner2 = new OpenRTBJsonObjects.Banner();
OpenRTBJsonObjects.Format format2 = new OpenRTBJsonObjects.Format();
format2.h = 250;
format2.w = 300;
banner2.format = Collections.singletonList(format2);
imp.banner = banner2;
MobileFuseBidder.this.typeAndSize = AdTypeAndSize.BANNER_300X250;
} else if (adType == 4) {
imp.instl = 1;
MobileFuseBidder.this.typeAndSize = AdTypeAndSize.INTERSTITIAL;
}
try {
OpenRTBJsonObjects.User user = new OpenRTBJsonObjects.User();
OpenRTBJsonObjects.Datum datum = new OpenRTBJsonObjects.Datum();
OpenRTBJsonObjects.Segment segment = new OpenRTBJsonObjects.Segment();
segment.signal = str;
ArrayList arrayList = new ArrayList(1);
Object obj = new Object[]{segment}[0];
Objects.requireNonNull(obj);
arrayList.add(obj);
datum.segment = Collections.unmodifiableList(arrayList);
ArrayList arrayList2 = new ArrayList(1);
Object obj2 = new Object[]{datum}[0];
Objects.requireNonNull(obj2);
arrayList2.add(obj2);
user.data = Collections.unmodifiableList(arrayList2);
OpenRTBJsonObjects.App app = new OpenRTBJsonObjects.App();
app.bundle = AdSdk.d(MobileFuseBidder.BUNDLE_PARAM_KEY);
OpenRTBJsonObjects.Request request = new OpenRTBJsonObjects.Request();
app.at = 1;
app.tmax = OpenRTBJsonObjects.TMAX_VALUE;
OpenRTBJsonObjects.Regs regs = new OpenRTBJsonObjects.Regs();
OpenRTBJsonObjects.Regs.Ext ext = new OpenRTBJsonObjects.Regs.Ext();
ext.us_privacy = "1---";
ext.ccpa = 0;
if (AdSdk.h == ConsentStatus.PERSONALIZED) {
ext.gdpr = 1;
String a = M.a(AnonymousClass2.this.val$context);
OpenRTBJsonObjects.User.Ext ext2 = new OpenRTBJsonObjects.User.Ext();
user.ext = ext2;
ext2.consent = a;
} else {
ext.gdpr = 0;
}
regs.ext = ext;
request.id = UUID.randomUUID().toString();
ArrayList arrayList3 = new ArrayList(1);
Object obj3 = new Object[]{imp}[0];
Objects.requireNonNull(obj3);
arrayList3.add(obj3);
request.imp = Collections.unmodifiableList(arrayList3);
request.device = ((OpenRTBAdRequest) adRequest).getDevice();
request.app = app;
request.user = user;
request.regs = regs;
String str2 = AdSdk.k;
H.a.getClass();
if (!H.a.a(str2)) {
request.device.setIp((String) null);
} else if (str2.indexOf(58) < 0) {
request.device.setIp(str2);
} else {
request.device.setIpv6(str2);
}
Response execute = new OkHttpClient().newCall(new Request.Builder().url(MobileFuseBidder.ENDPOINT + AnonymousClass2.this.val$sspPartnerId).post(RequestBody.create(new ObjectMapper().writer().withDefaultPrettyPrinter().writeValueAsString(request), MediaType.parse("application/json; charset=utf-8"))).build()).execute();
try {
if (execute.isSuccessful() && execute.body() != null) {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
OpenRTBJsonObjects.Response response = (OpenRTBJsonObjects.Response) ExtensionsKt.registerKotlinModule(objectMapper).reader().readValue(new String(execute.body().bytes()), OpenRTBJsonObjects.Response.class);
if (response != null) {
List<OpenRTBJsonObjects.Seatbid> list = response.seatbid;
u.a.getClass();
if (u.a.a(list) && (seatbid = response.seatbid.get(0)) != null && u.a.a(seatbid.bid)) {
MobileFuseBidder.this.bid = seatbid.bid.get(0);
AnonymousClass2 anonymousClass2 = AnonymousClass2.this;
MobileFuseBidder mobileFuseBidder = MobileFuseBidder.this;
double d2 = mobileFuseBidder.bid.price;
mobileFuseBidder.price = d2;
anonymousClass2.val$bidListener.onBidSuccess(d2);
execute.close();
}
}
}
AnonymousClass2.this.val$bidListener.onBidFailure(AdErrorCode.NETWORK_INVALID_STATE.toString());
execute.close();
} finally {
}
} catch (Exception e) {
AdSdk.log(LogLevel.DEBUG, (Class<?>) MobileFuseBidder.class, e);
AnonymousClass2.this.val$bidListener.onBidFailure(e.getMessage());
}
}
});
}
});
}
public void onTokenGenerationFailed(@NonNull String str) {
AnonymousClass2.this.val$bidListener.onBidFailure(str);
}
}
public AnonymousClass2(JSONBidder jSONBidder, s sVar, Context context, String str) {
this.val$jsonBidder = jSONBidder;
this.val$bidListener = sVar;
this.val$context = context;
this.val$sspPartnerId = str;
}
@Override
public void run() {
MobileFuseBidder.this.getBiddingToken(new AnonymousClass1());
}
}
public void getBiddingToken(TokenGeneratorListener tokenGeneratorListener) {
MobileFusePrivacyPreferences.Builder builder = new MobileFusePrivacyPreferences.Builder();
builder.setIabConsentString(M.a(AdSdk.g));
MobileFuseBiddingTokenProvider.getToken(new MobileFuseBiddingTokenRequest(builder.build(), AdSdk.j), getSafeContext(this.context), tokenGeneratorListener);
}
public static void initializeNetwork() {
AtomicBoolean atomicBoolean = networkInitialized;
if (atomicBoolean.get()) {
return;
}
synchronized (MobileFuseBidder.class) {
try {
if (!atomicBoolean.get()) {
if (AdSdk.j) {
MobileFuseSettings.setTestMode(true);
}
final CountDownLatch countDownLatch = new CountDownLatch(1);
MobileFuse.init(new SdkInitListener() {
public void onInitError() {
countDownLatch.countDown();
}
public void onInitSuccess() {
MobileFuseBidder.networkInitialized.set(true);
countDownLatch.countDown();
}
});
try {
countDownLatch.await();
} catch (InterruptedException e) {
AdSdk.log(LogLevel.DEBUG, (Class<?>) MobileFuseBidder.class, e);
}
networkInitialized.set(true);
}
} finally {
}
}
}
private void loadBannerAd(@NonNull final AdEvents adEvents) {
if (this.bid == null) {
adEvents.onBannerAdFailed(null, AdErrorCode.AD_SHOW_ERROR);
return;
}
MobileFuseBannerAd mobileFuseBannerAd = new MobileFuseBannerAd(getSafeContext(this.context), this.jsonBidder.getAdUnitId(), this.typeAndSize == AdTypeAndSize.BANNER_320X50 ? MobileFuseBannerAd.AdSize.BANNER_320x50 : MobileFuseBannerAd.AdSize.BANNER_300x250);
this.mobileFuseBannerAd = mobileFuseBannerAd;
mobileFuseBannerAd.setMuted(true);
this.mobileFuseBannerAd.setListener(new MobileFuseBannerAd.Listener() {
public void onAdClicked() {
String networkName = MobileFuseBidder.this.getNetworkName();
String adUnitId = MobileFuseBidder.this.jsonBidder.getAdUnitId();
MobileFuseBidder mobileFuseBidder = MobileFuseBidder.this;
AdSdk.a(networkName, adUnitId, mobileFuseBidder.typeAndSize, mobileFuseBidder.requestId, mobileFuseBidder.refreshCount);
}
public void onAdCollapsed() throws Throwable {
}
public void onAdError(AdError adError) {
adEvents.onBannerAdFailed(MobileFuseBidder.this.mobileFuseBannerAd, AdErrorCode.AD_SHOW_ERROR);
}
public void onAdExpanded() throws Throwable {
}
public void onAdExpired() {
}
public void onAdLoaded() {
int a;
float a2;
MobileFuseBidder mobileFuseBidder = MobileFuseBidder.this;
if (mobileFuseBidder.isDestroyed) {
MobileFuseBannerAd mobileFuseBannerAd2 = mobileFuseBidder.mobileFuseBannerAd;
if (mobileFuseBannerAd2 != null) {
mobileFuseBannerAd2.destroy();
MobileFuseBidder.this.mobileFuseBannerAd.setListener((MobileFuseBannerAd.Listener) null);
return;
}
return;
}
Resources resources = mobileFuseBidder.mobileFuseBannerAd.getResources();
if (MobileFuseBidder.this.jsonBidder.getAdType() == 1) {
a = (int) C0233a.a(50.0f, resources);
a2 = C0233a.a(320.0f, resources);
} else {
a = (int) C0233a.a(250.0f, resources);
a2 = C0233a.a(300.0f, resources);
}
MobileFuseBidder.this.mobileFuseBannerAd.setLayoutParams(new FrameLayout.LayoutParams((int) a2, a));
AdEvents adEvents2 = adEvents;
MobileFuseBidder mobileFuseBidder2 = MobileFuseBidder.this;
adEvents2.onBannerAdLoaded(mobileFuseBidder2.mobileFuseBannerAd, mobileFuseBidder2.jsonBidder.isCallappDisableRefresh());
}
public void onAdNotFilled() {
adEvents.onBannerAdFailed(MobileFuseBidder.this.mobileFuseBannerAd, AdErrorCode.AD_SHOW_ERROR);
}
public void onAdRendered() {
if (!MobileFuseBidder.this.impressionFired.getAndSet(true)) {
String networkName = MobileFuseBidder.this.getNetworkName();
String adUnitId = MobileFuseBidder.this.jsonBidder.getAdUnitId();
MobileFuseBidder mobileFuseBidder = MobileFuseBidder.this;
AdSdk.a(networkName, adUnitId, mobileFuseBidder.price, mobileFuseBidder.typeAndSize, mobileFuseBidder.requestId, mobileFuseBidder.refreshCount);
return;
}
AdSdk.b.a(Constants.AD, MobileFuseBidder.this.getNetworkName() + Constants.DUPLICATE_IMPRESSION, MobileFuseBidder.this.jsonBidder.getAdUnitId(), new String[0]);
}
});
this.mobileFuseBannerAd.loadAdFromBiddingToken(this.bid.ext.signaldata);
}
private void loadInterstitialAd(@NonNull final AdEvents adEvents) {
this.interstitialAdWrapper = new InterstitialAdWrapper(getAdExpireMS()) {
@Override
public void destroy() {
MobileFuseBidder.this.mobileFuseInterstitialAd.setListener((MobileFuseInterstitialAd.Listener) null);
}
@Override
public void show() {
MobileFuseInterstitialAd mobileFuseInterstitialAd = MobileFuseBidder.this.mobileFuseInterstitialAd;
if (mobileFuseInterstitialAd != null) {
mobileFuseInterstitialAd.showAd();
} else {
adEvents.onInterstitialFailed(this, AdErrorCode.AD_SHOW_ERROR);
}
}
};
MobileFuseInterstitialAd mobileFuseInterstitialAd = new MobileFuseInterstitialAd(getSafeContext(this.context), this.jsonBidder.getAdUnitId());
this.mobileFuseInterstitialAd = mobileFuseInterstitialAd;
mobileFuseInterstitialAd.setMuted(true);
this.mobileFuseInterstitialAd.setListener(new MobileFuseInterstitialAd.Listener() {
public void onAdClicked() {
String networkName = MobileFuseBidder.this.getNetworkName();
String adUnitId = MobileFuseBidder.this.jsonBidder.getAdUnitId();
AdTypeAndSize adTypeAndSize = AdTypeAndSize.INTERSTITIAL;
MobileFuseBidder mobileFuseBidder = MobileFuseBidder.this;
AdSdk.a(networkName, adUnitId, adTypeAndSize, mobileFuseBidder.requestId, mobileFuseBidder.refreshCount);
adEvents.onInterstitialClicked(MobileFuseBidder.this.interstitialAdWrapper);
}
public void onAdClosed() throws Throwable {
adEvents.onInterstitialDismissed(MobileFuseBidder.this.interstitialAdWrapper);
}
public void onAdError(AdError adError) {
adEvents.onInterstitialFailed(MobileFuseBidder.this.interstitialAdWrapper, AdErrorCode.FULLSCREEN_LOAD_ERROR);
}
public void onAdExpired() {
}
public void onAdLoaded() {
adEvents.onInterstitialLoaded(MobileFuseBidder.this.interstitialAdWrapper);
}
public void onAdNotFilled() {
}
public void onAdRendered() {
String networkName = MobileFuseBidder.this.getNetworkName();
String adUnitId = MobileFuseBidder.this.jsonBidder.getAdUnitId();
MobileFuseBidder mobileFuseBidder = MobileFuseBidder.this;
AdSdk.a(networkName, adUnitId, mobileFuseBidder.price, AdTypeAndSize.INTERSTITIAL, mobileFuseBidder.requestId, mobileFuseBidder.refreshCount);
adEvents.onInterstitialShown(MobileFuseBidder.this.interstitialAdWrapper);
}
});
this.mobileFuseInterstitialAd.loadAdFromBiddingToken(this.bid.ext.signaldata);
}
@Override
public void destroy() {
super.destroy();
AdSdk.runOnMainThread(new F() {
@Override
public void doTask() {
MobileFuseBannerAd mobileFuseBannerAd = MobileFuseBidder.this.mobileFuseBannerAd;
if (mobileFuseBannerAd != null) {
mobileFuseBannerAd.destroy();
MobileFuseBidder.this.mobileFuseBannerAd.setListener((MobileFuseBannerAd.Listener) null);
MobileFuseBidder.this.mobileFuseBannerAd = null;
}
InterstitialAdWrapper interstitialAdWrapper = MobileFuseBidder.this.interstitialAdWrapper;
if (interstitialAdWrapper != null) {
interstitialAdWrapper.destroy();
MobileFuseBidder.this.interstitialAdWrapper = null;
}
}
@Override
public void handleException(Throwable th) {
}
});
}
@Override
public boolean getBid(Context context, JSONBidder jSONBidder, @NonNull s sVar, long j, String str, int i, float f) {
if (!super.getBid(context, jSONBidder, sVar, j, str, i, f)) {
return false;
}
String d = AdSdk.d(SSP_PARTNER_ID_PARAM_KEY);
if (H.a((CharSequence) d)) {
sVar.onBidFailure(AdErrorCode.ADAPTER_CONFIGURATION_ERROR.toString());
return false;
}
if (this.handlerThread == null) {
HandlerThread handlerThread = new HandlerThread(MobileFuseBidder.class.toString());
this.handlerThread = handlerThread;
handlerThread.start();
Looper looper = this.handlerThread.getLooper();
C0239g.a.getClass();
C0239g.a.a(looper);
this.handler = new Handler(this.handlerThread.getLooper());
}
this.handler.post(new AnonymousClass2(jSONBidder, sVar, context, d));
return true;
}
@Override
public void getBidWithFloor(Context context, JSONBidder jSONBidder, s sVar, long j, String str, double d, int i, float f) {
this.minFloor = d;
getBid(context, jSONBidder, sVar, j, str, i, f);
}
@Override
public String getNetworkName() {
return "mobilefuseSDK";
}
@Override
public void initialize() {
initializeNetwork();
}
@Override
public boolean isInitialized() {
return networkInitialized.get();
}
@Override
public void loadAd(@NonNull AdEvents adEvents, int i) {
}
@Override
public void notifyLoss(double d, String str) {
OpenRTBJsonObjects.Bid bid = this.bid;
if (bid != null) {
String str2 = bid.lurl;
H.a.getClass();
if (H.a.a(str2)) {
try {
Response execute = new OkHttpClient().newCall(new Request.Builder().url(this.bid.lurl.replace("${AUCTION_PRICE}", String.valueOf(d)).replace("${AUCTION_LOSS}", "102")).build()).execute();
if (execute != null) {
execute.close();
}
} catch (IOException e) {
AdSdk.log(LogLevel.DEBUG, (Class<?>) MobileFuseBidder.class, e);
}
}
}
}
@NonNull
public String toString() {
StringBuilder sb2 = new StringBuilder("MobileFuseBidder{, mobileFuseBannerAd=");
sb2.append(this.mobileFuseBannerAd != null ? this.jsonBidder.getAdUnitId() : null);
sb2.append(", mobileFuseInterstitialAd=");
return y.d(sb2, this.mobileFuseInterstitialAd != null ? this.jsonBidder.getAdUnitId() : null, '}');
}
}