Video Downloader for FB v3.5.1版本的 MD5 值为:1db7d4aa9fc4356831f5521f52585a52

以下内容为反编译后的 AdViewControllerImpl.java 源代码,内容仅作参考


package com.applovin.impl.adview;

import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.PointF;
import android.net.Uri;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.webkit.WebView;
import android.widget.RelativeLayout;
import com.amazon.device.ads.WebRequest;
import com.applovin.adview.AdViewController;
import com.applovin.adview.AppLovinAdView;
import com.applovin.adview.AppLovinAdViewEventListener;
import com.applovin.communicator.AppLovinCommunicator;
import com.applovin.communicator.AppLovinCommunicatorMessage;
import com.applovin.communicator.AppLovinCommunicatorSubscriber;
import com.applovin.impl.sdk.AppLovinAdServiceImpl;
import com.applovin.impl.sdk.ad.g;
import com.applovin.sdk.AppLovinAd;
import com.applovin.sdk.AppLovinAdClickListener;
import com.applovin.sdk.AppLovinAdDisplayListener;
import com.applovin.sdk.AppLovinAdLoadListener;
import com.applovin.sdk.AppLovinAdSize;
import com.applovin.sdk.AppLovinSdk;
import com.applovin.sdk.AppLovinSdkUtils;
import java.util.concurrent.atomic.AtomicReference;

public class AdViewControllerImpl implements AdViewController, AppLovinCommunicatorSubscriber {

    private Context f930a;
    private ViewGroup b;
    private com.applovin.impl.sdk.k c;
    private AppLovinAdServiceImpl d;
    private com.applovin.impl.sdk.r e;
    private AppLovinCommunicator f;
    private AppLovinAdSize g;
    private String h;
    private com.applovin.impl.sdk.c.d i;
    private d j;
    private c k;
    private com.applovin.impl.adview.c l;
    private Runnable m;
    private Runnable n;
    private volatile com.applovin.impl.sdk.ad.g o = null;
    private volatile AppLovinAd p = null;
    private k q = null;
    private k r = null;
    private final AtomicReference<AppLovinAd> s = new AtomicReference<>();
    private volatile boolean t = false;
    private volatile boolean u = false;
    private volatile AppLovinAdLoadListener v;
    private volatile AppLovinAdDisplayListener w;
    private volatile AppLovinAdViewEventListener x;
    private volatile AppLovinAdClickListener y;

    public class a implements Runnable {
        private a() {
        }

        @Override
        public void run() {
            if (AdViewControllerImpl.this.l != null) {
                AdViewControllerImpl.this.l.setVisibility(8);
            }
        }
    }

    public class b implements Runnable {
        private b() {
        }

        @Override
        public void run() {
            if (AdViewControllerImpl.this.o != null) {
                if (AdViewControllerImpl.this.l == null) {
                    com.applovin.impl.sdk.r.i("AppLovinAdView", "Unable to render advertisement for ad #" + AdViewControllerImpl.this.o.getAdIdNumber() + ". Please make sure you are not calling AppLovinAdView.destroy() prematurely.");
                    return;
                }
                AdViewControllerImpl.this.f();
                AdViewControllerImpl.this.e.b("AppLovinAdView", "Rendering advertisement ad for #" + AdViewControllerImpl.this.o.getAdIdNumber() + "...");
                AdViewControllerImpl.b(AdViewControllerImpl.this.l, AdViewControllerImpl.this.o.getSize());
                AdViewControllerImpl.this.l.a(AdViewControllerImpl.this.o);
                if (AdViewControllerImpl.this.o.getSize() != AppLovinAdSize.INTERSTITIAL && !AdViewControllerImpl.this.u) {
                    AdViewControllerImpl adViewControllerImpl = AdViewControllerImpl.this;
                    adViewControllerImpl.i = new com.applovin.impl.sdk.c.d(adViewControllerImpl.o, AdViewControllerImpl.this.c);
                    AdViewControllerImpl.this.i.a();
                    AdViewControllerImpl.this.l.setStatsManagerHelper(AdViewControllerImpl.this.i);
                    AdViewControllerImpl.this.o.setHasShown(true);
                }
                if (AdViewControllerImpl.this.l.getStatsManagerHelper() != null) {
                    AdViewControllerImpl.this.l.getStatsManagerHelper().a(AdViewControllerImpl.this.o.x() ? 0L : 1L);
                }
            }
        }
    }

