IntentModule.smali
.class public Lcom/facebook/react/modules/intent/IntentModule;
.super Lcom/facebook/fbreact/specs/NativeLinkingSpec;
.source "SourceFile"
# annotations
.annotation runtime Lcom/facebook/react/module/annotations/ReactModule;
name = "IntentAndroid"
.end annotation
# static fields
.field public static final NAME:Ljava/lang/String; = "IntentAndroid"
# direct methods
.method public constructor <init>(Lcom/facebook/react/bridge/ReactApplicationContext;)V
.registers 2
invoke-direct {p0, p1}, Lcom/facebook/fbreact/specs/NativeLinkingSpec;-><init>(Lcom/facebook/react/bridge/ReactApplicationContext;)V
return-void
.end method
# virtual methods
.method public addListener(Ljava/lang/String;)V
.registers 2
return-void
.end method
.method public canOpenURL(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V
.registers 7
if-eqz p1, :cond_48
.line 1
invoke-virtual {p1}, Ljava/lang/String;->isEmpty()Z
move-result v0
if-eqz v0, :cond_9
goto :goto_48
.line 2
:cond_9
:try_start_9
new-instance v0, Landroid/content/Intent;
const-string v1, "android.intent.action.VIEW"
invoke-static {p1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v2
invoke-direct {v0, v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
const/high16 v1, 0x10000000
.line 3
invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
.line 4
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getReactApplicationContext()Lcom/facebook/react/bridge/ReactApplicationContext;
move-result-object v1
invoke-virtual {v1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName;
move-result-object v0
if-eqz v0, :cond_29
const/4 v0, 0x1
goto :goto_2a
:cond_29
const/4 v0, 0x0
.line 5
:goto_2a
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
invoke-interface {p2, v0}, Lcom/facebook/react/bridge/Promise;->resolve(Ljava/lang/Object;)V
:try_end_31
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_31} :catch_32
goto :goto_47
:catch_32
move-exception v0
.line 6
new-instance v1, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;
const-string v2, "Could not check if URL \'"
const-string v3, "\' can be opened: "
.line 7
invoke-static {v2, p1, v3}, Landroidx/appcompat/view/g;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p1
.line 8
invoke-static {v0, p1}, Landroidx/appcompat/q;->e(Ljava/lang/Exception;Ljava/lang/StringBuilder;)Ljava/lang/String;
move-result-object p1
.line 9
invoke-direct {v1, p1}, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 10
invoke-interface {p2, v1}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
:goto_47
return-void
.line 11
:cond_48
:goto_48
new-instance v0, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;
const-string v1, "Invalid URL: "
.line 12
invoke-static {v1, p1}, Landroidx/appcompat/e;->g(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 13
invoke-direct {v0, p1}, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;-><init>(Ljava/lang/String;)V
invoke-interface {p2, v0}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
return-void
.end method
.method public getInitialURL(Lcom/facebook/react/bridge/Promise;)V
.registers 6
.line 1
:try_start_0
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getCurrentActivity()Landroid/app/Activity;
move-result-object v0
const/4 v1, 0x0
if-eqz v0, :cond_29
.line 2
invoke-virtual {v0}, Landroid/app/Activity;->getIntent()Landroid/content/Intent;
move-result-object v0
.line 3
invoke-virtual {v0}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object v2
.line 4
invoke-virtual {v0}, Landroid/content/Intent;->getData()Landroid/net/Uri;
move-result-object v0
if-eqz v0, :cond_29
const-string v3, "android.intent.action.VIEW"
.line 5
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_25
const-string v3, "android.nfc.action.NDEF_DISCOVERED"
.line 6
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_29
.line 7
:cond_25
invoke-virtual {v0}, Landroid/net/Uri;->toString()Ljava/lang/String;
move-result-object v1
.line 8
:cond_29
invoke-interface {p1, v1}, Lcom/facebook/react/bridge/Promise;->resolve(Ljava/lang/Object;)V
:try_end_2c
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_2c} :catch_2d
goto :goto_40
:catch_2d
move-exception v0
.line 9
new-instance v1, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;
const-string v2, "Could not get the initial URL : "
.line 10
invoke-static {v2}, Landroid/support/v4/media/c;->c(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
.line 11
invoke-static {v0, v2}, Landroidx/appcompat/q;->e(Ljava/lang/Exception;Ljava/lang/StringBuilder;)Ljava/lang/String;
move-result-object v0
.line 12
invoke-direct {v1, v0}, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 13
invoke-interface {p1, v1}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
:goto_40
return-void
.end method
.method public getName()Ljava/lang/String;
.registers 2
const-string v0, "IntentAndroid"
return-object v0
.end method
.method public openSettings(Lcom/facebook/react/bridge/Promise;)V
.registers 7
.line 1
:try_start_0
new-instance v0, Landroid/content/Intent;
invoke-direct {v0}, Landroid/content/Intent;-><init>()V
.line 2
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getCurrentActivity()Landroid/app/Activity;
move-result-object v1
.line 3
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getReactApplicationContext()Lcom/facebook/react/bridge/ReactApplicationContext;
move-result-object v2
invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v2
const-string v3, "android.settings.APPLICATION_DETAILS_SETTINGS"
.line 4
invoke-virtual {v0, v3}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
const-string v3, "android.intent.category.DEFAULT"
.line 5
invoke-virtual {v0, v3}, Landroid/content/Intent;->addCategory(Ljava/lang/String;)Landroid/content/Intent;
.line 6
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "package:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v2
invoke-virtual {v0, v2}, Landroid/content/Intent;->setData(Landroid/net/Uri;)Landroid/content/Intent;
const/high16 v2, 0x10000000
.line 7
invoke-virtual {v0, v2}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
const/high16 v2, 0x40000000 # 2.0f
.line 8
invoke-virtual {v0, v2}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
const/high16 v2, 0x800000
.line 9
invoke-virtual {v0, v2}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
.line 10
invoke-virtual {v1, v0}, Landroid/app/Activity;->startActivity(Landroid/content/Intent;)V
.line 11
sget-object v0, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-interface {p1, v0}, Lcom/facebook/react/bridge/Promise;->resolve(Ljava/lang/Object;)V
:try_end_4a
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4a} :catch_4b
goto :goto_5e
:catch_4b
move-exception v0
.line 12
new-instance v1, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;
const-string v2, "Could not open the Settings: "
.line 13
invoke-static {v2}, Landroid/support/v4/media/c;->c(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
.line 14
invoke-static {v0, v2}, Landroidx/appcompat/q;->e(Ljava/lang/Exception;Ljava/lang/StringBuilder;)Ljava/lang/String;
move-result-object v0
.line 15
invoke-direct {v1, v0}, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 16
invoke-interface {p1, v1}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
:goto_5e
return-void
.end method
.method public openURL(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V
.registers 7
if-eqz p1, :cond_6f
.line 1
invoke-virtual {p1}, Ljava/lang/String;->isEmpty()Z
move-result v0
if-eqz v0, :cond_9
goto :goto_6f
.line 2
:cond_9
:try_start_9
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getCurrentActivity()Landroid/app/Activity;
move-result-object v0
.line 3
new-instance v1, Landroid/content/Intent;
const-string v2, "android.intent.action.VIEW"
invoke-static {p1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v3
invoke-virtual {v3}, Landroid/net/Uri;->normalizeScheme()Landroid/net/Uri;
move-result-object v3
invoke-direct {v1, v2, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
.line 4
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getReactApplicationContext()Lcom/facebook/react/bridge/ReactApplicationContext;
move-result-object v2
invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v2
.line 5
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getReactApplicationContext()Lcom/facebook/react/bridge/ReactApplicationContext;
move-result-object v3
invoke-virtual {v3}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v3
invoke-virtual {v1, v3}, Landroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName;
move-result-object v3
if-eqz v3, :cond_37
.line 6
invoke-virtual {v3}, Landroid/content/ComponentName;->getPackageName()Ljava/lang/String;
move-result-object v3
goto :goto_39
:cond_37
const-string v3, ""
:goto_39
if-eqz v0, :cond_41
.line 7
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_46
:cond_41
const/high16 v2, 0x10000000
.line 8
invoke-virtual {v1, v2}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
:cond_46
if-eqz v0, :cond_4c
.line 9
invoke-virtual {v0, v1}, Landroid/app/Activity;->startActivity(Landroid/content/Intent;)V
goto :goto_53
.line 10
:cond_4c
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getReactApplicationContext()Lcom/facebook/react/bridge/ReactApplicationContext;
move-result-object v0
invoke-virtual {v0, v1}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
.line 11
:goto_53
sget-object v0, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-interface {p2, v0}, Lcom/facebook/react/bridge/Promise;->resolve(Ljava/lang/Object;)V
:try_end_58
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_58} :catch_59
goto :goto_6e
:catch_59
move-exception v0
.line 12
new-instance v1, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;
const-string v2, "Could not open URL \'"
const-string v3, "\': "
.line 13
invoke-static {v2, p1, v3}, Landroidx/appcompat/view/g;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p1
.line 14
invoke-static {v0, p1}, Landroidx/appcompat/q;->e(Ljava/lang/Exception;Ljava/lang/StringBuilder;)Ljava/lang/String;
move-result-object p1
.line 15
invoke-direct {v1, p1}, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 16
invoke-interface {p2, v1}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
:goto_6e
return-void
.line 17
:cond_6f
:goto_6f
new-instance v0, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;
const-string v1, "Invalid URL: "
.line 18
invoke-static {v1, p1}, Landroidx/appcompat/e;->g(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 19
invoke-direct {v0, p1}, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;-><init>(Ljava/lang/String;)V
invoke-interface {p2, v0}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
return-void
.end method
.method public removeListeners(D)V
.registers 3
return-void
.end method
.method public sendIntent(Ljava/lang/String;Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Promise;)V
.registers 9
const-string v0, "."
if-eqz p1, :cond_8f
.line 1
invoke-virtual {p1}, Ljava/lang/String;->isEmpty()Z
move-result v1
if-eqz v1, :cond_c
goto/16 :goto_8f
.line 2
:cond_c
new-instance v1, Landroid/content/Intent;
invoke-direct {v1, p1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 3
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getReactApplicationContext()Lcom/facebook/react/bridge/ReactApplicationContext;
move-result-object v2
invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v2
.line 4
invoke-virtual {v1, v2}, Landroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName;
move-result-object v2
if-nez v2, :cond_2e
.line 5
new-instance p2, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;
const-string v1, "Could not launch Intent with action "
.line 6
invoke-static {v1, p1, v0}, Landroidx/biometric/i0;->c(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 7
invoke-direct {p2, p1}, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;-><init>(Ljava/lang/String;)V
invoke-interface {p3, p2}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
return-void
:cond_2e
if-eqz p2, :cond_87
const/4 p1, 0x0
.line 8
:goto_31
invoke-interface {p2}, Lcom/facebook/react/bridge/ReadableArray;->size()I
move-result v0
if-ge p1, v0, :cond_87
.line 9
invoke-interface {p2, p1}, Lcom/facebook/react/bridge/ReadableArray;->getMap(I)Lcom/facebook/react/bridge/ReadableMap;
move-result-object v0
.line 10
invoke-interface {v0}, Lcom/facebook/react/bridge/ReadableMap;->keySetIterator()Lcom/facebook/react/bridge/ReadableMapKeySetIterator;
move-result-object v2
invoke-interface {v2}, Lcom/facebook/react/bridge/ReadableMapKeySetIterator;->nextKey()Ljava/lang/String;
move-result-object v2
.line 11
invoke-interface {v0, v2}, Lcom/facebook/react/bridge/ReadableMap;->getType(Ljava/lang/String;)Lcom/facebook/react/bridge/ReadableType;
move-result-object v3
.line 12
sget-object v4, Lcom/facebook/react/modules/intent/IntentModule$1;->$SwitchMap$com$facebook$react$bridge$ReadableType:[I
invoke-virtual {v3}, Ljava/lang/Enum;->ordinal()I
move-result v3
aget v3, v4, v3
const/4 v4, 0x1
if-eq v3, v4, :cond_7d
const/4 v4, 0x2
if-eq v3, v4, :cond_71
const/4 v4, 0x3
if-eq v3, v4, :cond_69
.line 13
new-instance p1, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;
const-string p2, "Extra type for "
const-string v0, " not supported."
.line 14
invoke-static {p2, v2, v0}, Landroidx/biometric/i0;->c(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
.line 15
invoke-direct {p1, p2}, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;-><init>(Ljava/lang/String;)V
invoke-interface {p3, p1}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
return-void
.line 16
:cond_69
invoke-interface {v0, v2}, Lcom/facebook/react/bridge/ReadableMap;->getBoolean(Ljava/lang/String;)Z
move-result v0
invoke-virtual {v1, v2, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
goto :goto_84
.line 17
:cond_71
invoke-interface {v0, v2}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v3
invoke-static {v3, v4}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v0
.line 18
invoke-virtual {v1, v2, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
goto :goto_84
.line 19
:cond_7d
invoke-interface {v0, v2}, Lcom/facebook/react/bridge/ReadableMap;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v2, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
:goto_84
add-int/lit8 p1, p1, 0x1
goto :goto_31
.line 20
:cond_87
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getReactApplicationContext()Lcom/facebook/react/bridge/ReactApplicationContext;
move-result-object p1
invoke-virtual {p1, v1}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
return-void
.line 21
:cond_8f
:goto_8f
new-instance p2, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;
const-string v1, "Invalid Action: "
.line 22
invoke-static {v1, p1, v0}, Landroidx/biometric/i0;->c(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 23
invoke-direct {p2, p1}, Lcom/facebook/react/bridge/JSApplicationIllegalArgumentException;-><init>(Ljava/lang/String;)V
invoke-interface {p3, p2}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
return-void
.end method