UnityWebViewClient.smali

.class public abstract Lcom/garena/unity/webview/UnityWebViewClient;
.super Landroid/webkit/WebViewClient;
.source "SourceFile"


# instance fields
.field protected final _webViewId:I


# direct methods
.method public constructor <init>(I)V
    .registers 2

    invoke-direct {p0}, Landroid/webkit/WebViewClient;-><init>()V

    iput p1, p0, Lcom/garena/unity/webview/UnityWebViewClient;->_webViewId:I

    return-void
.end method


# virtual methods
.method protected abstract Log(Ljava/lang/String;)V
.end method

.method protected abstract Log(Ljava/lang/String;Ljava/lang/Throwable;)V
.end method

.method protected abstract LogExtra(Ljava/lang/String;)V
.end method

.method protected abstract LogExtra(Ljava/lang/String;Ljava/lang/Throwable;)V
.end method

.method protected abstract getStatus()Lcom/garena/unity/webview/WebViewStatus;
.end method

.method protected abstract getWebViewActivity()Landroid/app/Activity;
.end method

.method protected abstract getWebViewParent()Landroid/view/ViewGroup;
.end method

.method public onLoadResource(Landroid/webkit/WebView;Ljava/lang/String;)V
    .registers 4

    new-instance p1, Ljava/lang/StringBuilder;

    invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v0, "@onLoadResource(): "

    invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    return-void
.end method

