MaterialButtonHelper.smali
.class Lcom/google/android/material/button/MaterialButtonHelper;
.super Ljava/lang/Object;
.source "MaterialButtonHelper.java"
# static fields
.field private static final IS_LOLLIPOP:Z
# instance fields
.field private backgroundOverwritten:Z
.field private backgroundTint:Landroid/content/res/ColorStateList;
.field private backgroundTintMode:Landroid/graphics/PorterDuff$Mode;
.field private checkable:Z
.field private cornerRadius:I
.field private cornerRadiusSet:Z
.field private elevation:I
.field private insetBottom:I
.field private insetLeft:I
.field private insetRight:I
.field private insetTop:I
.field private maskDrawable:Landroid/graphics/drawable/Drawable;
.field private final materialButton:Lcom/google/android/material/button/MaterialButton;
.field private rippleColor:Landroid/content/res/ColorStateList;
.field private rippleDrawable:Landroid/graphics/drawable/LayerDrawable;
.field private shapeAppearanceModel:Lcom/google/android/material/shape/ShapeAppearanceModel;
.field private shouldDrawSurfaceColorStroke:Z
.field private strokeColor:Landroid/content/res/ColorStateList;
.field private strokeWidth:I
# direct methods
.method static constructor <clinit>()V
.registers 2
.line 53
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_8
const/4 v0, 0x1
goto :goto_9
:cond_8
const/4 v0, 0x0
:goto_9
sput-boolean v0, Lcom/google/android/material/button/MaterialButtonHelper;->IS_LOLLIPOP:Z
return-void
.end method
.method constructor <init>(Lcom/google/android/material/button/MaterialButton;Lcom/google/android/material/shape/ShapeAppearanceModel;)V
.registers 4
.line 77
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
.line 70
iput-boolean v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shouldDrawSurfaceColorStroke:Z
.line 71
iput-boolean v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundOverwritten:Z
.line 72
iput-boolean v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->cornerRadiusSet:Z
.line 78
iput-object p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
.line 79
iput-object p2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shapeAppearanceModel:Lcom/google/android/material/shape/ShapeAppearanceModel;
return-void
.end method
.method private createBackground()Landroid/graphics/drawable/Drawable;
.registers 9
.line 203
new-instance v0, Lcom/google/android/material/shape/MaterialShapeDrawable;
iget-object v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shapeAppearanceModel:Lcom/google/android/material/shape/ShapeAppearanceModel;
invoke-direct {v0, v1}, Lcom/google/android/material/shape/MaterialShapeDrawable;-><init>(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
.line 204
iget-object v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-virtual {v1}, Lcom/google/android/material/button/MaterialButton;->getContext()Landroid/content/Context;
move-result-object v1
.line 205
invoke-virtual {v0, v1}, Lcom/google/android/material/shape/MaterialShapeDrawable;->initializeElevationOverlay(Landroid/content/Context;)V
.line 206
iget-object v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTint:Landroid/content/res/ColorStateList;
invoke-static {v0, v1}, Landroidx/core/graphics/drawable/DrawableCompat;->setTintList(Landroid/graphics/drawable/Drawable;Landroid/content/res/ColorStateList;)V
.line 207
iget-object v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTintMode:Landroid/graphics/PorterDuff$Mode;
if-eqz v1, :cond_1c
.line 208
invoke-static {v0, v1}, Landroidx/core/graphics/drawable/DrawableCompat;->setTintMode(Landroid/graphics/drawable/Drawable;Landroid/graphics/PorterDuff$Mode;)V
.line 210
:cond_1c
iget v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeWidth:I
int-to-float v1, v1
iget-object v2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeColor:Landroid/content/res/ColorStateList;
invoke-virtual {v0, v1, v2}, Lcom/google/android/material/shape/MaterialShapeDrawable;->setStroke(FLandroid/content/res/ColorStateList;)V
.line 212
new-instance v1, Lcom/google/android/material/shape/MaterialShapeDrawable;
iget-object v2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shapeAppearanceModel:Lcom/google/android/material/shape/ShapeAppearanceModel;
invoke-direct {v1, v2}, Lcom/google/android/material/shape/MaterialShapeDrawable;-><init>(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
const/4 v2, 0x0
.line 214
invoke-virtual {v1, v2}, Lcom/google/android/material/shape/MaterialShapeDrawable;->setTint(I)V
.line 215
iget v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeWidth:I
int-to-float v3, v3
iget-boolean v4, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shouldDrawSurfaceColorStroke:Z
if-eqz v4, :cond_3f
iget-object v4, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
sget v5, Lcom/google/android/material/R$attr;->colorSurface:I
.line 218
invoke-static {v4, v5}, Lcom/google/android/material/color/MaterialColors;->getColor(Landroid/view/View;I)I
move-result v4
goto :goto_40
:cond_3f
move v4, v2
.line 215
:goto_40
invoke-virtual {v1, v3, v4}, Lcom/google/android/material/shape/MaterialShapeDrawable;->setStroke(FI)V
.line 221
sget-boolean v3, Lcom/google/android/material/button/MaterialButtonHelper;->IS_LOLLIPOP:Z
const/4 v4, 0x2
const/4 v5, 0x1
if-eqz v3, :cond_75
.line 222
new-instance v3, Lcom/google/android/material/shape/MaterialShapeDrawable;
iget-object v6, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shapeAppearanceModel:Lcom/google/android/material/shape/ShapeAppearanceModel;
invoke-direct {v3, v6}, Lcom/google/android/material/shape/MaterialShapeDrawable;-><init>(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
iput-object v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->maskDrawable:Landroid/graphics/drawable/Drawable;
const/4 v6, -0x1
.line 223
invoke-static {v3, v6}, Landroidx/core/graphics/drawable/DrawableCompat;->setTint(Landroid/graphics/drawable/Drawable;I)V
.line 224
new-instance v3, Landroid/graphics/drawable/RippleDrawable;
iget-object v6, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleColor:Landroid/content/res/ColorStateList;
.line 226
invoke-static {v6}, Lcom/google/android/material/ripple/RippleUtils;->sanitizeRippleDrawableColor(Landroid/content/res/ColorStateList;)Landroid/content/res/ColorStateList;
move-result-object v6
new-instance v7, Landroid/graphics/drawable/LayerDrawable;
new-array v4, v4, [Landroid/graphics/drawable/Drawable;
aput-object v1, v4, v2
aput-object v0, v4, v5
invoke-direct {v7, v4}, Landroid/graphics/drawable/LayerDrawable;-><init>([Landroid/graphics/drawable/Drawable;)V
.line 227
invoke-direct {p0, v7}, Lcom/google/android/material/button/MaterialButtonHelper;->wrapDrawableWithInset(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/InsetDrawable;
move-result-object v0
iget-object v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->maskDrawable:Landroid/graphics/drawable/Drawable;
invoke-direct {v3, v6, v0, v1}, Landroid/graphics/drawable/RippleDrawable;-><init>(Landroid/content/res/ColorStateList;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
iput-object v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleDrawable:Landroid/graphics/drawable/LayerDrawable;
return-object v3
.line 233
:cond_75
new-instance v3, Lcom/google/android/material/ripple/RippleDrawableCompat;
iget-object v6, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shapeAppearanceModel:Lcom/google/android/material/shape/ShapeAppearanceModel;
invoke-direct {v3, v6}, Lcom/google/android/material/ripple/RippleDrawableCompat;-><init>(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
iput-object v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->maskDrawable:Landroid/graphics/drawable/Drawable;
.line 234
iget-object v6, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleColor:Landroid/content/res/ColorStateList;
.line 235
invoke-static {v6}, Lcom/google/android/material/ripple/RippleUtils;->sanitizeRippleDrawableColor(Landroid/content/res/ColorStateList;)Landroid/content/res/ColorStateList;
move-result-object v6
.line 234
invoke-static {v3, v6}, Landroidx/core/graphics/drawable/DrawableCompat;->setTintList(Landroid/graphics/drawable/Drawable;Landroid/content/res/ColorStateList;)V
.line 236
new-instance v3, Landroid/graphics/drawable/LayerDrawable;
const/4 v6, 0x3
new-array v6, v6, [Landroid/graphics/drawable/Drawable;
aput-object v1, v6, v2
aput-object v0, v6, v5
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->maskDrawable:Landroid/graphics/drawable/Drawable;
aput-object v0, v6, v4
invoke-direct {v3, v6}, Landroid/graphics/drawable/LayerDrawable;-><init>([Landroid/graphics/drawable/Drawable;)V
iput-object v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleDrawable:Landroid/graphics/drawable/LayerDrawable;
.line 239
invoke-direct {p0, v3}, Lcom/google/android/material/button/MaterialButtonHelper;->wrapDrawableWithInset(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/InsetDrawable;
move-result-object v0
return-object v0
.end method
.method private getMaterialShapeDrawable(Z)Lcom/google/android/material/shape/MaterialShapeDrawable;
.registers 4
.line 328
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleDrawable:Landroid/graphics/drawable/LayerDrawable;
if-eqz v0, :cond_31
invoke-virtual {v0}, Landroid/graphics/drawable/LayerDrawable;->getNumberOfLayers()I
move-result v0
if-lez v0, :cond_31
.line 329
sget-boolean v0, Lcom/google/android/material/button/MaterialButtonHelper;->IS_LOLLIPOP:Z
if-eqz v0, :cond_26
.line 330
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleDrawable:Landroid/graphics/drawable/LayerDrawable;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object v0
check-cast v0, Landroid/graphics/drawable/InsetDrawable;
.line 331
invoke-virtual {v0}, Landroid/graphics/drawable/InsetDrawable;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v0
check-cast v0, Landroid/graphics/drawable/LayerDrawable;
xor-int/lit8 p1, p1, 0x1
.line 333
invoke-virtual {v0, p1}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object p1
check-cast p1, Lcom/google/android/material/shape/MaterialShapeDrawable;
return-object p1
.line 335
:cond_26
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleDrawable:Landroid/graphics/drawable/LayerDrawable;
xor-int/lit8 p1, p1, 0x1
.line 336
invoke-virtual {v0, p1}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object p1
check-cast p1, Lcom/google/android/material/shape/MaterialShapeDrawable;
return-object p1
:cond_31
const/4 p1, 0x0
return-object p1
.end method
.method private getSurfaceColorStrokeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
.registers 2
const/4 v0, 0x1
.line 358
invoke-direct {p0, v0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable(Z)Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v0
return-object v0
.end method
.method private setVerticalInsets(II)V
.registers 10
.line 411
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-static {v0}, Landroidx/core/view/ViewCompat;->getPaddingStart(Landroid/view/View;)I
move-result v0
.line 412
iget-object v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-virtual {v1}, Lcom/google/android/material/button/MaterialButton;->getPaddingTop()I
move-result v1
.line 413
iget-object v2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-static {v2}, Landroidx/core/view/ViewCompat;->getPaddingEnd(Landroid/view/View;)I
move-result v2
.line 414
iget-object v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-virtual {v3}, Lcom/google/android/material/button/MaterialButton;->getPaddingBottom()I
move-result v3
.line 415
iget v4, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetTop:I
.line 416
iget v5, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetBottom:I
.line 417
iput p2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetBottom:I
.line 418
iput p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetTop:I
.line 419
iget-boolean v6, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundOverwritten:Z
if-nez v6, :cond_27
.line 420
invoke-direct {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->updateBackground()V
.line 423
:cond_27
iget-object v6, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
add-int/2addr v1, p1
sub-int/2addr v1, v4
add-int/2addr v3, p2
sub-int/2addr v3, v5
invoke-static {v6, v0, v1, v2, v3}, Landroidx/core/view/ViewCompat;->setPaddingRelative(Landroid/view/View;IIII)V
return-void
.end method
.method private updateBackground()V
.registers 3
.line 137
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-direct {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->createBackground()Landroid/graphics/drawable/Drawable;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/google/android/material/button/MaterialButton;->setInternalBackground(Landroid/graphics/drawable/Drawable;)V
.line 138
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v0
if-eqz v0, :cond_15
.line 140
iget v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->elevation:I
int-to-float v1, v1
invoke-virtual {v0, v1}, Lcom/google/android/material/shape/MaterialShapeDrawable;->setElevation(F)V
:cond_15
return-void
.end method
.method private updateButtonShape(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
.registers 3
.line 362
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v0
if-eqz v0, :cond_d
.line 363
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/google/android/material/shape/MaterialShapeDrawable;->setShapeAppearanceModel(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
.line 365
:cond_d
invoke-direct {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getSurfaceColorStrokeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v0
if-eqz v0, :cond_1a
.line 366
invoke-direct {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getSurfaceColorStrokeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/google/android/material/shape/MaterialShapeDrawable;->setShapeAppearanceModel(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
.line 368
:cond_1a
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaskDrawable()Lcom/google/android/material/shape/Shapeable;
move-result-object v0
if-eqz v0, :cond_27
.line 369
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaskDrawable()Lcom/google/android/material/shape/Shapeable;
move-result-object v0
invoke-interface {v0, p1}, Lcom/google/android/material/shape/Shapeable;->setShapeAppearanceModel(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
:cond_27
return-void
.end method
.method private updateStroke()V
.registers 5
.line 297
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v0
.line 298
invoke-direct {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getSurfaceColorStrokeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v1
if-eqz v0, :cond_28
.line 300
iget v2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeWidth:I
int-to-float v2, v2
iget-object v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeColor:Landroid/content/res/ColorStateList;
invoke-virtual {v0, v2, v3}, Lcom/google/android/material/shape/MaterialShapeDrawable;->setStroke(FLandroid/content/res/ColorStateList;)V
if-eqz v1, :cond_28
.line 302
iget v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeWidth:I
int-to-float v0, v0
iget-boolean v2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shouldDrawSurfaceColorStroke:Z
if-eqz v2, :cond_24
iget-object v2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
sget v3, Lcom/google/android/material/R$attr;->colorSurface:I
.line 305
invoke-static {v2, v3}, Lcom/google/android/material/color/MaterialColors;->getColor(Landroid/view/View;I)I
move-result v2
goto :goto_25
:cond_24
const/4 v2, 0x0
.line 302
:goto_25
invoke-virtual {v1, v0, v2}, Lcom/google/android/material/shape/MaterialShapeDrawable;->setStroke(FI)V
:cond_28
return-void
.end method
.method private wrapDrawableWithInset(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/InsetDrawable;
.registers 9
.line 163
new-instance v6, Landroid/graphics/drawable/InsetDrawable;
iget v2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetLeft:I
iget v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetTop:I
iget v4, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetRight:I
iget v5, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetBottom:I
move-object v0, v6
move-object v1, p1
invoke-direct/range {v0 .. v5}, Landroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/Drawable;IIII)V
return-object v6
.end method
# virtual methods
.method getCornerRadius()I
.registers 2
.line 323
iget v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->cornerRadius:I
return v0
.end method
.method public getInsetBottom()I
.registers 2
.line 402
iget v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetBottom:I
return v0
.end method
.method public getInsetTop()I
.registers 2
.line 432
iget v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetTop:I
return v0
.end method
.method public getMaskDrawable()Lcom/google/android/material/shape/Shapeable;
.registers 4
.line 375
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleDrawable:Landroid/graphics/drawable/LayerDrawable;
if-eqz v0, :cond_26
invoke-virtual {v0}, Landroid/graphics/drawable/LayerDrawable;->getNumberOfLayers()I
move-result v0
const/4 v1, 0x1
if-le v0, v1, :cond_26
.line 376
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleDrawable:Landroid/graphics/drawable/LayerDrawable;
invoke-virtual {v0}, Landroid/graphics/drawable/LayerDrawable;->getNumberOfLayers()I
move-result v0
const/4 v2, 0x2
if-le v0, v2, :cond_1d
.line 378
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleDrawable:Landroid/graphics/drawable/LayerDrawable;
invoke-virtual {v0, v2}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object v0
check-cast v0, Lcom/google/android/material/shape/Shapeable;
return-object v0
.line 381
:cond_1d
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleDrawable:Landroid/graphics/drawable/LayerDrawable;
invoke-virtual {v0, v1}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object v0
check-cast v0, Lcom/google/android/material/shape/Shapeable;
return-object v0
:cond_26
const/4 v0, 0x0
return-object v0
.end method
.method getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
.registers 2
const/4 v0, 0x0
.line 345
invoke-direct {p0, v0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable(Z)Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v0
return-object v0
.end method
.method getRippleColor()Landroid/content/res/ColorStateList;
.registers 2
.line 270
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleColor:Landroid/content/res/ColorStateList;
return-object v0
.end method
.method getShapeAppearanceModel()Lcom/google/android/material/shape/ShapeAppearanceModel;
.registers 2
.line 394
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shapeAppearanceModel:Lcom/google/android/material/shape/ShapeAppearanceModel;
return-object v0
.end method
.method getStrokeColor()Landroid/content/res/ColorStateList;
.registers 2
.line 282
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeColor:Landroid/content/res/ColorStateList;
return-object v0
.end method
.method getStrokeWidth()I
.registers 2
.line 293
iget v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeWidth:I
return v0
.end method
.method getSupportBackgroundTintList()Landroid/content/res/ColorStateList;
.registers 2
.line 176
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTint:Landroid/content/res/ColorStateList;
return-object v0
.end method
.method getSupportBackgroundTintMode()Landroid/graphics/PorterDuff$Mode;
.registers 2
.line 189
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTintMode:Landroid/graphics/PorterDuff$Mode;
return-object v0
.end method
.method isBackgroundOverwritten()Z
.registers 2
.line 158
iget-boolean v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundOverwritten:Z
return v0
.end method
.method isCheckable()Z
.registers 2
.line 353
iget-boolean v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->checkable:Z
return v0
.end method
.method loadFromAttributes(Landroid/content/res/TypedArray;)V
.registers 7
.line 83
sget v0, Lcom/google/android/material/R$styleable;->MaterialButton_android_insetLeft:I
const/4 v1, 0x0
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getDimensionPixelOffset(II)I
move-result v0
iput v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetLeft:I
.line 84
sget v0, Lcom/google/android/material/R$styleable;->MaterialButton_android_insetRight:I
.line 85
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getDimensionPixelOffset(II)I
move-result v0
iput v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetRight:I
.line 86
sget v0, Lcom/google/android/material/R$styleable;->MaterialButton_android_insetTop:I
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getDimensionPixelOffset(II)I
move-result v0
iput v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetTop:I
.line 87
sget v0, Lcom/google/android/material/R$styleable;->MaterialButton_android_insetBottom:I
.line 88
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getDimensionPixelOffset(II)I
move-result v0
iput v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetBottom:I
.line 91
sget v0, Lcom/google/android/material/R$styleable;->MaterialButton_cornerRadius:I
invoke-virtual {p1, v0}, Landroid/content/res/TypedArray;->hasValue(I)Z
move-result v0
const/4 v2, -0x1
if-eqz v0, :cond_3f
.line 92
sget v0, Lcom/google/android/material/R$styleable;->MaterialButton_cornerRadius:I
invoke-virtual {p1, v0, v2}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I
move-result v0
iput v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->cornerRadius:I
.line 93
iget-object v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shapeAppearanceModel:Lcom/google/android/material/shape/ShapeAppearanceModel;
int-to-float v0, v0
invoke-virtual {v3, v0}, Lcom/google/android/material/shape/ShapeAppearanceModel;->withCornerSize(F)Lcom/google/android/material/shape/ShapeAppearanceModel;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/google/android/material/button/MaterialButtonHelper;->setShapeAppearanceModel(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
const/4 v0, 0x1
.line 94
iput-boolean v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->cornerRadiusSet:Z
.line 97
:cond_3f
sget v0, Lcom/google/android/material/R$styleable;->MaterialButton_strokeWidth:I
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I
move-result v0
iput v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeWidth:I
.line 99
sget v0, Lcom/google/android/material/R$styleable;->MaterialButton_backgroundTintMode:I
.line 101
invoke-virtual {p1, v0, v2}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v0
sget-object v2, Landroid/graphics/PorterDuff$Mode;->SRC_IN:Landroid/graphics/PorterDuff$Mode;
.line 100
invoke-static {v0, v2}, Lcom/google/android/material/internal/ViewUtils;->parseTintMode(ILandroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuff$Mode;
move-result-object v0
iput-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTintMode:Landroid/graphics/PorterDuff$Mode;
.line 102
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
.line 104
invoke-virtual {v0}, Lcom/google/android/material/button/MaterialButton;->getContext()Landroid/content/Context;
move-result-object v0
sget v2, Lcom/google/android/material/R$styleable;->MaterialButton_backgroundTint:I
.line 103
invoke-static {v0, p1, v2}, Lcom/google/android/material/resources/MaterialResources;->getColorStateList(Landroid/content/Context;Landroid/content/res/TypedArray;I)Landroid/content/res/ColorStateList;
move-result-object v0
iput-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTint:Landroid/content/res/ColorStateList;
.line 105
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
.line 107
invoke-virtual {v0}, Lcom/google/android/material/button/MaterialButton;->getContext()Landroid/content/Context;
move-result-object v0
sget v2, Lcom/google/android/material/R$styleable;->MaterialButton_strokeColor:I
.line 106
invoke-static {v0, p1, v2}, Lcom/google/android/material/resources/MaterialResources;->getColorStateList(Landroid/content/Context;Landroid/content/res/TypedArray;I)Landroid/content/res/ColorStateList;
move-result-object v0
iput-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeColor:Landroid/content/res/ColorStateList;
.line 108
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
.line 110
invoke-virtual {v0}, Lcom/google/android/material/button/MaterialButton;->getContext()Landroid/content/Context;
move-result-object v0
sget v2, Lcom/google/android/material/R$styleable;->MaterialButton_rippleColor:I
.line 109
invoke-static {v0, p1, v2}, Lcom/google/android/material/resources/MaterialResources;->getColorStateList(Landroid/content/Context;Landroid/content/res/TypedArray;I)Landroid/content/res/ColorStateList;
move-result-object v0
iput-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleColor:Landroid/content/res/ColorStateList;
.line 112
sget v0, Lcom/google/android/material/R$styleable;->MaterialButton_android_checkable:I
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v0
iput-boolean v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->checkable:Z
.line 113
sget v0, Lcom/google/android/material/R$styleable;->MaterialButton_elevation:I
invoke-virtual {p1, v0, v1}, Landroid/content/res/TypedArray;->getDimensionPixelSize(II)I
move-result v0
iput v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->elevation:I
.line 116
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-static {v0}, Landroidx/core/view/ViewCompat;->getPaddingStart(Landroid/view/View;)I
move-result v0
.line 117
iget-object v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-virtual {v1}, Lcom/google/android/material/button/MaterialButton;->getPaddingTop()I
move-result v1
.line 118
iget-object v2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-static {v2}, Landroidx/core/view/ViewCompat;->getPaddingEnd(Landroid/view/View;)I
move-result v2
.line 119
iget-object v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-virtual {v3}, Lcom/google/android/material/button/MaterialButton;->getPaddingBottom()I
move-result v3
.line 122
sget v4, Lcom/google/android/material/R$styleable;->MaterialButton_android_background:I
invoke-virtual {p1, v4}, Landroid/content/res/TypedArray;->hasValue(I)Z
move-result p1
if-eqz p1, :cond_b3
.line 123
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->setBackgroundOverwritten()V
goto :goto_b6
.line 125
:cond_b3
invoke-direct {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->updateBackground()V
.line 128
:goto_b6
iget-object p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
iget v4, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetLeft:I
add-int/2addr v0, v4
iget v4, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetTop:I
add-int/2addr v1, v4
iget v4, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetRight:I
add-int/2addr v2, v4
iget v4, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetBottom:I
add-int/2addr v3, v4
invoke-static {p1, v0, v1, v2, v3}, Landroidx/core/view/ViewCompat;->setPaddingRelative(Landroid/view/View;IIII)V
return-void
.end method
.method setBackgroundColor(I)V
.registers 3
.line 250
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v0
if-eqz v0, :cond_d
.line 251
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/google/android/material/shape/MaterialShapeDrawable;->setTint(I)V
:cond_d
return-void
.end method
.method setBackgroundOverwritten()V
.registers 3
const/4 v0, 0x1
.line 150
iput-boolean v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundOverwritten:Z
.line 153
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
iget-object v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTint:Landroid/content/res/ColorStateList;
invoke-virtual {v0, v1}, Lcom/google/android/material/button/MaterialButton;->setSupportBackgroundTintList(Landroid/content/res/ColorStateList;)V
.line 154
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
iget-object v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTintMode:Landroid/graphics/PorterDuff$Mode;
invoke-virtual {v0, v1}, Lcom/google/android/material/button/MaterialButton;->setSupportBackgroundTintMode(Landroid/graphics/PorterDuff$Mode;)V
return-void
.end method
.method setCheckable(Z)V
.registers 2
.line 349
iput-boolean p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->checkable:Z
return-void
.end method
.method setCornerRadius(I)V
.registers 3
.line 314
iget-boolean v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->cornerRadiusSet:Z
if-eqz v0, :cond_8
iget v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->cornerRadius:I
if-eq v0, p1, :cond_17
.line 315
:cond_8
iput p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->cornerRadius:I
const/4 v0, 0x1
.line 316
iput-boolean v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->cornerRadiusSet:Z
.line 318
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shapeAppearanceModel:Lcom/google/android/material/shape/ShapeAppearanceModel;
int-to-float p1, p1
invoke-virtual {v0, p1}, Lcom/google/android/material/shape/ShapeAppearanceModel;->withCornerSize(F)Lcom/google/android/material/shape/ShapeAppearanceModel;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/google/android/material/button/MaterialButtonHelper;->setShapeAppearanceModel(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
:cond_17
return-void
.end method
.method public setInsetBottom(I)V
.registers 3
.line 398
iget v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetTop:I
invoke-direct {p0, v0, p1}, Lcom/google/android/material/button/MaterialButtonHelper;->setVerticalInsets(II)V
return-void
.end method
.method public setInsetTop(I)V
.registers 3
.line 406
iget v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetBottom:I
invoke-direct {p0, p1, v0}, Lcom/google/android/material/button/MaterialButtonHelper;->setVerticalInsets(II)V
return-void
.end method
.method setRippleColor(Landroid/content/res/ColorStateList;)V
.registers 4
.line 256
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleColor:Landroid/content/res/ColorStateList;
if-eq v0, p1, :cond_3f
.line 257
iput-object p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->rippleColor:Landroid/content/res/ColorStateList;
.line 258
sget-boolean v0, Lcom/google/android/material/button/MaterialButtonHelper;->IS_LOLLIPOP:Z
if-eqz v0, :cond_24
iget-object v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-virtual {v1}, Lcom/google/android/material/button/MaterialButton;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v1
instance-of v1, v1, Landroid/graphics/drawable/RippleDrawable;
if-eqz v1, :cond_24
.line 259
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-virtual {v0}, Lcom/google/android/material/button/MaterialButton;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
check-cast v0, Landroid/graphics/drawable/RippleDrawable;
.line 260
invoke-static {p1}, Lcom/google/android/material/ripple/RippleUtils;->sanitizeRippleDrawableColor(Landroid/content/res/ColorStateList;)Landroid/content/res/ColorStateList;
move-result-object p1
invoke-virtual {v0, p1}, Landroid/graphics/drawable/RippleDrawable;->setColor(Landroid/content/res/ColorStateList;)V
goto :goto_3f
:cond_24
if-nez v0, :cond_3f
.line 261
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-virtual {v0}, Lcom/google/android/material/button/MaterialButton;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
instance-of v0, v0, Lcom/google/android/material/ripple/RippleDrawableCompat;
if-eqz v0, :cond_3f
.line 262
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->materialButton:Lcom/google/android/material/button/MaterialButton;
invoke-virtual {v0}, Lcom/google/android/material/button/MaterialButton;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
check-cast v0, Lcom/google/android/material/ripple/RippleDrawableCompat;
.line 263
invoke-static {p1}, Lcom/google/android/material/ripple/RippleUtils;->sanitizeRippleDrawableColor(Landroid/content/res/ColorStateList;)Landroid/content/res/ColorStateList;
move-result-object p1
.line 262
invoke-virtual {v0, p1}, Lcom/google/android/material/ripple/RippleDrawableCompat;->setTintList(Landroid/content/res/ColorStateList;)V
:cond_3f
:goto_3f
return-void
.end method
.method setShapeAppearanceModel(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
.registers 2
.line 388
iput-object p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shapeAppearanceModel:Lcom/google/android/material/shape/ShapeAppearanceModel;
.line 389
invoke-direct {p0, p1}, Lcom/google/android/material/button/MaterialButtonHelper;->updateButtonShape(Lcom/google/android/material/shape/ShapeAppearanceModel;)V
return-void
.end method
.method setShouldDrawSurfaceColorStroke(Z)V
.registers 2
.line 193
iput-boolean p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->shouldDrawSurfaceColorStroke:Z
.line 194
invoke-direct {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->updateStroke()V
return-void
.end method
.method setStrokeColor(Landroid/content/res/ColorStateList;)V
.registers 3
.line 274
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeColor:Landroid/content/res/ColorStateList;
if-eq v0, p1, :cond_9
.line 275
iput-object p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeColor:Landroid/content/res/ColorStateList;
.line 276
invoke-direct {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->updateStroke()V
:cond_9
return-void
.end method
.method setStrokeWidth(I)V
.registers 3
.line 286
iget v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeWidth:I
if-eq v0, p1, :cond_9
.line 287
iput p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->strokeWidth:I
.line 288
invoke-direct {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->updateStroke()V
:cond_9
return-void
.end method
.method setSupportBackgroundTintList(Landroid/content/res/ColorStateList;)V
.registers 3
.line 167
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTint:Landroid/content/res/ColorStateList;
if-eq v0, p1, :cond_15
.line 168
iput-object p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTint:Landroid/content/res/ColorStateList;
.line 169
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object p1
if-eqz p1, :cond_15
.line 170
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object p1
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTint:Landroid/content/res/ColorStateList;
invoke-static {p1, v0}, Landroidx/core/graphics/drawable/DrawableCompat;->setTintList(Landroid/graphics/drawable/Drawable;Landroid/content/res/ColorStateList;)V
:cond_15
return-void
.end method
.method setSupportBackgroundTintMode(Landroid/graphics/PorterDuff$Mode;)V
.registers 3
.line 180
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTintMode:Landroid/graphics/PorterDuff$Mode;
if-eq v0, p1, :cond_19
.line 181
iput-object p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTintMode:Landroid/graphics/PorterDuff$Mode;
.line 182
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object p1
if-eqz p1, :cond_19
iget-object p1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTintMode:Landroid/graphics/PorterDuff$Mode;
if-eqz p1, :cond_19
.line 183
invoke-virtual {p0}, Lcom/google/android/material/button/MaterialButtonHelper;->getMaterialShapeDrawable()Lcom/google/android/material/shape/MaterialShapeDrawable;
move-result-object p1
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->backgroundTintMode:Landroid/graphics/PorterDuff$Mode;
invoke-static {p1, v0}, Landroidx/core/graphics/drawable/DrawableCompat;->setTintMode(Landroid/graphics/drawable/Drawable;Landroid/graphics/PorterDuff$Mode;)V
:cond_19
return-void
.end method
.method updateMaskBounds(II)V
.registers 7
.line 244
iget-object v0, p0, Lcom/google/android/material/button/MaterialButtonHelper;->maskDrawable:Landroid/graphics/drawable/Drawable;
if-eqz v0, :cond_11
.line 245
iget v1, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetLeft:I
iget v2, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetTop:I
iget v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetRight:I
sub-int/2addr p2, v3
iget v3, p0, Lcom/google/android/material/button/MaterialButtonHelper;->insetBottom:I
sub-int/2addr p1, v3
invoke-virtual {v0, v1, v2, p2, p1}, Landroid/graphics/drawable/Drawable;->setBounds(IIII)V
:cond_11
return-void
.end method