RichTextLayout.smali
.class public Lio/dcloud/feature/nativeObj/richtext/RichTextLayout;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;,
Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$DefaultAssets;
}
.end annotation
# direct methods
.method public constructor <init>()V
.registers 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static makeRichText([Ljava/lang/Object;)Landroid/widget/TextView;
.registers 8
const/4 v0, 0x0
.line 96
aget-object v0, p0, v0
check-cast v0, Lio/dcloud/common/DHInterface/IFrameView;
.line 97
invoke-interface {v0}, Lio/dcloud/common/DHInterface/IFrameView;->obtainWebView()Lio/dcloud/common/DHInterface/IWebview;
move-result-object v2
const/4 v0, 0x1
.line 98
aget-object v0, p0, v0
move-object v4, v0
check-cast v4, Ljava/lang/String;
const/4 v0, 0x2
.line 99
aget-object v0, p0, v0
move-object v5, v0
check-cast v5, Lorg/json/JSONObject;
.line 100
new-instance v0, Landroid/widget/TextView;
invoke-interface {v2}, Lio/dcloud/common/DHInterface/IWebview;->getContext()Landroid/content/Context;
move-result-object v1
invoke-direct {v0, v1}, Landroid/widget/TextView;-><init>(Landroid/content/Context;)V
.line 101
new-instance v1, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$1;
invoke-direct {v1, v2}, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$1;-><init>(Lio/dcloud/common/DHInterface/IWebview;)V
const/4 v3, 0x3
aget-object p0, p0, v3
move-object v6, p0
check-cast v6, Lio/dcloud/common/DHInterface/ICallBack;
move-object v3, v0
invoke-static/range {v1 .. v6}, Lio/dcloud/feature/nativeObj/richtext/RichTextParser;->updateFromHTML(Lio/dcloud/feature/nativeObj/richtext/IAssets;Lio/dcloud/common/DHInterface/IWebview;Landroid/widget/TextView;Ljava/lang/String;Lorg/json/JSONObject;Lio/dcloud/common/DHInterface/ICallBack;)V
return-object v0
.end method
.method public static makeRichText(Landroid/content/Context;Lio/dcloud/common/DHInterface/IWebview;Lio/dcloud/feature/nativeObj/NativeView;Ljava/lang/String;Lorg/json/JSONObject;Lorg/json/JSONObject;Ljava/lang/String;)Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;
.registers 8
.line 1
new-instance v0, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;
invoke-direct {v0, p0, p1, p2, p6}, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;-><init>(Landroid/content/Context;Lio/dcloud/common/DHInterface/IWebview;Lio/dcloud/feature/nativeObj/NativeView;Ljava/lang/String;)V
.line 2
invoke-static {v0, p3, p4, p5}, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout;->makeRichText(Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;Ljava/lang/String;Lorg/json/JSONObject;Lorg/json/JSONObject;)Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;
move-result-object p0
return-object p0
.end method
.method public static makeRichText(Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;Ljava/lang/String;Lorg/json/JSONObject;Lorg/json/JSONObject;)Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;
.registers 23
move-object/from16 v0, p0
move-object/from16 v1, p2
.line 3
iget-object v2, v0, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->mWebView:Lio/dcloud/common/DHInterface/IWebview;
iget-object v3, v0, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->mMainView:Landroid/widget/TextView;
move-object/from16 v4, p1
move-object/from16 v5, p3
invoke-static {v0, v2, v3, v4, v5}, Lio/dcloud/feature/nativeObj/richtext/RichTextParser;->updateFromHTML(Lio/dcloud/feature/nativeObj/richtext/IAssets;Lio/dcloud/common/DHInterface/IWebview;Landroid/widget/TextView;Ljava/lang/String;Lorg/json/JSONObject;)V
.line 4
invoke-virtual/range {p0 .. p0}, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->updateLayout()V
.line 6
iget-object v2, v0, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->mNativeView:Lio/dcloud/feature/nativeObj/NativeView;
.line 7
iget v3, v2, Lio/dcloud/feature/nativeObj/NativeView;->mInnerWidth:I
.line 8
iget v4, v2, Lio/dcloud/feature/nativeObj/NativeView;->mInnerHeight:I
const-string v5, "left"
.line 9
invoke-virtual {v1, v5}, Lorg/json/JSONObject;->isNull(Ljava/lang/String;)Z
move-result v6
xor-int/lit8 v6, v6, 0x1
const-string v7, "right"
.line 10
invoke-virtual {v1, v7}, Lorg/json/JSONObject;->isNull(Ljava/lang/String;)Z
move-result v8
xor-int/lit8 v8, v8, 0x1
const-string v9, "top"
.line 11
invoke-virtual {v1, v9}, Lorg/json/JSONObject;->isNull(Ljava/lang/String;)Z
move-result v10
xor-int/lit8 v10, v10, 0x1
const-string v11, "width"
.line 12
invoke-virtual {v1, v11}, Lorg/json/JSONObject;->isNull(Ljava/lang/String;)Z
move-result v12
xor-int/lit8 v12, v12, 0x1
const-string v13, "height"
.line 13
invoke-virtual {v1, v13}, Lorg/json/JSONObject;->isNull(Ljava/lang/String;)Z
move-result v14
xor-int/lit8 v14, v14, 0x1
const-string v15, "bottom"
.line 14
invoke-virtual {v1, v15}, Lorg/json/JSONObject;->isNull(Ljava/lang/String;)Z
move-result v16
xor-int/lit8 v16, v16, 0x1
move-object/from16 p1, v15
.line 16
iget v15, v2, Lio/dcloud/feature/nativeObj/NativeView;->mInnerLeft:I
move/from16 p3, v15
iget v15, v2, Lio/dcloud/feature/nativeObj/NativeView;->mInnerTop:I
const/16 v17, 0x0
if-eqz v14, :cond_81
.line 18
invoke-virtual {v1, v13}, Lorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v13
.line 19
invoke-static {v13}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v18
if-nez v18, :cond_7c
const-string v2, "wrap_content"
.line 20
invoke-virtual {v2, v13}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_6a
const/4 v2, -0x2
move/from16 v14, v17
goto :goto_84
.line 24
:cond_6a
iget v2, v0, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->mNativeViewHeight:I
int-to-float v2, v2
move/from16 v18, v14
int-to-float v14, v4
invoke-virtual {v0, v13, v14}, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->convertHeight(Ljava/lang/String;F)F
move-result v13
invoke-static {v2, v13}, Ljava/lang/Math;->min(FF)F
move-result v2
float-to-int v2, v2
move/from16 v14, v18
goto :goto_84
:cond_7c
move/from16 v18, v14
.line 27
iget v2, v2, Lio/dcloud/feature/nativeObj/NativeView;->mInnerHeight:I
goto :goto_84
:cond_81
move/from16 v18, v14
move v2, v4
:goto_84
if-eqz v12, :cond_97
.line 31
invoke-virtual {v1, v11}, Lorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v11
.line 32
invoke-static {v11}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v13
if-nez v13, :cond_97
int-to-float v13, v3
.line 33
invoke-virtual {v0, v11, v13}, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->convertWidth(Ljava/lang/String;F)F
move-result v11
float-to-int v11, v11
goto :goto_98
:cond_97
move v11, v3
:goto_98
if-eqz v10, :cond_aa
.line 37
invoke-virtual {v1, v9}, Lorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v9
.line 38
invoke-static {v9}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v13
if-nez v13, :cond_aa
int-to-float v13, v4
.line 39
invoke-virtual {v0, v9, v13}, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->convertHeight(Ljava/lang/String;F)F
move-result v9
float-to-int v15, v9
:cond_aa
if-eqz v6, :cond_bd
.line 44
invoke-virtual {v1, v5}, Lorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
.line 45
invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v9
if-nez v9, :cond_bd
int-to-float v9, v3
.line 46
invoke-virtual {v0, v5, v9}, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->convertWidth(Ljava/lang/String;F)F
move-result v5
float-to-int v5, v5
goto :goto_bf
:cond_bd
move/from16 v5, p3
:goto_bf
if-eqz v8, :cond_d2
.line 50
invoke-virtual {v1, v7}, Lorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
.line 51
invoke-static {v7}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v9
if-nez v9, :cond_d2
int-to-float v9, v3
.line 52
invoke-virtual {v0, v7, v9}, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->convertWidth(Ljava/lang/String;F)F
move-result v7
float-to-int v7, v7
goto :goto_d4
:cond_d2
move/from16 v7, v17
:goto_d4
if-eqz v16, :cond_e9
move-object/from16 v9, p1
.line 56
invoke-virtual {v1, v9}, Lorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 57
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v9
if-nez v9, :cond_e9
int-to-float v9, v4
.line 58
invoke-virtual {v0, v1, v9}, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->convertHeight(Ljava/lang/String;F)F
move-result v1
float-to-int v1, v1
goto :goto_eb
:cond_e9
move/from16 v1, v17
:goto_eb
if-nez v6, :cond_103
if-nez v12, :cond_f3
if-eqz v8, :cond_f3
neg-int v5, v7
goto :goto_10a
:cond_f3
if-eqz v12, :cond_fb
if-nez v8, :cond_fb
sub-int/2addr v3, v11
.line 66
div-int/lit8 v5, v3, 0x2
goto :goto_10a
:cond_fb
if-eqz v12, :cond_10a
if-eqz v8, :cond_10a
sub-int/2addr v3, v11
sub-int v5, v3, v7
goto :goto_10a
:cond_103
if-nez v12, :cond_10a
if-eqz v8, :cond_10a
sub-int/2addr v3, v5
sub-int v11, v3, v7
:cond_10a
:goto_10a
if-nez v10, :cond_122
if-nez v14, :cond_112
if-eqz v16, :cond_112
neg-int v15, v1
goto :goto_129
:cond_112
if-eqz v14, :cond_11a
if-nez v16, :cond_11a
sub-int/2addr v4, v2
.line 80
div-int/lit8 v15, v4, 0x2
goto :goto_129
:cond_11a
if-eqz v14, :cond_129
if-eqz v16, :cond_129
sub-int/2addr v4, v2
sub-int v15, v4, v1
goto :goto_129
:cond_122
if-nez v14, :cond_129
if-eqz v16, :cond_129
sub-int/2addr v4, v15
sub-int v2, v4, v1
.line 90
:cond_129
:goto_129
new-instance v3, Landroid/widget/LinearLayout$LayoutParams;
invoke-direct {v3, v11, v2}, Landroid/widget/LinearLayout$LayoutParams;-><init>(II)V
.line 91
iput v5, v3, Landroid/widget/LinearLayout$LayoutParams;->leftMargin:I
.line 92
iput v7, v3, Landroid/widget/LinearLayout$LayoutParams;->rightMargin:I
.line 93
iput v1, v3, Landroid/widget/LinearLayout$LayoutParams;->bottomMargin:I
.line 94
iput v15, v3, Landroid/widget/LinearLayout$LayoutParams;->topMargin:I
.line 95
iget-object v1, v0, Lio/dcloud/feature/nativeObj/richtext/RichTextLayout$RichTextLayoutHolder;->mMainView:Landroid/widget/TextView;
invoke-virtual {v1, v3}, Landroid/widget/TextView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
return-object v0
.end method