BottomAppBarTopEdgeTreatment.smali

.class public Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;
.super Lcom/google/android/material/shape/EdgeTreatment;
.source "BottomAppBarTopEdgeTreatment.java"


# static fields
.field private static final ANGLE_LEFT:I

.field private static final ANGLE_UP:I

.field private static final ARC_HALF:I

.field private static final ARC_QUARTER:I


# instance fields
.field private cradleVerticalOffset:F

.field private fabDiameter:F

.field private fabMargin:F

.field private horizontalOffset:F

.field private roundedCornerRadius:F


# direct methods
.method static constructor <clinit>()V
    .registers 1

    const v0, 0x15db

    invoke-static {v0}, Lnp/NPFog;->d(I)I

    move-result v0

    sput v0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->ANGLE_LEFT:I

    const v0, 0x1461

    invoke-static {v0}, Lnp/NPFog;->d(I)I

    move-result v0

    sput v0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->ANGLE_UP:I

    const v0, 0x15db

    invoke-static {v0}, Lnp/NPFog;->d(I)I

    move-result v0

    sput v0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->ARC_HALF:I

    const v0, 0x1535

    invoke-static {v0}, Lnp/NPFog;->d(I)I

    move-result v0

    sput v0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->ARC_QUARTER:I

    return-void
.end method

.method public constructor <init>(FFF)V
    .registers 6
    .param p1, "fabMargin"    # F
    .param p2, "roundedCornerRadius"    # F
    .param p3, "cradleVerticalOffset"    # F

    .line 56
    invoke-direct {p0}, Lcom/google/android/material/shape/EdgeTreatment;-><init>()V

    .line 57
    iput p1, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->fabMargin:F

    .line 58
    iput p2, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->roundedCornerRadius:F

    .line 59
    iput p3, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->cradleVerticalOffset:F

    .line 61
    const/4 v0, 0x0

    cmpg-float v1, p3, v0

    if-ltz v1, :cond_11

    .line 64
    iput v0, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->horizontalOffset:F

    .line 65
    return-void

    .line 62
    :cond_11
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "cradleVerticalOffset must be positive."

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0
.end method


# virtual methods
.method getCradleVerticalOffset()F
    .registers 2

    .line 163
    iget v0, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->cradleVerticalOffset:F

    return v0
.end method

