FlexboxHelper.smali
.class Lcom/google/android/flexbox/FlexboxHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;,
Lcom/google/android/flexbox/FlexboxHelper$Order;
}
.end annotation
# static fields
.field static final synthetic $assertionsDisabled:Z = false
.field private static final INITIAL_CAPACITY:I = 0xa
.field private static final MEASURE_SPEC_WIDTH_MASK:J = 0xffffffffL
# instance fields
.field private mChildrenFrozen:[Z
.field private final mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.field mIndexToFlexLine:[I
.field mMeasureSpecCache:[J
.field private mMeasuredSizeCache:[J
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method constructor <init>(Lcom/google/android/flexbox/FlexContainer;)V
.registers 2
.line 97
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 98
iput-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
return-void
.end method
.method private addFlexLine(Ljava/util/List;Lcom/google/android/flexbox/FlexLine;II)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexLine;",
">;",
"Lcom/google/android/flexbox/FlexLine;",
"II)V"
}
.end annotation
.line 866
iput p4, p2, Lcom/google/android/flexbox/FlexLine;->mSumCrossSizeBefore:I
.line 867
iget-object p4, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p4, p2}, Lcom/google/android/flexbox/FlexContainer;->onNewFlexLineAdded(Lcom/google/android/flexbox/FlexLine;)V
.line 868
iput p3, p2, Lcom/google/android/flexbox/FlexLine;->mLastIndex:I
.line 869
invoke-interface {p1, p2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method private checkSizeConstraints(Landroid/view/View;I)V
.registers 9
.line 882
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v0
check-cast v0, Lcom/google/android/flexbox/FlexItem;
.line 883
invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I
move-result v1
.line 884
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result v2
.line 886
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMinWidth()I
move-result v3
const/4 v4, 0x1
if-ge v1, v3, :cond_1b
.line 888
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMinWidth()I
move-result v1
:goto_19
const/4 v3, 0x1
goto :goto_27
.line 889
:cond_1b
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMaxWidth()I
move-result v3
if-le v1, v3, :cond_26
.line 891
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMaxWidth()I
move-result v1
goto :goto_19
:cond_26
const/4 v3, 0x0
.line 894
:goto_27
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMinHeight()I
move-result v5
if-ge v2, v5, :cond_32
.line 896
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMinHeight()I
move-result v2
goto :goto_3e
.line 897
:cond_32
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMaxHeight()I
move-result v5
if-le v2, v5, :cond_3d
.line 899
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMaxHeight()I
move-result v2
goto :goto_3e
:cond_3d
move v4, v3
:goto_3e
if-eqz v4, :cond_55
const/high16 v0, 0x40000000 # 2.0f
.line 902
invoke-static {v1, v0}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v1
.line 904
invoke-static {v2, v0}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v0
.line 905
invoke-virtual {p1, v1, v0}, Landroid/view/View;->measure(II)V
.line 906
invoke-direct {p0, p2, v1, v0, p1}, Lcom/google/android/flexbox/FlexboxHelper;->updateMeasureCache(IIILandroid/view/View;)V
.line 907
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0, p2, p1}, Lcom/google/android/flexbox/FlexContainer;->updateViewCache(ILandroid/view/View;)V
:cond_55
return-void
.end method
.method private constructFlexLinesForAlignContentCenter(Ljava/util/List;II)Ljava/util/List;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexLine;",
">;II)",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexLine;",
">;"
}
.end annotation
sub-int/2addr p2, p3
.line 1550
div-int/lit8 p2, p2, 0x2
.line 1551
new-instance p3, Ljava/util/ArrayList;
invoke-direct {p3}, Ljava/util/ArrayList;-><init>()V
.line 1552
new-instance v0, Lcom/google/android/flexbox/FlexLine;
invoke-direct {v0}, Lcom/google/android/flexbox/FlexLine;-><init>()V
.line 1553
iput p2, v0, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
.line 1554
invoke-interface {p1}, Ljava/util/List;->size()I
move-result p2
const/4 v1, 0x0
:goto_14
if-ge v1, p2, :cond_32
if-nez v1, :cond_1b
.line 1556
invoke-interface {p3, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1558
:cond_1b
invoke-interface {p1, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/flexbox/FlexLine;
.line 1559
invoke-interface {p3, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1560
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v2
add-int/lit8 v2, v2, -0x1
if-ne v1, v2, :cond_2f
.line 1561
invoke-interface {p3, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:cond_2f
add-int/lit8 v1, v1, 0x1
goto :goto_14
:cond_32
return-object p3
.end method
.method private createOrders(I)Ljava/util/List;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(I)",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexboxHelper$Order;",
">;"
}
.end annotation
.line 158
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0, p1}, Ljava/util/ArrayList;-><init>(I)V
const/4 v1, 0x0
:goto_6
if-ge v1, p1, :cond_28
.line 160
iget-object v2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v2, v1}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemAt(I)Landroid/view/View;
move-result-object v2
.line 161
invoke-virtual {v2}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v2
check-cast v2, Lcom/google/android/flexbox/FlexItem;
.line 162
new-instance v3, Lcom/google/android/flexbox/FlexboxHelper$Order;
const/4 v4, 0x0
invoke-direct {v3, v4}, Lcom/google/android/flexbox/FlexboxHelper$Order;-><init>(Lcom/google/android/flexbox/FlexboxHelper$1;)V
.line 163
invoke-interface {v2}, Lcom/google/android/flexbox/FlexItem;->getOrder()I
move-result v2
iput v2, v3, Lcom/google/android/flexbox/FlexboxHelper$Order;->order:I
.line 164
iput v1, v3, Lcom/google/android/flexbox/FlexboxHelper$Order;->index:I
.line 165
invoke-interface {v0, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
add-int/lit8 v1, v1, 0x1
goto :goto_6
:cond_28
return-object v0
.end method
.method private ensureChildrenFrozen(I)V
.registers 4
.line 984
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
if-nez v0, :cond_f
const/16 v0, 0xa
if-ge p1, v0, :cond_a
const/16 p1, 0xa
.line 985
:cond_a
new-array p1, p1, [Z
iput-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
return-void
.line 986
:cond_f
array-length v1, v0
if-ge v1, p1, :cond_1d
.line 987
array-length v0, v0
mul-int/lit8 v0, v0, 0x2
if-lt v0, p1, :cond_18
move p1, v0
.line 988
:cond_18
new-array p1, p1, [Z
iput-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
return-void
:cond_1d
const/4 p1, 0x0
.line 990
invoke-static {v0, p1}, Ljava/util/Arrays;->fill([ZZ)V
return-void
.end method
.method private expandFlexItems(IILcom/google/android/flexbox/FlexLine;IIZ)V
.registers 28
move-object/from16 v0, p0
move-object/from16 v1, p3
move/from16 v2, p4
const/4 v3, 0x1
move/from16 v4, p6
.line 1009
:goto_9
iget v5, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexGrow:F
const/4 v6, 0x0
cmpg-float v5, v5, v6
if-lez v5, :cond_20d
iget v5, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
if-ge v2, v5, :cond_16
goto/16 :goto_20d
.line 1012
:cond_16
iget v5, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
.line 1014
iget v7, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
sub-int v7, v2, v7
int-to-float v7, v7
iget v8, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexGrow:F
div-float/2addr v7, v8
.line 1015
iget v8, v1, Lcom/google/android/flexbox/FlexLine;->mDividerLengthInMainSize:I
add-int v8, p5, v8
iput v8, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
if-nez v4, :cond_2c
const/high16 v4, -0x80000000
.line 1028
iput v4, v1, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
:cond_2c
const/4 v4, 0x0
const/4 v8, 0x0
const/4 v9, 0x0
const/4 v10, 0x0
.line 1031
:goto_30
iget v11, v1, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
if-ge v4, v11, :cond_200
.line 1032
iget v11, v1, Lcom/google/android/flexbox/FlexLine;->mFirstIndex:I
add-int/2addr v11, v4
.line 1033
iget-object v12, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v12, v11}, Lcom/google/android/flexbox/FlexContainer;->getReorderedFlexItemAt(I)Landroid/view/View;
move-result-object v12
if-eqz v12, :cond_1f3
.line 1034
invoke-virtual {v12}, Landroid/view/View;->getVisibility()I
move-result v13
const/16 v14, 0x8
if-eq v13, v14, :cond_1f3
.line 1037
invoke-virtual {v12}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v13
check-cast v13, Lcom/google/android/flexbox/FlexItem;
.line 1038
iget-object v14, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v14}, Lcom/google/android/flexbox/FlexContainer;->getFlexDirection()I
move-result v14
const-wide/high16 v16, -0x4010000000000000L # -1.0
const-wide/high16 v18, 0x3ff0000000000000L # 1.0
if-eqz v14, :cond_122
if-ne v14, v3, :cond_5d
goto/16 :goto_122
.line 1104
:cond_5d
invoke-virtual {v12}, Landroid/view/View;->getMeasuredHeight()I
move-result v14
.line 1105
iget-object v15, v0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
if-eqz v15, :cond_6b
.line 1111
aget-wide v14, v15, v11
.line 1112
invoke-virtual {v0, v14, v15}, Lcom/google/android/flexbox/FlexboxHelper;->extractHigherInt(J)I
move-result v14
.line 1114
:cond_6b
invoke-virtual {v12}, Landroid/view/View;->getMeasuredWidth()I
move-result v15
.line 1115
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
move/from16 v20, v7
if-eqz v3, :cond_7b
.line 1117
aget-wide v6, v3, v11
.line 1118
invoke-virtual {v0, v6, v7}, Lcom/google/android/flexbox/FlexboxHelper;->extractLowerInt(J)I
move-result v15
.line 1120
:cond_7b
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
aget-boolean v3, v3, v11
if-nez v3, :cond_f7
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexGrow()F
move-result v3
const/4 v6, 0x0
cmpl-float v3, v3, v6
if-lez v3, :cond_f7
int-to-float v3, v14
.line 1122
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexGrow()F
move-result v6
mul-float v7, v20, v6
add-float/2addr v3, v7
.line 1123
iget v6, v1, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
const/4 v7, 0x1
sub-int/2addr v6, v7
if-ne v4, v6, :cond_9a
add-float/2addr v3, v10
const/4 v10, 0x0
.line 1127
:cond_9a
invoke-static {v3}, Ljava/lang/Math;->round(F)I
move-result v6
.line 1128
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMaxHeight()I
move-result v14
if-le v6, v14, :cond_b7
.line 1136
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMaxHeight()I
move-result v6
.line 1137
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
aput-boolean v7, v3, v11
.line 1138
iget v3, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexGrow:F
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexGrow()F
move-result v7
sub-float/2addr v3, v7
iput v3, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexGrow:F
const/4 v8, 0x1
goto :goto_d5
:cond_b7
int-to-float v7, v6
sub-float/2addr v3, v7
add-float/2addr v10, v3
float-to-double v14, v10
cmpl-double v3, v14, v18
if-lez v3, :cond_c9
add-int/lit8 v6, v6, 0x1
.line 1143
invoke-static {v14, v15}, Ljava/lang/Double;->isNaN(D)Z
sub-double v14, v14, v18
:goto_c6
double-to-float v3, v14
move v10, v3
goto :goto_d5
:cond_c9
cmpg-double v3, v14, v16
if-gez v3, :cond_d5
add-int/lit8 v6, v6, -0x1
.line 1146
invoke-static {v14, v15}, Ljava/lang/Double;->isNaN(D)Z
add-double v14, v14, v18
goto :goto_c6
.line 1149
:cond_d5
:goto_d5
iget v3, v1, Lcom/google/android/flexbox/FlexLine;->mSumCrossSizeBefore:I
move/from16 v7, p1
invoke-direct {v0, v7, v13, v3}, Lcom/google/android/flexbox/FlexboxHelper;->getChildWidthMeasureSpecInternal(ILcom/google/android/flexbox/FlexItem;I)I
move-result v3
const/high16 v14, 0x40000000 # 2.0f
.line 1151
invoke-static {v6, v14}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v6
.line 1153
invoke-virtual {v12, v3, v6}, Landroid/view/View;->measure(II)V
.line 1154
invoke-virtual {v12}, Landroid/view/View;->getMeasuredWidth()I
move-result v15
.line 1155
invoke-virtual {v12}, Landroid/view/View;->getMeasuredHeight()I
move-result v14
.line 1156
invoke-direct {v0, v11, v3, v6, v12}, Lcom/google/android/flexbox/FlexboxHelper;->updateMeasureCache(IIILandroid/view/View;)V
.line 1158
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v3, v11, v12}, Lcom/google/android/flexbox/FlexContainer;->updateViewCache(ILandroid/view/View;)V
goto :goto_f9
:cond_f7
move/from16 v7, p1
.line 1161
:goto_f9
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result v3
add-int/2addr v15, v3
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result v3
add-int/2addr v15, v3
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 1162
invoke-interface {v3, v12}, Lcom/google/android/flexbox/FlexContainer;->getDecorationLengthCrossAxis(Landroid/view/View;)I
move-result v3
add-int/2addr v15, v3
.line 1160
invoke-static {v9, v15}, Ljava/lang/Math;->max(II)I
move-result v3
.line 1163
iget v6, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result v9
add-int/2addr v14, v9
.line 1164
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result v9
add-int/2addr v14, v9
add-int/2addr v6, v14
iput v6, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
move/from16 v14, p2
const/4 v7, 0x1
goto/16 :goto_1e9
:cond_122
:goto_122
move/from16 v20, v7
move/from16 v7, p1
.line 1042
invoke-virtual {v12}, Landroid/view/View;->getMeasuredWidth()I
move-result v3
.line 1043
iget-object v6, v0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
if-eqz v6, :cond_134
.line 1049
aget-wide v14, v6, v11
invoke-virtual {v0, v14, v15}, Lcom/google/android/flexbox/FlexboxHelper;->extractLowerInt(J)I
move-result v3
.line 1051
:cond_134
invoke-virtual {v12}, Landroid/view/View;->getMeasuredHeight()I
move-result v6
.line 1052
iget-object v14, v0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
if-eqz v14, :cond_142
.line 1054
aget-wide v6, v14, v11
invoke-virtual {v0, v6, v7}, Lcom/google/android/flexbox/FlexboxHelper;->extractHigherInt(J)I
move-result v6
.line 1056
:cond_142
iget-object v7, v0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
aget-boolean v7, v7, v11
if-nez v7, :cond_1c1
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexGrow()F
move-result v7
const/4 v14, 0x0
cmpl-float v7, v7, v14
if-lez v7, :cond_1c1
int-to-float v3, v3
.line 1058
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexGrow()F
move-result v6
mul-float v7, v20, v6
add-float/2addr v3, v7
.line 1059
iget v6, v1, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
const/4 v7, 0x1
sub-int/2addr v6, v7
if-ne v4, v6, :cond_161
add-float/2addr v3, v10
const/4 v10, 0x0
.line 1063
:cond_161
invoke-static {v3}, Ljava/lang/Math;->round(F)I
move-result v6
.line 1064
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMaxWidth()I
move-result v15
if-le v6, v15, :cond_17e
.line 1072
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMaxWidth()I
move-result v6
.line 1073
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
aput-boolean v7, v3, v11
.line 1074
iget v3, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexGrow:F
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexGrow()F
move-result v8
sub-float/2addr v3, v8
iput v3, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexGrow:F
const/4 v8, 0x1
goto :goto_19c
:cond_17e
int-to-float v15, v6
sub-float/2addr v3, v15
add-float/2addr v10, v3
float-to-double v14, v10
cmpl-double v3, v14, v18
if-lez v3, :cond_190
add-int/lit8 v6, v6, 0x1
.line 1079
invoke-static {v14, v15}, Ljava/lang/Double;->isNaN(D)Z
sub-double v14, v14, v18
:goto_18d
double-to-float v3, v14
move v10, v3
goto :goto_19c
:cond_190
cmpg-double v3, v14, v16
if-gez v3, :cond_19c
add-int/lit8 v6, v6, -0x1
.line 1082
invoke-static {v14, v15}, Ljava/lang/Double;->isNaN(D)Z
add-double v14, v14, v18
goto :goto_18d
.line 1085
:cond_19c
:goto_19c
iget v3, v1, Lcom/google/android/flexbox/FlexLine;->mSumCrossSizeBefore:I
move/from16 v14, p2
invoke-direct {v0, v14, v13, v3}, Lcom/google/android/flexbox/FlexboxHelper;->getChildHeightMeasureSpecInternal(ILcom/google/android/flexbox/FlexItem;I)I
move-result v3
const/high16 v15, 0x40000000 # 2.0f
.line 1087
invoke-static {v6, v15}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v6
.line 1089
invoke-virtual {v12, v6, v3}, Landroid/view/View;->measure(II)V
.line 1090
invoke-virtual {v12}, Landroid/view/View;->getMeasuredWidth()I
move-result v15
.line 1091
invoke-virtual {v12}, Landroid/view/View;->getMeasuredHeight()I
move-result v16
.line 1092
invoke-direct {v0, v11, v6, v3, v12}, Lcom/google/android/flexbox/FlexboxHelper;->updateMeasureCache(IIILandroid/view/View;)V
.line 1094
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v3, v11, v12}, Lcom/google/android/flexbox/FlexContainer;->updateViewCache(ILandroid/view/View;)V
move v3, v15
move/from16 v6, v16
goto :goto_1c4
:cond_1c1
move/from16 v14, p2
const/4 v7, 0x1
.line 1097
:goto_1c4
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result v11
add-int/2addr v6, v11
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result v11
add-int/2addr v6, v11
iget-object v11, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 1098
invoke-interface {v11, v12}, Lcom/google/android/flexbox/FlexContainer;->getDecorationLengthCrossAxis(Landroid/view/View;)I
move-result v11
add-int/2addr v6, v11
.line 1096
invoke-static {v9, v6}, Ljava/lang/Math;->max(II)I
move-result v6
.line 1099
iget v9, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result v11
add-int/2addr v3, v11
.line 1100
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result v11
add-int/2addr v3, v11
add-int/2addr v9, v3
iput v9, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
move v3, v6
.line 1166
:goto_1e9
iget v6, v1, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
invoke-static {v6, v3}, Ljava/lang/Math;->max(II)I
move-result v6
iput v6, v1, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
move v9, v3
goto :goto_1f8
:cond_1f3
move/from16 v14, p2
move/from16 v20, v7
const/4 v7, 0x1
:goto_1f8
add-int/lit8 v4, v4, 0x1
move/from16 v7, v20
const/4 v3, 0x1
const/4 v6, 0x0
goto/16 :goto_30
:cond_200
move/from16 v14, p2
const/4 v7, 0x1
if-eqz v8, :cond_20d
.line 1169
iget v3, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
if-eq v5, v3, :cond_20d
const/4 v3, 0x1
const/4 v4, 0x1
goto/16 :goto_9
:cond_20d
:goto_20d
return-void
.end method
.method private getChildHeightMeasureSpecInternal(ILcom/google/android/flexbox/FlexItem;I)I
.registers 7
.line 1376
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 1377
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getPaddingTop()I
move-result v1
iget-object v2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v2}, Lcom/google/android/flexbox/FlexContainer;->getPaddingBottom()I
move-result v2
add-int/2addr v1, v2
.line 1378
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result v2
add-int/2addr v1, v2
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result v2
add-int/2addr v1, v2
add-int/2addr v1, p3
.line 1379
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getHeight()I
move-result p3
.line 1376
invoke-interface {v0, p1, v1, p3}, Lcom/google/android/flexbox/FlexContainer;->getChildHeightMeasureSpec(III)I
move-result p1
.line 1380
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I
move-result p3
.line 1381
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMaxHeight()I
move-result v0
if-le p3, v0, :cond_37
.line 1382
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMaxHeight()I
move-result p2
.line 1383
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result p1
.line 1382
invoke-static {p2, p1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result p1
goto :goto_49
.line 1384
:cond_37
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMinHeight()I
move-result v0
if-ge p3, v0, :cond_49
.line 1385
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMinHeight()I
move-result p2
.line 1386
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result p1
.line 1385
invoke-static {p2, p1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result p1
:cond_49
:goto_49
return p1
.end method
.method private getChildWidthMeasureSpecInternal(ILcom/google/android/flexbox/FlexItem;I)I
.registers 7
.line 1359
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 1360
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getPaddingLeft()I
move-result v1
iget-object v2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v2}, Lcom/google/android/flexbox/FlexContainer;->getPaddingRight()I
move-result v2
add-int/2addr v1, v2
.line 1361
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result v2
add-int/2addr v1, v2
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result v2
add-int/2addr v1, v2
add-int/2addr v1, p3
.line 1362
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getWidth()I
move-result p3
.line 1359
invoke-interface {v0, p1, v1, p3}, Lcom/google/android/flexbox/FlexContainer;->getChildWidthMeasureSpec(III)I
move-result p1
.line 1363
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I
move-result p3
.line 1364
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMaxWidth()I
move-result v0
if-le p3, v0, :cond_37
.line 1365
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMaxWidth()I
move-result p2
.line 1366
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result p1
.line 1365
invoke-static {p2, p1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result p1
goto :goto_49
.line 1367
:cond_37
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMinWidth()I
move-result v0
if-ge p3, v0, :cond_49
.line 1368
invoke-interface {p2}, Lcom/google/android/flexbox/FlexItem;->getMinWidth()I
move-result p2
.line 1369
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result p1
.line 1368
invoke-static {p2, p1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result p1
:cond_49
:goto_49
return p1
.end method
.method private getFlexItemMarginEndCross(Lcom/google/android/flexbox/FlexItem;Z)I
.registers 3
if-eqz p2, :cond_7
.line 811
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result p1
return p1
.line 814
:cond_7
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result p1
return p1
.end method
.method private getFlexItemMarginEndMain(Lcom/google/android/flexbox/FlexItem;Z)I
.registers 3
if-eqz p2, :cond_7
.line 773
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result p1
return p1
.line 776
:cond_7
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result p1
return p1
.end method
.method private getFlexItemMarginStartCross(Lcom/google/android/flexbox/FlexItem;Z)I
.registers 3
if-eqz p2, :cond_7
.line 792
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result p1
return p1
.line 795
:cond_7
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result p1
return p1
.end method
.method private getFlexItemMarginStartMain(Lcom/google/android/flexbox/FlexItem;Z)I
.registers 3
if-eqz p2, :cond_7
.line 754
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result p1
return p1
.line 757
:cond_7
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result p1
return p1
.end method
.method private getFlexItemSizeCross(Lcom/google/android/flexbox/FlexItem;Z)I
.registers 3
if-eqz p2, :cond_7
.line 734
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getHeight()I
move-result p1
return p1
.line 737
:cond_7
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getWidth()I
move-result p1
return p1
.end method
.method private getFlexItemSizeMain(Lcom/google/android/flexbox/FlexItem;Z)I
.registers 3
if-eqz p2, :cond_7
.line 719
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getWidth()I
move-result p1
return p1
.line 722
:cond_7
invoke-interface {p1}, Lcom/google/android/flexbox/FlexItem;->getHeight()I
move-result p1
return p1
.end method
.method private getPaddingEndCross(Z)I
.registers 2
if-eqz p1, :cond_9
.line 674
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1}, Lcom/google/android/flexbox/FlexContainer;->getPaddingBottom()I
move-result p1
return p1
.line 677
:cond_9
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1}, Lcom/google/android/flexbox/FlexContainer;->getPaddingEnd()I
move-result p1
return p1
.end method
.method private getPaddingEndMain(Z)I
.registers 2
if-eqz p1, :cond_9
.line 646
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1}, Lcom/google/android/flexbox/FlexContainer;->getPaddingEnd()I
move-result p1
return p1
.line 649
:cond_9
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1}, Lcom/google/android/flexbox/FlexContainer;->getPaddingBottom()I
move-result p1
return p1
.end method
.method private getPaddingStartCross(Z)I
.registers 2
if-eqz p1, :cond_9
.line 660
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1}, Lcom/google/android/flexbox/FlexContainer;->getPaddingTop()I
move-result p1
return p1
.line 663
:cond_9
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1}, Lcom/google/android/flexbox/FlexContainer;->getPaddingStart()I
move-result p1
return p1
.end method
.method private getPaddingStartMain(Z)I
.registers 2
if-eqz p1, :cond_9
.line 632
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1}, Lcom/google/android/flexbox/FlexContainer;->getPaddingStart()I
move-result p1
return p1
.line 635
:cond_9
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1}, Lcom/google/android/flexbox/FlexContainer;->getPaddingTop()I
move-result p1
return p1
.end method
.method private getViewMeasuredSizeCross(Landroid/view/View;Z)I
.registers 3
if-eqz p2, :cond_7
.line 704
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result p1
return p1
.line 707
:cond_7
invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I
move-result p1
return p1
.end method
.method private getViewMeasuredSizeMain(Landroid/view/View;Z)I
.registers 3
if-eqz p2, :cond_7
.line 689
invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I
move-result p1
return p1
.line 692
:cond_7
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result p1
return p1
.end method
.method private isLastFlexItem(IILcom/google/android/flexbox/FlexLine;)Z
.registers 5
const/4 v0, 0x1
sub-int/2addr p2, v0
if-ne p1, p2, :cond_b
.line 861
invoke-virtual {p3}, Lcom/google/android/flexbox/FlexLine;->getItemCountNotGone()I
move-result p1
if-eqz p1, :cond_b
return v0
:cond_b
const/4 p1, 0x0
return p1
.end method
.method private isWrapRequired(Landroid/view/View;IIIILcom/google/android/flexbox/FlexItem;III)Z
.registers 12
.line 836
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getFlexWrap()I
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_a
return v1
.line 839
:cond_a
invoke-interface {p6}, Lcom/google/android/flexbox/FlexItem;->isWrapBefore()Z
move-result p6
const/4 v0, 0x1
if-eqz p6, :cond_12
return v0
:cond_12
if-nez p2, :cond_15
return v1
.line 845
:cond_15
iget-object p2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p2}, Lcom/google/android/flexbox/FlexContainer;->getMaxLine()I
move-result p2
const/4 p6, -0x1
if-eq p2, p6, :cond_22
add-int/2addr p9, v0
if-gt p2, p9, :cond_22
return v1
.line 851
:cond_22
iget-object p2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 852
invoke-interface {p2, p1, p7, p8}, Lcom/google/android/flexbox/FlexContainer;->getDecorationLengthMainAxis(Landroid/view/View;II)I
move-result p1
if-lez p1, :cond_2b
add-int/2addr p5, p1
:cond_2b
add-int/2addr p4, p5
if-ge p3, p4, :cond_2f
return v0
:cond_2f
return v1
.end method
.method private shrinkFlexItems(IILcom/google/android/flexbox/FlexLine;IIZ)V
.registers 29
move-object/from16 v0, p0
move-object/from16 v1, p3
move/from16 v2, p4
const/4 v3, 0x1
move/from16 v4, p6
.line 1192
:goto_9
iget v5, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
.line 1193
iget v6, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexShrink:F
const/4 v7, 0x0
cmpg-float v6, v6, v7
if-lez v6, :cond_203
iget v6, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
if-le v2, v6, :cond_18
goto/16 :goto_203
.line 1197
:cond_18
iget v6, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
sub-int/2addr v6, v2
int-to-float v6, v6
iget v8, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexShrink:F
div-float/2addr v6, v8
.line 1199
iget v8, v1, Lcom/google/android/flexbox/FlexLine;->mDividerLengthInMainSize:I
add-int v8, p5, v8
iput v8, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
if-nez v4, :cond_2b
const/high16 v4, -0x80000000
.line 1212
iput v4, v1, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
:cond_2b
const/4 v4, 0x0
const/4 v8, 0x0
const/4 v9, 0x0
const/4 v10, 0x0
.line 1214
:goto_2f
iget v11, v1, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
if-ge v4, v11, :cond_1f4
.line 1215
iget v11, v1, Lcom/google/android/flexbox/FlexLine;->mFirstIndex:I
add-int/2addr v11, v4
.line 1216
iget-object v12, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v12, v11}, Lcom/google/android/flexbox/FlexContainer;->getReorderedFlexItemAt(I)Landroid/view/View;
move-result-object v12
if-eqz v12, :cond_1e7
.line 1217
invoke-virtual {v12}, Landroid/view/View;->getVisibility()I
move-result v13
const/16 v14, 0x8
if-eq v13, v14, :cond_1e7
.line 1220
invoke-virtual {v12}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v13
check-cast v13, Lcom/google/android/flexbox/FlexItem;
.line 1221
iget-object v14, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v14}, Lcom/google/android/flexbox/FlexContainer;->getFlexDirection()I
move-result v14
const-wide/high16 v16, -0x4010000000000000L # -1.0
const-wide/high16 v18, 0x3ff0000000000000L # 1.0
const/high16 v20, 0x3f800000 # 1.0f
if-eqz v14, :cond_120
if-ne v14, v3, :cond_5e
goto/16 :goto_120
.line 1288
:cond_5e
invoke-virtual {v12}, Landroid/view/View;->getMeasuredHeight()I
move-result v14
.line 1289
iget-object v15, v0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
if-eqz v15, :cond_6c
.line 1295
aget-wide v14, v15, v11
.line 1296
invoke-virtual {v0, v14, v15}, Lcom/google/android/flexbox/FlexboxHelper;->extractHigherInt(J)I
move-result v14
.line 1298
:cond_6c
invoke-virtual {v12}, Landroid/view/View;->getMeasuredWidth()I
move-result v15
.line 1299
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
move/from16 v21, v8
if-eqz v3, :cond_7c
.line 1301
aget-wide v7, v3, v11
.line 1302
invoke-virtual {v0, v7, v8}, Lcom/google/android/flexbox/FlexboxHelper;->extractLowerInt(J)I
move-result v15
.line 1304
:cond_7c
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
aget-boolean v3, v3, v11
if-nez v3, :cond_f3
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexShrink()F
move-result v3
const/4 v7, 0x0
cmpl-float v3, v3, v7
if-lez v3, :cond_f3
int-to-float v3, v14
.line 1306
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexShrink()F
move-result v7
mul-float v7, v7, v6
sub-float/2addr v3, v7
.line 1307
iget v7, v1, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
const/4 v8, 0x1
sub-int/2addr v7, v8
if-ne v4, v7, :cond_9b
add-float/2addr v3, v10
const/4 v10, 0x0
.line 1311
:cond_9b
invoke-static {v3}, Ljava/lang/Math;->round(F)I
move-result v7
.line 1312
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMinHeight()I
move-result v14
if-ge v7, v14, :cond_b8
.line 1315
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMinHeight()I
move-result v7
.line 1316
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
aput-boolean v8, v3, v11
.line 1317
iget v3, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexShrink:F
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexShrink()F
move-result v8
sub-float/2addr v3, v8
iput v3, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexShrink:F
const/4 v8, 0x1
goto :goto_cf
:cond_b8
int-to-float v8, v7
sub-float/2addr v3, v8
add-float/2addr v10, v3
float-to-double v14, v10
cmpl-double v3, v14, v18
if-lez v3, :cond_c5
add-int/lit8 v7, v7, 0x1
sub-float v10, v10, v20
goto :goto_cd
:cond_c5
cmpg-double v3, v14, v16
if-gez v3, :cond_cd
add-int/lit8 v7, v7, -0x1
add-float v10, v10, v20
:cond_cd
:goto_cd
move/from16 v8, v21
.line 1328
:goto_cf
iget v3, v1, Lcom/google/android/flexbox/FlexLine;->mSumCrossSizeBefore:I
move/from16 v14, p1
invoke-direct {v0, v14, v13, v3}, Lcom/google/android/flexbox/FlexboxHelper;->getChildWidthMeasureSpecInternal(ILcom/google/android/flexbox/FlexItem;I)I
move-result v3
const/high16 v15, 0x40000000 # 2.0f
.line 1331
invoke-static {v7, v15}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v7
.line 1332
invoke-virtual {v12, v3, v7}, Landroid/view/View;->measure(II)V
.line 1334
invoke-virtual {v12}, Landroid/view/View;->getMeasuredWidth()I
move-result v15
.line 1335
invoke-virtual {v12}, Landroid/view/View;->getMeasuredHeight()I
move-result v16
.line 1336
invoke-direct {v0, v11, v3, v7, v12}, Lcom/google/android/flexbox/FlexboxHelper;->updateMeasureCache(IIILandroid/view/View;)V
.line 1338
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v3, v11, v12}, Lcom/google/android/flexbox/FlexContainer;->updateViewCache(ILandroid/view/View;)V
move/from16 v14, v16
goto :goto_f5
:cond_f3
move/from16 v8, v21
.line 1341
:goto_f5
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result v3
add-int/2addr v15, v3
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result v3
add-int/2addr v15, v3
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 1342
invoke-interface {v3, v12}, Lcom/google/android/flexbox/FlexContainer;->getDecorationLengthCrossAxis(Landroid/view/View;)I
move-result v3
add-int/2addr v15, v3
.line 1340
invoke-static {v9, v15}, Ljava/lang/Math;->max(II)I
move-result v3
.line 1343
iget v7, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result v9
add-int/2addr v14, v9
.line 1344
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result v9
add-int/2addr v14, v9
add-int/2addr v7, v14
iput v7, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
move/from16 v14, p2
move/from16 v21, v8
const/4 v8, 0x1
goto/16 :goto_1dd
:cond_120
:goto_120
move/from16 v21, v8
.line 1225
invoke-virtual {v12}, Landroid/view/View;->getMeasuredWidth()I
move-result v3
.line 1226
iget-object v7, v0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
if-eqz v7, :cond_130
.line 1232
aget-wide v14, v7, v11
invoke-virtual {v0, v14, v15}, Lcom/google/android/flexbox/FlexboxHelper;->extractLowerInt(J)I
move-result v3
.line 1234
:cond_130
invoke-virtual {v12}, Landroid/view/View;->getMeasuredHeight()I
move-result v7
.line 1235
iget-object v8, v0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
if-eqz v8, :cond_13e
.line 1237
aget-wide v7, v8, v11
invoke-virtual {v0, v7, v8}, Lcom/google/android/flexbox/FlexboxHelper;->extractHigherInt(J)I
move-result v7
.line 1239
:cond_13e
iget-object v8, v0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
aget-boolean v8, v8, v11
if-nez v8, :cond_1b5
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexShrink()F
move-result v8
const/4 v14, 0x0
cmpl-float v8, v8, v14
if-lez v8, :cond_1b5
int-to-float v3, v3
.line 1241
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexShrink()F
move-result v7
mul-float v7, v7, v6
sub-float/2addr v3, v7
.line 1242
iget v7, v1, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
const/4 v8, 0x1
sub-int/2addr v7, v8
if-ne v4, v7, :cond_15d
add-float/2addr v3, v10
const/4 v10, 0x0
.line 1246
:cond_15d
invoke-static {v3}, Ljava/lang/Math;->round(F)I
move-result v7
.line 1247
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMinWidth()I
move-result v15
if-ge v7, v15, :cond_17b
.line 1255
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMinWidth()I
move-result v7
.line 1256
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mChildrenFrozen:[Z
aput-boolean v8, v3, v11
.line 1257
iget v3, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexShrink:F
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getFlexShrink()F
move-result v15
sub-float/2addr v3, v15
iput v3, v1, Lcom/google/android/flexbox/FlexLine;->mTotalFlexShrink:F
const/16 v21, 0x1
goto :goto_190
:cond_17b
int-to-float v15, v7
sub-float/2addr v3, v15
add-float/2addr v10, v3
float-to-double v14, v10
cmpl-double v3, v14, v18
if-lez v3, :cond_188
add-int/lit8 v7, v7, 0x1
sub-float v10, v10, v20
goto :goto_190
:cond_188
cmpg-double v3, v14, v16
if-gez v3, :cond_190
add-int/lit8 v7, v7, -0x1
add-float v10, v10, v20
.line 1268
:cond_190
:goto_190
iget v3, v1, Lcom/google/android/flexbox/FlexLine;->mSumCrossSizeBefore:I
move/from16 v14, p2
invoke-direct {v0, v14, v13, v3}, Lcom/google/android/flexbox/FlexboxHelper;->getChildHeightMeasureSpecInternal(ILcom/google/android/flexbox/FlexItem;I)I
move-result v3
const/high16 v15, 0x40000000 # 2.0f
.line 1271
invoke-static {v7, v15}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v7
.line 1272
invoke-virtual {v12, v7, v3}, Landroid/view/View;->measure(II)V
.line 1274
invoke-virtual {v12}, Landroid/view/View;->getMeasuredWidth()I
move-result v15
.line 1275
invoke-virtual {v12}, Landroid/view/View;->getMeasuredHeight()I
move-result v16
.line 1276
invoke-direct {v0, v11, v7, v3, v12}, Lcom/google/android/flexbox/FlexboxHelper;->updateMeasureCache(IIILandroid/view/View;)V
.line 1278
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v3, v11, v12}, Lcom/google/android/flexbox/FlexContainer;->updateViewCache(ILandroid/view/View;)V
move v3, v15
move/from16 v7, v16
goto :goto_1b8
:cond_1b5
move/from16 v14, p2
const/4 v8, 0x1
.line 1281
:goto_1b8
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result v11
add-int/2addr v7, v11
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result v11
add-int/2addr v7, v11
iget-object v11, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 1282
invoke-interface {v11, v12}, Lcom/google/android/flexbox/FlexContainer;->getDecorationLengthCrossAxis(Landroid/view/View;)I
move-result v11
add-int/2addr v7, v11
.line 1280
invoke-static {v9, v7}, Ljava/lang/Math;->max(II)I
move-result v7
.line 1283
iget v9, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result v11
add-int/2addr v3, v11
.line 1284
invoke-interface {v13}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result v11
add-int/2addr v3, v11
add-int/2addr v9, v3
iput v9, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
move v3, v7
.line 1346
:goto_1dd
iget v7, v1, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
invoke-static {v7, v3}, Ljava/lang/Math;->max(II)I
move-result v7
iput v7, v1, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
move v9, v3
goto :goto_1ec
:cond_1e7
move/from16 v14, p2
move/from16 v21, v8
const/4 v8, 0x1
:goto_1ec
add-int/lit8 v4, v4, 0x1
move/from16 v8, v21
const/4 v3, 0x1
const/4 v7, 0x0
goto/16 :goto_2f
:cond_1f4
move/from16 v14, p2
move/from16 v21, v8
const/4 v8, 0x1
if-eqz v21, :cond_203
.line 1349
iget v3, v1, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
if-eq v5, v3, :cond_203
const/4 v3, 0x1
const/4 v4, 0x1
goto/16 :goto_9
:cond_203
:goto_203
return-void
.end method
.method private sortOrdersIntoReorderedIndices(ILjava/util/List;Landroid/util/SparseIntArray;)[I
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexboxHelper$Order;",
">;",
"Landroid/util/SparseIntArray;",
")[I"
}
.end annotation
.line 196
invoke-static {p2}, Ljava/util/Collections;->sort(Ljava/util/List;)V
.line 197
invoke-virtual {p3}, Landroid/util/SparseIntArray;->clear()V
.line 198
new-array p1, p1, [I
.line 200
invoke-interface {p2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p2
const/4 v0, 0x0
:goto_d
invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_27
invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/flexbox/FlexboxHelper$Order;
.line 201
iget v2, v1, Lcom/google/android/flexbox/FlexboxHelper$Order;->index:I
aput v2, p1, v0
.line 202
iget v2, v1, Lcom/google/android/flexbox/FlexboxHelper$Order;->index:I
iget v1, v1, Lcom/google/android/flexbox/FlexboxHelper$Order;->order:I
invoke-virtual {p3, v2, v1}, Landroid/util/SparseIntArray;->append(II)V
add-int/lit8 v0, v0, 0x1
goto :goto_d
:cond_27
return-object p1
.end method
.method private stretchViewHorizontally(Landroid/view/View;II)V
.registers 7
.line 1690
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v0
check-cast v0, Lcom/google/android/flexbox/FlexItem;
.line 1691
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result v1
sub-int/2addr p2, v1
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result v1
sub-int/2addr p2, v1
iget-object v1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 1692
invoke-interface {v1, p1}, Lcom/google/android/flexbox/FlexContainer;->getDecorationLengthCrossAxis(Landroid/view/View;)I
move-result v1
sub-int/2addr p2, v1
.line 1693
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMinWidth()I
move-result v1
invoke-static {p2, v1}, Ljava/lang/Math;->max(II)I
move-result p2
.line 1694
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMaxWidth()I
move-result v0
invoke-static {p2, v0}, Ljava/lang/Math;->min(II)I
move-result p2
.line 1697
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
if-eqz v0, :cond_32
.line 1703
aget-wide v1, v0, p3
invoke-virtual {p0, v1, v2}, Lcom/google/android/flexbox/FlexboxHelper;->extractHigherInt(J)I
move-result v0
goto :goto_36
.line 1705
:cond_32
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result v0
:goto_36
const/high16 v1, 0x40000000 # 2.0f
.line 1707
invoke-static {v0, v1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v0
.line 1709
invoke-static {p2, v1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result p2
.line 1710
invoke-virtual {p1, p2, v0}, Landroid/view/View;->measure(II)V
.line 1712
invoke-direct {p0, p3, p2, v0, p1}, Lcom/google/android/flexbox/FlexboxHelper;->updateMeasureCache(IIILandroid/view/View;)V
.line 1713
iget-object p2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p2, p3, p1}, Lcom/google/android/flexbox/FlexContainer;->updateViewCache(ILandroid/view/View;)V
return-void
.end method
.method private stretchViewVertically(Landroid/view/View;II)V
.registers 7
.line 1655
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v0
check-cast v0, Lcom/google/android/flexbox/FlexItem;
.line 1656
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result v1
sub-int/2addr p2, v1
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result v1
sub-int/2addr p2, v1
iget-object v1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 1657
invoke-interface {v1, p1}, Lcom/google/android/flexbox/FlexContainer;->getDecorationLengthCrossAxis(Landroid/view/View;)I
move-result v1
sub-int/2addr p2, v1
.line 1658
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMinHeight()I
move-result v1
invoke-static {p2, v1}, Ljava/lang/Math;->max(II)I
move-result p2
.line 1659
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMaxHeight()I
move-result v0
invoke-static {p2, v0}, Ljava/lang/Math;->min(II)I
move-result p2
.line 1662
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
if-eqz v0, :cond_32
.line 1668
aget-wide v1, v0, p3
invoke-virtual {p0, v1, v2}, Lcom/google/android/flexbox/FlexboxHelper;->extractLowerInt(J)I
move-result v0
goto :goto_36
.line 1670
:cond_32
invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I
move-result v0
:goto_36
const/high16 v1, 0x40000000 # 2.0f
.line 1672
invoke-static {v0, v1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v0
.line 1675
invoke-static {p2, v1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result p2
.line 1676
invoke-virtual {p1, v0, p2}, Landroid/view/View;->measure(II)V
.line 1678
invoke-direct {p0, p3, v0, p2, p1}, Lcom/google/android/flexbox/FlexboxHelper;->updateMeasureCache(IIILandroid/view/View;)V
.line 1679
iget-object p2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p2, p3, p1}, Lcom/google/android/flexbox/FlexContainer;->updateViewCache(ILandroid/view/View;)V
return-void
.end method
.method private updateMeasureCache(IIILandroid/view/View;)V
.registers 6
.line 1932
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasureSpecCache:[J
if-eqz v0, :cond_a
.line 1933
invoke-virtual {p0, p2, p3}, Lcom/google/android/flexbox/FlexboxHelper;->makeCombinedLong(II)J
move-result-wide p2
aput-wide p2, v0, p1
.line 1937
:cond_a
iget-object p2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
if-eqz p2, :cond_1c
.line 1939
invoke-virtual {p4}, Landroid/view/View;->getMeasuredWidth()I
move-result p3
.line 1940
invoke-virtual {p4}, Landroid/view/View;->getMeasuredHeight()I
move-result p4
.line 1938
invoke-virtual {p0, p3, p4}, Lcom/google/android/flexbox/FlexboxHelper;->makeCombinedLong(II)J
move-result-wide p3
aput-wide p3, p2, p1
:cond_1c
return-void
.end method
# virtual methods
.method calculateFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIIILjava/util/List;)V
.registers 39
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;",
"IIIII",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexLine;",
">;)V"
}
.end annotation
move-object/from16 v10, p0
move-object/from16 v11, p1
move/from16 v12, p2
move/from16 v13, p3
move/from16 v14, p6
.line 386
iget-object v0, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->isMainAxisDirectionHorizontal()Z
move-result v15
.line 388
invoke-static/range {p2 .. p2}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result v9
.line 389
invoke-static/range {p2 .. p2}, Landroid/view/View$MeasureSpec;->getSize(I)I
move-result v8
if-nez p7, :cond_21
.line 395
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
move-object v7, v0
goto :goto_23
:cond_21
move-object/from16 v7, p7
.line 400
:goto_23
iput-object v7, v11, Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;->mFlexLines:Ljava/util/List;
const/4 v6, -0x1
if-ne v14, v6, :cond_2a
const/4 v0, 0x1
goto :goto_2b
:cond_2a
const/4 v0, 0x0
.line 404
:goto_2b
invoke-direct {v10, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getPaddingStartMain(Z)I
move-result v1
.line 405
invoke-direct {v10, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getPaddingEndMain(Z)I
move-result v2
.line 406
invoke-direct {v10, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getPaddingStartCross(Z)I
move-result v16
.line 407
invoke-direct {v10, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getPaddingEndCross(Z)I
move-result v17
.line 417
new-instance v3, Lcom/google/android/flexbox/FlexLine;
invoke-direct {v3}, Lcom/google/android/flexbox/FlexLine;-><init>()V
move/from16 v6, p5
.line 418
iput v6, v3, Lcom/google/android/flexbox/FlexLine;->mFirstIndex:I
add-int/2addr v2, v1
.line 419
iput v2, v3, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
.line 421
iget-object v1, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v1}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemCount()I
move-result v1
const/high16 v18, -0x80000000
move/from16 v19, v0
const/4 v0, 0x0
const/16 v20, 0x0
const/16 v21, 0x0
const/high16 v22, -0x80000000
:goto_58
if-ge v6, v1, :cond_322
.line 423
iget-object v5, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v5, v6}, Lcom/google/android/flexbox/FlexContainer;->getReorderedFlexItemAt(I)Landroid/view/View;
move-result-object v5
if-nez v5, :cond_6c
.line 426
invoke-direct {v10, v6, v1, v3}, Lcom/google/android/flexbox/FlexboxHelper;->isLastFlexItem(IILcom/google/android/flexbox/FlexLine;)Z
move-result v5
if-eqz v5, :cond_88
.line 427
invoke-direct {v10, v7, v3, v6, v0}, Lcom/google/android/flexbox/FlexboxHelper;->addFlexLine(Ljava/util/List;Lcom/google/android/flexbox/FlexLine;II)V
goto :goto_88
.line 430
:cond_6c
invoke-virtual {v5}, Landroid/view/View;->getVisibility()I
move-result v4
const/16 v11, 0x8
if-ne v4, v11, :cond_99
.line 431
iget v4, v3, Lcom/google/android/flexbox/FlexLine;->mGoneItemCount:I
const/4 v5, 0x1
add-int/2addr v4, v5
iput v4, v3, Lcom/google/android/flexbox/FlexLine;->mGoneItemCount:I
.line 432
iget v4, v3, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
add-int/2addr v4, v5
iput v4, v3, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
.line 433
invoke-direct {v10, v6, v1, v3}, Lcom/google/android/flexbox/FlexboxHelper;->isLastFlexItem(IILcom/google/android/flexbox/FlexLine;)Z
move-result v4
if-eqz v4, :cond_88
.line 434
invoke-direct {v10, v7, v3, v6, v0}, Lcom/google/android/flexbox/FlexboxHelper;->addFlexLine(Ljava/util/List;Lcom/google/android/flexbox/FlexLine;II)V
:cond_88
:goto_88
move/from16 v11, p4
move/from16 v24, v8
move/from16 v26, v9
move v5, v13
move v8, v14
const/4 v9, -0x1
const/4 v12, 0x1
const/16 v27, 0x0
move-object v14, v7
move v7, v2
move v2, v1
goto/16 :goto_311
.line 439
:cond_99
invoke-virtual {v5}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v4
move-object v11, v4
check-cast v11, Lcom/google/android/flexbox/FlexItem;
.line 441
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getAlignSelf()I
move-result v4
move/from16 v25, v1
const/4 v1, 0x4
if-ne v4, v1, :cond_b2
.line 442
iget-object v1, v3, Lcom/google/android/flexbox/FlexLine;->mIndicesAlignSelfStretch:Ljava/util/List;
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
invoke-interface {v1, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 445
:cond_b2
invoke-direct {v10, v11, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemSizeMain(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v1
.line 447
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getFlexBasisPercent()F
move-result v4
const/high16 v26, -0x40800000 # -1.0f
cmpl-float v4, v4, v26
if-eqz v4, :cond_cf
const/high16 v4, 0x40000000 # 2.0f
if-ne v9, v4, :cond_cf
int-to-float v1, v8
.line 449
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getFlexBasisPercent()F
move-result v4
mul-float v1, v1, v4
invoke-static {v1}, Ljava/lang/Math;->round(F)I
move-result v1
:cond_cf
if-eqz v15, :cond_10b
.line 458
iget-object v4, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
const/4 v14, 0x1
.line 460
invoke-direct {v10, v11, v14}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginStartMain(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v24
add-int v24, v2, v24
.line 461
invoke-direct {v10, v11, v14}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginEndMain(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v26
add-int v14, v24, v26
.line 458
invoke-interface {v4, v12, v14, v1}, Lcom/google/android/flexbox/FlexContainer;->getChildWidthMeasureSpec(III)I
move-result v1
.line 463
iget-object v4, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
add-int v14, v16, v17
move/from16 v24, v8
const/4 v8, 0x1
.line 465
invoke-direct {v10, v11, v8}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginStartCross(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v26
add-int v14, v14, v26
.line 466
invoke-direct {v10, v11, v8}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginEndCross(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v26
add-int v14, v14, v26
add-int/2addr v14, v0
move/from16 v26, v9
.line 468
invoke-direct {v10, v11, v8}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemSizeCross(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v9
.line 463
invoke-interface {v4, v13, v14, v9}, Lcom/google/android/flexbox/FlexContainer;->getChildHeightMeasureSpec(III)I
move-result v4
.line 469
invoke-virtual {v5, v1, v4}, Landroid/view/View;->measure(II)V
.line 470
invoke-direct {v10, v6, v1, v4, v5}, Lcom/google/android/flexbox/FlexboxHelper;->updateMeasureCache(IIILandroid/view/View;)V
move v9, v1
const/4 v14, 0x0
goto :goto_142
:cond_10b
move/from16 v24, v8
move/from16 v26, v9
const/4 v8, 0x1
.line 472
iget-object v4, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
add-int v9, v16, v17
const/4 v14, 0x0
.line 474
invoke-direct {v10, v11, v14}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginStartCross(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v23
add-int v9, v9, v23
.line 475
invoke-direct {v10, v11, v14}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginEndCross(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v23
add-int v9, v9, v23
add-int/2addr v9, v0
.line 476
invoke-direct {v10, v11, v14}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemSizeCross(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v8
.line 472
invoke-interface {v4, v13, v9, v8}, Lcom/google/android/flexbox/FlexContainer;->getChildWidthMeasureSpec(III)I
move-result v4
.line 477
iget-object v8, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 479
invoke-direct {v10, v11, v14}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginStartMain(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v9
add-int/2addr v9, v2
.line 480
invoke-direct {v10, v11, v14}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginEndMain(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v23
add-int v9, v9, v23
.line 477
invoke-interface {v8, v12, v9, v1}, Lcom/google/android/flexbox/FlexContainer;->getChildHeightMeasureSpec(III)I
move-result v1
.line 482
invoke-virtual {v5, v4, v1}, Landroid/view/View;->measure(II)V
.line 483
invoke-direct {v10, v6, v4, v1, v5}, Lcom/google/android/flexbox/FlexboxHelper;->updateMeasureCache(IIILandroid/view/View;)V
move v9, v1
.line 485
:goto_142
iget-object v1, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v1, v6, v5}, Lcom/google/android/flexbox/FlexContainer;->updateViewCache(ILandroid/view/View;)V
.line 493
invoke-direct {v10, v5, v6}, Lcom/google/android/flexbox/FlexboxHelper;->checkSizeConstraints(Landroid/view/View;I)V
.line 496
invoke-virtual {v5}, Landroid/view/View;->getMeasuredState()I
move-result v1
move/from16 v4, v20
.line 495
invoke-static {v4, v1}, Landroid/view/View;->combineMeasuredStates(II)I
move-result v20
.line 498
iget v4, v3, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
.line 499
invoke-direct {v10, v5, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getViewMeasuredSizeMain(Landroid/view/View;Z)I
move-result v1
.line 500
invoke-direct {v10, v11, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginStartMain(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v8
add-int/2addr v1, v8
.line 501
invoke-direct {v10, v11, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginEndMain(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v8
add-int/2addr v8, v1
.line 502
invoke-interface {v7}, Ljava/util/List;->size()I
move-result v23
move v1, v0
move-object/from16 v0, p0
move v12, v1
move/from16 v14, v25
move-object v1, v5
move v14, v2
move/from16 v2, v26
move-object/from16 v28, v3
move/from16 v3, v24
move/from16 v29, v14
const/4 v14, 0x1
move-object v14, v5
const/16 v27, 0x0
move v5, v8
move v8, v6
move-object/from16 p7, v14
const/4 v14, -0x1
move-object v6, v11
move-object v14, v7
move v7, v8
move v13, v8
move/from16 v8, v21
move/from16 v30, v9
move/from16 v9, v23
.line 498
invoke-direct/range {v0 .. v9}, Lcom/google/android/flexbox/FlexboxHelper;->isWrapRequired(Landroid/view/View;IIIILcom/google/android/flexbox/FlexItem;III)Z
move-result v0
if-eqz v0, :cond_22c
.line 503
invoke-virtual/range {v28 .. v28}, Lcom/google/android/flexbox/FlexLine;->getItemCountNotGone()I
move-result v0
if-lez v0, :cond_1a8
if-lez v13, :cond_19e
add-int/lit8 v5, v13, -0x1
move-object/from16 v3, v28
goto :goto_1a1
:cond_19e
move-object/from16 v3, v28
const/4 v5, 0x0
.line 504
:goto_1a1
invoke-direct {v10, v14, v3, v5, v12}, Lcom/google/android/flexbox/FlexboxHelper;->addFlexLine(Ljava/util/List;Lcom/google/android/flexbox/FlexLine;II)V
.line 505
iget v0, v3, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
add-int/2addr v0, v12
goto :goto_1a9
:cond_1a8
move v0, v12
:goto_1a9
if-eqz v15, :cond_1e6
.line 509
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getHeight()I
move-result v1
const/4 v2, -0x1
if-ne v1, v2, :cond_1e0
.line 517
iget-object v1, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 519
invoke-interface {v1}, Lcom/google/android/flexbox/FlexContainer;->getPaddingTop()I
move-result v2
iget-object v3, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v3}, Lcom/google/android/flexbox/FlexContainer;->getPaddingBottom()I
move-result v3
add-int/2addr v2, v3
.line 520
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result v3
add-int/2addr v2, v3
.line 521
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result v3
add-int/2addr v2, v3
add-int/2addr v2, v0
.line 522
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getHeight()I
move-result v3
move/from16 v5, p3
move v6, v13
.line 517
invoke-interface {v1, v5, v2, v3}, Lcom/google/android/flexbox/FlexContainer;->getChildHeightMeasureSpec(III)I
move-result v1
move-object/from16 v2, p7
move/from16 v3, v30
.line 523
invoke-virtual {v2, v3, v1}, Landroid/view/View;->measure(II)V
.line 524
invoke-direct {v10, v2, v6}, Lcom/google/android/flexbox/FlexboxHelper;->checkSizeConstraints(Landroid/view/View;I)V
goto :goto_21a
:cond_1e0
move/from16 v5, p3
move-object/from16 v2, p7
move v6, v13
goto :goto_21a
:cond_1e6
move/from16 v5, p3
move-object/from16 v2, p7
move v6, v13
move/from16 v3, v30
.line 527
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getWidth()I
move-result v1
const/4 v4, -0x1
if-ne v1, v4, :cond_21a
.line 535
iget-object v1, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 537
invoke-interface {v1}, Lcom/google/android/flexbox/FlexContainer;->getPaddingLeft()I
move-result v4
iget-object v7, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v7}, Lcom/google/android/flexbox/FlexContainer;->getPaddingRight()I
move-result v7
add-int/2addr v4, v7
.line 538
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result v7
add-int/2addr v4, v7
.line 539
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result v7
add-int/2addr v4, v7
add-int/2addr v4, v0
.line 540
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getWidth()I
move-result v7
.line 535
invoke-interface {v1, v5, v4, v7}, Lcom/google/android/flexbox/FlexContainer;->getChildWidthMeasureSpec(III)I
move-result v1
.line 541
invoke-virtual {v2, v1, v3}, Landroid/view/View;->measure(II)V
.line 542
invoke-direct {v10, v2, v6}, Lcom/google/android/flexbox/FlexboxHelper;->checkSizeConstraints(Landroid/view/View;I)V
.line 546
:cond_21a
:goto_21a
new-instance v3, Lcom/google/android/flexbox/FlexLine;
invoke-direct {v3}, Lcom/google/android/flexbox/FlexLine;-><init>()V
const/4 v1, 0x1
.line 547
iput v1, v3, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
move/from16 v7, v29
.line 548
iput v7, v3, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
.line 549
iput v6, v3, Lcom/google/android/flexbox/FlexLine;->mFirstIndex:I
const/4 v1, 0x0
const/high16 v4, -0x80000000
goto :goto_241
:cond_22c
move/from16 v5, p3
move-object/from16 v2, p7
move v6, v13
move-object/from16 v3, v28
move/from16 v7, v29
const/4 v1, 0x1
.line 553
iget v0, v3, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
add-int/2addr v0, v1
iput v0, v3, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
add-int/lit8 v0, v21, 0x1
move v1, v0
move v0, v12
move/from16 v4, v22
.line 556
:goto_241
iget-object v8, v10, Lcom/google/android/flexbox/FlexboxHelper;->mIndexToFlexLine:[I
if-eqz v8, :cond_24b
.line 557
invoke-interface {v14}, Ljava/util/List;->size()I
move-result v9
aput v9, v8, v6
.line 559
:cond_24b
iget v8, v3, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
invoke-direct {v10, v2, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getViewMeasuredSizeMain(Landroid/view/View;Z)I
move-result v9
.line 560
invoke-direct {v10, v11, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginStartMain(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v12
add-int/2addr v9, v12
.line 561
invoke-direct {v10, v11, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginEndMain(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v12
add-int/2addr v9, v12
add-int/2addr v8, v9
iput v8, v3, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
.line 562
iget v8, v3, Lcom/google/android/flexbox/FlexLine;->mTotalFlexGrow:F
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getFlexGrow()F
move-result v9
add-float/2addr v8, v9
iput v8, v3, Lcom/google/android/flexbox/FlexLine;->mTotalFlexGrow:F
.line 563
iget v8, v3, Lcom/google/android/flexbox/FlexLine;->mTotalFlexShrink:F
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getFlexShrink()F
move-result v9
add-float/2addr v8, v9
iput v8, v3, Lcom/google/android/flexbox/FlexLine;->mTotalFlexShrink:F
.line 565
iget-object v8, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v8, v2, v6, v1, v3}, Lcom/google/android/flexbox/FlexContainer;->onNewFlexItemAdded(Landroid/view/View;IILcom/google/android/flexbox/FlexLine;)V
.line 568
invoke-direct {v10, v2, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getViewMeasuredSizeCross(Landroid/view/View;Z)I
move-result v8
.line 569
invoke-direct {v10, v11, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginStartCross(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v9
add-int/2addr v8, v9
.line 570
invoke-direct {v10, v11, v15}, Lcom/google/android/flexbox/FlexboxHelper;->getFlexItemMarginEndCross(Lcom/google/android/flexbox/FlexItem;Z)I
move-result v9
add-int/2addr v8, v9
iget-object v9, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 571
invoke-interface {v9, v2}, Lcom/google/android/flexbox/FlexContainer;->getDecorationLengthCrossAxis(Landroid/view/View;)I
move-result v9
add-int/2addr v8, v9
.line 567
invoke-static {v4, v8}, Ljava/lang/Math;->max(II)I
move-result v4
.line 575
iget v8, v3, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
invoke-static {v8, v4}, Ljava/lang/Math;->max(II)I
move-result v8
iput v8, v3, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
if-eqz v15, :cond_2c9
.line 578
iget-object v8, v10, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v8}, Lcom/google/android/flexbox/FlexContainer;->getFlexWrap()I
move-result v8
const/4 v9, 0x2
if-eq v8, v9, :cond_2b3
.line 579
iget v8, v3, Lcom/google/android/flexbox/FlexLine;->mMaxBaseline:I
.line 580
invoke-virtual {v2}, Landroid/view/View;->getBaseline()I
move-result v2
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result v9
add-int/2addr v2, v9
.line 579
invoke-static {v8, v2}, Ljava/lang/Math;->max(II)I
move-result v2
iput v2, v3, Lcom/google/android/flexbox/FlexLine;->mMaxBaseline:I
goto :goto_2c9
.line 585
:cond_2b3
iget v8, v3, Lcom/google/android/flexbox/FlexLine;->mMaxBaseline:I
.line 586
invoke-virtual {v2}, Landroid/view/View;->getMeasuredHeight()I
move-result v9
invoke-virtual {v2}, Landroid/view/View;->getBaseline()I
move-result v2
sub-int/2addr v9, v2
.line 587
invoke-interface {v11}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result v2
add-int/2addr v9, v2
.line 585
invoke-static {v8, v9}, Ljava/lang/Math;->max(II)I
move-result v2
iput v2, v3, Lcom/google/android/flexbox/FlexLine;->mMaxBaseline:I
:cond_2c9
:goto_2c9
move/from16 v2, v25
.line 591
invoke-direct {v10, v6, v2, v3}, Lcom/google/android/flexbox/FlexboxHelper;->isLastFlexItem(IILcom/google/android/flexbox/FlexLine;)Z
move-result v8
if-eqz v8, :cond_2d7
.line 592
invoke-direct {v10, v14, v3, v6, v0}, Lcom/google/android/flexbox/FlexboxHelper;->addFlexLine(Ljava/util/List;Lcom/google/android/flexbox/FlexLine;II)V
.line 593
iget v8, v3, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
add-int/2addr v0, v8
:cond_2d7
move/from16 v8, p6
const/4 v9, -0x1
if-eq v8, v9, :cond_300
.line 597
invoke-interface {v14}, Ljava/util/List;->size()I
move-result v11
if-lez v11, :cond_300
.line 598
invoke-interface {v14}, Ljava/util/List;->size()I
move-result v11
const/4 v12, 0x1
sub-int/2addr v11, v12
invoke-interface {v14, v11}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v11
check-cast v11, Lcom/google/android/flexbox/FlexLine;
iget v11, v11, Lcom/google/android/flexbox/FlexLine;->mLastIndex:I
if-lt v11, v8, :cond_301
if-lt v6, v8, :cond_301
if-nez v19, :cond_301
.line 606
invoke-virtual {v3}, Lcom/google/android/flexbox/FlexLine;->getCrossSize()I
move-result v0
neg-int v0, v0
move/from16 v11, p4
const/16 v19, 0x1
goto :goto_303
:cond_300
const/4 v12, 0x1
:cond_301
move/from16 v11, p4
:goto_303
if-le v0, v11, :cond_30d
if-nez v19, :cond_308
goto :goto_30d
:cond_308
move-object/from16 v0, p1
move/from16 v4, v20
goto :goto_326
:cond_30d
:goto_30d
move/from16 v21, v1
move/from16 v22, v4
:goto_311
add-int/lit8 v6, v6, 0x1
move-object/from16 v11, p1
move/from16 v12, p2
move v1, v2
move v13, v5
move v2, v7
move-object v7, v14
move/from16 v9, v26
move v14, v8
move/from16 v8, v24
goto/16 :goto_58
:cond_322
move/from16 v4, v20
move-object/from16 v0, p1
.line 621
:goto_326
iput v4, v0, Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;->mChildState:I
return-void
.end method
.method calculateHorizontalFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;II)V
.registers 12
const v4, 0x7fffffff
const/4 v5, 0x0
const/4 v6, -0x1
const/4 v7, 0x0
move-object v0, p0
move-object v1, p1
move v2, p2
move v3, p3
.line 216
invoke-virtual/range {v0 .. v7}, Lcom/google/android/flexbox/FlexboxHelper;->calculateFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIIILjava/util/List;)V
return-void
.end method
.method calculateHorizontalFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIILjava/util/List;)V
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;",
"IIII",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexLine;",
">;)V"
}
.end annotation
const/4 v6, -0x1
move-object v0, p0
move-object v1, p1
move v2, p2
move v3, p3
move v4, p4
move v5, p5
move-object v7, p6
.line 243
invoke-virtual/range {v0 .. v7}, Lcom/google/android/flexbox/FlexboxHelper;->calculateFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIIILjava/util/List;)V
return-void
.end method
.method calculateHorizontalFlexLinesToIndex(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIILjava/util/List;)V
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;",
"IIII",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexLine;",
">;)V"
}
.end annotation
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move v2, p2
move v3, p3
move v4, p4
move v6, p5
move-object v7, p6
.line 274
invoke-virtual/range {v0 .. v7}, Lcom/google/android/flexbox/FlexboxHelper;->calculateFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIIILjava/util/List;)V
return-void
.end method
.method calculateVerticalFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;II)V
.registers 12
const v4, 0x7fffffff
const/4 v5, 0x0
const/4 v6, -0x1
const/4 v7, 0x0
move-object v0, p0
move-object v1, p1
move v2, p3
move v3, p2
.line 290
invoke-virtual/range {v0 .. v7}, Lcom/google/android/flexbox/FlexboxHelper;->calculateFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIIILjava/util/List;)V
return-void
.end method
.method calculateVerticalFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIILjava/util/List;)V
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;",
"IIII",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexLine;",
">;)V"
}
.end annotation
const/4 v6, -0x1
move-object v0, p0
move-object v1, p1
move v2, p3
move v3, p2
move v4, p4
move v5, p5
move-object v7, p6
.line 317
invoke-virtual/range {v0 .. v7}, Lcom/google/android/flexbox/FlexboxHelper;->calculateFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIIILjava/util/List;)V
return-void
.end method
.method calculateVerticalFlexLinesToIndex(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIILjava/util/List;)V
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;",
"IIII",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexLine;",
">;)V"
}
.end annotation
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move v2, p3
move v3, p2
move v4, p4
move v6, p5
move-object v7, p6
.line 348
invoke-virtual/range {v0 .. v7}, Lcom/google/android/flexbox/FlexboxHelper;->calculateFlexLines(Lcom/google/android/flexbox/FlexboxHelper$FlexLinesResult;IIIIILjava/util/List;)V
return-void
.end method
.method clearFlexLines(Ljava/util/List;I)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/google/android/flexbox/FlexLine;",
">;I)V"
}
.end annotation
.line 1964
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mIndexToFlexLine:[I
aget v0, v0, p2
const/4 v1, -0x1
if-ne v0, v1, :cond_8
const/4 v0, 0x0
.line 1971
:cond_8
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v2
add-int/lit8 v2, v2, -0x1
:goto_e
if-lt v2, v0, :cond_16
.line 1972
invoke-interface {p1, v2}, Ljava/util/List;->remove(I)Ljava/lang/Object;
add-int/lit8 v2, v2, -0x1
goto :goto_e
.line 1975
:cond_16
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mIndexToFlexLine:[I
array-length v0, p1
add-int/lit8 v0, v0, -0x1
if-le p2, v0, :cond_21
.line 1977
invoke-static {p1, v1}, Ljava/util/Arrays;->fill([II)V
goto :goto_24
.line 1979
:cond_21
invoke-static {p1, p2, v0, v1}, Ljava/util/Arrays;->fill([IIII)V
.line 1982
:goto_24
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasureSpecCache:[J
array-length v0, p1
add-int/lit8 v0, v0, -0x1
const-wide/16 v1, 0x0
if-le p2, v0, :cond_31
.line 1984
invoke-static {p1, v1, v2}, Ljava/util/Arrays;->fill([JJ)V
return-void
.line 1986
:cond_31
invoke-static {p1, p2, v0, v1, v2}, Ljava/util/Arrays;->fill([JIIJ)V
return-void
.end method
.method createReorderedIndices(Landroid/util/SparseIntArray;)[I
.registers 4
.line 151
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemCount()I
move-result v0
.line 152
invoke-direct {p0, v0}, Lcom/google/android/flexbox/FlexboxHelper;->createOrders(I)Ljava/util/List;
move-result-object v1
.line 153
invoke-direct {p0, v0, v1, p1}, Lcom/google/android/flexbox/FlexboxHelper;->sortOrdersIntoReorderedIndices(ILjava/util/List;Landroid/util/SparseIntArray;)[I
move-result-object p1
return-object p1
.end method
.method createReorderedIndices(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Landroid/util/SparseIntArray;)[I
.registers 9
.line 116
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemCount()I
move-result v0
.line 117
invoke-direct {p0, v0}, Lcom/google/android/flexbox/FlexboxHelper;->createOrders(I)Ljava/util/List;
move-result-object v1
.line 118
new-instance v2, Lcom/google/android/flexbox/FlexboxHelper$Order;
const/4 v3, 0x0
invoke-direct {v2, v3}, Lcom/google/android/flexbox/FlexboxHelper$Order;-><init>(Lcom/google/android/flexbox/FlexboxHelper$1;)V
const/4 v3, 0x1
if-eqz p1, :cond_20
.line 119
instance-of p1, p3, Lcom/google/android/flexbox/FlexItem;
if-eqz p1, :cond_20
.line 121
check-cast p3, Lcom/google/android/flexbox/FlexItem;
.line 122
invoke-interface {p3}, Lcom/google/android/flexbox/FlexItem;->getOrder()I
move-result p1
iput p1, v2, Lcom/google/android/flexbox/FlexboxHelper$Order;->order:I
goto :goto_22
.line 124
:cond_20
iput v3, v2, Lcom/google/android/flexbox/FlexboxHelper$Order;->order:I
:goto_22
const/4 p1, -0x1
if-eq p2, p1, :cond_45
if-ne p2, v0, :cond_28
goto :goto_45
.line 129
:cond_28
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemCount()I
move-result p1
if-ge p2, p1, :cond_42
.line 130
iput p2, v2, Lcom/google/android/flexbox/FlexboxHelper$Order;->index:I
:goto_32
if-ge p2, v0, :cond_47
.line 132
invoke-interface {v1, p2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/google/android/flexbox/FlexboxHelper$Order;
iget p3, p1, Lcom/google/android/flexbox/FlexboxHelper$Order;->index:I
add-int/2addr p3, v3
iput p3, p1, Lcom/google/android/flexbox/FlexboxHelper$Order;->index:I
add-int/lit8 p2, p2, 0x1
goto :goto_32
.line 137
:cond_42
iput v0, v2, Lcom/google/android/flexbox/FlexboxHelper$Order;->index:I
goto :goto_47
.line 128
:cond_45
:goto_45
iput v0, v2, Lcom/google/android/flexbox/FlexboxHelper$Order;->index:I
.line 139
:cond_47
:goto_47
invoke-interface {v1, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
add-int/2addr v0, v3
.line 141
invoke-direct {p0, v0, v1, p4}, Lcom/google/android/flexbox/FlexboxHelper;->sortOrdersIntoReorderedIndices(ILjava/util/List;Landroid/util/SparseIntArray;)[I
move-result-object p1
return-object p1
.end method
.method determineCrossSize(III)V
.registers 15
.line 1410
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getFlexDirection()I
move-result v0
const/4 v1, 0x3
const/4 v2, 0x2
const/4 v3, 0x1
if-eqz v0, :cond_2b
if-eq v0, v3, :cond_2b
if-eq v0, v2, :cond_22
if-ne v0, v1, :cond_12
goto :goto_22
.line 1423
:cond_12
new-instance p1, Ljava/lang/IllegalArgumentException;
invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p2
const-string p3, "Invalid flex direction: "
invoke-virtual {p3, p2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 1419
:cond_22
:goto_22
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result p2
.line 1420
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I
move-result p1
goto :goto_36
.line 1414
:cond_2b
invoke-static {p2}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result p1
.line 1415
invoke-static {p2}, Landroid/view/View$MeasureSpec;->getSize(I)I
move-result p2
move v10, p2
move p2, p1
move p1, v10
.line 1425
:goto_36
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getFlexLinesInternal()Ljava/util/List;
move-result-object v0
const/high16 v4, 0x40000000 # 2.0f
if-ne p2, v4, :cond_175
.line 1427
iget-object p2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p2}, Lcom/google/android/flexbox/FlexContainer;->getSumOfCrossSize()I
move-result p2
add-int/2addr p2, p3
.line 1428
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v4
const/4 v5, 0x0
if-ne v4, v3, :cond_58
.line 1429
invoke-interface {v0, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object p2
check-cast p2, Lcom/google/android/flexbox/FlexLine;
sub-int/2addr p1, p3
iput p1, p2, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
return-void
.line 1431
:cond_58
invoke-interface {v0}, Ljava/util/List;->size()I
move-result p3
if-lt p3, v2, :cond_175
.line 1432
iget-object p3, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p3}, Lcom/google/android/flexbox/FlexContainer;->getAlignContent()I
move-result p3
if-eq p3, v3, :cond_16a
if-eq p3, v2, :cond_160
const/high16 v4, -0x40800000 # -1.0f
const/4 v6, 0x0
const/high16 v7, 0x3f800000 # 1.0f
if-eq p3, v1, :cond_f7
const/4 v1, 0x4
if-eq p3, v1, :cond_b7
const/4 v1, 0x5
if-eq p3, v1, :cond_77
goto/16 :goto_175
:cond_77
if-ge p2, p1, :cond_175
sub-int/2addr p1, p2
int-to-float p1, p1
.line 1437
invoke-interface {v0}, Ljava/util/List;->size()I
move-result p2
int-to-float p2, p2
div-float/2addr p1, p2
.line 1439
invoke-interface {v0}, Ljava/util/List;->size()I
move-result p2
const/4 p3, 0x0
:goto_86
if-ge v5, p2, :cond_b6
.line 1440
invoke-interface {v0, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/google/android/flexbox/FlexLine;
.line 1441
iget v2, v1, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
int-to-float v2, v2
add-float/2addr v2, p1
.line 1442
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v8
sub-int/2addr v8, v3
if-ne v5, v8, :cond_9b
add-float/2addr v2, p3
const/4 p3, 0x0
.line 1446
:cond_9b
invoke-static {v2}, Ljava/lang/Math;->round(F)I
move-result v8
int-to-float v9, v8
sub-float/2addr v2, v9
add-float/2addr p3, v2
cmpl-float v2, p3, v7
if-lez v2, :cond_aa
add-int/lit8 v8, v8, 0x1
sub-float/2addr p3, v7
goto :goto_b1
:cond_aa
cmpg-float v2, p3, v4
if-gez v2, :cond_b1
add-int/lit8 v8, v8, -0x1
add-float/2addr p3, v7
.line 1455
:cond_b1
:goto_b1
iput v8, v1, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
add-int/lit8 v5, v5, 0x1
goto :goto_86
:cond_b6
return-void
:cond_b7
if-lt p2, p1, :cond_c3
.line 1463
iget-object p3, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 1464
invoke-direct {p0, v0, p1, p2}, Lcom/google/android/flexbox/FlexboxHelper;->constructFlexLinesForAlignContentCenter(Ljava/util/List;II)Ljava/util/List;
move-result-object p1
.line 1463
invoke-interface {p3, p1}, Lcom/google/android/flexbox/FlexContainer;->setFlexLines(Ljava/util/List;)V
return-void
:cond_c3
sub-int/2addr p1, p2
.line 1472
invoke-interface {v0}, Ljava/util/List;->size()I
move-result p2
mul-int/lit8 p2, p2, 0x2
.line 1473
div-int/2addr p1, p2
.line 1474
new-instance p2, Ljava/util/ArrayList;
invoke-direct {p2}, Ljava/util/ArrayList;-><init>()V
.line 1475
new-instance p3, Lcom/google/android/flexbox/FlexLine;
invoke-direct {p3}, Lcom/google/android/flexbox/FlexLine;-><init>()V
.line 1476
iput p1, p3, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
.line 1477
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p1
:goto_db
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_f1
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/flexbox/FlexLine;
.line 1478
invoke-interface {p2, p3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1479
invoke-interface {p2, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1480
invoke-interface {p2, p3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_db
.line 1482
:cond_f1
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1, p2}, Lcom/google/android/flexbox/FlexContainer;->setFlexLines(Ljava/util/List;)V
return-void
:cond_f7
if-ge p2, p1, :cond_175
sub-int/2addr p1, p2
int-to-float p1, p1
.line 1491
invoke-interface {v0}, Ljava/util/List;->size()I
move-result p2
sub-int/2addr p2, v3
int-to-float p2, p2
div-float/2addr p1, p2
.line 1494
new-instance p2, Ljava/util/ArrayList;
invoke-direct {p2}, Ljava/util/ArrayList;-><init>()V
.line 1495
invoke-interface {v0}, Ljava/util/List;->size()I
move-result p3
const/4 v1, 0x0
:goto_10c
if-ge v5, p3, :cond_15a
.line 1496
invoke-interface {v0, v5}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Lcom/google/android/flexbox/FlexLine;
.line 1497
invoke-interface {p2, v8}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1499
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v8
sub-int/2addr v8, v3
if-eq v5, v8, :cond_157
.line 1500
new-instance v8, Lcom/google/android/flexbox/FlexLine;
invoke-direct {v8}, Lcom/google/android/flexbox/FlexLine;-><init>()V
.line 1501
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v9
sub-int/2addr v9, v2
if-ne v5, v9, :cond_133
add-float/2addr v1, p1
.line 1505
invoke-static {v1}, Ljava/lang/Math;->round(F)I
move-result v1
iput v1, v8, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
const/4 v1, 0x0
goto :goto_139
.line 1509
:cond_133
invoke-static {p1}, Ljava/lang/Math;->round(F)I
move-result v9
iput v9, v8, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
.line 1511
:goto_139
iget v9, v8, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
int-to-float v9, v9
sub-float v9, p1, v9
add-float/2addr v1, v9
cmpl-float v9, v1, v7
if-lez v9, :cond_14a
.line 1514
iget v9, v8, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
add-int/2addr v9, v3
iput v9, v8, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
sub-float/2addr v1, v7
goto :goto_154
:cond_14a
cmpg-float v9, v1, v4
if-gez v9, :cond_154
.line 1517
iget v9, v8, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
sub-int/2addr v9, v3
iput v9, v8, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
add-float/2addr v1, v7
.line 1520
:cond_154
:goto_154
invoke-interface {p2, v8}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:cond_157
add-int/lit8 v5, v5, 0x1
goto :goto_10c
.line 1523
:cond_15a
iget-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p1, p2}, Lcom/google/android/flexbox/FlexContainer;->setFlexLines(Ljava/util/List;)V
return-void
.line 1527
:cond_160
iget-object p3, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 1528
invoke-direct {p0, v0, p1, p2}, Lcom/google/android/flexbox/FlexboxHelper;->constructFlexLinesForAlignContentCenter(Ljava/util/List;II)Ljava/util/List;
move-result-object p1
.line 1527
invoke-interface {p3, p1}, Lcom/google/android/flexbox/FlexContainer;->setFlexLines(Ljava/util/List;)V
return-void
:cond_16a
sub-int/2addr p1, p2
.line 1534
new-instance p2, Lcom/google/android/flexbox/FlexLine;
invoke-direct {p2}, Lcom/google/android/flexbox/FlexLine;-><init>()V
.line 1535
iput p1, p2, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
.line 1536
invoke-interface {v0, v5, p2}, Ljava/util/List;->add(ILjava/lang/Object;)V
:cond_175
:goto_175
return-void
.end method
.method determineMainSize(II)V
.registers 4
const/4 v0, 0x0
.line 915
invoke-virtual {p0, p1, p2, v0}, Lcom/google/android/flexbox/FlexboxHelper;->determineMainSize(III)V
return-void
.end method
.method determineMainSize(III)V
.registers 15
.line 930
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemCount()I
move-result v0
invoke-direct {p0, v0}, Lcom/google/android/flexbox/FlexboxHelper;->ensureChildrenFrozen(I)V
.line 931
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemCount()I
move-result v0
if-lt p3, v0, :cond_12
return-void
.line 936
:cond_12
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getFlexDirection()I
move-result v0
.line 937
iget-object v1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v1}, Lcom/google/android/flexbox/FlexContainer;->getFlexDirection()I
move-result v1
const/high16 v2, 0x40000000 # 2.0f
if-eqz v1, :cond_5a
const/4 v3, 0x1
if-eq v1, v3, :cond_5a
const/4 v3, 0x2
if-eq v1, v3, :cond_3c
const/4 v3, 0x3
if-ne v1, v3, :cond_2c
goto :goto_3c
.line 963
:cond_2c
new-instance p1, Ljava/lang/IllegalArgumentException;
invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p2
const-string p3, "Invalid flex direction: "
invoke-virtual {p3, p2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 952
:cond_3c
:goto_3c
invoke-static {p2}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result v0
.line 953
invoke-static {p2}, Landroid/view/View$MeasureSpec;->getSize(I)I
move-result v1
if-ne v0, v2, :cond_47
goto :goto_4d
.line 957
:cond_47
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getLargestMainSize()I
move-result v1
.line 959
:goto_4d
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getPaddingTop()I
move-result v0
iget-object v2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 960
invoke-interface {v2}, Lcom/google/android/flexbox/FlexContainer;->getPaddingBottom()I
move-result v2
goto :goto_78
.line 940
:cond_5a
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getMode(I)I
move-result v0
.line 941
invoke-static {p1}, Landroid/view/View$MeasureSpec;->getSize(I)I
move-result v1
if-ne v0, v2, :cond_65
goto :goto_6c
.line 945
:cond_65
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getLargestMainSize()I
move-result v0
move v1, v0
.line 947
:goto_6c
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getPaddingLeft()I
move-result v0
iget-object v2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
.line 948
invoke-interface {v2}, Lcom/google/android/flexbox/FlexContainer;->getPaddingRight()I
move-result v2
:goto_78
add-int/2addr v0, v2
const/4 v2, 0x0
.line 967
iget-object v3, p0, Lcom/google/android/flexbox/FlexboxHelper;->mIndexToFlexLine:[I
if-eqz v3, :cond_80
.line 968
aget v2, v3, p3
.line 970
:cond_80
iget-object p3, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p3}, Lcom/google/android/flexbox/FlexContainer;->getFlexLinesInternal()Ljava/util/List;
move-result-object p3
.line 971
invoke-interface {p3}, Ljava/util/List;->size()I
move-result v9
move v10, v2
:goto_8b
if-ge v10, v9, :cond_ae
.line 972
invoke-interface {p3, v10}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
move-object v5, v2
check-cast v5, Lcom/google/android/flexbox/FlexLine;
.line 973
iget v2, v5, Lcom/google/android/flexbox/FlexLine;->mMainSize:I
if-ge v2, v1, :cond_a2
const/4 v8, 0x0
move-object v2, p0
move v3, p1
move v4, p2
move v6, v1
move v7, v0
.line 974
invoke-direct/range {v2 .. v8}, Lcom/google/android/flexbox/FlexboxHelper;->expandFlexItems(IILcom/google/android/flexbox/FlexLine;IIZ)V
goto :goto_ab
:cond_a2
const/4 v8, 0x0
move-object v2, p0
move v3, p1
move v4, p2
move v6, v1
move v7, v0
.line 977
invoke-direct/range {v2 .. v8}, Lcom/google/android/flexbox/FlexboxHelper;->shrinkFlexItems(IILcom/google/android/flexbox/FlexLine;IIZ)V
:goto_ab
add-int/lit8 v10, v10, 0x1
goto :goto_8b
:cond_ae
return-void
.end method
.method ensureIndexToFlexLine(I)V
.registers 4
.line 1945
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mIndexToFlexLine:[I
if-nez v0, :cond_f
const/16 v0, 0xa
if-ge p1, v0, :cond_a
const/16 p1, 0xa
.line 1946
:cond_a
new-array p1, p1, [I
iput-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mIndexToFlexLine:[I
return-void
.line 1947
:cond_f
array-length v1, v0
if-ge v1, p1, :cond_20
.line 1948
array-length v0, v0
mul-int/lit8 v0, v0, 0x2
if-lt v0, p1, :cond_18
move p1, v0
.line 1950
:cond_18
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mIndexToFlexLine:[I
invoke-static {v0, p1}, Ljava/util/Arrays;->copyOf([II)[I
move-result-object p1
iput-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mIndexToFlexLine:[I
:cond_20
return-void
.end method
.method ensureMeasureSpecCache(I)V
.registers 4
.line 1886
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasureSpecCache:[J
if-nez v0, :cond_f
const/16 v0, 0xa
if-ge p1, v0, :cond_a
const/16 p1, 0xa
.line 1887
:cond_a
new-array p1, p1, [J
iput-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasureSpecCache:[J
return-void
.line 1888
:cond_f
array-length v1, v0
if-ge v1, p1, :cond_20
.line 1889
array-length v0, v0
mul-int/lit8 v0, v0, 0x2
if-lt v0, p1, :cond_18
move p1, v0
.line 1891
:cond_18
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasureSpecCache:[J
invoke-static {v0, p1}, Ljava/util/Arrays;->copyOf([JI)[J
move-result-object p1
iput-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasureSpecCache:[J
:cond_20
return-void
.end method
.method ensureMeasuredSizeCache(I)V
.registers 4
.line 1876
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
if-nez v0, :cond_f
const/16 v0, 0xa
if-ge p1, v0, :cond_a
const/16 p1, 0xa
.line 1877
:cond_a
new-array p1, p1, [J
iput-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
return-void
.line 1878
:cond_f
array-length v1, v0
if-ge v1, p1, :cond_20
.line 1879
array-length v0, v0
mul-int/lit8 v0, v0, 0x2
if-lt v0, p1, :cond_18
move p1, v0
.line 1881
:cond_18
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
invoke-static {v0, p1}, Ljava/util/Arrays;->copyOf([JI)[J
move-result-object p1
iput-object p1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mMeasuredSizeCache:[J
:cond_20
return-void
.end method
.method extractHigherInt(J)I
.registers 4
const/16 v0, 0x20
shr-long/2addr p1, v0
long-to-int p2, p1
return p2
.end method
.method extractLowerInt(J)I
.registers 3
long-to-int p2, p1
return p2
.end method
.method isOrderChangedFromLastMeasurement(Landroid/util/SparseIntArray;)Z
.registers 8
.line 177
iget-object v0, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v0}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemCount()I
move-result v0
.line 178
invoke-virtual {p1}, Landroid/util/SparseIntArray;->size()I
move-result v1
const/4 v2, 0x1
if-eq v1, v0, :cond_e
return v2
:cond_e
const/4 v1, 0x0
const/4 v3, 0x0
:goto_10
if-ge v3, v0, :cond_2e
.line 182
iget-object v4, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v4, v3}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemAt(I)Landroid/view/View;
move-result-object v4
if-eqz v4, :cond_2b
.line 186
invoke-virtual {v4}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v4
check-cast v4, Lcom/google/android/flexbox/FlexItem;
.line 187
invoke-interface {v4}, Lcom/google/android/flexbox/FlexItem;->getOrder()I
move-result v4
invoke-virtual {p1, v3}, Landroid/util/SparseIntArray;->get(I)I
move-result v5
if-eq v4, v5, :cond_2b
return v2
:cond_2b
add-int/lit8 v3, v3, 0x1
goto :goto_10
:cond_2e
return v1
.end method
.method layoutSingleChildHorizontal(Landroid/view/View;Lcom/google/android/flexbox/FlexLine;IIII)V
.registers 12
.line 1739
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v0
check-cast v0, Lcom/google/android/flexbox/FlexItem;
.line 1740
iget-object v1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v1}, Lcom/google/android/flexbox/FlexContainer;->getAlignItems()I
move-result v1
.line 1741
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getAlignSelf()I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_17
.line 1744
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getAlignSelf()I
move-result v1
.line 1746
:cond_17
iget v2, p2, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
const/4 v3, 0x2
if-eqz v1, :cond_c2
const/4 v4, 0x1
if-eq v1, v4, :cond_8b
if-eq v1, v3, :cond_5f
const/4 v2, 0x3
if-eq v1, v2, :cond_28
const/4 p2, 0x4
if-eq v1, p2, :cond_c2
goto :goto_8a
.line 1759
:cond_28
iget-object v1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v1}, Lcom/google/android/flexbox/FlexContainer;->getFlexWrap()I
move-result v1
if-eq v1, v3, :cond_45
.line 1760
iget p2, p2, Lcom/google/android/flexbox/FlexLine;->mMaxBaseline:I
invoke-virtual {p1}, Landroid/view/View;->getBaseline()I
move-result v1
sub-int/2addr p2, v1
.line 1761
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result v0
invoke-static {p2, v0}, Ljava/lang/Math;->max(II)I
move-result p2
add-int/2addr p4, p2
add-int/2addr p6, p2
.line 1762
invoke-virtual {p1, p3, p4, p5, p6}, Landroid/view/View;->layout(IIII)V
return-void
.line 1764
:cond_45
iget p2, p2, Lcom/google/android/flexbox/FlexLine;->mMaxBaseline:I
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result v1
sub-int/2addr p2, v1
.line 1765
invoke-virtual {p1}, Landroid/view/View;->getBaseline()I
move-result v1
add-int/2addr p2, v1
.line 1766
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result v0
invoke-static {p2, v0}, Ljava/lang/Math;->max(II)I
move-result p2
sub-int/2addr p4, p2
sub-int/2addr p6, p2
.line 1767
invoke-virtual {p1, p3, p4, p5, p6}, Landroid/view/View;->layout(IIII)V
return-void
.line 1785
:cond_5f
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result p2
sub-int/2addr v2, p2
.line 1786
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result p2
add-int/2addr v2, p2
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result p2
sub-int/2addr v2, p2
div-int/2addr v2, v3
.line 1787
iget-object p2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p2}, Lcom/google/android/flexbox/FlexContainer;->getFlexWrap()I
move-result p2
if-eq p2, v3, :cond_81
add-int/2addr p4, v2
.line 1789
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result p2
add-int/2addr p2, p4
.line 1788
invoke-virtual {p1, p3, p4, p5, p2}, Landroid/view/View;->layout(IIII)V
return-void
:cond_81
sub-int/2addr p4, v2
.line 1792
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result p2
add-int/2addr p2, p4
.line 1791
invoke-virtual {p1, p3, p4, p5, p2}, Landroid/view/View;->layout(IIII)V
:goto_8a
return-void
.line 1771
:cond_8b
iget-object p2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p2}, Lcom/google/android/flexbox/FlexContainer;->getFlexWrap()I
move-result p2
if-eq p2, v3, :cond_a8
add-int/2addr p4, v2
.line 1773
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result p2
sub-int p2, p4, p2
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result p6
sub-int/2addr p2, p6
.line 1774
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result p6
sub-int/2addr p4, p6
.line 1772
invoke-virtual {p1, p3, p2, p5, p4}, Landroid/view/View;->layout(IIII)V
return-void
:cond_a8
sub-int/2addr p4, v2
.line 1779
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result p2
add-int/2addr p4, p2
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result p2
add-int/2addr p4, p2
sub-int/2addr p6, v2
.line 1780
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result p2
add-int/2addr p6, p2
.line 1781
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result p2
add-int/2addr p6, p2
.line 1778
invoke-virtual {p1, p3, p4, p5, p6}, Landroid/view/View;->layout(IIII)V
return-void
.line 1750
:cond_c2
iget-object p2, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {p2}, Lcom/google/android/flexbox/FlexContainer;->getFlexWrap()I
move-result p2
if-eq p2, v3, :cond_d8
.line 1751
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result p2
add-int/2addr p4, p2
.line 1752
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginTop()I
move-result p2
add-int/2addr p6, p2
.line 1751
invoke-virtual {p1, p3, p4, p5, p6}, Landroid/view/View;->layout(IIII)V
return-void
.line 1754
:cond_d8
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result p2
sub-int/2addr p4, p2
.line 1755
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginBottom()I
move-result p2
sub-int/2addr p6, p2
.line 1754
invoke-virtual {p1, p3, p4, p5, p6}, Landroid/view/View;->layout(IIII)V
return-void
.end method
.method layoutSingleChildVertical(Landroid/view/View;Lcom/google/android/flexbox/FlexLine;ZIIII)V
.registers 12
.line 1823
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v0
check-cast v0, Lcom/google/android/flexbox/FlexItem;
.line 1824
iget-object v1, p0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v1}, Lcom/google/android/flexbox/FlexContainer;->getAlignItems()I
move-result v1
.line 1825
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getAlignSelf()I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_17
.line 1828
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getAlignSelf()I
move-result v1
.line 1830
:cond_17
iget p2, p2, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
if-eqz v1, :cond_82
const/4 v2, 0x1
if-eq v1, v2, :cond_4c
const/4 v2, 0x2
if-eq v1, v2, :cond_28
const/4 p2, 0x3
if-eq v1, p2, :cond_82
const/4 p2, 0x4
if-eq v1, p2, :cond_82
goto :goto_4b
.line 1862
:cond_28
invoke-virtual {p1}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v0
check-cast v0, Landroid/view/ViewGroup$MarginLayoutParams;
.line 1863
invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I
move-result v1
sub-int/2addr p2, v1
.line 1864
invoke-static {v0}, Landroidx/core/view/MarginLayoutParamsCompat;->getMarginStart(Landroid/view/ViewGroup$MarginLayoutParams;)I
move-result v1
add-int/2addr p2, v1
.line 1865
invoke-static {v0}, Landroidx/core/view/MarginLayoutParamsCompat;->getMarginEnd(Landroid/view/ViewGroup$MarginLayoutParams;)I
move-result v0
sub-int/2addr p2, v0
div-int/2addr p2, v2
if-nez p3, :cond_46
add-int/2addr p4, p2
add-int/2addr p6, p2
.line 1867
invoke-virtual {p1, p4, p5, p6, p7}, Landroid/view/View;->layout(IIII)V
return-void
:cond_46
sub-int/2addr p4, p2
sub-int/2addr p6, p2
.line 1869
invoke-virtual {p1, p4, p5, p6, p7}, Landroid/view/View;->layout(IIII)V
:goto_4b
return-void
:cond_4c
if-nez p3, :cond_68
add-int/2addr p4, p2
.line 1846
invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I
move-result p3
sub-int/2addr p4, p3
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result p3
sub-int/2addr p4, p3
add-int/2addr p6, p2
.line 1848
invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I
move-result p2
sub-int/2addr p6, p2
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result p2
sub-int/2addr p6, p2
.line 1845
invoke-virtual {p1, p4, p5, p6, p7}, Landroid/view/View;->layout(IIII)V
return-void
:cond_68
sub-int/2addr p4, p2
.line 1854
invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I
move-result p3
add-int/2addr p4, p3
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result p3
add-int/2addr p4, p3
sub-int/2addr p6, p2
.line 1856
invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I
move-result p2
add-int/2addr p6, p2
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result p2
add-int/2addr p6, p2
.line 1853
invoke-virtual {p1, p4, p5, p6, p7}, Landroid/view/View;->layout(IIII)V
return-void
:cond_82
if-nez p3, :cond_92
.line 1836
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result p2
add-int/2addr p4, p2
.line 1837
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginLeft()I
move-result p2
add-int/2addr p6, p2
.line 1836
invoke-virtual {p1, p4, p5, p6, p7}, Landroid/view/View;->layout(IIII)V
return-void
.line 1839
:cond_92
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result p2
sub-int/2addr p4, p2
.line 1840
invoke-interface {v0}, Lcom/google/android/flexbox/FlexItem;->getMarginRight()I
move-result p2
sub-int/2addr p6, p2
.line 1839
invoke-virtual {p1, p4, p5, p6, p7}, Landroid/view/View;->layout(IIII)V
return-void
.end method
.method makeCombinedLong(II)J
.registers 7
int-to-long v0, p2
const/16 p2, 0x20
shl-long/2addr v0, p2
int-to-long p1, p1
const-wide v2, 0xffffffffL
and-long/2addr p1, v2
or-long/2addr p1, v0
return-wide p1
.end method
.method stretchViews()V
.registers 2
const/4 v0, 0x0
.line 1568
invoke-virtual {p0, v0}, Lcom/google/android/flexbox/FlexboxHelper;->stretchViews(I)V
return-void
.end method
.method stretchViews(I)V
.registers 18
move-object/from16 v0, p0
move/from16 v1, p1
.line 1584
iget-object v2, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v2}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemCount()I
move-result v2
if-lt v1, v2, :cond_d
return-void
.line 1587
:cond_d
iget-object v2, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v2}, Lcom/google/android/flexbox/FlexContainer;->getFlexDirection()I
move-result v2
.line 1588
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v3}, Lcom/google/android/flexbox/FlexContainer;->getAlignItems()I
move-result v3
const-string v4, "Invalid flex direction: "
const/4 v7, 0x4
const/4 v8, 0x1
if-ne v3, v7, :cond_97
.line 1590
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mIndexToFlexLine:[I
if-eqz v3, :cond_26
.line 1591
aget v1, v3, v1
goto :goto_27
:cond_26
const/4 v1, 0x0
.line 1593
:goto_27
iget-object v3, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v3}, Lcom/google/android/flexbox/FlexContainer;->getFlexLinesInternal()Ljava/util/List;
move-result-object v3
.line 1594
invoke-interface {v3}, Ljava/util/List;->size()I
move-result v10
:goto_31
if-ge v1, v10, :cond_96
.line 1595
invoke-interface {v3, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v11
check-cast v11, Lcom/google/android/flexbox/FlexLine;
.line 1596
iget v12, v11, Lcom/google/android/flexbox/FlexLine;->mItemCount:I
const/4 v13, 0x0
:goto_3c
if-ge v13, v12, :cond_93
.line 1597
iget v14, v11, Lcom/google/android/flexbox/FlexLine;->mFirstIndex:I
add-int/2addr v14, v13
.line 1598
iget-object v15, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v15}, Lcom/google/android/flexbox/FlexContainer;->getFlexItemCount()I
move-result v15
if-ge v13, v15, :cond_90
.line 1601
iget-object v15, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v15, v14}, Lcom/google/android/flexbox/FlexContainer;->getReorderedFlexItemAt(I)Landroid/view/View;
move-result-object v15
if-eqz v15, :cond_90
.line 1602
invoke-virtual {v15}, Landroid/view/View;->getVisibility()I
move-result v9
const/16 v5, 0x8
if-eq v9, v5, :cond_90
.line 1605
invoke-virtual {v15}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v5
check-cast v5, Lcom/google/android/flexbox/FlexItem;
.line 1606
invoke-interface {v5}, Lcom/google/android/flexbox/FlexItem;->getAlignSelf()I
move-result v9
const/4 v6, -0x1
if-eq v9, v6, :cond_6c
.line 1607
invoke-interface {v5}, Lcom/google/android/flexbox/FlexItem;->getAlignSelf()I
move-result v5
if-ne v5, v7, :cond_90
:cond_6c
if-eqz v2, :cond_8b
if-eq v2, v8, :cond_8b
const/4 v5, 0x2
if-eq v2, v5, :cond_85
const/4 v5, 0x3
if-ne v2, v5, :cond_77
goto :goto_85
.line 1620
:cond_77
new-instance v1, Ljava/lang/IllegalArgumentException;
invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v4, v2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v1
.line 1617
:cond_85
:goto_85
iget v5, v11, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
invoke-direct {v0, v15, v5, v14}, Lcom/google/android/flexbox/FlexboxHelper;->stretchViewHorizontally(Landroid/view/View;II)V
goto :goto_90
.line 1613
:cond_8b
iget v5, v11, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
invoke-direct {v0, v15, v5, v14}, Lcom/google/android/flexbox/FlexboxHelper;->stretchViewVertically(Landroid/view/View;II)V
:cond_90
:goto_90
add-int/lit8 v13, v13, 0x1
goto :goto_3c
:cond_93
add-int/lit8 v1, v1, 0x1
goto :goto_31
:cond_96
return-void
.line 1626
:cond_97
iget-object v1, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-interface {v1}, Lcom/google/android/flexbox/FlexContainer;->getFlexLinesInternal()Ljava/util/List;
move-result-object v1
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:cond_a1
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_f8
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/flexbox/FlexLine;
.line 1627
iget-object v5, v3, Lcom/google/android/flexbox/FlexLine;->mIndicesAlignSelfStretch:Ljava/util/List;
invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v5
:goto_b3
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v6
if-eqz v6, :cond_a1
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v6
check-cast v6, Ljava/lang/Integer;
.line 1628
iget-object v7, v0, Lcom/google/android/flexbox/FlexboxHelper;->mFlexContainer:Lcom/google/android/flexbox/FlexContainer;
invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I
move-result v9
invoke-interface {v7, v9}, Lcom/google/android/flexbox/FlexContainer;->getReorderedFlexItemAt(I)Landroid/view/View;
move-result-object v7
if-eqz v2, :cond_ec
if-eq v2, v8, :cond_ec
const/4 v9, 0x2
const/4 v10, 0x3
if-eq v2, v9, :cond_e2
if-ne v2, v10, :cond_d4
goto :goto_e2
.line 1639
:cond_d4
new-instance v1, Ljava/lang/IllegalArgumentException;
invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v4, v2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v1
.line 1636
:cond_e2
:goto_e2
iget v11, v3, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I
move-result v6
invoke-direct {v0, v7, v11, v6}, Lcom/google/android/flexbox/FlexboxHelper;->stretchViewHorizontally(Landroid/view/View;II)V
goto :goto_b3
:cond_ec
const/4 v9, 0x2
const/4 v10, 0x3
.line 1632
iget v11, v3, Lcom/google/android/flexbox/FlexLine;->mCrossSize:I
invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I
move-result v6
invoke-direct {v0, v7, v11, v6}, Lcom/google/android/flexbox/FlexboxHelper;->stretchViewVertically(Landroid/view/View;II)V
goto :goto_b3
:cond_f8
return-void
.end method