CapsuleLayout.smali
.class public Lcom/dcloud/android/widget/CapsuleLayout;
.super Landroid/widget/LinearLayout;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;,
Lcom/dcloud/android/widget/CapsuleLayout$ButtonType;
}
.end annotation
# static fields
.field public static final STYLE_DARK:I = 0x2
.field public static final STYLE_LIGHT:I = 0x1
# instance fields
.field public isDiy:Z
.field public mAngle:F
.field public mBackgroundColor:I
.field mDrawable:Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
.field private mIntervals:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Landroid/view/View;",
">;"
}
.end annotation
.end field
.field public mPaint:Landroid/graphics/Paint;
.field private mSelectColor:I
.field public mStrokeColor:I
.field public mStrokeWidth:I
.field private mStyle:I
# direct methods
.method public constructor <init>(Landroid/content/Context;F)V
.registers 4
.line 1
invoke-direct {p0, p1}, Landroid/widget/LinearLayout;-><init>(Landroid/content/Context;)V
const/4 p1, 0x1
.line 2
iput p1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStyle:I
const/4 v0, 0x0
.line 14
iput-boolean v0, p0, Lcom/dcloud/android/widget/CapsuleLayout;->isDiy:Z
.line 15
iput p2, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mAngle:F
.line 16
new-instance p2, Ljava/util/ArrayList;
invoke-direct {p2}, Ljava/util/ArrayList;-><init>()V
iput-object p2, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mIntervals:Ljava/util/List;
const-string p2, "#ffffffff"
.line 17
invoke-static {p2}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I
move-result p2
const-string v0, "#ffe5e5e5"
invoke-static {v0}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I
move-result v0
invoke-virtual {p0, p2, v0, p1}, Lcom/dcloud/android/widget/CapsuleLayout;->setRoundColor(III)V
const-string p1, "#CBCCCD"
.line 18
invoke-static {p1}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I
move-result p1
iput p1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mSelectColor:I
return-void
.end method
.method private initButtonBackground(Landroid/view/View;Lcom/dcloud/android/widget/CapsuleLayout$ButtonType;)V
.registers 20
move-object/from16 v0, p0
move-object/from16 v1, p1
.line 1
new-instance v2, Landroid/graphics/drawable/StateListDrawable;
invoke-direct {v2}, Landroid/graphics/drawable/StateListDrawable;-><init>()V
.line 3
new-instance v3, Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
const/4 v4, 0x0
invoke-direct {v3, v0, v4}, Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;-><init>(Lcom/dcloud/android/widget/CapsuleLayout;Lcom/dcloud/android/widget/CapsuleLayout$1;)V
.line 4
new-instance v5, Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
invoke-direct {v5, v0, v4}, Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;-><init>(Lcom/dcloud/android/widget/CapsuleLayout;Lcom/dcloud/android/widget/CapsuleLayout$1;)V
const/4 v4, 0x0
new-array v6, v4, [F
.line 6
sget-object v7, Lcom/dcloud/android/widget/CapsuleLayout$1;->$SwitchMap$com$dcloud$android$widget$CapsuleLayout$ButtonType:[I
invoke-virtual/range {p2 .. p2}, Ljava/lang/Enum;->ordinal()I
move-result v8
aget v7, v7, v8
const/4 v8, 0x7
const/4 v9, 0x6
const/4 v10, 0x5
const/4 v11, 0x4
const/4 v12, 0x3
const/16 v13, 0x8
const/4 v14, 0x2
const/4 v15, 0x1
const/16 v16, 0x0
if-eq v7, v15, :cond_51
if-eq v7, v14, :cond_37
if-eq v7, v12, :cond_31
goto :goto_6a
:cond_31
new-array v6, v13, [F
.line 29
fill-array-data v6, :array_ba
goto :goto_6a
:cond_37
new-array v6, v13, [F
aput v16, v6, v4
aput v16, v6, v15
.line 30
iget v7, v0, Lcom/dcloud/android/widget/CapsuleLayout;->mAngle:F
aput v7, v6, v14
aput v7, v6, v12
aput v7, v6, v11
aput v7, v6, v10
aput v16, v6, v9
aput v16, v6, v8
.line 36
iget v7, v0, Lcom/dcloud/android/widget/CapsuleLayout;->mStrokeWidth:I
invoke-virtual {v5, v7, v4}, Landroid/graphics/drawable/GradientDrawable;->setStroke(II)V
goto :goto_6a
:cond_51
new-array v6, v13, [F
.line 37
iget v7, v0, Lcom/dcloud/android/widget/CapsuleLayout;->mAngle:F
aput v7, v6, v4
aput v7, v6, v15
aput v16, v6, v14
aput v16, v6, v12
aput v16, v6, v11
aput v16, v6, v10
aput v7, v6, v9
aput v7, v6, v8
.line 44
iget v7, v0, Lcom/dcloud/android/widget/CapsuleLayout;->mStrokeWidth:I
invoke-virtual {v5, v7, v4}, Landroid/graphics/drawable/GradientDrawable;->setStroke(II)V
.line 61
:goto_6a
invoke-virtual {v5, v6}, Landroid/graphics/drawable/GradientDrawable;->setCornerRadii([F)V
.line 62
invoke-virtual {v3, v6}, Landroid/graphics/drawable/GradientDrawable;->setCornerRadii([F)V
.line 64
invoke-virtual {v3, v4}, Landroid/graphics/drawable/GradientDrawable;->setColor(I)V
.line 65
iget v6, v0, Lcom/dcloud/android/widget/CapsuleLayout;->mSelectColor:I
invoke-virtual {v5, v6}, Landroid/graphics/drawable/GradientDrawable;->setColor(I)V
new-array v6, v14, [I
.line 67
fill-array-data v6, :array_ce
invoke-virtual {v2, v6, v5}, Landroid/graphics/drawable/StateListDrawable;->addState([ILandroid/graphics/drawable/Drawable;)V
new-array v6, v14, [I
.line 69
fill-array-data v6, :array_d6
invoke-virtual {v2, v6, v5}, Landroid/graphics/drawable/StateListDrawable;->addState([ILandroid/graphics/drawable/Drawable;)V
new-array v6, v15, [I
const v7, 0x101009e
aput v7, v6, v4
.line 71
invoke-virtual {v2, v6, v3}, Landroid/graphics/drawable/StateListDrawable;->addState([ILandroid/graphics/drawable/Drawable;)V
new-array v6, v15, [I
const v7, 0x101009c
aput v7, v6, v4
.line 73
invoke-virtual {v2, v6, v5}, Landroid/graphics/drawable/StateListDrawable;->addState([ILandroid/graphics/drawable/Drawable;)V
new-array v6, v15, [I
const v7, 0x101009d
aput v7, v6, v4
.line 75
invoke-virtual {v2, v6, v5}, Landroid/graphics/drawable/StateListDrawable;->addState([ILandroid/graphics/drawable/Drawable;)V
new-array v4, v4, [I
.line 77
invoke-virtual {v2, v4, v3}, Landroid/graphics/drawable/StateListDrawable;->addState([ILandroid/graphics/drawable/Drawable;)V
.line 79
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x10
if-ge v3, v4, :cond_b5
.line 80
invoke-virtual {v1, v2}, Landroid/view/View;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
goto :goto_b8
.line 82
:cond_b5
invoke-virtual {v1, v2}, Landroid/view/View;->setBackground(Landroid/graphics/drawable/Drawable;)V
:goto_b8
return-void
nop
:array_ba
.array-data 4
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
.end array-data
:array_ce
.array-data 4
0x10100a7
0x101009e
.end array-data
:array_d6
.array-data 4
0x101009e
0x101009c
.end array-data
.end method
.method private updateBackground()V
.registers 4
.line 1
iget-object v0, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mDrawable:Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
if-nez v0, :cond_19
.line 2
new-instance v0, Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
const/4 v1, 0x0
invoke-direct {v0, p0, v1}, Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;-><init>(Lcom/dcloud/android/widget/CapsuleLayout;Lcom/dcloud/android/widget/CapsuleLayout$1;)V
iput-object v0, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mDrawable:Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
.line 3
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x10
if-ge v1, v2, :cond_16
.line 4
invoke-virtual {p0, v0}, Landroid/widget/LinearLayout;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
goto :goto_19
.line 6
:cond_16
invoke-virtual {p0, v0}, Lcom/dcloud/android/widget/CapsuleLayout;->setBackground(Landroid/graphics/drawable/Drawable;)V
.line 9
:cond_19
:goto_19
iget-object v0, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mDrawable:Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
iget v1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mAngle:F
invoke-virtual {v0, v1}, Landroid/graphics/drawable/GradientDrawable;->setCornerRadius(F)V
.line 10
iget-object v0, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mDrawable:Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
iget v1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStrokeWidth:I
iget v2, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStrokeColor:I
invoke-virtual {v0, v1, v2}, Landroid/graphics/drawable/GradientDrawable;->setStroke(II)V
.line 11
iget-object v0, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mDrawable:Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
iget v1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mBackgroundColor:I
invoke-virtual {v0, v1}, Landroid/graphics/drawable/GradientDrawable;->setColor(I)V
.line 12
iget-object v0, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mDrawable:Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
invoke-virtual {v0}, Landroid/graphics/drawable/GradientDrawable;->invalidateSelf()V
return-void
.end method
.method private updateIntervalColor()V
.registers 4
.line 1
iget-object v0, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mIntervals:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_6
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_18
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/view/View;
.line 2
iget v2, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStrokeColor:I
invoke-virtual {v1, v2}, Landroid/view/View;->setBackgroundColor(I)V
goto :goto_6
:cond_18
return-void
.end method
# virtual methods
.method public addButtonView(Landroid/view/View;Landroid/widget/LinearLayout$LayoutParams;Lcom/dcloud/android/widget/CapsuleLayout$ButtonType;Landroid/view/View$OnClickListener;)V
.registers 8
.line 1
new-instance v0, Landroid/widget/LinearLayout$LayoutParams;
const/4 v1, -0x1
invoke-direct {v0, v1, v1}, Landroid/widget/LinearLayout$LayoutParams;-><init>(II)V
const/high16 v1, 0x3f800000 # 1.0f
.line 2
iput v1, v0, Landroid/widget/LinearLayout$LayoutParams;->weight:F
const/16 v1, 0x11
.line 3
iput v1, v0, Landroid/widget/LinearLayout$LayoutParams;->gravity:I
.line 5
new-instance v1, Landroid/widget/LinearLayout;
invoke-virtual {p0}, Landroid/widget/LinearLayout;->getContext()Landroid/content/Context;
move-result-object v2
invoke-direct {v1, v2}, Landroid/widget/LinearLayout;-><init>(Landroid/content/Context;)V
.line 6
invoke-virtual {v1, p1, p2}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
.line 7
invoke-virtual {p0, v1, v0}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
.line 8
invoke-virtual {v1, p4}, Landroid/widget/LinearLayout;->setOnClickListener(Landroid/view/View$OnClickListener;)V
.line 9
invoke-direct {p0, v1, p3}, Lcom/dcloud/android/widget/CapsuleLayout;->initButtonBackground(Landroid/view/View;Lcom/dcloud/android/widget/CapsuleLayout$ButtonType;)V
return-void
.end method
.method public addIntervalView(F)V
.registers 6
.line 1
new-instance v0, Landroid/view/View;
invoke-virtual {p0}, Landroid/widget/LinearLayout;->getContext()Landroid/content/Context;
move-result-object v1
invoke-direct {v0, v1}, Landroid/view/View;-><init>(Landroid/content/Context;)V
.line 2
iget v1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStrokeColor:I
invoke-virtual {v0, v1}, Landroid/view/View;->setBackgroundColor(I)V
.line 3
new-instance v1, Landroid/widget/LinearLayout$LayoutParams;
iget v2, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStrokeWidth:I
const/high16 v3, 0x41900000 # 18.0f
mul-float/2addr p1, v3
float-to-int p1, p1
invoke-direct {v1, v2, p1}, Landroid/widget/LinearLayout$LayoutParams;-><init>(II)V
.line 4
invoke-virtual {p0, v0, v1}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
.line 5
iget-object p1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mIntervals:Ljava/util/List;
invoke-interface {p1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method public checkColorToStyle(I)I
.registers 7
.line 1
iget-boolean v0, p0, Lcom/dcloud/android/widget/CapsuleLayout;->isDiy:Z
const/4 v1, 0x1
if-eqz v0, :cond_6
return v1
:cond_6
shr-int/lit8 v0, p1, 0x10
and-int/lit16 v0, v0, 0xff
shr-int/lit8 v2, p1, 0x8
and-int/lit16 v2, v2, 0xff
and-int/lit16 p1, p1, 0xff
const/4 v3, 0x2
const/16 v4, 0xeb
if-le v0, v4, :cond_32
if-le v2, v4, :cond_32
if-le p1, v4, :cond_32
.line 9
iget p1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStyle:I
if-ne p1, v3, :cond_4a
.line 10
iput v1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStyle:I
const-string p1, "#ffffffff"
.line 11
invoke-static {p1}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I
move-result p1
const-string v0, "#ffe5e5e5"
invoke-static {v0}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I
move-result v0
invoke-virtual {p0, p1, v0, v1}, Lcom/dcloud/android/widget/CapsuleLayout;->setRoundColor(III)V
.line 12
invoke-direct {p0}, Lcom/dcloud/android/widget/CapsuleLayout;->updateIntervalColor()V
goto :goto_4a
.line 15
:cond_32
iget p1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStyle:I
if-ne p1, v1, :cond_4a
.line 16
iput v3, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStyle:I
const-string p1, "#1a000000"
.line 17
invoke-static {p1}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I
move-result p1
const-string v0, "#4de5e5e5"
invoke-static {v0}, Landroid/graphics/Color;->parseColor(Ljava/lang/String;)I
move-result v0
invoke-virtual {p0, p1, v0, v1}, Lcom/dcloud/android/widget/CapsuleLayout;->setRoundColor(III)V
.line 18
invoke-direct {p0}, Lcom/dcloud/android/widget/CapsuleLayout;->updateIntervalColor()V
.line 21
:cond_4a
:goto_4a
iget p1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStyle:I
return p1
.end method
.method public removeAllViews()V
.registers 2
.line 1
invoke-super {p0}, Landroid/widget/LinearLayout;->removeAllViews()V
.line 2
iget-object v0, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mIntervals:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->clear()V
return-void
.end method
.method public setAngle(F)V
.registers 2
.line 1
iput p1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mAngle:F
.line 2
invoke-direct {p0}, Lcom/dcloud/android/widget/CapsuleLayout;->updateBackground()V
return-void
.end method
.method public setBackground(Landroid/graphics/drawable/Drawable;)V
.registers 3
.line 1
instance-of v0, p1, Lcom/dcloud/android/widget/CapsuleLayout$CapsuleDrawable;
if-eqz v0, :cond_7
.line 2
invoke-super {p0, p1}, Landroid/widget/LinearLayout;->setBackground(Landroid/graphics/drawable/Drawable;)V
:cond_7
return-void
.end method
.method public setBackgroundColor(I)V
.registers 2
.line 1
iput p1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mBackgroundColor:I
.line 2
invoke-direct {p0}, Lcom/dcloud/android/widget/CapsuleLayout;->updateBackground()V
return-void
.end method
.method public setBackgroundResource(I)V
.registers 2
return-void
.end method
.method public setButtonSelectColor(Landroid/view/View;Lcom/dcloud/android/widget/CapsuleLayout$ButtonType;I)V
.registers 5
if-eqz p1, :cond_13
.line 1
invoke-virtual {p1}, Landroid/view/View;->getParent()Landroid/view/ViewParent;
move-result-object v0
if-eqz v0, :cond_13
.line 2
iput p3, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mSelectColor:I
.line 3
invoke-virtual {p1}, Landroid/view/View;->getParent()Landroid/view/ViewParent;
move-result-object p1
check-cast p1, Landroid/view/View;
invoke-direct {p0, p1, p2}, Lcom/dcloud/android/widget/CapsuleLayout;->initButtonBackground(Landroid/view/View;Lcom/dcloud/android/widget/CapsuleLayout$ButtonType;)V
:cond_13
return-void
.end method
.method public setRoundColor(I)V
.registers 2
.line 5
iput p1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStrokeColor:I
.line 6
invoke-direct {p0}, Lcom/dcloud/android/widget/CapsuleLayout;->updateBackground()V
return-void
.end method
.method public setRoundColor(III)V
.registers 4
.line 1
iput p1, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mBackgroundColor:I
.line 2
iput p2, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStrokeColor:I
.line 3
iput p3, p0, Lcom/dcloud/android/widget/CapsuleLayout;->mStrokeWidth:I
.line 4
invoke-direct {p0}, Lcom/dcloud/android/widget/CapsuleLayout;->updateBackground()V
return-void
.end method