PileLayoutView.smali

.class public Lcom/imo/android/imoim/community/widget/PileLayoutView;
.super Landroid/view/ViewGroup;
.source "SourceFile"


# instance fields
.field protected a:F

.field protected b:F


# direct methods
.method public constructor <init>(Landroid/content/Context;)V
    .registers 4

    const/4 v0, 0x0

    const/4 v1, 0x0

    .line 31
    invoke-direct {p0, p1, v0, v1}, Lcom/imo/android/imoim/community/widget/PileLayoutView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V

    return-void
.end method

.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
    .registers 4

    const/4 v0, 0x0

    .line 35
    invoke-direct {p0, p1, p2, v0}, Lcom/imo/android/imoim/community/widget/PileLayoutView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V

    return-void
.end method

.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
    .registers 4

    .line 39
    invoke-direct {p0, p1, p2, p3}, Landroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V

    .line 40
    sget-object p3, Lcom/imo/android/imoim/community/c$b;->community_PileLayout:[I

    invoke-virtual {p1, p2, p3}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;

    move-result-object p1

    const/high16 p2, 0x40800000    # 4.0f

    .line 41
    invoke-direct {p0, p2}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->a(F)F

    move-result p2

    const/4 p3, 0x1

    invoke-virtual {p1, p3, p2}, Landroid/content/res/TypedArray;->getDimension(IF)F

    move-result p2

    iput p2, p0, Lcom/imo/android/imoim/community/widget/PileLayoutView;->a:F

    const/high16 p2, 0x40400000    # 3.0f

    .line 42
    invoke-direct {p0, p2}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->a(F)F

    move-result p2

    const/4 p3, 0x0

    invoke-virtual {p1, p3, p2}, Landroid/content/res/TypedArray;->getDimension(IF)F

    move-result p2

    iput p2, p0, Lcom/imo/android/imoim/community/widget/PileLayoutView;->b:F

    .line 43
    invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V

    return-void
.end method

.method private a(F)F
    .registers 4

    .line 166
    invoke-virtual {p0}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->getResources()Landroid/content/res/Resources;

    move-result-object v0

    invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;

    move-result-object v0

    const/4 v1, 0x1

    invoke-static {v1, p1, v0}, Landroid/util/TypedValue;->applyDimension(IFLandroid/util/DisplayMetrics;)F

    move-result p1

    return p1
.end method


# virtual methods
.method protected generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
    .registers 3

    .line 157
    new-instance v0, Landroid/view/ViewGroup$MarginLayoutParams;

    const/4 v1, -0x2

    invoke-direct {v0, v1, v1}, Landroid/view/ViewGroup$MarginLayoutParams;-><init>(II)V

    return-object v0
.end method

.method public generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
    .registers 4

    .line 152
    new-instance v0, Landroid/view/ViewGroup$MarginLayoutParams;

    invoke-virtual {p0}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->getContext()Landroid/content/Context;

    move-result-object v1

    invoke-direct {v0, v1, p1}, Landroid/view/ViewGroup$MarginLayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V

    return-object v0
.end method

.method protected generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;
    .registers 3

    .line 162
    new-instance v0, Landroid/view/ViewGroup$MarginLayoutParams;

    invoke-direct {v0, p1}, Landroid/view/ViewGroup$MarginLayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V

    return-object v0
.end method

.method protected onLayout(ZIIII)V
    .registers 23

    move-object/from16 v0, p0

    sub-int v1, p4, p2

    .line 112
    invoke-static/range {p0 .. p0}, Lcom/imo/android/imoim/util/do;->a(Landroid/view/View;)I

    move-result v2

    .line 113
    invoke-virtual/range {p0 .. p0}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->getPaddingTop()I

    move-result v3

    .line 117
    invoke-virtual/range {p0 .. p0}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->getChildCount()I

    move-result v4

    const/4 v5, 0x0

    const/4 v6, 0x0

    const/4 v7, 0x0

    const/4 v8, 0x0

    :goto_14
    if-ge v6, v4, :cond_7f

    .line 118
    invoke-virtual {v0, v6}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->getChildAt(I)Landroid/view/View;

    move-result-object v9

    .line 119
    invoke-virtual {v9}, Landroid/view/View;->getVisibility()I

    move-result v10

    const/16 v11, 0x8

    if-eq v10, v11, :cond_7c

    .line 121
    invoke-virtual {v9}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v10

    check-cast v10, Landroid/view/ViewGroup$MarginLayoutParams;

    .line 123
    iget v11, v10, Landroid/view/ViewGroup$MarginLayoutParams;->leftMargin:I

    invoke-virtual {v9}, Landroid/view/View;->getMeasuredWidth()I

    move-result v12

    add-int/2addr v11, v12

    iget v12, v10, Landroid/view/ViewGroup$MarginLayoutParams;->rightMargin:I

    add-int/2addr v11, v12

    add-int v12, v2, v11

    .line 124
    invoke-static/range {p0 .. p0}, Lcom/imo/android/imoim/util/do;->b(Landroid/view/View;)I

    move-result v13

    add-int/2addr v12, v13

    if-le v12, v1, :cond_48

    .line 125
    invoke-static/range {p0 .. p0}, Lcom/imo/android/imoim/util/do;->a(Landroid/view/View;)I

    move-result v2

    int-to-float v3, v3

    int-to-float v7, v7

    .line 126
    iget v8, v0, Lcom/imo/android/imoim/community/widget/PileLayoutView;->a:F

    add-float/2addr v7, v8

    add-float/2addr v3, v7

    float-to-int v3, v3

    const/4 v7, 0x0

    const/4 v8, 0x0

    .line 132
    :cond_48
    iget v12, v10, Landroid/view/ViewGroup$MarginLayoutParams;->leftMargin:I

    add-int/2addr v12, v2

    .line 133
    iget v13, v10, Landroid/view/ViewGroup$MarginLayoutParams;->topMargin:I

    add-int/2addr v13, v3

    .line 134
    iget v14, v10, Landroid/view/ViewGroup$MarginLayoutParams;->leftMargin:I

    add-int/2addr v14, v2

    invoke-virtual {v9}, Landroid/view/View;->getMeasuredWidth()I

    move-result v15

    add-int/2addr v14, v15

    .line 135
    iget v15, v10, Landroid/view/ViewGroup$MarginLayoutParams;->topMargin:I

    add-int/2addr v15, v3

    invoke-virtual {v9}, Landroid/view/View;->getMeasuredHeight()I

    move-result v16

    add-int v15, v15, v16

    .line 136
    invoke-virtual {v9, v12, v13, v14, v15}, Landroid/view/View;->layout(IIII)V

    add-int/2addr v2, v11

    .line 141
    iget v11, v10, Landroid/view/ViewGroup$MarginLayoutParams;->topMargin:I

    invoke-virtual {v9}, Landroid/view/View;->getMeasuredHeight()I

    move-result v9

    add-int/2addr v11, v9

    iget v9, v10, Landroid/view/ViewGroup$MarginLayoutParams;->bottomMargin:I

    add-int/2addr v11, v9

    add-int/lit8 v9, v4, -0x1

    if-eq v8, v9, :cond_76

    int-to-float v2, v2

    .line 143
    iget v9, v0, Lcom/imo/android/imoim/community/widget/PileLayoutView;->b:F

    sub-float/2addr v2, v9

    float-to-int v2, v2

    .line 145
    :cond_76
    invoke-static {v7, v11}, Ljava/lang/Math;->max(II)I

    move-result v7

    add-int/lit8 v8, v8, 0x1

    :cond_7c
    add-int/lit8 v6, v6, 0x1

    goto :goto_14

    :cond_7f
    return-void
.end method

.method protected onMeasure(II)V
    .registers 23

    move-object/from16 v6, p0

    .line 49
    invoke-super/range {p0 .. p2}, Landroid/view/ViewGroup;->onMeasure(II)V

    .line 50
    invoke-static/range {p1 .. p1}, Landroid/view/View$MeasureSpec;->getMode(I)I

    move-result v7

    .line 51
    invoke-static/range {p1 .. p1}, Landroid/view/View$MeasureSpec;->getSize(I)I

    move-result v8

    .line 52
    invoke-static/range {p2 .. p2}, Landroid/view/View$MeasureSpec;->getMode(I)I

    move-result v9

    .line 53
    invoke-static/range {p2 .. p2}, Landroid/view/View$MeasureSpec;->getSize(I)I

    move-result v10

    .line 62
    invoke-virtual/range {p0 .. p0}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->getChildCount()I

    move-result v11

    const/4 v4, 0x0

    const/4 v5, 0x0

    const/4 v13, 0x0

    const/4 v14, 0x0

    const/4 v15, 0x0

    const/16 v16, 0x0

    :goto_20
    if-ge v13, v11, :cond_b4

    .line 64
    invoke-virtual {v6, v13}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->getChildAt(I)Landroid/view/View;

    move-result-object v17

    .line 65
    invoke-virtual/range {v17 .. v17}, Landroid/view/View;->getVisibility()I

    move-result v0

    const/16 v1, 0x8

    if-ne v0, v1, :cond_3b

    add-int/lit8 v0, v11, -0x1

    if-ne v13, v0, :cond_37

    add-int/2addr v5, v4

    .line 69
    invoke-static {v14, v15}, Ljava/lang/Math;->max(II)I

    move-result v14

    :cond_37
    move/from16 v19, v10

    goto/16 :goto_ae

    :cond_3b
    const/4 v3, 0x0

    const/16 v18, 0x0

    move-object/from16 v0, p0

    move-object/from16 v1, v17

    move/from16 v2, p1

    move v12, v4

    move/from16 v4, p2

    move/from16 v19, v10

    move v10, v5

    move/from16 v5, v18

    .line 75
    invoke-virtual/range {v0 .. v5}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->measureChildWithMargins(Landroid/view/View;IIII)V

    .line 76
    invoke-virtual/range {v17 .. v17}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v0

    check-cast v0, Landroid/view/ViewGroup$MarginLayoutParams;

    .line 78
    invoke-virtual/range {v17 .. v17}, Landroid/view/View;->getMeasuredWidth()I

    move-result v1

    iget v2, v0, Landroid/view/ViewGroup$MarginLayoutParams;->leftMargin:I

    add-int/2addr v1, v2

    iget v2, v0, Landroid/view/ViewGroup$MarginLayoutParams;->rightMargin:I

    add-int/2addr v1, v2

    .line 79
    invoke-virtual/range {v17 .. v17}, Landroid/view/View;->getMeasuredHeight()I

    move-result v2

    iget v3, v0, Landroid/view/ViewGroup$MarginLayoutParams;->topMargin:I

    add-int/2addr v2, v3

    iget v0, v0, Landroid/view/ViewGroup$MarginLayoutParams;->bottomMargin:I

    add-int/2addr v2, v0

    add-int v0, v15, v1

    int-to-float v3, v0

    if-lez v16, :cond_71

    .line 80
    iget v4, v6, Lcom/imo/android/imoim/community/widget/PileLayoutView;->b:F

    goto :goto_72

    :cond_71
    const/4 v4, 0x0

    :goto_72
    sub-float v4, v3, v4

    invoke-static/range {p0 .. p0}, Lcom/imo/android/imoim/util/do;->a(Landroid/view/View;)I

    move-result v5

    sub-int v5, v8, v5

    invoke-static/range {p0 .. p0}, Lcom/imo/android/imoim/util/do;->b(Landroid/view/View;)I

    move-result v17

    sub-int v5, v5, v17

    int-to-float v5, v5

    cmpl-float v4, v4, v5

    if-lez v4, :cond_95

    .line 82
    invoke-static {v14, v15}, Ljava/lang/Math;->max(II)I

    move-result v14

    int-to-float v0, v10

    int-to-float v3, v12

    .line 84
    iget v4, v6, Lcom/imo/android/imoim/community/widget/PileLayoutView;->a:F

    add-float/2addr v3, v4

    add-float/2addr v0, v3

    float-to-int v5, v0

    move v15, v1

    move v4, v2

    const/16 v16, 0x0

    goto :goto_a2

    :cond_95
    if-lez v16, :cond_9b

    .line 90
    iget v0, v6, Lcom/imo/android/imoim/community/widget/PileLayoutView;->b:F

    sub-float/2addr v3, v0

    float-to-int v0, v3

    .line 92
    :cond_9b
    invoke-static {v12, v2}, Ljava/lang/Math;->max(II)I

    move-result v1

    move v15, v0

    move v4, v1

    move v5, v10

    :goto_a2
    add-int/lit8 v0, v11, -0x1

    if-ne v13, v0, :cond_ac

    .line 96
    invoke-static {v15, v14}, Ljava/lang/Math;->max(II)I

    move-result v0

    add-int/2addr v5, v4

    move v14, v0

    :cond_ac
    add-int/lit8 v16, v16, 0x1

    :goto_ae
    add-int/lit8 v13, v13, 0x1

    move/from16 v10, v19

    goto/16 :goto_20

    :cond_b4
    move/from16 v19, v10

    move v10, v5

    const/high16 v0, 0x40000000    # 2.0f

    if-ne v7, v0, :cond_bc

    goto :goto_c7

    .line 104
    :cond_bc
    invoke-static/range {p0 .. p0}, Lcom/imo/android/imoim/util/do;->a(Landroid/view/View;)I

    move-result v1

    add-int/2addr v14, v1

    invoke-static/range {p0 .. p0}, Lcom/imo/android/imoim/util/do;->b(Landroid/view/View;)I

    move-result v1

    add-int v8, v14, v1

    :goto_c7
    if-ne v9, v0, :cond_cc

    move/from16 v10, v19

    goto :goto_d8

    .line 105
    :cond_cc
    invoke-virtual/range {p0 .. p0}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->getPaddingTop()I

    move-result v0

    add-int v5, v10, v0

    invoke-virtual/range {p0 .. p0}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->getPaddingBottom()I

    move-result v0

    add-int v10, v5, v0

    .line 103
    :goto_d8
    invoke-virtual {v6, v8, v10}, Lcom/imo/android/imoim/community/widget/PileLayoutView;->setMeasuredDimension(II)V

    return-void
.end method