SpanUtils$CustomLineHeightSpan.smali

.class Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;
.super Ljava/lang/Object;
.source "SpanUtils.java"

# interfaces
.implements Landroid/text/style/LineHeightSpan;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/blankj/utilcode/util/SpanUtils;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x8
    name = "CustomLineHeightSpan"
.end annotation


# static fields
.field static final ALIGN_CENTER:I

.field static final ALIGN_TOP:I

.field static sfm:Landroid/graphics/Paint$FontMetricsInt;


# instance fields
.field private final height:I

.field final mVerticalAlignment:I


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

    const v0, 0x156d

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

    move-result v0

    sput v0, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->ALIGN_CENTER:I

    const v0, 0x156c

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

    move-result v0

    sput v0, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->ALIGN_TOP:I

    return-void
.end method

.method constructor <init>(II)V
    .registers 3
    .param p1, "height"    # I
    .param p2, "verticalAlignment"    # I

    .line 1004
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 1005
    iput p1, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->height:I

    .line 1006
    iput p2, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->mVerticalAlignment:I

    .line 1007
    return-void
.end method


# virtual methods
.method public chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;)V
    .registers 15
    .param p1, "text"    # Ljava/lang/CharSequence;
    .param p2, "start"    # I
    .param p3, "end"    # I
    .param p4, "spanstartv"    # I
    .param p5, "v"    # I
    .param p6, "fm"    # Landroid/graphics/Paint$FontMetricsInt;

    .line 1012
    const/4 v0, 0x2

    new-array v1, v0, [Ljava/lang/Object;

    const/4 v2, 0x0

    aput-object p6, v1, v2

    sget-object v3, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    const/4 v4, 0x1

    aput-object v3, v1, v4

    invoke-static {v1}, Lcom/blankj/utilcode/util/LogUtils;->e([Ljava/lang/Object;)V

    .line 1013
    sget-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    if-nez v1, :cond_36

    .line 1014
    new-instance v1, Landroid/graphics/Paint$FontMetricsInt;

    invoke-direct {v1}, Landroid/graphics/Paint$FontMetricsInt;-><init>()V

    sput-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    .line 1015
    iget v3, p6, Landroid/graphics/Paint$FontMetricsInt;->top:I

    iput v3, v1, Landroid/graphics/Paint$FontMetricsInt;->top:I

    .line 1016
    sget-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    iget v3, p6, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    iput v3, v1, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    .line 1017
    sget-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    iget v3, p6, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    iput v3, v1, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    .line 1018
    sget-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    iget v3, p6, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    iput v3, v1, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    .line 1019
    sget-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    iget v3, p6, Landroid/graphics/Paint$FontMetricsInt;->leading:I

    iput v3, v1, Landroid/graphics/Paint$FontMetricsInt;->leading:I

    goto :goto_52

    .line 1021
    :cond_36
    iget v1, v1, Landroid/graphics/Paint$FontMetricsInt;->top:I

    iput v1, p6, Landroid/graphics/Paint$FontMetricsInt;->top:I

    .line 1022
    sget-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    iget v1, v1, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    iput v1, p6, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    .line 1023
    sget-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    iget v1, v1, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    iput v1, p6, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    .line 1024
    sget-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    iget v1, v1, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    iput v1, p6, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    .line 1025
    sget-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    iget v1, v1, Landroid/graphics/Paint$FontMetricsInt;->leading:I

    iput v1, p6, Landroid/graphics/Paint$FontMetricsInt;->leading:I

    .line 1027
    :goto_52
    iget v1, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->height:I

    iget v3, p6, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    add-int/2addr v3, p5

    iget v5, p6, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    sub-int/2addr v3, v5

    sub-int/2addr v3, p4

    sub-int/2addr v1, v3

    .line 1028
    .local v1, "need":I
    const/4 v3, 0x3

    if-lez v1, :cond_7f

    .line 1029
    iget v5, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->mVerticalAlignment:I

    if-ne v5, v3, :cond_69

    .line 1030
    iget v5, p6, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    add-int/2addr v5, v1

    iput v5, p6, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    goto :goto_7f

    .line 1031
    :cond_69
    if-ne v5, v0, :cond_7a

    .line 1032
    iget v5, p6, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    div-int/lit8 v6, v1, 0x2

    add-int/2addr v5, v6

    iput v5, p6, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    .line 1033
    iget v5, p6, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    div-int/lit8 v6, v1, 0x2

    sub-int/2addr v5, v6

    iput v5, p6, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    goto :goto_7f

    .line 1035
    :cond_7a
    iget v5, p6, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    sub-int/2addr v5, v1

    iput v5, p6, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    .line 1038
    :cond_7f
    :goto_7f
    iget v5, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->height:I

    iget v6, p6, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    add-int/2addr v6, p5

    iget v7, p6, Landroid/graphics/Paint$FontMetricsInt;->top:I

    sub-int/2addr v6, v7

    sub-int/2addr v6, p4

    sub-int/2addr v5, v6

    .line 1039
    .end local v1    # "need":I
    .local v5, "need":I
    if-lez v5, :cond_ab

    .line 1040
    iget v1, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->mVerticalAlignment:I

    if-ne v1, v3, :cond_95

    .line 1041
    iget v1, p6, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    add-int/2addr v1, v5

    iput v1, p6, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    goto :goto_ab

    .line 1042
    :cond_95
    if-ne v1, v0, :cond_a6

    .line 1043
    iget v1, p6, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    div-int/lit8 v3, v5, 0x2

    add-int/2addr v1, v3

    iput v1, p6, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    .line 1044
    iget v1, p6, Landroid/graphics/Paint$FontMetricsInt;->top:I

    div-int/lit8 v3, v5, 0x2

    sub-int/2addr v1, v3

    iput v1, p6, Landroid/graphics/Paint$FontMetricsInt;->top:I

    goto :goto_ab

    .line 1046
    :cond_a6
    iget v1, p6, Landroid/graphics/Paint$FontMetricsInt;->top:I

    sub-int/2addr v1, v5

    iput v1, p6, Landroid/graphics/Paint$FontMetricsInt;->top:I

    .line 1049
    :cond_ab
    :goto_ab
    move-object v1, p1

    check-cast v1, Landroid/text/Spanned;

    invoke-interface {v1, p0}, Landroid/text/Spanned;->getSpanEnd(Ljava/lang/Object;)I

    move-result v1

    if-ne p3, v1, :cond_b7

    .line 1050
    const/4 v1, 0x0

    sput-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    .line 1052
    :cond_b7
    new-array v0, v0, [Ljava/lang/Object;

    aput-object p6, v0, v2

    sget-object v1, Lcom/blankj/utilcode/util/SpanUtils$CustomLineHeightSpan;->sfm:Landroid/graphics/Paint$FontMetricsInt;

    aput-object v1, v0, v4

    invoke-static {v0}, Lcom/blankj/utilcode/util/LogUtils;->e([Ljava/lang/Object;)V

    .line 1053
    return-void
.end method