PaintCompatApi14.smali
.class Landroid/support/v4/graphics/PaintCompatApi14;
.super Ljava/lang/Object;
.source "PaintCompatApi14.java"
# static fields
.field private static final EM_STRING:Ljava/lang/String; = "m"
.field private static final TOFU_STRING:Ljava/lang/String; = "\udb3f\udffd"
.field private static final sRectThreadLocal:Ljava/lang/ThreadLocal;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ThreadLocal",
"<",
"Landroid/support/v4/util/Pair",
"<",
"Landroid/graphics/Rect;",
"Landroid/graphics/Rect;",
">;>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 29
new-instance v0, Ljava/lang/ThreadLocal;
invoke-direct {v0}, Ljava/lang/ThreadLocal;-><init>()V
sput-object v0, Landroid/support/v4/graphics/PaintCompatApi14;->sRectThreadLocal:Ljava/lang/ThreadLocal;
return-void
.end method
.method constructor <init>()V
.registers 1
.prologue
.line 24
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static hasGlyph(Landroid/graphics/Paint;Ljava/lang/String;)Z
.registers 11
.param p0 # Landroid/graphics/Paint;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p1 # Ljava/lang/String;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.prologue
const/4 v0, 0x0
const/4 v1, 0x1
const/4 v2, 0x0
.line 32
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v4
.line 34
if-ne v4, v1, :cond_15
invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C
move-result v3
invoke-static {v3}, Ljava/lang/Character;->isWhitespace(C)Z
move-result v3
if-eqz v3, :cond_15
move v2, v1
.line 88
:cond_14
:goto_14
return v2
.line 39
:cond_15
const-string/jumbo v3, "\udb3f\udffd"
invoke-virtual {p0, v3}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F
move-result v5
.line 40
const-string v3, "m"
invoke-virtual {p0, v3}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F
move-result v3
.line 42
invoke-virtual {p0, p1}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F
move-result v6
.line 44
cmpl-float v7, v6, v0
if-eqz v7, :cond_14
.line 49
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v7
invoke-virtual {p1, v2, v7}, Ljava/lang/String;->codePointCount(II)I
move-result v7
if-le v7, v1, :cond_54
.line 52
const/high16 v7, 0x40000000 # 2.0f
mul-float/2addr v3, v7
cmpl-float v3, v6, v3
if-gtz v3, :cond_14
move v3, v0
move v0, v2
.line 68
:goto_3d
if-ge v0, v4, :cond_50
.line 69
invoke-virtual {p1, v0}, Ljava/lang/String;->codePointAt(I)I
move-result v7
invoke-static {v7}, Ljava/lang/Character;->charCount(I)I
move-result v7
.line 70
add-int v8, v0, v7
invoke-virtual {p0, p1, v0, v8}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;II)F
move-result v8
add-float/2addr v3, v8
.line 71
add-int/2addr v0, v7
.line 72
goto :goto_3d
.line 73
:cond_50
cmpl-float v0, v6, v3
if-gez v0, :cond_14
.line 78
:cond_54
cmpl-float v0, v6, v5
if-eqz v0, :cond_5a
move v2, v1
.line 80
goto :goto_14
.line 85
:cond_5a
invoke-static {}, Landroid/support/v4/graphics/PaintCompatApi14;->obtainEmptyRects()Landroid/support/v4/util/Pair;
move-result-object v3
.line 86
const-string/jumbo v5, "\udb3f\udffd"
const-string/jumbo v0, "\udb3f\udffd"
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v6
iget-object v0, v3, Landroid/support/v4/util/Pair;->first:Ljava/lang/Object;
check-cast v0, Landroid/graphics/Rect;
invoke-virtual {p0, v5, v2, v6, v0}, Landroid/graphics/Paint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V
.line 87
iget-object v0, v3, Landroid/support/v4/util/Pair;->second:Ljava/lang/Object;
check-cast v0, Landroid/graphics/Rect;
invoke-virtual {p0, p1, v2, v4, v0}, Landroid/graphics/Paint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V
.line 88
iget-object v0, v3, Landroid/support/v4/util/Pair;->first:Ljava/lang/Object;
check-cast v0, Landroid/graphics/Rect;
iget-object v3, v3, Landroid/support/v4/util/Pair;->second:Ljava/lang/Object;
invoke-virtual {v0, v3}, Landroid/graphics/Rect;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_85
move v0, v1
:goto_83
move v2, v0
goto :goto_14
:cond_85
move v0, v2
goto :goto_83
.end method
.method private static obtainEmptyRects()Landroid/support/v4/util/Pair;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Landroid/support/v4/util/Pair",
"<",
"Landroid/graphics/Rect;",
"Landroid/graphics/Rect;",
">;"
}
.end annotation
.prologue
.line 92
sget-object v0, Landroid/support/v4/graphics/PaintCompatApi14;->sRectThreadLocal:Ljava/lang/ThreadLocal;
invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/support/v4/util/Pair;
.line 93
if-nez v0, :cond_1f
.line 94
new-instance v0, Landroid/support/v4/util/Pair;
new-instance v1, Landroid/graphics/Rect;
invoke-direct {v1}, Landroid/graphics/Rect;-><init>()V
new-instance v2, Landroid/graphics/Rect;
invoke-direct {v2}, Landroid/graphics/Rect;-><init>()V
invoke-direct {v0, v1, v2}, Landroid/support/v4/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
.line 95
sget-object v1, Landroid/support/v4/graphics/PaintCompatApi14;->sRectThreadLocal:Ljava/lang/ThreadLocal;
invoke-virtual {v1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
.line 100
:goto_1e
return-object v0
.line 97
:cond_1f
iget-object v1, v0, Landroid/support/v4/util/Pair;->first:Ljava/lang/Object;
check-cast v1, Landroid/graphics/Rect;
invoke-virtual {v1}, Landroid/graphics/Rect;->setEmpty()V
.line 98
iget-object v1, v0, Landroid/support/v4/util/Pair;->second:Ljava/lang/Object;
check-cast v1, Landroid/graphics/Rect;
invoke-virtual {v1}, Landroid/graphics/Rect;->setEmpty()V
goto :goto_1e
.end method