    public static class c implements AppLovinAdLoadListener {

        private final AdViewControllerImpl f942a;

        c(AdViewControllerImpl adViewControllerImpl, com.applovin.impl.sdk.k kVar) {
            if (adViewControllerImpl == null) {
                throw new IllegalArgumentException("No view specified");
            }
            if (kVar == null) {
                throw new IllegalArgumentException("No sdk specified");
            }
            this.f942a = adViewControllerImpl;
        }

        private AdViewControllerImpl a() {
            return this.f942a;
        }

        @Override
        public void adReceived(AppLovinAd appLovinAd) {
            AdViewControllerImpl a2 = a();
            if (a2 != null) {
                a2.a(appLovinAd);
            } else {
                com.applovin.impl.sdk.r.i("AppLovinAdView", "Ad view has been garbage collected by the time an ad was received");
            }
        }

        @Override
        public void failedToReceiveAd(int i) {
            AdViewControllerImpl a2 = a();
            if (a2 != null) {
                a2.a(i);
            }
        }
    }

    private void a(AppLovinAdView appLovinAdView, com.applovin.impl.sdk.k kVar, AppLovinAdSize appLovinAdSize, String str, Context context) {
        if (appLovinAdView == null) {
            throw new IllegalArgumentException("No parent view specified");
        }
        if (kVar == null) {
            throw new IllegalArgumentException("No sdk specified");
        }
        if (appLovinAdSize == null) {
            throw new IllegalArgumentException("No ad size specified");
        }
        this.c = kVar;
        this.d = kVar.p();
        this.e = kVar.w();
        this.f = AppLovinCommunicator.getInstance(context);
        this.g = appLovinAdSize;
        this.h = str;
        this.f930a = context;
        this.b = appLovinAdView;
        this.j = new d(this, kVar);
        this.n = new a();
        this.m = new b();
        this.k = new c(this, kVar);
        attachNewAdView(appLovinAdSize);
    }

    private void a(Runnable runnable) {
        AppLovinSdkUtils.runOnUiThread(runnable);
    }

    private void b() {
        com.applovin.impl.sdk.r rVar = this.e;
        if (rVar != null) {
            rVar.b("AppLovinAdView", "Destroying...");
        }
        com.applovin.impl.adview.c cVar = this.l;
        if (cVar != null) {
            ViewParent parent = cVar.getParent();
            if (parent instanceof ViewGroup) {
                ((ViewGroup) parent).removeView(this.l);
            }
            this.l.removeAllViews();
            if (this.l.b()) {
                this.l.loadUrl("about:blank");
                this.l.clearHistory();
            } else {
                this.l.loadUrl("about:blank");
                this.l.onPause();
                this.l.destroyDrawingCache();
                this.l.destroy();
            }
            this.l = null;
            this.c.ai().b(this.o);
        }
        this.u = true;
    }

    public static void b(View view, AppLovinAdSize appLovinAdSize) {
        if (view == null) {
            return;
        }
        DisplayMetrics displayMetrics = view.getResources().getDisplayMetrics();
        int applyDimension = appLovinAdSize.getLabel().equals(AppLovinAdSize.INTERSTITIAL.getLabel()) ? -1 : appLovinAdSize.getWidth() == -1 ? displayMetrics.widthPixels : (int) TypedValue.applyDimension(1, appLovinAdSize.getWidth(), displayMetrics);
        int applyDimension2 = appLovinAdSize.getLabel().equals(AppLovinAdSize.INTERSTITIAL.getLabel()) ? -1 : appLovinAdSize.getHeight() == -1 ? displayMetrics.heightPixels : (int) TypedValue.applyDimension(1, appLovinAdSize.getHeight(), displayMetrics);
        ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
        if (layoutParams == null) {
            layoutParams = new RelativeLayout.LayoutParams(-2, -2);
        }
        layoutParams.width = applyDimension;
        layoutParams.height = applyDimension2;
        if (layoutParams instanceof RelativeLayout.LayoutParams) {
            RelativeLayout.LayoutParams layoutParams2 = (RelativeLayout.LayoutParams) layoutParams;
            layoutParams2.addRule(10);
            layoutParams2.addRule(9);
        }
        view.setLayoutParams(layoutParams);
    }

