MsgView.smali
.class public Lcom/tablayout/widget/MsgView;
.super Landroid/widget/TextView;
.source "MsgView.java"
# instance fields
.field private backgroundColor:I
.field private context:Landroid/content/Context;
.field private cornerRadius:I
.field private gd_background:Landroid/graphics/drawable/GradientDrawable;
.field private isRadiusHalfHeight:Z
.field private isWidthHeightEqual:Z
.field private strokeColor:I
.field private strokeWidth:I
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 3
.param p1, "context" # Landroid/content/Context;
.line 27
const/4 v0, 0x0
invoke-direct {p0, p1, v0}, Lcom/tablayout/widget/MsgView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.line 28
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.registers 4
.param p1, "context" # Landroid/content/Context;
.param p2, "attrs" # Landroid/util/AttributeSet;
.line 31
const/4 v0, 0x0
invoke-direct {p0, p1, p2, v0}, Lcom/tablayout/widget/MsgView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.line 32
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.registers 5
.param p1, "context" # Landroid/content/Context;
.param p2, "attrs" # Landroid/util/AttributeSet;
.param p3, "defStyleAttr" # I
.line 35
invoke-direct {p0, p1, p2, p3}, Landroid/widget/TextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.line 18
new-instance v0, Landroid/graphics/drawable/GradientDrawable;
invoke-direct {v0}, Landroid/graphics/drawable/GradientDrawable;-><init>()V
iput-object v0, p0, Lcom/tablayout/widget/MsgView;->gd_background:Landroid/graphics/drawable/GradientDrawable;
.line 36
iput-object p1, p0, Lcom/tablayout/widget/MsgView;->context:Landroid/content/Context;
.line 37
invoke-direct {p0, p1, p2}, Lcom/tablayout/widget/MsgView;->obtainAttributes(Landroid/content/Context;Landroid/util/AttributeSet;)V
.line 38
return-void
.end method
.method private obtainAttributes(Landroid/content/Context;Landroid/util/AttributeSet;)V
.registers 6
.param p1, "context" # Landroid/content/Context;
.param p2, "attrs" # Landroid/util/AttributeSet;
.line 41
sget-object v0, Lim/tpelyyftgw/messenger/R$styleable;->MsgView:[I
invoke-virtual {p1, p2, v0}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object v0
.line 42
.local v0, "ta":Landroid/content/res/TypedArray;
const/4 v1, 0x0
invoke-virtual {v0, v1, v1}, Landroid/content/res/TypedArray;->getColor(II)I
move-result v2
iput v2, p0, Lcom/tablayout/widget/MsgView;->backgroundColor:I
.line 43
const/4 v2, 0x1
invoke-virtual {v0, v2, v1}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I
move-result v2
iput v2, p0, Lcom/tablayout/widget/MsgView;->cornerRadius:I
.line 44
const/4 v2, 0x5
invoke-virtual {v0, v2, v1}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I
move-result v2
iput v2, p0, Lcom/tablayout/widget/MsgView;->strokeWidth:I
.line 45
const/4 v2, 0x4
invoke-virtual {v0, v2, v1}, Landroid/content/res/TypedArray;->getColor(II)I
move-result v2
iput v2, p0, Lcom/tablayout/widget/MsgView;->strokeColor:I
.line 46
const/4 v2, 0x2
invoke-virtual {v0, v2, v1}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
iput-boolean v2, p0, Lcom/tablayout/widget/MsgView;->isRadiusHalfHeight:Z
.line 47
const/4 v2, 0x3
invoke-virtual {v0, v2, v1}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v1
iput-boolean v1, p0, Lcom/tablayout/widget/MsgView;->isWidthHeightEqual:Z
.line 49
invoke-virtual {v0}, Landroid/content/res/TypedArray;->recycle()V
.line 50
return-void
.end method
.method private setDrawable(Landroid/graphics/drawable/GradientDrawable;II)V
.registers 5
.param p1, "gd" # Landroid/graphics/drawable/GradientDrawable;
.param p2, "color" # I
.param p3, "strokeColor" # I
.line 147
invoke-virtual {p1, p2}, Landroid/graphics/drawable/GradientDrawable;->setColor(I)V
.line 148
iget v0, p0, Lcom/tablayout/widget/MsgView;->cornerRadius:I
int-to-float v0, v0
invoke-virtual {p1, v0}, Landroid/graphics/drawable/GradientDrawable;->setCornerRadius(F)V
.line 149
iget v0, p0, Lcom/tablayout/widget/MsgView;->strokeWidth:I
invoke-virtual {p1, v0, p3}, Landroid/graphics/drawable/GradientDrawable;->setStroke(II)V
.line 150
return-void
.end method
# virtual methods
.method protected dp2px(F)I
.registers 5
.param p1, "dp" # F
.line 137
iget-object v0, p0, Lcom/tablayout/widget/MsgView;->context:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object v0
iget v0, v0, Landroid/util/DisplayMetrics;->density:F
.line 138
.local v0, "scale":F
mul-float v1, p1, v0
const/high16 v2, 0x3f000000 # 0.5f
add-float/2addr v1, v2
float-to-int v1, v1
return v1
.end method
.method public getBackgroundColor()I
.registers 2
.line 113
iget v0, p0, Lcom/tablayout/widget/MsgView;->backgroundColor:I
return v0
.end method
.method public getCornerRadius()I
.registers 2
.line 117
iget v0, p0, Lcom/tablayout/widget/MsgView;->cornerRadius:I
return v0
.end method
.method public getStrokeColor()I
.registers 2
.line 125
iget v0, p0, Lcom/tablayout/widget/MsgView;->strokeColor:I
return v0
.end method
.method public getStrokeWidth()I
.registers 2
.line 121
iget v0, p0, Lcom/tablayout/widget/MsgView;->strokeWidth:I
return v0
.end method
.method public isRadiusHalfHeight()Z
.registers 2
.line 129
iget-boolean v0, p0, Lcom/tablayout/widget/MsgView;->isRadiusHalfHeight:Z
return v0
.end method
.method public isWidthHeightEqual()Z
.registers 2
.line 133
iget-boolean v0, p0, Lcom/tablayout/widget/MsgView;->isWidthHeightEqual:Z
return v0
.end method
.method protected onLayout(ZIIII)V
.registers 7
.param p1, "changed" # Z
.param p2, "left" # I
.param p3, "top" # I
.param p4, "right" # I
.param p5, "bottom" # I
.line 66
invoke-super/range {p0 .. p5}, Landroid/widget/TextView;->onLayout(ZIIII)V
.line 67
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->isRadiusHalfHeight()Z
move-result v0
if-eqz v0, :cond_13
.line 68
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->getHeight()I
move-result v0
div-int/lit8 v0, v0, 0x2
invoke-virtual {p0, v0}, Lcom/tablayout/widget/MsgView;->setCornerRadius(I)V
goto :goto_16
.line 70
:cond_13
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->setBgSelector()V
.line 72
:goto_16
return-void
.end method
.method protected onMeasure(II)V
.registers 5
.param p1, "widthMeasureSpec" # I
.param p2, "heightMeasureSpec" # I
.line 54
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->isWidthHeightEqual()Z
move-result v0
if-eqz v0, :cond_28
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->getWidth()I
move-result v0
if-lez v0, :cond_28
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->getHeight()I
move-result v0
if-lez v0, :cond_28
.line 55
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->getWidth()I
move-result v0
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->getHeight()I
move-result v1
invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I
move-result v0
.line 56
.local v0, "max":I
const/high16 v1, 0x40000000 # 2.0f
invoke-static {v0, v1}, Landroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
move-result v1
.line 57
.local v1, "measureSpec":I
invoke-super {p0, v1, v1}, Landroid/widget/TextView;->onMeasure(II)V
.line 58
return-void
.line 61
.end local v0 # "max":I
.end local v1 # "measureSpec":I
:cond_28
invoke-super {p0, p1, p2}, Landroid/widget/TextView;->onMeasure(II)V
.line 62
return-void
.end method
.method public setBackgroundColor(I)V
.registers 2
.param p1, "backgroundColor" # I
.line 76
iput p1, p0, Lcom/tablayout/widget/MsgView;->backgroundColor:I
.line 77
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->setBgSelector()V
.line 78
return-void
.end method
.method public setBgSelector()V
.registers 5
.line 153
new-instance v0, Landroid/graphics/drawable/StateListDrawable;
invoke-direct {v0}, Landroid/graphics/drawable/StateListDrawable;-><init>()V
.line 155
.local v0, "bg":Landroid/graphics/drawable/StateListDrawable;
iget-object v1, p0, Lcom/tablayout/widget/MsgView;->gd_background:Landroid/graphics/drawable/GradientDrawable;
iget v2, p0, Lcom/tablayout/widget/MsgView;->backgroundColor:I
iget v3, p0, Lcom/tablayout/widget/MsgView;->strokeColor:I
invoke-direct {p0, v1, v2, v3}, Lcom/tablayout/widget/MsgView;->setDrawable(Landroid/graphics/drawable/GradientDrawable;II)V
.line 156
const/4 v1, 0x1
new-array v1, v1, [I
const/4 v2, 0x0
const v3, -0x10100a7
aput v3, v1, v2
iget-object v2, p0, Lcom/tablayout/widget/MsgView;->gd_background:Landroid/graphics/drawable/GradientDrawable;
invoke-virtual {v0, v1, v2}, Landroid/graphics/drawable/StateListDrawable;->addState([ILandroid/graphics/drawable/Drawable;)V
.line 158
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x10
if-lt v1, v2, :cond_26
.line 159
invoke-virtual {p0, v0}, Lcom/tablayout/widget/MsgView;->setBackground(Landroid/graphics/drawable/Drawable;)V
goto :goto_29
.line 162
:cond_26
invoke-virtual {p0, v0}, Lcom/tablayout/widget/MsgView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
.line 164
:goto_29
return-void
.end method
.method public setCornerRadius(I)V
.registers 3
.param p1, "cornerRadius" # I
.line 88
int-to-float v0, p1
invoke-virtual {p0, v0}, Lcom/tablayout/widget/MsgView;->dp2px(F)I
move-result v0
iput v0, p0, Lcom/tablayout/widget/MsgView;->cornerRadius:I
.line 89
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->setBgSelector()V
.line 90
return-void
.end method
.method public setIsRadiusHalfHeight(Z)V
.registers 2
.param p1, "isRadiusHalfHeight" # Z
.line 103
iput-boolean p1, p0, Lcom/tablayout/widget/MsgView;->isRadiusHalfHeight:Z
.line 104
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->setBgSelector()V
.line 105
return-void
.end method
.method public setIsWidthHeightEqual(Z)V
.registers 2
.param p1, "isWidthHeightEqual" # Z
.line 108
iput-boolean p1, p0, Lcom/tablayout/widget/MsgView;->isWidthHeightEqual:Z
.line 109
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->setBgSelector()V
.line 110
return-void
.end method
.method public setStrokeColor(I)V
.registers 2
.param p1, "strokeColor" # I
.line 98
iput p1, p0, Lcom/tablayout/widget/MsgView;->strokeColor:I
.line 99
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->setBgSelector()V
.line 100
return-void
.end method
.method public setStrokeWidth(I)V
.registers 3
.param p1, "strokeWidth" # I
.line 93
int-to-float v0, p1
invoke-virtual {p0, v0}, Lcom/tablayout/widget/MsgView;->dp2px(F)I
move-result v0
iput v0, p0, Lcom/tablayout/widget/MsgView;->strokeWidth:I
.line 94
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->setBgSelector()V
.line 95
return-void
.end method
.method public setWidth(I)V
.registers 4
.param p1, "width" # I
.line 81
invoke-virtual {p0}, Lcom/tablayout/widget/MsgView;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
move-result-object v0
check-cast v0, Landroid/widget/RelativeLayout$LayoutParams;
.line 82
.local v0, "lp":Landroid/widget/RelativeLayout$LayoutParams;
int-to-float v1, p1
invoke-virtual {p0, v1}, Lcom/tablayout/widget/MsgView;->dp2px(F)I
move-result v1
iput v1, v0, Landroid/widget/RelativeLayout$LayoutParams;->width:I
.line 83
int-to-float v1, p1
invoke-virtual {p0, v1}, Lcom/tablayout/widget/MsgView;->dp2px(F)I
move-result v1
iput v1, v0, Landroid/widget/RelativeLayout$LayoutParams;->height:I
.line 84
invoke-virtual {p0, v0}, Lcom/tablayout/widget/MsgView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
.line 85
return-void
.end method
.method protected sp2px(F)I
.registers 5
.param p1, "sp" # F
.line 142
iget-object v0, p0, Lcom/tablayout/widget/MsgView;->context:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object v0
iget v0, v0, Landroid/util/DisplayMetrics;->scaledDensity:F
.line 143
.local v0, "scale":F
mul-float v1, p1, v0
const/high16 v2, 0x3f000000 # 0.5f
add-float/2addr v1, v2
float-to-int v1, v1
return v1
.end method