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