ActionGetComponentRect.smali
.class public Lcom/taobao/weex/ui/action/ActionGetComponentRect;
.super Lcom/taobao/weex/ui/action/BasicGraphicAction;
.source "ActionGetComponentRect.java"
# instance fields
.field private final mCallback:Ljava/lang/String;
# direct methods
.method public constructor <init>(Lcom/taobao/weex/WXSDKInstance;Ljava/lang/String;Ljava/lang/String;)V
.registers 4
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0,
0x0
}
names = {
"instance",
"ref",
"callback"
}
.end annotation
.line 44
invoke-direct {p0, p1, p2}, Lcom/taobao/weex/ui/action/BasicGraphicAction;-><init>(Lcom/taobao/weex/WXSDKInstance;Ljava/lang/String;)V
.line 45
iput-object p3, p0, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->mCallback:Ljava/lang/String;
return-void
.end method
.method private callbackViewport(Lcom/taobao/weex/WXSDKInstance;Lcom/taobao/weex/bridge/JSCallback;)V
.registers 10
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0
}
names = {
"instance",
"jsCallback"
}
.end annotation
.line 92
invoke-virtual {p1}, Lcom/taobao/weex/WXSDKInstance;->getContainerView()Landroid/view/View;
move-result-object v0
const-string v1, "result"
if-eqz v0, :cond_89
.line 93
new-instance v2, Ljava/util/HashMap;
invoke-direct {v2}, Ljava/util/HashMap;-><init>()V
.line 94
new-instance v3, Ljava/util/HashMap;
invoke-direct {v3}, Ljava/util/HashMap;-><init>()V
const/4 v4, 0x2
new-array v4, v4, [I
.line 96
invoke-virtual {p1}, Lcom/taobao/weex/WXSDKInstance;->getContainerView()Landroid/view/View;
move-result-object v5
invoke-virtual {v5, v4}, Landroid/view/View;->getLocationOnScreen([I)V
.line 97
invoke-virtual {p1}, Lcom/taobao/weex/WXSDKInstance;->getInstanceViewPortWidthWithFloat()F
move-result p1
const/4 v4, 0x0
.line 98
invoke-static {v4}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v5
const-string v6, "left"
invoke-interface {v3, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 99
invoke-static {v4}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v4
const-string v5, "top"
invoke-interface {v3, v5, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 100
invoke-virtual {v0}, Landroid/view/View;->getWidth()I
move-result v4
invoke-direct {p0, v4, p1}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWebPxValue(IF)F
move-result v4
invoke-static {v4}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v4
const-string v5, "right"
invoke-interface {v3, v5, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 101
invoke-virtual {v0}, Landroid/view/View;->getHeight()I
move-result v4
invoke-direct {p0, v4, p1}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWebPxValue(IF)F
move-result v4
invoke-static {v4}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v4
const-string v5, "bottom"
invoke-interface {v3, v5, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 102
invoke-virtual {v0}, Landroid/view/View;->getWidth()I
move-result v4
invoke-direct {p0, v4, p1}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWebPxValue(IF)F
move-result v4
invoke-static {v4}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v4
const-string/jumbo v5, "width"
invoke-interface {v3, v5, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 103
invoke-virtual {v0}, Landroid/view/View;->getHeight()I
move-result v0
invoke-direct {p0, v0, p1}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWebPxValue(IF)F
move-result p1
invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object p1
const-string v0, "height"
invoke-interface {v3, v0, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string p1, "size"
.line 104
invoke-interface {v2, p1, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const/4 p1, 0x1
.line 105
invoke-static {p1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object p1
invoke-interface {v2, v1, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 106
invoke-interface {p2, v2}, Lcom/taobao/weex/bridge/JSCallback;->invoke(Ljava/lang/Object;)V
goto :goto_a0
.line 108
:cond_89
new-instance p1, Ljava/util/HashMap;
invoke-direct {p1}, Ljava/util/HashMap;-><init>()V
const/4 v0, 0x0
.line 109
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
invoke-interface {p1, v1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v0, "errMsg"
const-string v1, "Component does not exist"
.line 110
invoke-interface {p1, v0, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 111
invoke-interface {p2, p1}, Lcom/taobao/weex/bridge/JSCallback;->invoke(Ljava/lang/Object;)V
:goto_a0
return-void
.end method
.method private getWebPxValue(IF)F
.registers 3
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0
}
names = {
"value",
"viewport"
}
.end annotation
int-to-float p1, p1
.line 117
invoke-static {p1, p2}, Lcom/taobao/weex/utils/WXViewUtils;->getWebPxByWidth(FF)F
move-result p1
return p1
.end method
# virtual methods
.method public executeAction()V
.registers 9
.line 50
invoke-virtual {p0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWXSDKIntance()Lcom/taobao/weex/WXSDKInstance;
move-result-object v0
if-eqz v0, :cond_f0
.line 51
invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->isDestroy()Z
move-result v1
if-eqz v1, :cond_e
goto/16 :goto_f0
.line 55
:cond_e
new-instance v1, Lcom/taobao/weex/bridge/SimpleJSCallback;
invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getInstanceId()Ljava/lang/String;
move-result-object v2
iget-object v3, p0, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->mCallback:Ljava/lang/String;
invoke-direct {v1, v2, v3}, Lcom/taobao/weex/bridge/SimpleJSCallback;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 57
invoke-virtual {p0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getRef()Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
const-string v3, "errMsg"
const-string v4, "result"
if-eqz v2, :cond_3e
.line 58
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
const/4 v2, 0x0
.line 59
invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v2
invoke-interface {v0, v4, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v2, "Illegal parameter"
.line 60
invoke-interface {v0, v3, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 61
invoke-interface {v1, v0}, Lcom/taobao/weex/bridge/JSCallback;->invoke(Ljava/lang/Object;)V
goto/16 :goto_f0
.line 62
:cond_3e
invoke-virtual {p0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getRef()Ljava/lang/String;
move-result-object v2
const-string/jumbo v5, "viewport"
invoke-virtual {v5, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_50
.line 63
invoke-direct {p0, v0, v1}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->callbackViewport(Lcom/taobao/weex/WXSDKInstance;Lcom/taobao/weex/bridge/JSCallback;)V
goto/16 :goto_f0
.line 65
:cond_50
invoke-static {}, Lcom/taobao/weex/WXSDKManager;->getInstance()Lcom/taobao/weex/WXSDKManager;
move-result-object v2
invoke-virtual {v2}, Lcom/taobao/weex/WXSDKManager;->getWXRenderManager()Lcom/taobao/weex/ui/WXRenderManager;
move-result-object v2
invoke-virtual {p0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getPageId()Ljava/lang/String;
move-result-object v5
invoke-virtual {p0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getRef()Ljava/lang/String;
move-result-object v6
invoke-virtual {v2, v5, v6}, Lcom/taobao/weex/ui/WXRenderManager;->getWXComponent(Ljava/lang/String;Ljava/lang/String;)Lcom/taobao/weex/ui/component/WXComponent;
move-result-object v2
if-nez v2, :cond_67
return-void
.line 70
:cond_67
new-instance v5, Ljava/util/HashMap;
invoke-direct {v5}, Ljava/util/HashMap;-><init>()V
if-eqz v2, :cond_e8
.line 72
invoke-virtual {v0}, Lcom/taobao/weex/WXSDKInstance;->getInstanceViewPortWidthWithFloat()F
move-result v0
.line 73
new-instance v3, Ljava/util/HashMap;
invoke-direct {v3}, Ljava/util/HashMap;-><init>()V
.line 74
invoke-virtual {v2}, Lcom/taobao/weex/ui/component/WXComponent;->getComponentSize()Landroid/graphics/Rect;
move-result-object v2
.line 75
invoke-virtual {v2}, Landroid/graphics/Rect;->width()I
move-result v6
invoke-direct {p0, v6, v0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWebPxValue(IF)F
move-result v6
invoke-static {v6}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v6
const-string/jumbo v7, "width"
invoke-interface {v3, v7, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 76
invoke-virtual {v2}, Landroid/graphics/Rect;->height()I
move-result v6
invoke-direct {p0, v6, v0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWebPxValue(IF)F
move-result v6
invoke-static {v6}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v6
const-string v7, "height"
invoke-interface {v3, v7, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 77
iget v6, v2, Landroid/graphics/Rect;->bottom:I
invoke-direct {p0, v6, v0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWebPxValue(IF)F
move-result v6
invoke-static {v6}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v6
const-string v7, "bottom"
invoke-interface {v3, v7, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 78
iget v6, v2, Landroid/graphics/Rect;->left:I
invoke-direct {p0, v6, v0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWebPxValue(IF)F
move-result v6
invoke-static {v6}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v6
const-string v7, "left"
invoke-interface {v3, v7, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 79
iget v6, v2, Landroid/graphics/Rect;->right:I
invoke-direct {p0, v6, v0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWebPxValue(IF)F
move-result v6
invoke-static {v6}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v6
const-string v7, "right"
invoke-interface {v3, v7, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 80
iget v2, v2, Landroid/graphics/Rect;->top:I
invoke-direct {p0, v2, v0}, Lcom/taobao/weex/ui/action/ActionGetComponentRect;->getWebPxValue(IF)F
move-result v0
invoke-static {v0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v0
const-string v2, "top"
invoke-interface {v3, v2, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const-string v0, "size"
.line 81
invoke-interface {v5, v0, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const/4 v0, 0x1
.line 82
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
invoke-interface {v5, v4, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_ed
:cond_e8
const-string v0, "Component does not exist"
.line 84
invoke-interface {v5, v3, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 86
:goto_ed
invoke-interface {v1, v5}, Lcom/taobao/weex/bridge/JSCallback;->invoke(Ljava/lang/Object;)V
:cond_f0
:goto_f0
return-void
.end method