EditTextOutline.smali
.class public Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;
.super Landroid/widget/EditText;
.source "EditTextOutline.java"
# instance fields
.field private mCache:Landroid/graphics/Bitmap;
.field private final mCanvas:Landroid/graphics/Canvas;
.field private final mPaint:Landroid/text/TextPaint;
.field private mStrokeColor:I
.field private mStrokeWidth:F
.field private mUpdateCachedBitmap:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 4
.param p1, "context" # Landroid/content/Context;
.line 24
invoke-direct {p0, p1}, Landroid/widget/EditText;-><init>(Landroid/content/Context;)V
.line 16
new-instance v0, Landroid/graphics/Canvas;
invoke-direct {v0}, Landroid/graphics/Canvas;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCanvas:Landroid/graphics/Canvas;
.line 17
new-instance v0, Landroid/text/TextPaint;
invoke-direct {v0}, Landroid/text/TextPaint;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mPaint:Landroid/text/TextPaint;
.line 26
const/4 v1, 0x0
iput v1, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mStrokeColor:I
.line 28
const/4 v1, 0x1
iput-boolean v1, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mUpdateCachedBitmap:Z
.line 29
invoke-virtual {v0, v1}, Landroid/text/TextPaint;->setAntiAlias(Z)V
.line 30
iget-object v0, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mPaint:Landroid/text/TextPaint;
sget-object v1, Landroid/graphics/Paint$Style;->FILL_AND_STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v0, v1}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
.line 31
return-void
.end method
# virtual methods
.method protected onDraw(Landroid/graphics/Canvas;)V
.registers 18
.param p1, "canvas" # Landroid/graphics/Canvas;
.line 61
move-object/from16 v0, p0
iget-object v1, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCache:Landroid/graphics/Bitmap;
if-eqz v1, :cond_c1
iget v1, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mStrokeColor:I
if-eqz v1, :cond_c1
.line 62
iget-boolean v1, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mUpdateCachedBitmap:Z
const/4 v2, 0x0
if-eqz v1, :cond_b7
.line 63
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getMeasuredWidth()I
move-result v1
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getPaddingLeft()I
move-result v3
sub-int/2addr v1, v3
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getPaddingRight()I
move-result v3
sub-int/2addr v1, v3
.line 64
.local v1, "w":I
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getMeasuredHeight()I
move-result v3
.line 65
.local v3, "h":I
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getText()Landroid/text/Editable;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v12
.line 67
.local v12, "text":Ljava/lang/String;
iget-object v4, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCanvas:Landroid/graphics/Canvas;
iget-object v5, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCache:Landroid/graphics/Bitmap;
invoke-virtual {v4, v5}, Landroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
.line 68
iget-object v4, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCanvas:Landroid/graphics/Canvas;
sget-object v5, Landroid/graphics/PorterDuff$Mode;->CLEAR:Landroid/graphics/PorterDuff$Mode;
const/4 v13, 0x0
invoke-virtual {v4, v13, v5}, Landroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
.line 70
iget v4, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mStrokeWidth:F
cmpl-float v5, v4, v2
if-lez v5, :cond_3f
goto :goto_4c
:cond_3f
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getTextSize()F
move-result v4
const/high16 v5, 0x41380000 # 11.5f
div-float/2addr v4, v5
float-to-double v4, v4
invoke-static {v4, v5}, Ljava/lang/Math;->ceil(D)D
move-result-wide v4
double-to-float v4, v4
:goto_4c
move v14, v4
.line 71
.local v14, "strokeWidth":F
iget-object v4, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mPaint:Landroid/text/TextPaint;
invoke-virtual {v4, v14}, Landroid/text/TextPaint;->setStrokeWidth(F)V
.line 72
iget-object v4, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mPaint:Landroid/text/TextPaint;
iget v5, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mStrokeColor:I
invoke-virtual {v4, v5}, Landroid/text/TextPaint;->setColor(I)V
.line 73
iget-object v4, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mPaint:Landroid/text/TextPaint;
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getTextSize()F
move-result v5
invoke-virtual {v4, v5}, Landroid/text/TextPaint;->setTextSize(F)V
.line 74
iget-object v4, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mPaint:Landroid/text/TextPaint;
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getTypeface()Landroid/graphics/Typeface;
move-result-object v5
invoke-virtual {v4, v5}, Landroid/text/TextPaint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
.line 75
iget-object v4, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mPaint:Landroid/text/TextPaint;
sget-object v5, Landroid/graphics/Paint$Style;->FILL_AND_STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v4, v5}, Landroid/text/TextPaint;->setStyle(Landroid/graphics/Paint$Style;)V
.line 77
new-instance v15, Landroid/text/StaticLayout;
iget-object v6, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mPaint:Landroid/text/TextPaint;
sget-object v8, Landroid/text/Layout$Alignment;->ALIGN_CENTER:Landroid/text/Layout$Alignment;
const/high16 v9, 0x3f800000 # 1.0f
const/4 v10, 0x0
const/4 v11, 0x1
move-object v4, v15
move-object v5, v12
move v7, v1
invoke-direct/range {v4 .. v11}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
.line 79
.local v4, "sl":Landroid/text/StaticLayout;
iget-object v5, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCanvas:Landroid/graphics/Canvas;
invoke-virtual {v5}, Landroid/graphics/Canvas;->save()I
.line 80
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getPaddingTop()I
move-result v5
sub-int v5, v3, v5
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getPaddingBottom()I
move-result v6
sub-int/2addr v5, v6
invoke-virtual {v4}, Landroid/text/StaticLayout;->getHeight()I
move-result v6
sub-int/2addr v5, v6
int-to-float v5, v5
const/high16 v6, 0x40000000 # 2.0f
div-float/2addr v5, v6
.line 81
.local v5, "a":F
iget-object v6, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCanvas:Landroid/graphics/Canvas;
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getPaddingLeft()I
move-result v7
int-to-float v7, v7
invoke-virtual/range {p0 .. p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->getPaddingTop()I
move-result v8
int-to-float v8, v8
add-float/2addr v8, v5
invoke-virtual {v6, v7, v8}, Landroid/graphics/Canvas;->translate(FF)V
.line 82
iget-object v6, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCanvas:Landroid/graphics/Canvas;
invoke-virtual {v4, v6}, Landroid/text/StaticLayout;->draw(Landroid/graphics/Canvas;)V
.line 83
iget-object v6, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCanvas:Landroid/graphics/Canvas;
invoke-virtual {v6}, Landroid/graphics/Canvas;->restore()V
.line 85
iput-boolean v13, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mUpdateCachedBitmap:Z
.line 87
.end local v1 # "w":I
.end local v3 # "h":I
.end local v4 # "sl":Landroid/text/StaticLayout;
.end local v5 # "a":F
.end local v12 # "text":Ljava/lang/String;
.end local v14 # "strokeWidth":F
:cond_b7
iget-object v1, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCache:Landroid/graphics/Bitmap;
iget-object v3, v0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mPaint:Landroid/text/TextPaint;
move-object/from16 v4, p1
invoke-virtual {v4, v1, v2, v2, v3}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
goto :goto_c3
.line 61
:cond_c1
move-object/from16 v4, p1
.line 89
:goto_c3
invoke-super/range {p0 .. p1}, Landroid/widget/EditText;->onDraw(Landroid/graphics/Canvas;)V
.line 90
return-void
.end method
.method protected onSizeChanged(IIII)V
.registers 6
.param p1, "w" # I
.param p2, "h" # I
.param p3, "oldw" # I
.param p4, "oldh" # I
.line 39
invoke-super {p0, p1, p2, p3, p4}, Landroid/widget/EditText;->onSizeChanged(IIII)V
.line 40
if-lez p1, :cond_13
if-lez p2, :cond_13
.line 41
const/4 v0, 0x1
iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mUpdateCachedBitmap:Z
.line 42
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
invoke-static {p1, p2, v0}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
iput-object v0, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCache:Landroid/graphics/Bitmap;
goto :goto_16
.line 44
:cond_13
const/4 v0, 0x0
iput-object v0, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mCache:Landroid/graphics/Bitmap;
.line 46
:goto_16
return-void
.end method
.method protected onTextChanged(Ljava/lang/CharSequence;III)V
.registers 6
.param p1, "text" # Ljava/lang/CharSequence;
.param p2, "start" # I
.param p3, "before" # I
.param p4, "after" # I
.line 34
invoke-super {p0, p1, p2, p3, p4}, Landroid/widget/EditText;->onTextChanged(Ljava/lang/CharSequence;III)V
.line 35
const/4 v0, 0x1
iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mUpdateCachedBitmap:Z
.line 36
return-void
.end method
.method public setStrokeColor(I)V
.registers 3
.param p1, "strokeColor" # I
.line 49
iput p1, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mStrokeColor:I
.line 50
const/4 v0, 0x1
iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mUpdateCachedBitmap:Z
.line 51
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->invalidate()V
.line 52
return-void
.end method
.method public setStrokeWidth(F)V
.registers 3
.param p1, "strokeWidth" # F
.line 55
iput p1, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mStrokeWidth:F
.line 56
const/4 v0, 0x1
iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->mUpdateCachedBitmap:Z
.line 57
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/paint/views/EditTextOutline;->invalidate()V
.line 58
return-void
.end method