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