    private void c() {
        a(new Runnable() {
            @Override
            public void run() {
                if (AdViewControllerImpl.this.q != null) {
                    AdViewControllerImpl.this.e.b("AppLovinAdView", "Detaching expanded ad: " + AdViewControllerImpl.this.q.a());
                    AdViewControllerImpl adViewControllerImpl = AdViewControllerImpl.this;
                    adViewControllerImpl.r = adViewControllerImpl.q;
                    AdViewControllerImpl.this.q = null;
                    AdViewControllerImpl adViewControllerImpl2 = AdViewControllerImpl.this;
                    adViewControllerImpl2.attachNewAdView(adViewControllerImpl2.g);
                }
            }
        });
    }

    public void d() {
        a(new Runnable() {
            @Override
            public void run() {
                com.applovin.impl.sdk.ad.a a2;
                if (AdViewControllerImpl.this.r == null && AdViewControllerImpl.this.q == null) {
                    return;
                }
                if (AdViewControllerImpl.this.r != null) {
                    a2 = AdViewControllerImpl.this.r.a();
                    AdViewControllerImpl.this.r.dismiss();
                    AdViewControllerImpl.this.r = null;
                } else {
                    a2 = AdViewControllerImpl.this.q.a();
                    AdViewControllerImpl.this.q.dismiss();
                    AdViewControllerImpl.this.q = null;
                }
                com.applovin.impl.sdk.utils.j.b(AdViewControllerImpl.this.x, a2, (AppLovinAdView) AdViewControllerImpl.this.b);
            }
        });
    }

    private void e() {
        com.applovin.impl.sdk.c.d dVar = this.i;
        if (dVar != null) {
            dVar.c();
            this.i = null;
        }
    }

    public void f() {
        com.applovin.impl.sdk.ad.g gVar = this.o;
        com.applovin.impl.sdk.utils.k kVar = new com.applovin.impl.sdk.utils.k();
        kVar.a().a(gVar).a(getParentView());
        if (!com.applovin.impl.sdk.utils.q.a(gVar.getSize())) {
            kVar.a().a("Fullscreen Ad Properties").b(gVar);
        }
        kVar.a();
        com.applovin.impl.sdk.r.f("AppLovinAdView", kVar.toString());
    }

    public void a() {
        if (this.q != null || this.r != null) {
            contractAd();
            return;
        }
        this.e.b("AppLovinAdView", "Ad: " + this.o + " closed.");
        a(this.n);
        com.applovin.impl.sdk.utils.j.b(this.w, this.o);
        this.c.ai().b(this.o);
        this.o = null;
    }

    void a(final int i) {
        if (!this.u) {
            a(this.n);
        }
        a(new Runnable() {
            @Override
            public void run() {
                try {
                    if (AdViewControllerImpl.this.v != null) {
                        AdViewControllerImpl.this.v.failedToReceiveAd(i);
                    }
                } catch (Throwable th) {
                    com.applovin.impl.sdk.r.c("AppLovinAdView", "Exception while running app load  callback", th);
                }
            }
        });
    }

    public void a(com.applovin.impl.sdk.ad.g gVar, AppLovinAdView appLovinAdView, Uri uri, PointF pointF) {
        com.applovin.impl.sdk.utils.j.a(this.y, gVar);
        if (appLovinAdView != null) {
            this.d.trackAndLaunchClick(gVar, appLovinAdView, this, uri, pointF);
        } else {
            this.e.e("AppLovinAdView", "Unable to process ad click - AppLovinAdView destroyed prematurely");
        }
    }