.method public onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V
    .registers 7

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "@onPageFinished(): "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    invoke-virtual {p0}, Lcom/garena/unity/webview/UnityWebViewClient;->getStatus()Lcom/garena/unity/webview/WebViewStatus;

    move-result-object v0

    const/4 v1, 0x0

    if-eqz v0, :cond_22

    iput-boolean v1, v0, Lcom/garena/unity/webview/WebViewStatus;->IsLoading:Z

    iput-object p2, v0, Lcom/garena/unity/webview/WebViewStatus;->Url:Ljava/lang/String;

    invoke-virtual {p0, v0}, Lcom/garena/unity/webview/UnityWebViewClient;->setStatus(Lcom/garena/unity/webview/WebViewStatus;)V

    :cond_22
    :try_start_22
    invoke-virtual {p1, v1}, Landroid/webkit/WebView;->setBackgroundColor(I)V

    if-eqz v0, :cond_52

    iget-boolean v2, v0, Lcom/garena/unity/webview/WebViewStatus;->DeferredDisplay:Z

    if-eqz v2, :cond_52

    iput-boolean v1, v0, Lcom/garena/unity/webview/WebViewStatus;->DeferringDisplay:Z

    iget-boolean v2, v0, Lcom/garena/unity/webview/WebViewStatus;->Hiding:Z

    if-nez v2, :cond_52

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "@onPageFinished(): showing "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-virtual {p0, p2}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    invoke-virtual {p0}, Lcom/garena/unity/webview/UnityWebViewClient;->getWebViewParent()Landroid/view/ViewGroup;

    move-result-object p2

    invoke-virtual {p2, v1}, Landroid/view/View;->setVisibility(I)V

    invoke-virtual {p1, v1}, Landroid/view/View;->setVisibility(I)V

    invoke-virtual {p1}, Landroid/view/View;->requestFocus()Z

    :cond_52
    sget p1, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 p2, 0x15

    if-lt p1, p2, :cond_60

    invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager;

    move-result-object p1

    invoke-static {p1}, Lcom/garena/unity/webview/k;->a(Landroid/webkit/CookieManager;)V

    goto :goto_6e

    :cond_60
    invoke-static {}, Landroid/webkit/CookieSyncManager;->getInstance()Landroid/webkit/CookieSyncManager;

    move-result-object p1

    invoke-virtual {p1}, Landroid/webkit/CookieSyncManager;->sync()V
    :try_end_67
    .catchall {:try_start_22 .. :try_end_67} :catchall_68

    goto :goto_6e

    :catchall_68
    move-exception p1

    const-string p2, "@onPageFinished()"

    invoke-virtual {p0, p2, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->Log(Ljava/lang/String;Ljava/lang/Throwable;)V

    :goto_6e
    if-eqz v0, :cond_84

    :goto_70
    iget-object p1, v0, Lcom/garena/unity/webview/WebViewStatus;->PendingJavaScriptInvokes:Ljava/util/LinkedList;

    invoke-virtual {p1}, Ljava/util/AbstractCollection;->isEmpty()Z

    move-result p1

    if-nez p1, :cond_84

    iget-object p1, v0, Lcom/garena/unity/webview/WebViewStatus;->PendingJavaScriptInvokes:Ljava/util/LinkedList;

    invoke-virtual {p1}, Ljava/util/LinkedList;->removeFirst()Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Lcom/garena/unity/webview/JavaScriptInvoke;

    invoke-virtual {p0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->runJavaScript(Lcom/garena/unity/webview/JavaScriptInvoke;)V

    goto :goto_70

    :cond_84
    return-void
.end method

.method public onPageStarted(Landroid/webkit/WebView;Ljava/lang/String;Landroid/graphics/Bitmap;)V
    .registers 5

    new-instance p3, Ljava/lang/StringBuilder;

    invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V

    const-string v0, "@onPageStarted(): "

    invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p3

    invoke-virtual {p0, p3}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    invoke-virtual {p0}, Lcom/garena/unity/webview/UnityWebViewClient;->getStatus()Lcom/garena/unity/webview/WebViewStatus;

    move-result-object p3

    if-eqz p3, :cond_22

    const/4 v0, 0x1

    iput-boolean v0, p3, Lcom/garena/unity/webview/WebViewStatus;->IsLoading:Z

    iput-object p2, p3, Lcom/garena/unity/webview/WebViewStatus;->Url:Ljava/lang/String;

    invoke-virtual {p0, p3}, Lcom/garena/unity/webview/UnityWebViewClient;->setStatus(Lcom/garena/unity/webview/WebViewStatus;)V

    :cond_22
    const/4 p2, 0x0

    :try_start_23
    invoke-virtual {p1, p2}, Landroid/webkit/WebView;->setBackgroundColor(I)V
    :try_end_26
    .catchall {:try_start_23 .. :try_end_26} :catchall_27

    goto :goto_2d

    :catchall_27
    move-exception p1

    const-string p2, "@onPageStarted()"

    invoke-virtual {p0, p2, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->Log(Ljava/lang/String;Ljava/lang/Throwable;)V

    :goto_2d
    return-void
.end method

.method public onReceivedError(Landroid/webkit/WebView;ILjava/lang/String;Ljava/lang/String;)V
    .registers 6

    new-instance p1, Ljava/lang/StringBuilder;

    invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v0, "@onReceivedError(): "

    invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v0, ": "

    invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    invoke-virtual {p0}, Lcom/garena/unity/webview/UnityWebViewClient;->getStatus()Lcom/garena/unity/webview/WebViewStatus;

    move-result-object p1

    if-eqz p1, :cond_30

    const/4 p2, 0x0

    iput-boolean p2, p1, Lcom/garena/unity/webview/WebViewStatus;->IsLoading:Z

    iput-object p4, p1, Lcom/garena/unity/webview/WebViewStatus;->Url:Ljava/lang/String;

    invoke-virtual {p0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->setStatus(Lcom/garena/unity/webview/WebViewStatus;)V

    :cond_30
    return-void
.end method

.method public onReceivedError(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;Landroid/webkit/WebResourceError;)V
    .registers 6

    sget p1, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v0, 0x15

    const-string v1, "@onReceivedError(): "

    if-lt p1, v0, :cond_2a

    if-eqz p2, :cond_2a

    invoke-static {p2}, Lcom/garena/unity/webview/l;->a(Landroid/webkit/WebResourceRequest;)Landroid/net/Uri;

    move-result-object v0

    if-eqz v0, :cond_2a

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {p2}, Lcom/garena/unity/webview/l;->a(Landroid/webkit/WebResourceRequest;)Landroid/net/Uri;

    move-result-object p2

    invoke-virtual {p2}, Landroid/net/Uri;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-virtual {p0, p2}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    :cond_2a
    const/16 p2, 0x17

    if-lt p1, p2, :cond_52

    if-eqz p3, :cond_52

    new-instance p1, Ljava/lang/StringBuilder;

    invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {p3}, Lcom/garena/unity/webview/m;->a(Landroid/webkit/WebResourceError;)I

    move-result p2

    invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string p2, ": "

    invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {p3}, Lcom/garena/unity/webview/n;->a(Landroid/webkit/WebResourceError;)Ljava/lang/CharSequence;

    move-result-object p2

    invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    :cond_52
    return-void
.end method

.method public onReceivedHttpError(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;Landroid/webkit/WebResourceResponse;)V
    .registers 5

    sget p1, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v0, 0x15

    if-lt p1, v0, :cond_48

    const-string p1, "@onReceivedHttpError(): "

    if-eqz p2, :cond_24

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {p2}, Lcom/garena/unity/webview/l;->a(Landroid/webkit/WebResourceRequest;)Landroid/net/Uri;

    move-result-object p2

    invoke-virtual {p2}, Landroid/net/Uri;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-virtual {p0, p2}, Lcom/garena/unity/webview/UnityWebViewClient;->Log(Ljava/lang/String;)V

    :cond_24
    if-eqz p3, :cond_48

    new-instance p2, Ljava/lang/StringBuilder;

    invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {p3}, Lcom/garena/unity/webview/o;->a(Landroid/webkit/WebResourceResponse;)I

    move-result p1

    invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    const-string p1, ": "

    invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {p3}, Lcom/garena/unity/webview/p;->a(Landroid/webkit/WebResourceResponse;)Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->Log(Ljava/lang/String;)V

    :cond_48
    return-void
.end method

.method protected abstract runJavaScript(Lcom/garena/unity/webview/JavaScriptInvoke;)V
.end method

.method protected abstract setStatus(Lcom/garena/unity/webview/WebViewStatus;)V
.end method

.method public shouldInterceptRequest(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;)Landroid/webkit/WebResourceResponse;
    .registers 4

    sget p1, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v0, 0x15

    if-lt p1, v0, :cond_2a

    if-eqz p2, :cond_2a

    invoke-static {p2}, Lcom/garena/unity/webview/l;->a(Landroid/webkit/WebResourceRequest;)Landroid/net/Uri;

    move-result-object p1

    if-eqz p1, :cond_2a

    new-instance p1, Ljava/lang/StringBuilder;

    invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v0, "@shouldInterceptRequest(request): "

    invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {p2}, Lcom/garena/unity/webview/l;->a(Landroid/webkit/WebResourceRequest;)Landroid/net/Uri;

    move-result-object p2

    invoke-virtual {p2}, Landroid/net/Uri;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    :cond_2a
    const/4 p1, 0x0

    return-object p1
.end method

.method public shouldInterceptRequest(Landroid/webkit/WebView;Ljava/lang/String;)Landroid/webkit/WebResourceResponse;
    .registers 4

    new-instance p1, Ljava/lang/StringBuilder;

    invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v0, "@shouldInterceptRequest(url): "

    invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    const/4 p1, 0x0

    return-object p1
.end method

.method public shouldOverrideUrlLoading(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;)Z
    .registers 5

    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x15

    if-lt v0, v1, :cond_3c

    if-eqz p2, :cond_37

    invoke-static {p2}, Lcom/garena/unity/webview/l;->a(Landroid/webkit/WebResourceRequest;)Landroid/net/Uri;

    move-result-object v0

    if-eqz v0, :cond_37

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "@shouldOverrideUrlLoading(request): "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {p2}, Lcom/garena/unity/webview/l;->a(Landroid/webkit/WebResourceRequest;)Landroid/net/Uri;

    move-result-object v1

    invoke-virtual {v1}, Landroid/net/Uri;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    invoke-static {p2}, Lcom/garena/unity/webview/l;->a(Landroid/webkit/WebResourceRequest;)Landroid/net/Uri;

    move-result-object p2

    invoke-virtual {p2}, Landroid/net/Uri;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-virtual {p0, p1, p2}, Lcom/garena/unity/webview/UnityWebViewClient;->shouldOverrideUrlLoading(Landroid/webkit/WebView;Ljava/lang/String;)Z

    move-result p1

    return p1

    :cond_37
    const-string p1, "@shouldOverrideUrlLoading(request): request is null"

    invoke-virtual {p0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    :cond_3c
    const/4 p1, 0x0

    return p1
.end method

.method public shouldOverrideUrlLoading(Landroid/webkit/WebView;Ljava/lang/String;)Z
    .registers 9

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "@shouldOverrideUrlLoading(url): "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;)V

    const-string v0, "intent://"

    invoke-virtual {p2, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v0

    const-string v1, "@shouldOverrideUrlLoading(): "

    const/4 v2, 0x1

    const/4 v3, 0x0

    if-eqz v0, :cond_61

    :try_start_20
    invoke-static {p2, v2}, Landroid/content/Intent;->parseUri(Ljava/lang/String;I)Landroid/content/Intent;

    move-result-object v0

    const-string v4, "android.intent.category.BROWSABLE"

    invoke-virtual {v0, v4}, Landroid/content/Intent;->addCategory(Ljava/lang/String;)Landroid/content/Intent;

    const/4 v4, 0x0

    invoke-virtual {v0, v4}, Landroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;

    invoke-virtual {v0, v4}, Landroid/content/Intent;->setSelector(Landroid/content/Intent;)V

    invoke-virtual {p0}, Lcom/garena/unity/webview/UnityWebViewClient;->getWebViewActivity()Landroid/app/Activity;

    move-result-object v4

    invoke-virtual {v4}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;

    move-result-object v4

    invoke-virtual {v4, v0, v3}, Landroid/content/pm/PackageManager;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;

    move-result-object v4

    if-eqz v4, :cond_4d

    invoke-interface {v4}, Ljava/util/List;->size()I

    move-result v4

    if-lez v4, :cond_4d

    invoke-virtual {p0}, Lcom/garena/unity/webview/UnityWebViewClient;->getWebViewActivity()Landroid/app/Activity;

    move-result-object v4

    const/16 v5, 0x222

    invoke-virtual {v4, v0, v5}, Landroid/app/Activity;->startActivityIfNeeded(Landroid/content/Intent;I)Z
    :try_end_4d
    .catchall {:try_start_20 .. :try_end_4d} :catchall_4e

    :cond_4d
    return v2

    :catchall_4e
    move-exception v0

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-virtual {p0, v4, v0}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;Ljava/lang/Throwable;)V

    :cond_61
    const-string v0, "http://"

    invoke-virtual {p2, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_9d

    const-string v0, "https://"

    invoke-virtual {p2, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_9d

    :try_start_71
    new-instance p1, Landroid/content/Intent;

    const-string v0, "android.intent.action.VIEW"

    invoke-static {p2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;

    move-result-object v3

    invoke-direct {p1, v0, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V

    const/high16 v0, 0x30000000

    invoke-virtual {p1, v0}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;

    invoke-virtual {p0}, Lcom/garena/unity/webview/UnityWebViewClient;->getWebViewActivity()Landroid/app/Activity;

    move-result-object v0

    invoke-virtual {v0, p1}, Landroid/app/Activity;->startActivity(Landroid/content/Intent;)V
    :try_end_88
    .catchall {:try_start_71 .. :try_end_88} :catchall_89

    goto :goto_9c

    :catchall_89
    move-exception p1

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-virtual {p0, p2, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;Ljava/lang/Throwable;)V

    :goto_9c
    return v2

    :cond_9d
    :try_start_9d
    invoke-virtual {p1, p2}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
    :try_end_a0
    .catchall {:try_start_9d .. :try_end_a0} :catchall_a1

    goto :goto_b6

    :catchall_a1
    move-exception p1

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "@shouldOverrideUrlLoading(): loadUrl: "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->LogExtra(Ljava/lang/String;Ljava/lang/Throwable;)V

    :goto_b6
    invoke-virtual {p0}, Lcom/garena/unity/webview/UnityWebViewClient;->getStatus()Lcom/garena/unity/webview/WebViewStatus;

    move-result-object p1

    if-eqz p1, :cond_be

    iput-object p2, p1, Lcom/garena/unity/webview/WebViewStatus;->Url:Ljava/lang/String;

    :cond_be
    invoke-virtual {p0, p1}, Lcom/garena/unity/webview/UnityWebViewClient;->setStatus(Lcom/garena/unity/webview/WebViewStatus;)V

    return v3
.end method