WXClipboardModule.smali
.class public Lcom/taobao/weex/appfram/clipboard/WXClipboardModule;
.super Lcom/taobao/weex/common/WXModule;
.source "WXClipboardModule.java"
# interfaces
.implements Lcom/taobao/weex/appfram/clipboard/IWXClipboard;
# static fields
.field private static final DATA:Ljava/lang/String; = "data"
.field private static final RESULT:Ljava/lang/String; = "result"
.field private static final RESULT_FAILED:Ljava/lang/String; = "failed"
.field private static final RESULT_OK:Ljava/lang/String; = "success"
# instance fields
.field private final CLIP_KEY:Ljava/lang/String;
# direct methods
.method public constructor <init>()V
.registers 2
.line 42
invoke-direct {p0}, Lcom/taobao/weex/common/WXModule;-><init>()V
const-string v0, "WEEX_CLIP_KEY_MAIN"
.line 44
iput-object v0, p0, Lcom/taobao/weex/appfram/clipboard/WXClipboardModule;->CLIP_KEY:Ljava/lang/String;
return-void
.end method
.method private coerceToText(Landroid/content/Context;Landroid/content/ClipData$Item;)Ljava/lang/CharSequence;
.registers 9
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0
}
names = {
"context",
"item"
}
.end annotation
.line 92
invoke-virtual {p2}, Landroid/content/ClipData$Item;->getText()Ljava/lang/CharSequence;
move-result-object v0
if-eqz v0, :cond_7
return-object v0
.line 98
:cond_7
invoke-virtual {p2}, Landroid/content/ClipData$Item;->getUri()Landroid/net/Uri;
move-result-object v0
const/4 v1, 0x0
if-eqz v0, :cond_83
.line 103
:try_start_e
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object p1
const-string p2, "text/*"
invoke-virtual {p1, v0, p2, v1}, Landroid/content/ContentResolver;->openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;
move-result-object p1
.line 104
invoke-virtual {p1}, Landroid/content/res/AssetFileDescriptor;->createInputStream()Ljava/io/FileInputStream;
move-result-object p1
:try_end_1c
.catch Ljava/io/FileNotFoundException; {:try_start_e .. :try_end_1c} :catch_75
.catch Ljava/io/IOException; {:try_start_e .. :try_end_1c} :catch_54
.catchall {:try_start_e .. :try_end_1c} :catchall_51
.line 105
:try_start_1c
new-instance p2, Ljava/io/InputStreamReader;
const-string v2, "UTF-8"
invoke-direct {p2, p1, v2}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/lang/String;)V
:try_end_23
.catch Ljava/io/FileNotFoundException; {:try_start_1c .. :try_end_23} :catch_76
.catch Ljava/io/IOException; {:try_start_1c .. :try_end_23} :catch_4c
.catchall {:try_start_1c .. :try_end_23} :catchall_4a
.line 107
:try_start_23
new-instance v1, Ljava/lang/StringBuilder;
const/16 v2, 0x80
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const/16 v2, 0x2000
new-array v2, v2, [C
.line 110
:goto_2e
invoke-virtual {p2, v2}, Ljava/io/InputStreamReader;->read([C)I
move-result v3
if-lez v3, :cond_39
const/4 v4, 0x0
.line 111
invoke-virtual {v1, v2, v4, v3}, Ljava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder;
goto :goto_2e
.line 113
:cond_39
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
:try_end_3d
.catch Ljava/io/FileNotFoundException; {:try_start_23 .. :try_end_3d} :catch_48
.catch Ljava/io/IOException; {:try_start_23 .. :try_end_3d} :catch_46
.catchall {:try_start_23 .. :try_end_3d} :catchall_68
.line 122
:try_start_3d
invoke-virtual {p2}, Ljava/io/InputStreamReader;->close()V
:try_end_40
.catch Ljava/io/IOException; {:try_start_3d .. :try_end_40} :catch_40
:catch_40
if-eqz p1, :cond_45
.line 129
:try_start_42
invoke-virtual {p1}, Ljava/io/FileInputStream;->close()V
:try_end_45
.catch Ljava/io/IOException; {:try_start_42 .. :try_end_45} :catch_45
:catch_45
:cond_45
return-object v0
:catch_46
move-exception v1
goto :goto_58
:catch_48
move-object v1, p2
goto :goto_76
:catchall_4a
move-exception v0
goto :goto_6a
:catch_4c
move-exception p2
move-object v5, v1
move-object v1, p2
move-object p2, v5
goto :goto_58
:catchall_51
move-exception v0
move-object p1, v1
goto :goto_6a
:catch_54
move-exception p1
move-object p2, v1
move-object v1, p1
move-object p1, p2
:goto_58
:try_start_58
const-string v2, "ClippedData Failure loading text."
.line 118
invoke-static {v2, v1}, Lcom/taobao/weex/utils/WXLogUtils;->w(Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_5d
.catchall {:try_start_58 .. :try_end_5d} :catchall_68
if-eqz p2, :cond_62
.line 122
:try_start_5f
invoke-virtual {p2}, Ljava/io/InputStreamReader;->close()V
:try_end_62
.catch Ljava/io/IOException; {:try_start_5f .. :try_end_62} :catch_62
:catch_62
:cond_62
if-eqz p1, :cond_7e
.line 129
:goto_64
:try_start_64
invoke-virtual {p1}, Ljava/io/FileInputStream;->close()V
:try_end_67
.catch Ljava/io/IOException; {:try_start_64 .. :try_end_67} :catch_7e
goto :goto_7e
:catchall_68
move-exception v0
move-object v1, p2
:goto_6a
if-eqz v1, :cond_6f
.line 122
:try_start_6c
invoke-virtual {v1}, Ljava/io/InputStreamReader;->close()V
:try_end_6f
.catch Ljava/io/IOException; {:try_start_6c .. :try_end_6f} :catch_6f
:catch_6f
:cond_6f
if-eqz p1, :cond_74
.line 129
:try_start_71
invoke-virtual {p1}, Ljava/io/FileInputStream;->close()V
:try_end_74
.catch Ljava/io/IOException; {:try_start_71 .. :try_end_74} :catch_74
.line 134
:catch_74
:cond_74
throw v0
:catch_75
move-object p1, v1
:catch_76
:goto_76
if-eqz v1, :cond_7b
.line 122
:try_start_78
invoke-virtual {v1}, Ljava/io/InputStreamReader;->close()V
:try_end_7b
.catch Ljava/io/IOException; {:try_start_78 .. :try_end_7b} :catch_7b
:catch_7b
:cond_7b
if-eqz p1, :cond_7e
goto :goto_64
.line 136
:catch_7e
:cond_7e
:goto_7e
invoke-virtual {v0}, Landroid/net/Uri;->toString()Ljava/lang/String;
move-result-object p1
return-object p1
.line 140
:cond_83
invoke-virtual {p2}, Landroid/content/ClipData$Item;->getIntent()Landroid/content/Intent;
move-result-object p1
if-eqz p1, :cond_8f
const/4 p2, 0x1
.line 142
invoke-virtual {p1, p2}, Landroid/content/Intent;->toUri(I)Ljava/lang/String;
move-result-object p1
return-object p1
:cond_8f
return-object v1
.end method
# virtual methods
.method public getString(Lcom/taobao/weex/bridge/JSCallback;)V
.registers 10
.annotation runtime Lcom/taobao/weex/annotation/JSMethod;
.end annotation
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"callback"
}
.end annotation
.line 68
iget-object v0, p0, Lcom/taobao/weex/appfram/clipboard/WXClipboardModule;->mWXSDKInstance:Lcom/taobao/weex/WXSDKInstance;
invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getContext()Landroid/content/Context;
move-result-object v0
const-string v1, "clipboard"
.line 69
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/content/ClipboardManager;
.line 71
new-instance v2, Ljava/util/HashMap;
const/4 v3, 0x2
invoke-direct {v2, v3}, Ljava/util/HashMap;-><init>(I)V
.line 72
invoke-virtual {v1}, Landroid/content/ClipboardManager;->getPrimaryClip()Landroid/content/ClipData;
move-result-object v1
const-string v3, ""
const-string v4, "data"
const-string v5, "failed"
const-string v6, "result"
if-eqz v1, :cond_3f
.line 73
invoke-virtual {v1}, Landroid/content/ClipData;->getItemCount()I
move-result v7
if-lez v7, :cond_3f
const/4 v7, 0x0
.line 74
invoke-virtual {v1, v7}, Landroid/content/ClipData;->getItemAt(I)Landroid/content/ClipData$Item;
move-result-object v1
.line 75
invoke-direct {p0, v0, v1}, Lcom/taobao/weex/appfram/clipboard/WXClipboardModule;->coerceToText(Landroid/content/Context;Landroid/content/ClipData$Item;)Ljava/lang/CharSequence;
move-result-object v0
if-eqz v0, :cond_35
const-string v5, "success"
.line 77
:cond_35
invoke-interface {v2, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
if-eqz v0, :cond_3b
move-object v3, v0
.line 78
:cond_3b
invoke-interface {v2, v4, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_45
.line 80
:cond_3f
invoke-interface {v2, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 81
invoke-interface {v2, v4, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:goto_45
if-eqz p1, :cond_4a
.line 85
invoke-interface {p1, v2}, Lcom/taobao/weex/bridge/JSCallback;->invoke(Ljava/lang/Object;)V
:cond_4a
return-void
.end method
.method public setString(Ljava/lang/String;)V
.registers 4
.annotation runtime Lcom/taobao/weex/annotation/JSMethod;
.end annotation
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"text"
}
.end annotation
if-nez p1, :cond_3
return-void
.line 59
:cond_3
iget-object v0, p0, Lcom/taobao/weex/appfram/clipboard/WXClipboardModule;->mWXSDKInstance:Lcom/taobao/weex/WXSDKInstance;
invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getContext()Landroid/content/Context;
move-result-object v0
const-string v1, "clipboard"
.line 60
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/ClipboardManager;
const-string v1, "WEEX_CLIP_KEY_MAIN"
.line 61
invoke-static {v1, p1}, Landroid/content/ClipData;->newPlainText(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/content/ClipData;
move-result-object p1
.line 62
invoke-virtual {v0, p1}, Landroid/content/ClipboardManager;->setPrimaryClip(Landroid/content/ClipData;)V
return-void
.end method