    void a(final AppLovinAd appLovinAd) {
        if (appLovinAd == null) {
            this.e.e("AppLovinAdView", "No provided when to the view controller");
            a(-1);
            return;
        }
        if (this.u) {
            this.s.set(appLovinAd);
            this.e.b("AppLovinAdView", "Ad view has paused when an ad was received, ad saved for later");
        } else {
            renderAd(appLovinAd);
        }
        a(new Runnable() {
            @Override
            public void run() {
                try {
                    if (AdViewControllerImpl.this.v != null) {
                        AdViewControllerImpl.this.v.adReceived(appLovinAd);
                    }
                } catch (Throwable th) {
                    com.applovin.impl.sdk.r.i("AppLovinAdView", "Exception while running ad load callback: " + th.getMessage());
                }
            }
        });
    }

    public void attachNewAdView(AppLovinAdSize appLovinAdSize) {
        this.l = com.applovin.impl.adview.c.a(appLovinAdSize, this.j, this.c, this.f930a);
        this.l.setBackgroundColor(0);
        this.l.setWillNotCacheDrawing(false);
        this.b.setBackgroundColor(0);
        this.b.addView(this.l);
        b(this.l, appLovinAdSize);
        if (!this.t) {
            a(this.n);
        }
        a(new Runnable() {
            @Override
            public void run() {
                AdViewControllerImpl.this.l.loadDataWithBaseURL("/", "<html></html>", WebRequest.CONTENT_TYPE_HTML, null, "");
            }
        });
        this.t = true;
    }

    @Override
    public void contractAd() {
        a(new Runnable() {
            @Override
            public void run() {
                AdViewControllerImpl.this.d();
                if (AdViewControllerImpl.this.b == null || AdViewControllerImpl.this.l == null || AdViewControllerImpl.this.l.getParent() != null) {
                    return;
                }
                AdViewControllerImpl.this.b.addView(AdViewControllerImpl.this.l);
                AdViewControllerImpl.b(AdViewControllerImpl.this.l, AdViewControllerImpl.this.o.getSize());
            }
        });
    }

    @Override
    public void destroy() {
        if (this.l != null && this.q != null) {
            contractAd();
        }
        b();
    }

    public void dismissInterstitialIfRequired() {
        if (!(this.f930a instanceof j) || this.o == null) {
            return;
        }
        if (this.o.G() == g.a.DISMISS) {
            ((j) this.f930a).dismiss();
        }
    }

    @Override
    public void expandAd(final PointF pointF) {
        a(new Runnable() {
            @Override
            public void run() {
                if (AdViewControllerImpl.this.q == null && (AdViewControllerImpl.this.o instanceof com.applovin.impl.sdk.ad.a) && AdViewControllerImpl.this.l != null) {
                    com.applovin.impl.sdk.ad.a aVar = (com.applovin.impl.sdk.ad.a) AdViewControllerImpl.this.o;
                    Activity a2 = AdViewControllerImpl.this.f930a instanceof Activity ? (Activity) AdViewControllerImpl.this.f930a : com.applovin.impl.sdk.utils.q.a((View) AdViewControllerImpl.this.l, AdViewControllerImpl.this.c);
                    if (a2 == null) {
                        com.applovin.impl.sdk.r.i("AppLovinAdView", "Unable to expand ad. No Activity found.");
                        Uri h = aVar.h();
                        if (h != null) {
                            AdViewControllerImpl.this.d.trackAndLaunchClick(aVar, AdViewControllerImpl.this.getParentView(), AdViewControllerImpl.this, h, pointF);
                            if (AdViewControllerImpl.this.i != null) {
                                AdViewControllerImpl.this.i.b();
                            }
                        }
                        AdViewControllerImpl.this.l.a("javascript:al_onFailedExpand();");
                        return;
                    }
                    if (AdViewControllerImpl.this.b != null) {
                        AdViewControllerImpl.this.b.removeView(AdViewControllerImpl.this.l);
                    }
                    AdViewControllerImpl adViewControllerImpl = AdViewControllerImpl.this;
                    adViewControllerImpl.q = new k(aVar, adViewControllerImpl.l, a2, AdViewControllerImpl.this.c);
                    AdViewControllerImpl.this.q.setOnDismissListener(new DialogInterface.OnDismissListener() {
                        @Override
                        public void onDismiss(DialogInterface dialogInterface) {
                            AdViewControllerImpl.this.contractAd();
                        }
                    });
                    AdViewControllerImpl.this.q.show();
                    com.applovin.impl.sdk.utils.j.a(AdViewControllerImpl.this.x, AdViewControllerImpl.this.o, (AppLovinAdView) AdViewControllerImpl.this.b);
                    if (AdViewControllerImpl.this.i != null) {
                        AdViewControllerImpl.this.i.d();
                    }
                }
            }
        });
    }