.method public getEdgePath(FFLcom/google/android/material/shape/ShapePath;)V
    .registers 30
    .param p1, "length"    # F
    .param p2, "interpolation"    # F
    .param p3, "shapePath"    # Lcom/google/android/material/shape/ShapePath;

    .line 69
    move-object/from16 v0, p0

    move/from16 v1, p1

    move-object/from16 v9, p3

    iget v2, v0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->fabDiameter:F

    const/4 v10, 0x0

    cmpl-float v3, v2, v10

    if-nez v3, :cond_11

    .line 71
    invoke-virtual {v9, v1, v10}, Lcom/google/android/material/shape/ShapePath;->lineTo(FF)V

    .line 72
    return-void

    .line 75
    :cond_11
    iget v3, v0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->fabMargin:F

    const/high16 v11, 0x40000000    # 2.0f

    mul-float v3, v3, v11

    add-float v12, v3, v2

    .line 76
    .local v12, "cradleDiameter":F
    div-float v13, v12, v11

    .line 77
    .local v13, "cradleRadius":F
    iget v2, v0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->roundedCornerRadius:F

    mul-float v14, p2, v2

    .line 78
    .local v14, "roundedCornerOffset":F
    div-float v2, v1, v11

    iget v3, v0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->horizontalOffset:F

    add-float v15, v2, v3

    .line 82
    .local v15, "middle":F
    iget v2, v0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->cradleVerticalOffset:F

    mul-float v2, v2, p2

    const/high16 v3, 0x3f800000    # 1.0f

    sub-float v4, v3, p2

    mul-float v4, v4, v13

    add-float v16, v2, v4

    .line 84
    .local v16, "verticalOffset":F
    div-float v17, v16, v13

    .line 85
    .local v17, "verticalOffsetRatio":F
    cmpl-float v2, v17, v3

    if-ltz v2, :cond_3b

    .line 88
    invoke-virtual {v9, v1, v10}, Lcom/google/android/material/shape/ShapePath;->lineTo(FF)V

    .line 89
    return-void

    .line 98
    :cond_3b
    add-float v18, v13, v14

    .line 99
    .local v18, "distanceBetweenCenters":F
    mul-float v19, v18, v18

    .line 100
    .local v19, "distanceBetweenCentersSquared":F
    add-float v20, v16, v14

    .line 101
    .local v20, "distanceY":F
    mul-float v2, v20, v20

    sub-float v2, v19, v2

    float-to-double v2, v2

    invoke-static {v2, v3}, Ljava/lang/Math;->sqrt(D)D

    move-result-wide v2

    double-to-float v8, v2

    .line 104
    .local v8, "distanceX":F
    sub-float v21, v15, v8

    .line 105
    .local v21, "leftRoundedCornerCircleX":F
    add-float v22, v15, v8

    .line 108
    .local v22, "rightRoundedCornerCircleX":F
    div-float v2, v8, v20

    float-to-double v2, v2

    invoke-static {v2, v3}, Ljava/lang/Math;->atan(D)D

    move-result-wide v2

    invoke-static {v2, v3}, Ljava/lang/Math;->toDegrees(D)D

    move-result-wide v2

    double-to-float v7, v2

    .line 109
    .local v7, "cornerRadiusArcLength":F
    const/high16 v2, 0x42b40000    # 90.0f

    sub-float v23, v2, v7

    .line 112
    .local v23, "cutoutArcOffset":F
    sub-float v2, v21, v14

    invoke-virtual {v9, v2, v10}, Lcom/google/android/material/shape/ShapePath;->lineTo(FF)V

    .line 116
    sub-float v3, v21, v14

    const/4 v4, 0x0

    add-float v5, v21, v14

    mul-float v6, v14, v11

    const/high16 v24, 0x43870000    # 270.0f

    move-object/from16 v2, p3

    move/from16 v25, v7

    .end local v7    # "cornerRadiusArcLength":F
    .local v25, "cornerRadiusArcLength":F
    move/from16 v7, v24

    move/from16 v24, v8

    .end local v8    # "distanceX":F
    .local v24, "distanceX":F
    move/from16 v8, v25

    invoke-virtual/range {v2 .. v8}, Lcom/google/android/material/shape/ShapePath;->addArc(FFFFFF)V

    .line 125
    sub-float v3, v15, v13

    neg-float v2, v13

    sub-float v4, v2, v16

    add-float v5, v15, v13

    sub-float v6, v13, v16

    const/high16 v2, 0x43340000    # 180.0f

    sub-float v7, v2, v23

    mul-float v8, v23, v11

    sub-float/2addr v8, v2

    move-object/from16 v2, p3

    invoke-virtual/range {v2 .. v8}, Lcom/google/android/material/shape/ShapePath;->addArc(FFFFFF)V

    .line 135
    sub-float v3, v22, v14

    const/4 v4, 0x0

    add-float v5, v22, v14

    mul-float v6, v14, v11

    const/high16 v2, 0x43870000    # 270.0f

    sub-float v7, v2, v25

    move-object/from16 v2, p3

    move/from16 v8, v25

    invoke-virtual/range {v2 .. v8}, Lcom/google/android/material/shape/ShapePath;->addArc(FFFFFF)V

    .line 144
    invoke-virtual {v9, v1, v10}, Lcom/google/android/material/shape/ShapePath;->lineTo(FF)V

    .line 145
    return-void
.end method

.method getFabCradleMargin()F
    .registers 2

    .line 184
    iget v0, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->fabMargin:F

    return v0
.end method

.method getFabCradleRoundedCornerRadius()F
    .registers 2

    .line 192
    iget v0, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->roundedCornerRadius:F

    return v0
.end method

.method getFabDiameter()F
    .registers 2

    .line 176
    iget v0, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->fabDiameter:F

    return v0
.end method

.method getHorizontalOffset()F
    .registers 2

    .line 154
    iget v0, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->horizontalOffset:F

    return v0
.end method

.method setCradleVerticalOffset(F)V
    .registers 2
    .param p1, "cradleVerticalOffset"    # F

    .line 172
    iput p1, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->cradleVerticalOffset:F

    .line 173
    return-void
.end method

.method setFabCradleMargin(F)V
    .registers 2
    .param p1, "fabMargin"    # F

    .line 188
    iput p1, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->fabMargin:F

    .line 189
    return-void
.end method

.method setFabCradleRoundedCornerRadius(F)V
    .registers 2
    .param p1, "roundedCornerRadius"    # F

    .line 196
    iput p1, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->roundedCornerRadius:F

    .line 197
    return-void
.end method

.method setFabDiameter(F)V
    .registers 2
    .param p1, "fabDiameter"    # F

    .line 180
    iput p1, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->fabDiameter:F

    .line 181
    return-void
.end method

.method setHorizontalOffset(F)V
    .registers 2
    .param p1, "horizontalOffset"    # F

    .line 149
    iput p1, p0, Lcom/google/android/material/bottomappbar/BottomAppBarTopEdgeTreatment;->horizontalOffset:F

    .line 150
    return-void
.end method