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