EnvDrawText.smali
.class public Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;
.super Ljava/lang/Object;
# static fields
.field private static final a:Ljava/lang/String;
.field public static bBmpChange:Z
.field public static bmp:Landroid/graphics/Bitmap;
.field public static buffer:[I
.field public static fontCache:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lmapsdkvi/com/gdi/bgl/android/java/a;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
const-class v0, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->a:Ljava/lang/String;
const/4 v0, 0x0
sput-boolean v0, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->bBmpChange:Z
const/4 v0, 0x0
sput-object v0, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->bmp:Landroid/graphics/Bitmap;
sput-object v0, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->buffer:[I
sput-object v0, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->fontCache:Landroid/util/SparseArray;
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static a(I)Landroid/graphics/Paint$Align;
.registers 2
const/4 v0, 0x1
if-ne v0, p0, :cond_6
sget-object p0, Landroid/graphics/Paint$Align;->LEFT:Landroid/graphics/Paint$Align;
return-object p0
:cond_6
const/4 v0, 0x2
if-ne v0, p0, :cond_c
sget-object p0, Landroid/graphics/Paint$Align;->RIGHT:Landroid/graphics/Paint$Align;
return-object p0
:cond_c
sget-object p0, Landroid/graphics/Paint$Align;->CENTER:Landroid/graphics/Paint$Align;
return-object p0
.end method
.method public static declared-synchronized drawText(Ljava/lang/String;II[IIIIII)[I
.registers 35
move-object/from16 v0, p0
move-object/from16 v1, p3
move/from16 v2, p4
move/from16 v3, p5
move/from16 v4, p6
move/from16 v5, p7
move/from16 v6, p8
const-class v7, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;
monitor-enter v7
:try_start_11
new-instance v9, Landroid/graphics/Canvas;
invoke-direct {v9}, Landroid/graphics/Canvas;-><init>()V
new-instance v10, Landroid/text/TextPaint;
invoke-direct {v10}, Landroid/text/TextPaint;-><init>()V
invoke-static {}, Lcom/baidu/mapapi/common/SysOSUtil;->getPhoneType()Ljava/lang/String;
move-result-object v11
const/4 v12, 0x0
if-eqz v11, :cond_2c
const-string v13, "vivo X3L"
invoke-virtual {v11, v13}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_2c
const/4 v11, 0x0
goto :goto_2e
:cond_2c
move/from16 v11, p2
:goto_2e
invoke-virtual {v10}, Landroid/text/TextPaint;->reset()V
const/4 v13, 0x1
invoke-virtual {v10, v13}, Landroid/text/TextPaint;->setSubpixelText(Z)V
invoke-virtual {v10, v13}, Landroid/text/TextPaint;->setAntiAlias(Z)V
move/from16 v14, p1
int-to-float v14, v14
invoke-virtual {v10, v14}, Landroid/text/TextPaint;->setTextSize(F)V
const/4 v15, 0x0
invoke-virtual {v10, v15, v15, v15, v12}, Landroid/text/TextPaint;->setShadowLayer(FFFI)V
const/4 v8, 0x2
if-eq v11, v13, :cond_58
if-eq v11, v8, :cond_51
sget-object v15, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {v15, v12}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v15
:goto_4d
invoke-virtual {v10, v15}, Landroid/text/TextPaint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
goto :goto_5f
:cond_51
sget-object v15, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {v15, v8}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v15
goto :goto_4d
:cond_58
sget-object v15, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {v15, v13}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v15
goto :goto_4d
:goto_5f
if-eqz v5, :cond_74
int-to-float v15, v5
invoke-virtual {v10, v15}, Landroid/text/TextPaint;->setStrokeWidth(F)V
sget-object v15, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v10, v15}, Landroid/text/TextPaint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
sget-object v15, Landroid/graphics/Paint$Join;->ROUND:Landroid/graphics/Paint$Join;
invoke-virtual {v10, v15}, Landroid/text/TextPaint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V
sget-object v15, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v10, v15}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
:cond_74
invoke-virtual {v10, v13}, Landroid/text/TextPaint;->setSubpixelText(Z)V
invoke-virtual {v10, v13}, Landroid/text/TextPaint;->setAntiAlias(Z)V
if-eqz v11, :cond_8f
sget-object v15, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->fontCache:Landroid/util/SparseArray;
if-eqz v15, :cond_8f
sget-object v15, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->fontCache:Landroid/util/SparseArray;
invoke-virtual {v15, v11}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object v11
check-cast v11, Lmapsdkvi/com/gdi/bgl/android/java/a;
if-eqz v11, :cond_8f
iget-object v11, v11, Lmapsdkvi/com/gdi/bgl/android/java/a;->a:Landroid/graphics/Typeface;
invoke-virtual {v10, v11}, Landroid/text/TextPaint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
:cond_8f
invoke-virtual {v10, v14}, Landroid/text/TextPaint;->setTextSize(F)V
const/16 v11, 0x5c
invoke-virtual {v0, v11, v12}, Ljava/lang/String;->indexOf(II)I
move-result v14
const/4 v15, -0x1
const/16 v17, 0x3
const/high16 v18, -0x1000000
const-wide/high16 v19, 0x3fe0000000000000L # 0.5
const/4 v11, 0x4
move-object/from16 v21, v9
if-ne v14, v15, :cond_174
invoke-virtual {v10}, Landroid/text/TextPaint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;
move-result-object v6
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v14
invoke-static {v0, v12, v14, v10}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F
move-result v14
:try_end_b0
.catchall {:try_start_11 .. :try_end_b0} :catchall_331
float-to-double v14, v14
invoke-static {v14, v15}, Ljava/lang/Double;->isNaN(D)Z
add-double v14, v14, v19
double-to-int v14, v14
:try_start_b7
iget v15, v6, Landroid/graphics/Paint$FontMetrics;->descent:F
iget v8, v6, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v15, v8
float-to-double v8, v15
invoke-static {v8, v9}, Ljava/lang/Math;->ceil(D)D
move-result-wide v8
double-to-int v8, v8
aput v14, v1, v12
aput v8, v1, v13
array-length v9, v1
if-ne v9, v11, :cond_fc
int-to-double v13, v14
invoke-static {v13, v14}, Ljava/lang/Math;->log(D)D
move-result-wide v13
const-wide/high16 v19, 0x4000000000000000L # 2.0
invoke-static/range {v19 .. v20}, Ljava/lang/Math;->log(D)D
move-result-wide v22
div-double v13, v13, v22
invoke-static {v13, v14}, Ljava/lang/Math;->ceil(D)D
move-result-wide v13
double-to-int v9, v13
int-to-double v13, v9
move-wide/from16 v11, v19
invoke-static {v11, v12, v13, v14}, Ljava/lang/Math;->pow(DD)D
move-result-wide v13
double-to-int v14, v13
move-object/from16 v24, v10
int-to-double v9, v8
invoke-static {v9, v10}, Ljava/lang/Math;->log(D)D
move-result-wide v8
invoke-static {v11, v12}, Ljava/lang/Math;->log(D)D
move-result-wide v19
div-double v8, v8, v19
invoke-static {v8, v9}, Ljava/lang/Math;->ceil(D)D
move-result-wide v8
double-to-int v8, v8
int-to-double v8, v8
invoke-static {v11, v12, v8, v9}, Ljava/lang/Math;->pow(DD)D
move-result-wide v8
double-to-int v8, v8
goto :goto_fe
:cond_fc
move-object/from16 v24, v10
:goto_fe
if-nez v14, :cond_106
if-eqz v8, :cond_103
goto :goto_106
:cond_103
const/4 v8, 0x0
const/4 v9, 0x0
goto :goto_107
:cond_106
:goto_106
move v9, v14
:goto_107
array-length v10, v1
const/4 v11, 0x4
if-ne v10, v11, :cond_110
const/4 v10, 0x2
aput v9, v1, v10
aput v8, v1, v17
:cond_110
if-lez v9, :cond_129
if-lez v8, :cond_129
sget-object v1, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-static {v9, v8, v1}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v1
if-nez v1, :cond_121
const/4 v10, 0x0
new-array v0, v10, [I
:try_end_11f
.catchall {:try_start_b7 .. :try_end_11f} :catchall_331
monitor-exit v7
return-object v0
:cond_121
move-object/from16 v10, v21
:try_start_123
invoke-virtual {v10, v1}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
move-object/from16 v16, v1
goto :goto_12d
:cond_129
move-object/from16 v10, v21
const/16 v16, 0x0
:goto_12d
and-int v1, v4, v18
if-nez v1, :cond_138
const v1, 0xffffff
invoke-virtual {v10, v1}, Landroid/graphics/Canvas;->drawColor(I)V
goto :goto_13b
:cond_138
invoke-virtual {v10, v4}, Landroid/graphics/Canvas;->drawColor(I)V
:goto_13b
if-eqz v5, :cond_15e
int-to-float v1, v5
move-object/from16 v11, v24
invoke-virtual {v11, v1}, Landroid/text/TextPaint;->setStrokeWidth(F)V
sget-object v1, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v11, v1}, Landroid/text/TextPaint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
sget-object v1, Landroid/graphics/Paint$Join;->ROUND:Landroid/graphics/Paint$Join;
invoke-virtual {v11, v1}, Landroid/text/TextPaint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V
sget-object v1, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v11, v1}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
invoke-virtual {v11, v3}, Landroid/text/TextPaint;->setColor(I)V
iget v1, v6, Landroid/graphics/Paint$FontMetrics;->ascent:F
const/4 v3, 0x0
sub-float v15, v3, v1
invoke-virtual {v10, v0, v3, v15, v11}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
goto :goto_160
:cond_15e
move-object/from16 v11, v24
:goto_160
sget-object v1, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;
invoke-virtual {v11, v1}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
invoke-virtual {v11, v2}, Landroid/text/TextPaint;->setColor(I)V
iget v1, v6, Landroid/graphics/Paint$FontMetrics;->ascent:F
const/4 v2, 0x0
sub-float v15, v2, v1
invoke-virtual {v10, v0, v2, v15, v11}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
move-object/from16 v13, v16
goto/16 :goto_317
:cond_174
move-object v11, v10
move-object/from16 v10, v21
add-int/lit8 v8, v14, 0x1
const/4 v9, 0x0
invoke-virtual {v0, v9, v14}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v12
invoke-virtual {v11, v12}, Landroid/text/TextPaint;->measureText(Ljava/lang/String;)F
move-result v12
float-to-int v12, v12
const/16 v9, 0x5c
const/4 v14, 0x2
:goto_186
invoke-virtual {v0, v9, v8}, Ljava/lang/String;->indexOf(II)I
move-result v15
if-lez v15, :cond_19f
invoke-virtual {v0, v8, v15}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v8
invoke-virtual {v11, v8}, Landroid/text/TextPaint;->measureText(Ljava/lang/String;)F
move-result v8
float-to-int v8, v8
if-le v8, v12, :cond_198
move v12, v8
:cond_198
add-int/lit8 v8, v15, 0x1
add-int/lit8 v14, v14, 0x1
const/16 v9, 0x5c
goto :goto_186
:cond_19f
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v9
if-eq v8, v9, :cond_1bb
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v9
invoke-virtual {v0, v8, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v8
invoke-static {v8, v11}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
move-result v8
:try_end_1b1
.catchall {:try_start_123 .. :try_end_1b1} :catchall_331
float-to-double v8, v8
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
add-double v8, v8, v19
double-to-int v8, v8
if-le v8, v12, :cond_1bb
move v12, v8
:cond_1bb
:try_start_1bb
invoke-virtual {v11}, Landroid/text/TextPaint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;
move-result-object v8
iget v9, v8, Landroid/graphics/Paint$FontMetrics;->descent:F
iget v15, v8, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v9, v15
move v15, v14
float-to-double v13, v9
invoke-static {v13, v14}, Ljava/lang/Math;->ceil(D)D
move-result-wide v13
double-to-int v13, v13
mul-int v14, v13, v15
const/4 v9, 0x0
aput v12, v1, v9
const/4 v15, 0x1
aput v14, v1, v15
array-length v15, v1
const/4 v9, 0x4
if-ne v15, v9, :cond_214
move-object/from16 v20, v8
int-to-double v8, v12
invoke-static {v8, v9}, Ljava/lang/Math;->log(D)D
move-result-wide v8
const-wide/high16 v24, 0x4000000000000000L # 2.0
invoke-static/range {v24 .. v25}, Ljava/lang/Math;->log(D)D
move-result-wide v22
div-double v8, v8, v22
invoke-static {v8, v9}, Ljava/lang/Math;->ceil(D)D
move-result-wide v8
double-to-int v8, v8
int-to-double v8, v8
move/from16 v21, v13
move-wide/from16 v12, v24
invoke-static {v12, v13, v8, v9}, Ljava/lang/Math;->pow(DD)D
move-result-wide v8
double-to-int v8, v8
int-to-double v12, v14
invoke-static {v12, v13}, Ljava/lang/Math;->log(D)D
move-result-wide v12
const-wide/high16 v24, 0x4000000000000000L # 2.0
invoke-static/range {v24 .. v25}, Ljava/lang/Math;->log(D)D
move-result-wide v22
div-double v12, v12, v22
invoke-static {v12, v13}, Ljava/lang/Math;->ceil(D)D
move-result-wide v12
double-to-int v9, v12
int-to-double v12, v9
move/from16 v22, v8
move-wide/from16 v8, v24
invoke-static {v8, v9, v12, v13}, Ljava/lang/Math;->pow(DD)D
move-result-wide v8
double-to-int v8, v8
move/from16 v9, v22
goto :goto_21a
:cond_214
move-object/from16 v20, v8
move/from16 v21, v13
move v9, v12
move v8, v14
:goto_21a
if-nez v9, :cond_222
if-eqz v8, :cond_21f
goto :goto_222
:cond_21f
const/4 v8, 0x0
const/4 v12, 0x0
goto :goto_224
:cond_222
:goto_222
move v12, v8
move v8, v9
:goto_224
array-length v9, v1
const/4 v13, 0x4
if-ne v9, v13, :cond_22d
const/4 v9, 0x2
aput v8, v1, v9
aput v12, v1, v17
:cond_22d
if-lez v8, :cond_242
if-lez v12, :cond_242
sget-object v9, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-static {v8, v12, v9}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v13
if-nez v13, :cond_23e
const/4 v9, 0x0
new-array v0, v9, [I
:try_end_23c
.catchall {:try_start_1bb .. :try_end_23c} :catchall_331
monitor-exit v7
return-object v0
:cond_23e
:try_start_23e
invoke-virtual {v10, v13}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
goto :goto_243
:cond_242
const/4 v13, 0x0
:goto_243
and-int v14, v4, v18
if-nez v14, :cond_24e
const v14, 0xffffff
invoke-virtual {v10, v14}, Landroid/graphics/Canvas;->drawColor(I)V
goto :goto_251
:cond_24e
invoke-virtual {v10, v4}, Landroid/graphics/Canvas;->drawColor(I)V
:goto_251
invoke-static/range {p8 .. p8}, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->a(I)Landroid/graphics/Paint$Align;
move-result-object v4
invoke-virtual {v11, v4}, Landroid/text/TextPaint;->setTextAlign(Landroid/graphics/Paint$Align;)V
const/4 v4, 0x1
if-ne v6, v4, :cond_25e
const/4 v1, 0x0
const/4 v6, 0x0
goto :goto_269
:cond_25e
const/4 v4, 0x2
if-ne v6, v4, :cond_265
const/4 v6, 0x0
aget v1, v1, v6
goto :goto_269
:cond_265
const/4 v6, 0x0
aget v1, v1, v6
div-int/2addr v1, v4
:goto_269
const/4 v4, 0x0
const/16 v9, 0x5c
:goto_26c
invoke-virtual {v0, v9, v6}, Ljava/lang/String;->indexOf(II)I
move-result v14
if-lez v14, :cond_2c8
invoke-virtual {v0, v6, v14}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v6
invoke-virtual {v11, v6}, Landroid/text/TextPaint;->measureText(Ljava/lang/String;)F
add-int/lit8 v14, v14, 0x1
if-eqz v5, :cond_2a4
int-to-float v15, v5
invoke-virtual {v11, v15}, Landroid/text/TextPaint;->setStrokeWidth(F)V
sget-object v15, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v11, v15}, Landroid/text/TextPaint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
sget-object v15, Landroid/graphics/Paint$Join;->ROUND:Landroid/graphics/Paint$Join;
invoke-virtual {v11, v15}, Landroid/text/TextPaint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V
sget-object v15, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v11, v15}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
invoke-virtual {v11, v3}, Landroid/text/TextPaint;->setColor(I)V
int-to-float v15, v1
mul-int v9, v4, v21
int-to-float v9, v9
move/from16 p1, v8
move/from16 v16, v12
move-object/from16 v8, v20
iget v12, v8, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v9, v12
invoke-virtual {v10, v6, v15, v9, v11}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
goto :goto_2aa
:cond_2a4
move/from16 p1, v8
move/from16 v16, v12
move-object/from16 v8, v20
:goto_2aa
sget-object v9, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;
invoke-virtual {v11, v9}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
invoke-virtual {v11, v2}, Landroid/text/TextPaint;->setColor(I)V
int-to-float v9, v1
mul-int v12, v4, v21
int-to-float v12, v12
iget v15, v8, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v12, v15
invoke-virtual {v10, v6, v9, v12, v11}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
add-int/lit8 v4, v4, 0x1
move-object/from16 v20, v8
move v6, v14
move/from16 v12, v16
const/16 v9, 0x5c
move/from16 v8, p1
goto :goto_26c
:cond_2c8
move/from16 p1, v8
move/from16 v16, v12
move-object/from16 v8, v20
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v9
if-eq v6, v9, :cond_313
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v9
invoke-virtual {v0, v6, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
invoke-static {v0, v11}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
if-eqz v5, :cond_301
int-to-float v5, v5
invoke-virtual {v11, v5}, Landroid/text/TextPaint;->setStrokeWidth(F)V
sget-object v5, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v11, v5}, Landroid/text/TextPaint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
sget-object v5, Landroid/graphics/Paint$Join;->ROUND:Landroid/graphics/Paint$Join;
invoke-virtual {v11, v5}, Landroid/text/TextPaint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V
sget-object v5, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v11, v5}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
invoke-virtual {v11, v3}, Landroid/text/TextPaint;->setColor(I)V
int-to-float v3, v1
mul-int v5, v4, v21
int-to-float v5, v5
iget v6, v8, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v5, v6
invoke-virtual {v10, v0, v3, v5, v11}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
:cond_301
sget-object v3, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;
invoke-virtual {v11, v3}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
invoke-virtual {v11, v2}, Landroid/text/TextPaint;->setColor(I)V
int-to-float v1, v1
mul-int v4, v4, v21
int-to-float v2, v4
iget v3, v8, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v2, v3
invoke-virtual {v10, v0, v1, v2, v11}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
:cond_313
move/from16 v9, p1
move/from16 v8, v16
:goto_317
mul-int v9, v9, v8
new-array v0, v9, [I
if-eqz v13, :cond_324
invoke-static {v0}, Ljava/nio/IntBuffer;->wrap([I)Ljava/nio/IntBuffer;
move-result-object v1
invoke-virtual {v13, v1}, Landroid/graphics/Bitmap;->copyPixelsToBuffer(Ljava/nio/Buffer;)V
:cond_324
if-eqz v13, :cond_32f
invoke-virtual {v13}, Landroid/graphics/Bitmap;->isRecycled()Z
move-result v1
if-nez v1, :cond_32f
invoke-virtual {v13}, Landroid/graphics/Bitmap;->recycle()V
:try_end_32f
.catchall {:try_start_23e .. :try_end_32f} :catchall_331
:cond_32f
monitor-exit v7
return-object v0
:catchall_331
move-exception v0
monitor-exit v7
goto :goto_335
:goto_334
throw v0
:goto_335
goto :goto_334
.end method
.method public static drawTextAlpha(Ljava/lang/String;III)Landroid/graphics/Bitmap;
.registers 20
move-object/from16 v0, p0
move/from16 v1, p3
new-instance v2, Landroid/graphics/Canvas;
invoke-direct {v2}, Landroid/graphics/Canvas;-><init>()V
new-instance v3, Landroid/text/TextPaint;
invoke-direct {v3}, Landroid/text/TextPaint;-><init>()V
invoke-static {}, Lcom/baidu/mapapi/common/SysOSUtil;->getPhoneType()Ljava/lang/String;
move-result-object v4
const/4 v5, 0x0
if-eqz v4, :cond_1f
const-string v6, "vivo X3L"
invoke-virtual {v4, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_1f
const/4 v4, 0x0
goto :goto_21
:cond_1f
move/from16 v4, p2
:goto_21
invoke-virtual {v3}, Landroid/text/TextPaint;->reset()V
invoke-virtual {v3, v5}, Landroid/text/TextPaint;->setSubpixelText(Z)V
invoke-virtual {v3, v5}, Landroid/text/TextPaint;->setAntiAlias(Z)V
move/from16 v6, p1
int-to-float v6, v6
invoke-virtual {v3, v6}, Landroid/text/TextPaint;->setTextSize(F)V
const/4 v6, 0x2
const/4 v7, 0x1
if-eq v4, v7, :cond_44
if-eq v4, v6, :cond_3d
sget-object v4, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {v4, v5}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v4
goto :goto_4a
:cond_3d
sget-object v4, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {v4, v6}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v4
goto :goto_4a
:cond_44
sget-object v4, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {v4, v7}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v4
:goto_4a
invoke-virtual {v3, v4}, Landroid/text/TextPaint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
int-to-float v4, v1
const v7, 0x3fa66666 # 1.3f
mul-float v4, v4, v7
const/high16 v7, 0x3f000000 # 0.5f
add-float/2addr v4, v7
const/16 v8, 0x5c
invoke-virtual {v0, v8, v5}, Ljava/lang/String;->indexOf(II)I
move-result v9
const/4 v10, -0x1
const/4 v11, 0x0
if-ne v9, v10, :cond_9c
invoke-virtual {v3}, Landroid/text/TextPaint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;
move-result-object v1
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v6
invoke-static {v0, v5, v6, v3}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F
move-result v6
add-float/2addr v6, v4
float-to-int v6, v6
iget v8, v1, Landroid/graphics/Paint$FontMetrics;->descent:F
iget v9, v1, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v8, v9
float-to-double v8, v8
invoke-static {v8, v9}, Ljava/lang/Math;->ceil(D)D
move-result-wide v8
double-to-int v8, v8
if-lez v6, :cond_8c
if-lez v8, :cond_8c
sget-object v9, Landroid/graphics/Bitmap$Config;->ALPHA_8:Landroid/graphics/Bitmap$Config;
invoke-static {v6, v8, v9}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v11
if-nez v11, :cond_86
return-object v11
:cond_86
invoke-virtual {v11, v5}, Landroid/graphics/Bitmap;->eraseColor(I)V
invoke-virtual {v2, v11}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
:cond_8c
sget-object v5, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;
invoke-virtual {v3, v5}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
mul-float v4, v4, v7
const/4 v5, 0x0
iget v1, v1, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v5, v1
invoke-virtual {v2, v0, v4, v5, v3}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
goto/16 :goto_15f
:cond_9c
add-int/lit8 v10, v9, 0x1
invoke-virtual {v0, v5, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v9
invoke-static {v9, v3}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
move-result v9
float-to-double v12, v9
const-wide/high16 v14, 0x3fe0000000000000L # 0.5
invoke-static {v12, v13}, Ljava/lang/Double;->isNaN(D)Z
add-double/2addr v12, v14
double-to-int v9, v12
:goto_ae
invoke-virtual {v0, v8, v10}, Ljava/lang/String;->indexOf(II)I
move-result v12
if-lez v12, :cond_ce
invoke-virtual {v0, v10, v12}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v10
invoke-static {v10, v3}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
move-result v10
float-to-double v7, v10
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
add-double/2addr v7, v14
double-to-int v7, v7
if-le v7, v9, :cond_c5
move v9, v7
:cond_c5
add-int/lit8 v10, v12, 0x1
add-int/lit8 v6, v6, 0x1
const/high16 v7, 0x3f000000 # 0.5f
const/16 v8, 0x5c
goto :goto_ae
:cond_ce
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v7
if-eq v10, v7, :cond_e9
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v7
invoke-virtual {v0, v10, v7}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v7
invoke-static {v7, v3}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
move-result v7
float-to-double v7, v7
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
add-double/2addr v7, v14
double-to-int v7, v7
if-le v7, v9, :cond_e9
move v9, v7
:cond_e9
invoke-virtual {v3}, Landroid/text/TextPaint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;
move-result-object v7
iget v8, v7, Landroid/graphics/Paint$FontMetrics;->descent:F
iget v10, v7, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v8, v10
float-to-double v12, v8
invoke-static {v12, v13}, Ljava/lang/Math;->ceil(D)D
move-result-wide v12
double-to-int v8, v12
add-int/2addr v9, v1
mul-int v6, v6, v8
if-lez v9, :cond_10e
if-lez v6, :cond_10e
sget-object v1, Landroid/graphics/Bitmap$Config;->ALPHA_8:Landroid/graphics/Bitmap$Config;
invoke-static {v9, v6, v1}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v11
if-nez v11, :cond_108
return-object v11
:cond_108
invoke-virtual {v11, v5}, Landroid/graphics/Bitmap;->eraseColor(I)V
invoke-virtual {v2, v11}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
:cond_10e
const/4 v1, 0x3
invoke-static {v1}, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->a(I)Landroid/graphics/Paint$Align;
move-result-object v1
invoke-virtual {v3, v1}, Landroid/text/TextPaint;->setTextAlign(Landroid/graphics/Paint$Align;)V
int-to-float v1, v9
const/high16 v6, 0x3f000000 # 0.5f
mul-float v4, v4, v6
sub-float/2addr v1, v4
const/4 v4, 0x0
const/16 v6, 0x5c
:goto_11f
invoke-virtual {v0, v6, v5}, Ljava/lang/String;->indexOf(II)I
move-result v9
if-lez v9, :cond_140
invoke-virtual {v0, v5, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v5
invoke-static {v5, v3}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
add-int/lit8 v9, v9, 0x1
sget-object v10, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;
invoke-virtual {v3, v10}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
mul-int v10, v4, v8
int-to-float v10, v10
iget v12, v7, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v10, v12
invoke-virtual {v2, v5, v1, v10, v3}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
add-int/lit8 v4, v4, 0x1
move v5, v9
goto :goto_11f
:cond_140
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v6
if-eq v5, v6, :cond_15f
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v6
invoke-virtual {v0, v5, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
invoke-static {v0, v3}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
sget-object v5, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;
invoke-virtual {v3, v5}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
mul-int v4, v4, v8
int-to-float v4, v4
iget v5, v7, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v4, v5
invoke-virtual {v2, v0, v1, v4, v3}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
:cond_15f
:goto_15f
return-object v11
.end method
.method public static declared-synchronized drawTextExt(Ljava/lang/String;II[IIIIII)Landroid/graphics/Bitmap;
.registers 34
move-object/from16 v0, p0
move-object/from16 v1, p3
move/from16 v2, p4
move/from16 v3, p5
move/from16 v4, p6
move/from16 v5, p7
move/from16 v6, p8
const-class v7, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;
monitor-enter v7
:try_start_11
new-instance v9, Landroid/graphics/Canvas;
invoke-direct {v9}, Landroid/graphics/Canvas;-><init>()V
new-instance v10, Landroid/text/TextPaint;
invoke-direct {v10}, Landroid/text/TextPaint;-><init>()V
invoke-static {}, Lcom/baidu/mapapi/common/SysOSUtil;->getPhoneType()Ljava/lang/String;
move-result-object v11
const/4 v12, 0x0
if-eqz v11, :cond_2c
const-string v13, "vivo X3L"
invoke-virtual {v11, v13}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_2c
const/4 v11, 0x0
goto :goto_2e
:cond_2c
move/from16 v11, p2
:goto_2e
invoke-virtual {v10}, Landroid/text/TextPaint;->reset()V
const/4 v13, 0x1
invoke-virtual {v10, v13}, Landroid/text/TextPaint;->setSubpixelText(Z)V
invoke-virtual {v10, v13}, Landroid/text/TextPaint;->setAntiAlias(Z)V
move/from16 v14, p1
int-to-float v14, v14
invoke-virtual {v10, v14}, Landroid/text/TextPaint;->setTextSize(F)V
const/4 v14, 0x0
invoke-virtual {v10, v14, v14, v14, v12}, Landroid/text/TextPaint;->setShadowLayer(FFFI)V
const/4 v15, 0x2
if-eq v11, v13, :cond_58
if-eq v11, v15, :cond_51
sget-object v11, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {v11, v12}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v11
:goto_4d
invoke-virtual {v10, v11}, Landroid/text/TextPaint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
goto :goto_5f
:cond_51
sget-object v11, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {v11, v15}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v11
goto :goto_4d
:cond_58
sget-object v11, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {v11, v13}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v11
goto :goto_4d
:goto_5f
if-eqz v5, :cond_74
int-to-float v11, v5
invoke-virtual {v10, v11}, Landroid/text/TextPaint;->setStrokeWidth(F)V
sget-object v11, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v10, v11}, Landroid/text/TextPaint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
sget-object v11, Landroid/graphics/Paint$Join;->ROUND:Landroid/graphics/Paint$Join;
invoke-virtual {v10, v11}, Landroid/text/TextPaint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V
sget-object v11, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v10, v11}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
:cond_74
const/16 v11, 0x5c
invoke-virtual {v0, v11, v12}, Ljava/lang/String;->indexOf(II)I
move-result v8
const/4 v11, -0x1
const/16 v16, 0x3
const/high16 v17, -0x1000000
const-wide/high16 v18, 0x3fe0000000000000L # 0.5
if-ne v8, v11, :cond_141
invoke-virtual {v10}, Landroid/text/TextPaint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;
move-result-object v6
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v8
invoke-static {v0, v12, v8, v10}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F
move-result v8
:try_end_8f
.catchall {:try_start_11 .. :try_end_8f} :catchall_2d3
float-to-double v14, v8
invoke-static {v14, v15}, Ljava/lang/Double;->isNaN(D)Z
add-double v14, v14, v18
double-to-int v8, v14
:try_start_96
iget v11, v6, Landroid/graphics/Paint$FontMetrics;->descent:F
iget v14, v6, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v11, v14
float-to-double v14, v11
invoke-static {v14, v15}, Ljava/lang/Math;->ceil(D)D
move-result-wide v14
double-to-int v11, v14
aput v8, v1, v12
aput v11, v1, v13
array-length v13, v1
const/4 v14, 0x4
if-ne v13, v14, :cond_d9
int-to-double v13, v8
invoke-static {v13, v14}, Ljava/lang/Math;->log(D)D
move-result-wide v13
const-wide/high16 v18, 0x4000000000000000L # 2.0
invoke-static/range {v18 .. v19}, Ljava/lang/Math;->log(D)D
move-result-wide v20
div-double v13, v13, v20
invoke-static {v13, v14}, Ljava/lang/Math;->ceil(D)D
move-result-wide v13
double-to-int v8, v13
int-to-double v13, v8
move-wide/from16 v2, v18
invoke-static {v2, v3, v13, v14}, Ljava/lang/Math;->pow(DD)D
move-result-wide v13
double-to-int v8, v13
int-to-double v13, v11
invoke-static {v13, v14}, Ljava/lang/Math;->log(D)D
move-result-wide v13
invoke-static {v2, v3}, Ljava/lang/Math;->log(D)D
move-result-wide v18
div-double v13, v13, v18
invoke-static {v13, v14}, Ljava/lang/Math;->ceil(D)D
move-result-wide v13
double-to-int v11, v13
int-to-double v13, v11
invoke-static {v2, v3, v13, v14}, Ljava/lang/Math;->pow(DD)D
move-result-wide v2
double-to-int v11, v2
:cond_d9
if-nez v8, :cond_e0
if-eqz v11, :cond_de
goto :goto_e0
:cond_de
const/4 v11, 0x0
goto :goto_e1
:cond_e0
:goto_e0
move v12, v8
:goto_e1
array-length v2, v1
const/4 v3, 0x4
if-ne v2, v3, :cond_ea
const/4 v2, 0x2
aput v12, v1, v2
aput v11, v1, v16
:cond_ea
if-lez v12, :cond_fc
if-lez v11, :cond_fc
sget-object v1, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-static {v12, v11, v1}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v8
:try_end_f4
.catchall {:try_start_96 .. :try_end_f4} :catchall_2d3
if-nez v8, :cond_f8
monitor-exit v7
return-object v8
:cond_f8
:try_start_f8
invoke-virtual {v9, v8}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
goto :goto_fd
:cond_fc
const/4 v8, 0x0
:goto_fd
and-int v1, v4, v17
if-nez v1, :cond_108
const v1, 0xffffff
invoke-virtual {v9, v1}, Landroid/graphics/Canvas;->drawColor(I)V
goto :goto_10b
:cond_108
invoke-virtual {v9, v4}, Landroid/graphics/Canvas;->drawColor(I)V
:goto_10b
if-eqz v5, :cond_12d
int-to-float v1, v5
invoke-virtual {v10, v1}, Landroid/text/TextPaint;->setStrokeWidth(F)V
sget-object v1, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v10, v1}, Landroid/text/TextPaint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
sget-object v1, Landroid/graphics/Paint$Join;->ROUND:Landroid/graphics/Paint$Join;
invoke-virtual {v10, v1}, Landroid/text/TextPaint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V
sget-object v1, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v10, v1}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
move/from16 v2, p5
invoke-virtual {v10, v2}, Landroid/text/TextPaint;->setColor(I)V
iget v1, v6, Landroid/graphics/Paint$FontMetrics;->ascent:F
const/4 v2, 0x0
sub-float v14, v2, v1
invoke-virtual {v9, v0, v2, v14, v10}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
:cond_12d
sget-object v1, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;
invoke-virtual {v10, v1}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
move/from16 v3, p4
invoke-virtual {v10, v3}, Landroid/text/TextPaint;->setColor(I)V
iget v1, v6, Landroid/graphics/Paint$FontMetrics;->ascent:F
const/4 v2, 0x0
sub-float v14, v2, v1
invoke-virtual {v9, v0, v2, v14, v10}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
goto/16 :goto_2d1
:cond_141
move/from16 v24, v3
move v3, v2
move/from16 v2, v24
add-int/lit8 v11, v8, 0x1
invoke-virtual {v0, v12, v8}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v8
invoke-static {v8, v10}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
move-result v8
:try_end_150
.catchall {:try_start_f8 .. :try_end_150} :catchall_2d3
float-to-double v14, v8
invoke-static {v14, v15}, Ljava/lang/Double;->isNaN(D)Z
add-double v14, v14, v18
double-to-int v8, v14
const/4 v14, 0x2
:goto_158
const/16 v15, 0x5c
:try_start_15a
invoke-virtual {v0, v15, v11}, Ljava/lang/String;->indexOf(II)I
move-result v13
if-lez v13, :cond_17a
invoke-virtual {v0, v11, v13}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v11
invoke-static {v11, v10}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
move-result v11
:try_end_168
.catchall {:try_start_15a .. :try_end_168} :catchall_2d3
move/from16 v22, v13
float-to-double v12, v11
invoke-static {v12, v13}, Ljava/lang/Double;->isNaN(D)Z
add-double v12, v12, v18
double-to-int v11, v12
if-le v11, v8, :cond_174
move v8, v11
:cond_174
add-int/lit8 v11, v22, 0x1
add-int/lit8 v14, v14, 0x1
const/4 v12, 0x0
goto :goto_158
:cond_17a
:try_start_17a
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v12
if-eq v11, v12, :cond_196
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v12
invoke-virtual {v0, v11, v12}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v11
invoke-static {v11, v10}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
move-result v11
:try_end_18c
.catchall {:try_start_17a .. :try_end_18c} :catchall_2d3
float-to-double v11, v11
invoke-static {v11, v12}, Ljava/lang/Double;->isNaN(D)Z
add-double v11, v11, v18
double-to-int v11, v11
if-le v11, v8, :cond_196
move v8, v11
:cond_196
:try_start_196
invoke-virtual {v10}, Landroid/text/TextPaint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;
move-result-object v11
iget v12, v11, Landroid/graphics/Paint$FontMetrics;->descent:F
iget v13, v11, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v12, v13
float-to-double v12, v12
invoke-static {v12, v13}, Ljava/lang/Math;->ceil(D)D
move-result-wide v12
double-to-int v12, v12
mul-int v14, v14, v12
const/4 v13, 0x0
aput v8, v1, v13
const/4 v13, 0x1
aput v14, v1, v13
array-length v13, v1
const/4 v15, 0x4
if-ne v13, v15, :cond_1e4
move-object v13, v11
move v15, v12
int-to-double v11, v8
invoke-static {v11, v12}, Ljava/lang/Math;->log(D)D
move-result-wide v11
const-wide/high16 v22, 0x4000000000000000L # 2.0
invoke-static/range {v22 .. v23}, Ljava/lang/Math;->log(D)D
move-result-wide v20
div-double v11, v11, v20
invoke-static {v11, v12}, Ljava/lang/Math;->ceil(D)D
move-result-wide v11
double-to-int v8, v11
int-to-double v11, v8
move-wide/from16 v2, v22
invoke-static {v2, v3, v11, v12}, Ljava/lang/Math;->pow(DD)D
move-result-wide v11
double-to-int v8, v11
int-to-double v11, v14
invoke-static {v11, v12}, Ljava/lang/Math;->log(D)D
move-result-wide v11
invoke-static {v2, v3}, Ljava/lang/Math;->log(D)D
move-result-wide v20
div-double v11, v11, v20
invoke-static {v11, v12}, Ljava/lang/Math;->ceil(D)D
move-result-wide v11
double-to-int v11, v11
int-to-double v11, v11
invoke-static {v2, v3, v11, v12}, Ljava/lang/Math;->pow(DD)D
move-result-wide v2
double-to-int v14, v2
goto :goto_1e6
:cond_1e4
move-object v13, v11
move v15, v12
:goto_1e6
if-nez v8, :cond_1ed
if-eqz v14, :cond_1eb
goto :goto_1ed
:cond_1eb
const/4 v8, 0x0
const/4 v14, 0x0
:cond_1ed
:goto_1ed
array-length v2, v1
const/4 v3, 0x4
if-ne v2, v3, :cond_1f6
const/4 v2, 0x2
aput v8, v1, v2
aput v14, v1, v16
:cond_1f6
if-lez v8, :cond_208
if-lez v14, :cond_208
sget-object v2, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-static {v8, v14, v2}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v8
:try_end_200
.catchall {:try_start_196 .. :try_end_200} :catchall_2d3
if-nez v8, :cond_204
monitor-exit v7
return-object v8
:cond_204
:try_start_204
invoke-virtual {v9, v8}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
goto :goto_209
:cond_208
const/4 v8, 0x0
:goto_209
and-int v2, v4, v17
if-nez v2, :cond_214
const v2, 0xffffff
invoke-virtual {v9, v2}, Landroid/graphics/Canvas;->drawColor(I)V
goto :goto_217
:cond_214
invoke-virtual {v9, v4}, Landroid/graphics/Canvas;->drawColor(I)V
:goto_217
invoke-static/range {p8 .. p8}, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->a(I)Landroid/graphics/Paint$Align;
move-result-object v2
invoke-virtual {v10, v2}, Landroid/text/TextPaint;->setTextAlign(Landroid/graphics/Paint$Align;)V
const/4 v2, 0x1
if-ne v6, v2, :cond_224
const/4 v1, 0x0
const/4 v3, 0x0
goto :goto_22e
:cond_224
const/4 v2, 0x2
const/4 v3, 0x0
if-ne v6, v2, :cond_22b
aget v1, v1, v3
goto :goto_22e
:cond_22b
aget v1, v1, v3
div-int/2addr v1, v2
:goto_22e
const/16 v2, 0x5c
const/4 v12, 0x0
:goto_231
invoke-virtual {v0, v2, v12}, Ljava/lang/String;->indexOf(II)I
move-result v4
if-lez v4, :cond_284
invoke-virtual {v0, v12, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v6
invoke-static {v6, v10}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
add-int/lit8 v12, v4, 0x1
if-eqz v5, :cond_265
int-to-float v4, v5
invoke-virtual {v10, v4}, Landroid/text/TextPaint;->setStrokeWidth(F)V
sget-object v4, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v10, v4}, Landroid/text/TextPaint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
sget-object v4, Landroid/graphics/Paint$Join;->ROUND:Landroid/graphics/Paint$Join;
invoke-virtual {v10, v4}, Landroid/text/TextPaint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V
sget-object v4, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v10, v4}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
move/from16 v4, p5
invoke-virtual {v10, v4}, Landroid/text/TextPaint;->setColor(I)V
int-to-float v11, v1
mul-int v14, v3, v15
int-to-float v14, v14
iget v2, v13, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v14, v2
invoke-virtual {v9, v6, v11, v14, v10}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
goto :goto_267
:cond_265
move/from16 v4, p5
:goto_267
sget-object v2, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;
invoke-virtual {v10, v2}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
move/from16 v2, p4
invoke-virtual {v10, v2}, Landroid/text/TextPaint;->setColor(I)V
int-to-float v11, v1
mul-int v14, v3, v15
int-to-float v14, v14
move-object/from16 p2, v8
iget v8, v13, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v14, v8
invoke-virtual {v9, v6, v11, v14, v10}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
add-int/lit8 v3, v3, 0x1
move-object/from16 v8, p2
const/16 v2, 0x5c
goto :goto_231
:cond_284
move/from16 v2, p4
move/from16 v4, p5
move-object/from16 p2, v8
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v6
if-eq v12, v6, :cond_2cf
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v6
invoke-virtual {v0, v12, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
invoke-static {v0, v10}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
if-eqz v5, :cond_2bd
int-to-float v5, v5
invoke-virtual {v10, v5}, Landroid/text/TextPaint;->setStrokeWidth(F)V
sget-object v5, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v10, v5}, Landroid/text/TextPaint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
sget-object v5, Landroid/graphics/Paint$Join;->ROUND:Landroid/graphics/Paint$Join;
invoke-virtual {v10, v5}, Landroid/text/TextPaint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V
sget-object v5, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v10, v5}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
invoke-virtual {v10, v4}, Landroid/text/TextPaint;->setColor(I)V
int-to-float v4, v1
mul-int v12, v3, v15
int-to-float v5, v12
iget v6, v13, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v5, v6
invoke-virtual {v9, v0, v4, v5, v10}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
:cond_2bd
sget-object v4, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style;
invoke-virtual {v10, v4}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
invoke-virtual {v10, v2}, Landroid/text/TextPaint;->setColor(I)V
int-to-float v1, v1
mul-int v3, v3, v15
int-to-float v2, v3
iget v3, v13, Landroid/graphics/Paint$FontMetrics;->ascent:F
sub-float/2addr v2, v3
invoke-virtual {v9, v0, v1, v2, v10}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
:try_end_2cf
.catchall {:try_start_204 .. :try_end_2cf} :catchall_2d3
:cond_2cf
move-object/from16 v8, p2
:goto_2d1
monitor-exit v7
return-object v8
:catchall_2d3
move-exception v0
monitor-exit v7
goto :goto_2d7
:goto_2d6
throw v0
:goto_2d7
goto :goto_2d6
.end method
.method public static getTextSize(Ljava/lang/String;II)[S
.registers 11
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_8
const/4 p0, 0x0
return-object p0
:cond_8
new-instance v1, Landroid/text/TextPaint;
invoke-direct {v1}, Landroid/text/TextPaint;-><init>()V
const/4 v2, 0x1
invoke-virtual {v1, v2}, Landroid/text/TextPaint;->setSubpixelText(Z)V
invoke-virtual {v1, v2}, Landroid/text/TextPaint;->setAntiAlias(Z)V
int-to-float p1, p1
invoke-virtual {v1, p1}, Landroid/text/TextPaint;->setTextSize(F)V
const/4 p1, 0x0
if-eq p2, v2, :cond_25
const/4 v2, 0x2
if-eq p2, v2, :cond_25
sget-object p2, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {p2, p1}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object p2
goto :goto_2b
:cond_25
sget-object p2, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {p2, v2}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object p2
:goto_2b
invoke-virtual {v1, p2}, Landroid/text/TextPaint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
new-array p2, v0, [S
const/4 v2, 0x0
:goto_31
if-ge v2, v0, :cond_46
add-int/lit8 v3, v2, 0x1
invoke-static {p0, p1, v3, v1}, Landroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F
move-result v4
float-to-double v4, v4
const-wide/high16 v6, 0x3fe0000000000000L # 0.5
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
add-double/2addr v4, v6
double-to-int v4, v4
int-to-short v4, v4
aput-short v4, p2, v2
move v2, v3
goto :goto_31
:cond_46
return-object p2
.end method
.method public static getTextSizeExt(Ljava/lang/String;II)[F
.registers 6
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_8
const/4 p0, 0x0
return-object p0
:cond_8
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V
const/4 v1, 0x1
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setSubpixelText(Z)V
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setAntiAlias(Z)V
int-to-float p1, p1
invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setTextSize(F)V
const/4 p1, 0x0
const/4 v2, 0x2
if-eq p2, v1, :cond_2c
if-eq p2, v2, :cond_25
sget-object p2, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {p2, p1}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object p2
goto :goto_32
:cond_25
sget-object p2, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {p2, v2}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object p2
goto :goto_32
:cond_2c
sget-object p2, Landroid/graphics/Typeface;->DEFAULT:Landroid/graphics/Typeface;
invoke-static {p2, v1}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object p2
:goto_32
invoke-virtual {v0, p2}, Landroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
new-array p2, v2, [F
invoke-virtual {v0, p0}, Landroid/graphics/Paint;->measureText(Ljava/lang/String;)F
move-result p0
aput p0, p2, p1
invoke-virtual {v0}, Landroid/graphics/Paint;->descent()F
move-result p0
invoke-virtual {v0}, Landroid/graphics/Paint;->ascent()F
move-result p1
sub-float/2addr p0, p1
aput p0, p2, v1
return-object p2
.end method
.method public static declared-synchronized registFontCache(ILandroid/graphics/Typeface;)V
.registers 4
const-class v0, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;
monitor-enter v0
if-eqz p0, :cond_3b
if-nez p1, :cond_8
goto :goto_3b
:cond_8
:try_start_8
sget-object v1, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->fontCache:Landroid/util/SparseArray;
if-nez v1, :cond_13
new-instance v1, Landroid/util/SparseArray;
invoke-direct {v1}, Landroid/util/SparseArray;-><init>()V
sput-object v1, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->fontCache:Landroid/util/SparseArray;
:cond_13
sget-object v1, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->fontCache:Landroid/util/SparseArray;
invoke-virtual {v1, p0}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lmapsdkvi/com/gdi/bgl/android/java/a;
if-nez v1, :cond_30
new-instance v1, Lmapsdkvi/com/gdi/bgl/android/java/a;
invoke-direct {v1}, Lmapsdkvi/com/gdi/bgl/android/java/a;-><init>()V
iput-object p1, v1, Lmapsdkvi/com/gdi/bgl/android/java/a;->a:Landroid/graphics/Typeface;
iget p1, v1, Lmapsdkvi/com/gdi/bgl/android/java/a;->b:I
add-int/lit8 p1, p1, 0x1
iput p1, v1, Lmapsdkvi/com/gdi/bgl/android/java/a;->b:I
sget-object p1, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->fontCache:Landroid/util/SparseArray;
invoke-virtual {p1, p0, v1}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
goto :goto_36
:cond_30
iget p0, v1, Lmapsdkvi/com/gdi/bgl/android/java/a;->b:I
add-int/lit8 p0, p0, 0x1
iput p0, v1, Lmapsdkvi/com/gdi/bgl/android/java/a;->b:I
:try_end_36
.catchall {:try_start_8 .. :try_end_36} :catchall_38
:goto_36
monitor-exit v0
return-void
:catchall_38
move-exception p0
monitor-exit v0
throw p0
:cond_3b
:goto_3b
monitor-exit v0
return-void
.end method
.method public static declared-synchronized removeFontCache(I)V
.registers 4
const-class v0, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;
monitor-enter v0
:try_start_3
sget-object v1, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->fontCache:Landroid/util/SparseArray;
invoke-virtual {v1, p0}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lmapsdkvi/com/gdi/bgl/android/java/a;
:try_end_b
.catchall {:try_start_3 .. :try_end_b} :catchall_20
if-nez v1, :cond_f
monitor-exit v0
return-void
:cond_f
:try_start_f
iget v2, v1, Lmapsdkvi/com/gdi/bgl/android/java/a;->b:I
add-int/lit8 v2, v2, -0x1
iput v2, v1, Lmapsdkvi/com/gdi/bgl/android/java/a;->b:I
iget v1, v1, Lmapsdkvi/com/gdi/bgl/android/java/a;->b:I
if-nez v1, :cond_1e
sget-object v1, Lmapsdkvi/com/gdi/bgl/android/java/EnvDrawText;->fontCache:Landroid/util/SparseArray;
invoke-virtual {v1, p0}, Landroid/util/SparseArray;->remove(I)V
:try_end_1e
.catchall {:try_start_f .. :try_end_1e} :catchall_20
:cond_1e
monitor-exit v0
return-void
:catchall_20
move-exception p0
monitor-exit v0
throw p0
.end method