ShadowDrawer.smali

.class public Lcom/hitomi/cslibrary/draw/ShadowDrawer;
.super Ljava/lang/Object;

# interfaces
.implements Lcom/hitomi/cslibrary/base/ShadowHandler;


# instance fields
.field private attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

.field private orignalDrawable:Landroid/graphics/drawable/Drawable;

.field private shadowDrawable:Landroid/graphics/drawable/Drawable;

.field private view:Landroid/view/View;


# direct methods
.method public constructor <init>(Lcom/hitomi/cslibrary/base/CrazyShadowAttr;)V
    .registers 2

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    iput-object p1, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    return-void
.end method


# virtual methods
.method public hideShadow()V
    .registers 3

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->view:Landroid/view/View;

    if-eqz v0, :cond_15

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->view:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable;

    move-result-object v0

    instance-of v0, v0, Lcom/hitomi/cslibrary/draw/RoundRectShadowDrawable;

    if-eqz v0, :cond_15

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->view:Landroid/view/View;

    iget-object v1, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->orignalDrawable:Landroid/graphics/drawable/Drawable;

    invoke-virtual {v0, v1}, Landroid/view/View;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V

    :cond_15
    return-void
.end method

.method public makeShadow(Landroid/view/View;)V
    .registers 8

    iput-object p1, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->view:Landroid/view/View;

    invoke-virtual {p1}, Landroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable;

    move-result-object v0

    iput-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->orignalDrawable:Landroid/graphics/drawable/Drawable;

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v0}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->getBackground()I

    move-result v0

    if-eqz v0, :cond_3b

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v0}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->getBackground()I

    move-result v1

    :goto_16
    new-instance v0, Lcom/hitomi/cslibrary/draw/RoundRectShadowDrawable;

    iget-object v2, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v2}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->getColors()[I

    move-result-object v2

    iget-object v3, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v3}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->getCorner()F

    move-result v3

    iget-object v4, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v4}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->getShadowRadius()F

    move-result v4

    iget-object v5, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v5}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->getShadowRadius()F

    move-result v5

    invoke-direct/range {v0 .. v5}, Lcom/hitomi/cslibrary/draw/RoundRectShadowDrawable;-><init>(I[IFFF)V

    iput-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->shadowDrawable:Landroid/graphics/drawable/Drawable;

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->shadowDrawable:Landroid/graphics/drawable/Drawable;

    invoke-virtual {p1, v0}, Landroid/view/View;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V

    return-void

    :cond_3b
    invoke-virtual {p1}, Landroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable;

    move-result-object v0

    check-cast v0, Landroid/graphics/drawable/ColorDrawable;

    if-nez v0, :cond_45

    const/4 v1, -0x1

    goto :goto_16

    :cond_45
    invoke-virtual {v0}, Landroid/graphics/drawable/ColorDrawable;->getColor()I

    move-result v1

    goto :goto_16
.end method

.method public removeShadow()V
    .registers 3

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->view:Landroid/view/View;

    if-eqz v0, :cond_15

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->view:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable;

    move-result-object v0

    instance-of v0, v0, Lcom/hitomi/cslibrary/draw/RoundRectShadowDrawable;

    if-eqz v0, :cond_15

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->view:Landroid/view/View;

    iget-object v1, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->orignalDrawable:Landroid/graphics/drawable/Drawable;

    invoke-virtual {v0, v1}, Landroid/view/View;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V

    :cond_15
    return-void
.end method

.method public showShadow()V
    .registers 3

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->view:Landroid/view/View;

    if-eqz v0, :cond_8

    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->shadowDrawable:Landroid/graphics/drawable/Drawable;

    if-nez v0, :cond_9

    :cond_8
    :goto_8
    return-void

    :cond_9
    iget-object v0, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->view:Landroid/view/View;

    iget-object v1, p0, Lcom/hitomi/cslibrary/draw/ShadowDrawer;->shadowDrawable:Landroid/graphics/drawable/Drawable;

    invoke-virtual {v0, v1}, Landroid/view/View;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V

    goto :goto_8
.end method