导航菜单

页面标题

页面副标题

CallApp v2.226 - MobileFuseBidder.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, '}');
    }
}