    public AppLovinAdViewEventListener getAdViewEventListener() {
        return this.x;
    }

    public com.applovin.impl.adview.c getAdWebView() {
        return this.l;
    }

    @Override
    public String getCommunicatorId() {
        return AdViewControllerImpl.class.getSimpleName();
    }

    public com.applovin.impl.sdk.ad.g getCurrentAd() {
        return this.o;
    }

    public AppLovinAdView getParentView() {
        return (AppLovinAdView) this.b;
    }

    public com.applovin.impl.sdk.k getSdk() {
        return this.c;
    }

    @Override
    public AppLovinAdSize getSize() {
        return this.g;
    }

    @Override
    public String getZoneId() {
        return this.h;
    }

    @Override
    public void initializeAdView(AppLovinAdView appLovinAdView, Context context, AppLovinAdSize appLovinAdSize, String str, AppLovinSdk appLovinSdk, AttributeSet attributeSet) {
        if (appLovinAdView == null) {
            throw new IllegalArgumentException("No parent view specified");
        }
        if (context == null) {
            com.applovin.impl.sdk.r.i("AppLovinAdView", "Unable to build AppLovinAdView: no context provided. Please use a different constructor for this view.");
            return;
        }
        if (appLovinAdSize == null && (appLovinAdSize = com.applovin.impl.sdk.utils.b.a(attributeSet)) == null) {
            appLovinAdSize = AppLovinAdSize.BANNER;
        }
        AppLovinAdSize appLovinAdSize2 = appLovinAdSize;
        if (appLovinSdk == null) {
            appLovinSdk = AppLovinSdk.getInstance(context);
        }
        if (appLovinSdk == null || appLovinSdk.hasCriticalErrors()) {
            return;
        }
        a(appLovinAdView, appLovinSdk.coreSdk, appLovinAdSize2, str, context);
        if (com.applovin.impl.sdk.utils.b.b(attributeSet)) {
            loadNextAd();
        }
    }

    @Override
    public boolean isAdReadyToDisplay() {
        return !TextUtils.isEmpty(this.h) ? this.d.hasPreloadedAdForZoneId(this.h) : this.d.hasPreloadedAd(this.g);
    }

    @Override
    public void loadNextAd() {
        if (this.c == null || this.k == null || this.f930a == null || !this.t) {
            com.applovin.impl.sdk.r.g("AppLovinAdView", "Unable to load next ad: AppLovinAdView is not initialized.");
        } else {
            this.d.loadNextAd(this.h, this.g, this.k);
        }
    }

    public void onAdHtmlLoaded(WebView webView) {
        webView.setVisibility(0);
        try {
            if (this.o == this.p || this.w == null) {
                return;
            }
            this.p = this.o;
            com.applovin.impl.sdk.utils.j.a(this.w, this.o);
            this.c.ai().a(this.o);
            this.l.a("javascript:al_onAdViewRendered();");
        } catch (Throwable th) {
            com.applovin.impl.sdk.r.c("AppLovinAdView", "Exception while notifying ad display listener", th);
        }
    }

    @Override
    public void onAttachedToWindow() {
        if (com.applovin.impl.sdk.utils.b.a(this.l)) {
            this.c.O().a(com.applovin.impl.sdk.c.g.m);
        }
    }

