SpanUtils$CustomBulletSpan.smali

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

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


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

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


# instance fields
.field private final color:I

.field private final gapWidth:I

.field private final radius:I

.field private sBulletPath:Landroid/graphics/Path;


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

    return-void
.end method

.method private constructor <init>(III)V
    .registers 5
    .param p1, "color"    # I
    .param p2, "radius"    # I
    .param p3, "gapWidth"    # I

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

    .line 1130
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->sBulletPath:Landroid/graphics/Path;

    .line 1133
    iput p1, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->color:I

    .line 1134
    iput p2, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->radius:I

    .line 1135
    iput p3, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->gapWidth:I

    .line 1136
    return-void
.end method

.method synthetic constructor <init>(IIILcom/blankj/utilcode/util/SpanUtils$1;)V
    .registers 5
    .param p1, "x0"    # I
    .param p2, "x1"    # I
    .param p3, "x2"    # I
    .param p4, "x3"    # Lcom/blankj/utilcode/util/SpanUtils$1;

    .line 1124
    invoke-direct {p0, p1, p2, p3}, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;-><init>(III)V

    return-void
.end method


# virtual methods
.method public drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V
    .registers 24
    .param p1, "c"    # Landroid/graphics/Canvas;
    .param p2, "p"    # Landroid/graphics/Paint;
    .param p3, "x"    # I
    .param p4, "dir"    # I
    .param p5, "top"    # I
    .param p6, "baseline"    # I
    .param p7, "bottom"    # I
    .param p8, "text"    # Ljava/lang/CharSequence;
    .param p9, "start"    # I
    .param p10, "end"    # I
    .param p11, "first"    # Z
    .param p12, "l"    # Landroid/text/Layout;

    .line 1146
    move-object v0, p0

    move-object v1, p1

    move-object v2, p2

    move-object/from16 v3, p8

    check-cast v3, Landroid/text/Spanned;

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

    move-result v3

    move/from16 v4, p9

    if-ne v3, v4, :cond_6b

    .line 1147
    invoke-virtual {p2}, Landroid/graphics/Paint;->getStyle()Landroid/graphics/Paint$Style;

    move-result-object v3

    .line 1148
    .local v3, "style":Landroid/graphics/Paint$Style;
    const/4 v5, 0x0

    .line 1149
    .local v5, "oldColor":I
    invoke-virtual {p2}, Landroid/graphics/Paint;->getColor()I

    move-result v5

    .line 1150
    iget v6, v0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->color:I

    invoke-virtual {p2, v6}, Landroid/graphics/Paint;->setColor(I)V

    .line 1151
    sget-object v6, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;

    invoke-virtual {p2, v6}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V

    .line 1152
    invoke-virtual {p1}, Landroid/graphics/Canvas;->isHardwareAccelerated()Z

    move-result v6

    const/high16 v7, 0x40000000    # 2.0f

    if-eqz v6, :cond_57

    .line 1153
    iget-object v6, v0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->sBulletPath:Landroid/graphics/Path;

    if-nez v6, :cond_3e

    .line 1154
    new-instance v6, Landroid/graphics/Path;

    invoke-direct {v6}, Landroid/graphics/Path;-><init>()V

    iput-object v6, v0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->sBulletPath:Landroid/graphics/Path;

    .line 1156
    iget v8, v0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->radius:I

    int-to-float v8, v8

    sget-object v9, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;

    const/4 v10, 0x0

    invoke-virtual {v6, v10, v10, v8, v9}, Landroid/graphics/Path;->addCircle(FFFLandroid/graphics/Path$Direction;)V

    .line 1158
    :cond_3e
    invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I

    .line 1159
    iget v6, v0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->radius:I

    mul-int v6, v6, p4

    add-int/2addr v6, p3

    int-to-float v6, v6

    add-int v8, p5, p7

    int-to-float v8, v8

    div-float/2addr v8, v7

    invoke-virtual {p1, v6, v8}, Landroid/graphics/Canvas;->translate(FF)V

    .line 1160
    iget-object v6, v0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->sBulletPath:Landroid/graphics/Path;

    invoke-virtual {p1, v6, p2}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V

    .line 1161
    invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V

    goto :goto_65

    .line 1163
    :cond_57
    iget v6, v0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->radius:I

    mul-int v8, p4, v6

    add-int/2addr v8, p3

    int-to-float v8, v8

    add-int v9, p5, p7

    int-to-float v9, v9

    div-float/2addr v9, v7

    int-to-float v6, v6

    invoke-virtual {p1, v8, v9, v6, p2}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V

    .line 1165
    :goto_65
    invoke-virtual {p2, v5}, Landroid/graphics/Paint;->setColor(I)V

    .line 1166
    invoke-virtual {p2, v3}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V

    .line 1168
    .end local v3    # "style":Landroid/graphics/Paint$Style;
    .end local v5    # "oldColor":I
    :cond_6b
    return-void
.end method

.method public getLeadingMargin(Z)I
    .registers 4
    .param p1, "first"    # Z

    .line 1139
    iget v0, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->radius:I

    mul-int/lit8 v0, v0, 0x2

    iget v1, p0, Lcom/blankj/utilcode/util/SpanUtils$CustomBulletSpan;->gapWidth:I

    add-int/2addr v0, v1

    return v0
.end method