ShareModule.smali
.class public Lcom/facebook/react/modules/share/ShareModule;
.super Lcom/facebook/fbreact/specs/NativeShareModuleSpec;
.source "SourceFile"
# annotations
.annotation runtime Lcom/facebook/react/module/annotations/ReactModule;
name = "ShareModule"
.end annotation
# static fields
.field public static final ACTION_SHARED:Ljava/lang/String; = "sharedAction"
.field public static final ERROR_INVALID_CONTENT:Ljava/lang/String; = "E_INVALID_CONTENT"
.field public static final ERROR_UNABLE_TO_OPEN_DIALOG:Ljava/lang/String; = "E_UNABLE_TO_OPEN_DIALOG"
.field public static final NAME:Ljava/lang/String; = "ShareModule"
# direct methods
.method public constructor <init>(Lcom/facebook/react/bridge/ReactApplicationContext;)V
.registers 2
invoke-direct {p0, p1}, Lcom/facebook/fbreact/specs/NativeShareModuleSpec;-><init>(Lcom/facebook/react/bridge/ReactApplicationContext;)V
return-void
.end method
# virtual methods
.method public getName()Ljava/lang/String;
.registers 2
const-string v0, "ShareModule"
return-object v0
.end method
.method public share(Lcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V
.registers 8
const-string v0, "message"
const-string v1, "title"
if-nez p1, :cond_e
const-string p1, "E_INVALID_CONTENT"
const-string p2, "Content cannot be null"
.line 1
invoke-interface {p3, p1, p2}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/String;Ljava/lang/String;)V
return-void
.line 2
:cond_e
:try_start_e
new-instance v2, Landroid/content/Intent;
const-string v3, "android.intent.action.SEND"
invoke-direct {v2, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
const-string v3, "text/plain"
.line 3
invoke-virtual {v2, v3}, Landroid/content/Intent;->setTypeAndNormalize(Ljava/lang/String;)Landroid/content/Intent;
.line 4
invoke-interface {p1, v1}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_29
const-string v3, "android.intent.extra.SUBJECT"
.line 5
invoke-interface {p1, v1}, Lcom/facebook/react/bridge/ReadableMap;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v3, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 6
:cond_29
invoke-interface {p1, v0}, Lcom/facebook/react/bridge/ReadableMap;->hasKey(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_38
const-string v1, "android.intent.extra.TEXT"
.line 7
invoke-interface {p1, v0}, Lcom/facebook/react/bridge/ReadableMap;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-virtual {v2, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
.line 8
:cond_38
invoke-static {v2, p2}, Landroid/content/Intent;->createChooser(Landroid/content/Intent;Ljava/lang/CharSequence;)Landroid/content/Intent;
move-result-object p1
const-string p2, "android.intent.category.DEFAULT"
.line 9
invoke-virtual {p1, p2}, Landroid/content/Intent;->addCategory(Ljava/lang/String;)Landroid/content/Intent;
.line 10
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getCurrentActivity()Landroid/app/Activity;
move-result-object p2
if-eqz p2, :cond_4b
.line 11
invoke-virtual {p2, p1}, Landroid/app/Activity;->startActivity(Landroid/content/Intent;)V
goto :goto_52
.line 12
:cond_4b
invoke-virtual {p0}, Lcom/facebook/react/bridge/ReactContextBaseJavaModule;->getReactApplicationContext()Lcom/facebook/react/bridge/ReactApplicationContext;
move-result-object p2
invoke-virtual {p2, p1}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
.line 13
:goto_52
invoke-static {}, Lcom/facebook/react/bridge/Arguments;->createMap()Lcom/facebook/react/bridge/WritableMap;
move-result-object p1
const-string p2, "action"
const-string v0, "sharedAction"
.line 14
invoke-interface {p1, p2, v0}, Lcom/facebook/react/bridge/WritableMap;->putString(Ljava/lang/String;Ljava/lang/String;)V
.line 15
invoke-interface {p3, p1}, Lcom/facebook/react/bridge/Promise;->resolve(Ljava/lang/Object;)V
:try_end_60
.catch Ljava/lang/Exception; {:try_start_e .. :try_end_60} :catch_61
goto :goto_68
:catch_61
const-string p1, "E_UNABLE_TO_OPEN_DIALOG"
const-string p2, "Failed to open share dialog"
.line 16
invoke-interface {p3, p1, p2}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/String;Ljava/lang/String;)V
:goto_68
return-void
.end method