BaselineLayout.smali
.class public Lcom/google/android/material/internal/BaselineLayout;
.super Landroid/view/ViewGroup;
.source "BaselineLayout.java"
# instance fields
.field private baseline:I
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 4
.param p1, "context" # Landroid/content/Context;
.line 34
const/4 v0, 0x0
const/4 v1, 0x0
invoke-direct {p0, p1, v0, v1}, Landroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.line 31
const/4 v0, -0x1
iput v0, p0, Lcom/google/android/material/internal/BaselineLayout;->baseline:I
.line 35
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.registers 4
.param p1, "context" # Landroid/content/Context;
.param p2, "attrs" # Landroid/util/AttributeSet;
.line 38
const/4 v0, 0x0
invoke-direct {p0, p1, p2, v0}, Landroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.line 31
const/4 v0, -0x1
iput v0, p0, Lcom/google/android/material/internal/BaselineLayout;->baseline:I
.line 39
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.registers 5
.param p1, "context" # Landroid/content/Context;
.param p2, "attrs" # Landroid/util/AttributeSet;
.param p3, "defStyleAttr" # I
.line 42
invoke-direct {p0, p1, p2, p3}, Landroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.line 31
const/4 v0, -0x1
iput v0, p0, Lcom/google/android/material/internal/BaselineLayout;->baseline:I
.line 43
return-void
.end method
# virtual methods
.method public getBaseline()I
.registers 2
.line 114
iget v0, p0, Lcom/google/android/material/internal/BaselineLayout;->baseline:I
return v0
.end method
.method protected onLayout(ZIIII)V
.registers 20
.param p1, "changed" # Z
.param p2, "left" # I
.param p3, "top" # I
.param p4, "right" # I
.param p5, "bottom" # I
.line 85
move-object v0, p0
invoke-virtual {p0}, Lcom/google/android/material/internal/BaselineLayout;->getChildCount()I
move-result v1
.line 86
.local v1, "count":I
invoke-virtual {p0}, Lcom/google/android/material/internal/BaselineLayout;->getPaddingLeft()I
move-result v2
.line 87
.local v2, "parentLeft":I
sub-int v3, p4, p2
invoke-virtual {p0}, Lcom/google/android/material/internal/BaselineLayout;->getPaddingRight()I
move-result v4
sub-int/2addr v3, v4
.line 88
.local v3, "parentRight":I
sub-int v4, v3, v2
.line 89
.local v4, "parentContentWidth":I
invoke-virtual {p0}, Lcom/google/android/material/internal/BaselineLayout;->getPaddingTop()I
move-result v5
.line 91
.local v5, "parentTop":I
const/4 v6, 0x0
.local v6, "i":I
:goto_17
if-ge v6, v1, :cond_52
.line 92
invoke-virtual {p0, v6}, Lcom/google/android/material/internal/BaselineLayout;->getChildAt(I)Landroid/view/View;
move-result-object v7
.line 93
.local v7, "child":Landroid/view/View;
invoke-virtual {v7}, Landroid/view/View;->getVisibility()I
move-result v8
const/16 v9, 0x8
if-ne v8, v9, :cond_26
.line 94
goto :goto_4f
.line 97
:cond_26
invoke-virtual {v7}, Landroid/view/View;->getMeasuredWidth()I
move-result v8
.line 98
.local v8, "width":I
invoke-virtual {v7}, Landroid/view/View;->getMeasuredHeight()I
move-result v9
.line 100
.local v9, "height":I
sub-int v10, v4, v8
div-int/lit8 v10, v10, 0x2
add-int/2addr v10, v2
.line 102
.local v10, "childLeft":I
iget v11, v0, Lcom/google/android/material/internal/BaselineLayout;->baseline:I
const/4 v12, -0x1
if-eq v11, v12, :cond_47
invoke-virtual {v7}, Landroid/view/View;->getBaseline()I
move-result v11
if-eq v11, v12, :cond_47
.line 103
iget v11, v0, Lcom/google/android/material/internal/BaselineLayout;->baseline:I
add-int/2addr v11, v5
invoke-virtual {v7}, Landroid/view/View;->getBaseline()I
move-result v12
sub-int/2addr v11, v12
.local v11, "childTop":I
goto :goto_48
.line 105
.end local v11 # "childTop":I
:cond_47
move v11, v5
.line 108
.restart local v11 # "childTop":I
:goto_48
add-int v12, v10, v8
add-int v13, v11, v9
invoke-virtual {v7, v10, v11, v12, v13}, Landroid/view/View;->layout(IIII)V
.line 91
.end local v7 # "child":Landroid/view/View;
.end local v8 # "width":I
.end local v9 # "height":I
.end local v10 # "childLeft":I
.end local v11 # "childTop":I
:goto_4f
add-int/lit8 v6, v6, 0x1
goto :goto_17
.line 110
.end local v6 # "i":I
:cond_52
return-void
.end method
.method protected onMeasure(II)V
.registers 14
.param p1, "widthMeasureSpec" # I
.param p2, "heightMeasureSpec" # I
.line 47
invoke-virtual {p0}, Lcom/google/android/material/internal/BaselineLayout;->getChildCount()I
move-result v0
.line 48
.local v0, "count":I
const/4 v1, 0x0
.line 49
.local v1, "maxWidth":I
const/4 v2, 0x0
.line 50
.local v2, "maxHeight":I
const/4 v3, -0x1
.line 51
.local v3, "maxChildBaseline":I
const/4 v4, -0x1
.line 52
.local v4, "maxChildDescent":I
const/4 v5, 0x0
.line 54
.local v5, "childState":I
const/4 v6, 0x0
.local v6, "i":I
:goto_a
const/4 v7, -0x1
if-ge v6, v0, :cond_4b
.line 55
invoke-virtual {p0, v6}, Lcom/google/android/material/internal/BaselineLayout;->getChildAt(I)Landroid/view/View;
move-result-object v8
.line 56
.local v8, "child":Landroid/view/View;
invoke-virtual {v8}, Landroid/view/View;->getVisibility()I
move-result v9
const/16 v10, 0x8
if-ne v9, v10, :cond_1a
.line 57
goto :goto_48
.line 60
:cond_1a
invoke-virtual {p0, v8, p1, p2}, Lcom/google/android/material/internal/BaselineLayout;->measureChild(Landroid/view/View;II)V
.line 61
invoke-virtual {v8}, Landroid/view/View;->getBaseline()I
move-result v9
.line 62
.local v9, "baseline":I
if-eq v9, v7, :cond_30
.line 63
invoke-static {v3, v9}, Ljava/lang/Math;->max(II)I
move-result v3
.line 64
invoke-virtual {v8}, Landroid/view/View;->getMeasuredHeight()I
move-result v7
sub-int/2addr v7, v9
invoke-static {v4, v7}, Ljava/lang/Math;->max(II)I
move-result v4
.line 66
:cond_30
invoke-virtual {v8}, Landroid/view/View;->getMeasuredWidth()I
move-result v7
invoke-static {v1, v7}, Ljava/lang/Math;->max(II)I
move-result v1
.line 67
invoke-virtual {v8}, Landroid/view/View;->getMeasuredHeight()I
move-result v7
invoke-static {v2, v7}, Ljava/lang/Math;->max(II)I
move-result v2
.line 68
invoke-virtual {v8}, Landroid/view/View;->getMeasuredState()I
move-result v7
invoke-static {v5, v7}, Landroid/view/View;->combineMeasuredStates(II)I
move-result v5
.line 54
.end local v8 # "child":Landroid/view/View;
.end local v9 # "baseline":I
:goto_48
add-int/lit8 v6, v6, 0x1
goto :goto_a
.line 70
.end local v6 # "i":I
:cond_4b
if-eq v3, v7, :cond_5d
.line 71
invoke-virtual {p0}, Lcom/google/android/material/internal/BaselineLayout;->getPaddingBottom()I
move-result v6
invoke-static {v4, v6}, Ljava/lang/Math;->max(II)I
move-result v4
.line 72
add-int v6, v3, v4
invoke-static {v2, v6}, Ljava/lang/Math;->max(II)I
move-result v2
.line 73
iput v3, p0, Lcom/google/android/material/internal/BaselineLayout;->baseline:I
.line 75
:cond_5d
invoke-virtual {p0}, Lcom/google/android/material/internal/BaselineLayout;->getSuggestedMinimumHeight()I
move-result v6
invoke-static {v2, v6}, Ljava/lang/Math;->max(II)I
move-result v2
.line 76
invoke-virtual {p0}, Lcom/google/android/material/internal/BaselineLayout;->getSuggestedMinimumWidth()I
move-result v6
invoke-static {v1, v6}, Ljava/lang/Math;->max(II)I
move-result v1
.line 77
nop
.line 78
invoke-static {v1, p1, v5}, Landroid/view/View;->resolveSizeAndState(III)I
move-result v6
shl-int/lit8 v7, v5, 0x10
.line 79
invoke-static {v2, p2, v7}, Landroid/view/View;->resolveSizeAndState(III)I
move-result v7
.line 77
invoke-virtual {p0, v6, v7}, Lcom/google/android/material/internal/BaselineLayout;->setMeasuredDimension(II)V
.line 81
return-void
.end method