ClipboardModule.smali
.class public Lcom/reactnativecommunity/clipboard/ClipboardModule;
.super Lcom/facebook/react/bridge/ContextBaseJavaModule;
.source "SourceFile"
# annotations
.annotation runtime Lcom/facebook/react/module/annotations/ReactModule;
name = "RNCClipboard"
.end annotation
# static fields
.field public static final NAME:Ljava/lang/String; = "RNCClipboard"
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.registers 2
invoke-direct {p0, p1}, Lcom/facebook/react/bridge/ContextBaseJavaModule;-><init>(Landroid/content/Context;)V
return-void
.end method
.method private getClipboardService()Landroid/content/ClipboardManager;
.registers 3
invoke-virtual {p0}, Lcom/facebook/react/bridge/ContextBaseJavaModule;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {p0}, Lcom/facebook/react/bridge/ContextBaseJavaModule;->getContext()Landroid/content/Context;
const-string v1, "clipboard"
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/ClipboardManager;
return-object v0
.end method
# virtual methods
.method public getName()Ljava/lang/String;
.registers 2
const-string v0, "RNCClipboard"
return-object v0
.end method
.method public getString(Lcom/facebook/react/bridge/Promise;)V
.registers 6
.annotation runtime Lcom/facebook/react/bridge/ReactMethod;
.end annotation
.line 1
:try_start_0
invoke-direct {p0}, Lcom/reactnativecommunity/clipboard/ClipboardModule;->getClipboardService()Landroid/content/ClipboardManager;
move-result-object v0
.line 2
invoke-virtual {v0}, Landroid/content/ClipboardManager;->getPrimaryClip()Landroid/content/ClipData;
move-result-object v1
:try_end_8
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_8} :catch_37
const-string v2, ""
if-eqz v1, :cond_33
.line 3
:try_start_c
invoke-virtual {v1}, Landroid/content/ClipData;->getItemCount()I
move-result v1
const/4 v3, 0x1
if-lt v1, v3, :cond_33
.line 4
invoke-virtual {v0}, Landroid/content/ClipboardManager;->getPrimaryClip()Landroid/content/ClipData;
move-result-object v0
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/content/ClipData;->getItemAt(I)Landroid/content/ClipData$Item;
move-result-object v0
.line 5
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Landroid/content/ClipData$Item;->getText()Ljava/lang/CharSequence;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-interface {p1, v0}, Lcom/facebook/react/bridge/Promise;->resolve(Ljava/lang/Object;)V
goto :goto_3b
.line 6
:cond_33
invoke-interface {p1, v2}, Lcom/facebook/react/bridge/Promise;->resolve(Ljava/lang/Object;)V
:try_end_36
.catch Ljava/lang/Exception; {:try_start_c .. :try_end_36} :catch_37
goto :goto_3b
:catch_37
move-exception v0
.line 7
invoke-interface {p1, v0}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
:goto_3b
return-void
.end method
.method public hasString(Lcom/facebook/react/bridge/Promise;)V
.registers 4
.annotation runtime Lcom/facebook/react/bridge/ReactMethod;
.end annotation
.line 1
:try_start_0
invoke-direct {p0}, Lcom/reactnativecommunity/clipboard/ClipboardModule;->getClipboardService()Landroid/content/ClipboardManager;
move-result-object v0
.line 2
invoke-virtual {v0}, Landroid/content/ClipboardManager;->getPrimaryClip()Landroid/content/ClipData;
move-result-object v0
const/4 v1, 0x1
if-eqz v0, :cond_12
.line 3
invoke-virtual {v0}, Landroid/content/ClipData;->getItemCount()I
move-result v0
if-lt v0, v1, :cond_12
goto :goto_13
:cond_12
const/4 v1, 0x0
:goto_13
invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
invoke-interface {p1, v0}, Lcom/facebook/react/bridge/Promise;->resolve(Ljava/lang/Object;)V
:try_end_1a
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_1a} :catch_1b
goto :goto_1f
:catch_1b
move-exception v0
.line 4
invoke-interface {p1, v0}, Lcom/facebook/react/bridge/Promise;->reject(Ljava/lang/Throwable;)V
:goto_1f
return-void
.end method
.method public setString(Ljava/lang/String;)V
.registers 3
.annotation runtime Lcom/facebook/react/bridge/ReactMethod;
.end annotation
const/4 v0, 0x0
.line 1
invoke-static {v0, p1}, Landroid/content/ClipData;->newPlainText(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/content/ClipData;
move-result-object p1
.line 2
invoke-direct {p0}, Lcom/reactnativecommunity/clipboard/ClipboardModule;->getClipboardService()Landroid/content/ClipboardManager;
move-result-object v0
.line 3
:try_start_9
invoke-virtual {v0, p1}, Landroid/content/ClipboardManager;->setPrimaryClip(Landroid/content/ClipData;)V
:try_end_c
.catch Ljava/lang/Exception; {:try_start_9 .. :try_end_c} :catch_c
:catch_c
return-void
.end method