AppLovinWebViewActivity.java 源代码


package com.applovin.sdk;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.applovin.impl.sdk.k;
import com.applovin.impl.sdk.u;
import com.applovin.impl.sdk.utils.StringUtils;
import java.util.Set;

public class AppLovinWebViewActivity extends Activity {
    public static final String EVENT_DISMISSED_VIA_BACK_BUTTON = "dismissed_via_back_button";
    public static final String INTENT_EXTRA_KEY_IMMERSIVE_MODE_ON = "immersive_mode_on";
    public static final String INTENT_EXTRA_KEY_SDK_KEY = "sdk_key";

    private String f7894q;

    private WebView f7895r;

    private EventListener f7896s;

    public interface EventListener {
        void onReceivedEvent(String str);
    }

    class a extends WebViewClient {

        final k f7897a;

        a(k kVar) {
            this.f7897a = kVar;
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String str) {
            String str2;
            Uri parse = Uri.parse(str);
            String scheme = parse.getScheme();
            String host = parse.getHost();
            String path = parse.getPath();
            this.f7897a.U0().g("AppLovinWebViewActivity", "Handling url load: " + str);
            if ("applovin".equalsIgnoreCase(scheme) && "com.applovin.sdk".equalsIgnoreCase(host) && AppLovinWebViewActivity.this.f7896s != null) {
                if (path.endsWith("webview_event")) {
                    Set<String> queryParameterNames = parse.getQueryParameterNames();
                    if (queryParameterNames.isEmpty()) {
                        str2 = "";
                    } else {
                        str2 = (String) queryParameterNames.toArray()[0];
                    }
                    if (StringUtils.isValidString(str2)) {
                        String queryParameter = parse.getQueryParameter(str2);
                        this.f7897a.U0().g("AppLovinWebViewActivity", "Parsed WebView event parameter name: " + str2 + " and value: " + queryParameter);
                        AppLovinWebViewActivity.this.f7896s.onReceivedEvent(queryParameter);
                        return true;
                    }
                    this.f7897a.U0().l("AppLovinWebViewActivity", "Failed to parse WebView event parameter");
                    return true;
                }
                return true;
            }
            return super.shouldOverrideUrlLoading(webView, str);
        }
    }

    public void loadUrl(String str, EventListener eventListener) {
        this.f7896s = eventListener;
        WebView webView = this.f7895r;
        if (webView == null) {
            this.f7894q = str;
        } else {
            webView.loadUrl(str);
        }
    }

    @Override
    public void onBackPressed() {
        EventListener eventListener = this.f7896s;
        if (eventListener != null) {
            eventListener.onReceivedEvent(EVENT_DISMISSED_VIA_BACK_BUTTON);
        }
        super.onBackPressed();
    }

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        String stringExtra = getIntent().getStringExtra(INTENT_EXTRA_KEY_SDK_KEY);
        if (TextUtils.isEmpty(stringExtra)) {
            u.p("AppLovinWebViewActivity", "No SDK key specified");
        } else {
            k kVar = AppLovinSdk.getInstance(stringExtra, new AppLovinSdkSettings(getApplicationContext()), getApplicationContext()).coreSdk;
            try {
                WebView webView = new WebView(this);
                this.f7895r = webView;
                setContentView(webView);
                WebSettings settings = this.f7895r.getSettings();
                settings.setSupportMultipleWindows(false);
                settings.setJavaScriptEnabled(true);
                this.f7895r.setVerticalScrollBarEnabled(true);
                this.f7895r.setHorizontalScrollBarEnabled(true);
                this.f7895r.setScrollBarStyle(33554432);
                this.f7895r.setWebViewClient(new a(kVar));
                if (getIntent().getBooleanExtra(INTENT_EXTRA_KEY_IMMERSIVE_MODE_ON, false)) {
                    getWindow().getDecorView().setSystemUiVisibility(5894);
                }
                if (StringUtils.isValidString(this.f7894q)) {
                    this.f7895r.loadUrl(this.f7894q);
                    return;
                }
                return;
            } catch (Throwable th) {
                kVar.U0().h("AppLovinWebViewActivity", "Failed to initialize WebView.", th);
            }
        }
        finish();
    }
}