    @Override
    public void onDetachedFromWindow() {
        if (this.t) {
            com.applovin.impl.sdk.utils.j.b(this.w, this.o);
            this.c.ai().b(this.o);
            if (this.l == null || this.q == null) {
                this.e.b("AppLovinAdView", "onDetachedFromWindowCalled without an expanded ad present");
            } else {
                this.e.b("AppLovinAdView", "onDetachedFromWindowCalled with expanded ad present");
                c();
            }
        }
    }

    @Override
    public void onMessageReceived(AppLovinCommunicatorMessage appLovinCommunicatorMessage) {
        if ("crash_applovin_ad_webview".equals(appLovinCommunicatorMessage.getTopic())) {
            a(new Runnable() {
                @Override
                public void run() {
                    AdViewControllerImpl.this.getAdWebView().loadUrl("chrome://crash");
                }
            });
        }
    }

    @Override
    public void pause() {
        if (!this.t || this.u) {
            return;
        }
        this.u = true;
    }

    @Override
    public void renderAd(AppLovinAd appLovinAd) {
        renderAd(appLovinAd, null);
    }

    @Override
    public void renderAd(AppLovinAd appLovinAd, String str) {
        if (appLovinAd == null) {
            throw new IllegalArgumentException("No ad specified");
        }
        com.applovin.impl.sdk.utils.q.b(appLovinAd, this.c);
        if (!this.t) {
            com.applovin.impl.sdk.r.g("AppLovinAdView", "Unable to render ad: AppLovinAdView is not initialized.");
            return;
        }
        com.applovin.impl.sdk.ad.g gVar = (com.applovin.impl.sdk.ad.g) com.applovin.impl.sdk.utils.q.a(appLovinAd, this.c);
        if (gVar == null || gVar == this.o) {
            if (gVar == null) {
                this.e.d("AppLovinAdView", "Unable to render ad. Ad is null. Internal inconsistency error.");
                return;
            }
            this.e.d("AppLovinAdView", "Ad #" + gVar.getAdIdNumber() + " is already showing, ignoring");
            if (((Boolean) this.c.a(com.applovin.impl.sdk.b.b.cm)).booleanValue()) {
                throw new IllegalStateException("Failed to display ad - ad can only be displayed once. Load the next ad.");
            }
            return;
        }
        this.e.b("AppLovinAdView", "Rendering ad #" + gVar.getAdIdNumber() + " (" + gVar.getSize() + ")");
        com.applovin.impl.sdk.utils.j.b(this.w, this.o);
        this.c.ai().b(this.o);
        if (gVar.getSize() != AppLovinAdSize.INTERSTITIAL) {
            e();
        }
        this.s.set(null);
        this.p = null;
        this.o = gVar;
        if (!this.u && com.applovin.impl.sdk.utils.q.a(this.g)) {
            this.c.p().trackImpression(gVar);
        }
        if (this.q != null) {
            c();
        }
        a(this.m);
    }

    @Override
    public void resume() {
        if (this.t) {
            AppLovinAd andSet = this.s.getAndSet(null);
            if (andSet != null) {
                renderAd(andSet);
            }
            this.u = false;
        }
    }

    @Override
    public void setAdClickListener(AppLovinAdClickListener appLovinAdClickListener) {
        this.y = appLovinAdClickListener;
    }

    @Override
    public void setAdDisplayListener(AppLovinAdDisplayListener appLovinAdDisplayListener) {
        this.w = appLovinAdDisplayListener;
    }

    @Override
    public void setAdLoadListener(AppLovinAdLoadListener appLovinAdLoadListener) {
        this.v = appLovinAdLoadListener;
    }

    @Override
    public void setAdViewEventListener(AppLovinAdViewEventListener appLovinAdViewEventListener) {
        this.x = appLovinAdViewEventListener;
    }

    public void setStatsManagerHelper(com.applovin.impl.sdk.c.d dVar) {
        com.applovin.impl.adview.c cVar = this.l;
        if (cVar != null) {
            cVar.setStatsManagerHelper(dVar);
        }
    }
}