ShadowWrapper.smali

.class public Lcom/hitomi/cslibrary/wrap/ShadowWrapper;
.super Ljava/lang/Object;

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


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/hitomi/cslibrary/wrap/ShadowWrapper$OnMeasureListener;
    }
.end annotation


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

.field private contentView:Landroid/view/View;

.field private context:Landroid/content/Context;

.field private init:Z

.field private measureListener:Lcom/hitomi/cslibrary/wrap/ShadowWrapper$OnMeasureListener;

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

.field private shadowLayout:Landroid/widget/RelativeLayout;


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

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

    iput-object p1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->context:Landroid/content/Context;

    iput-object p2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    new-instance v0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper$OnMeasureListener;

    const/4 v1, 0x0

    invoke-direct {v0, p0, v1}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper$OnMeasureListener;-><init>(Lcom/hitomi/cslibrary/wrap/ShadowWrapper;Lcom/hitomi/cslibrary/wrap/ShadowWrapper$1;)V

    iput-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->measureListener:Lcom/hitomi/cslibrary/wrap/ShadowWrapper$OnMeasureListener;

    return-void
.end method

.method static synthetic access$100(Lcom/hitomi/cslibrary/wrap/ShadowWrapper;)Z
    .registers 2

    iget-boolean v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->init:Z

    return v0
.end method

.method static synthetic access$102(Lcom/hitomi/cslibrary/wrap/ShadowWrapper;Z)Z
    .registers 2

    iput-boolean p1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->init:Z

    return p1
.end method

.method static synthetic access$200(Lcom/hitomi/cslibrary/wrap/ShadowWrapper;)V
    .registers 1

    invoke-direct {p0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->prepareLayout()V

    return-void
.end method

.method static synthetic access$300(Lcom/hitomi/cslibrary/wrap/ShadowWrapper;)V
    .registers 1

    invoke-direct {p0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->addShadow()V

    return-void
.end method

.method static synthetic access$400(Lcom/hitomi/cslibrary/wrap/ShadowWrapper;)Landroid/view/View;
    .registers 2

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    return-object v0
.end method

.method private addCornerShadow()V
    .registers 3

    new-instance v0, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;

    invoke-direct {v0}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;-><init>()V

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->context:Landroid/content/Context;

    invoke-virtual {v0, v1}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->setContext(Landroid/content/Context;)Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;

    move-result-object v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result-object v1

    invoke-virtual {v0, v1}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->setShadowColors([I)Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;

    move-result-object v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v1

    invoke-virtual {v0, v1}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->setShadowSize(F)Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;

    move-result-object v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v1

    invoke-virtual {v0, v1}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->setCornerRadius(F)Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;

    move-result-object v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containLeft()Z

    move-result v1

    if-eqz v1, :cond_3c

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containTop()Z

    move-result v1

    if-eqz v1, :cond_3c

    invoke-direct {p0, v0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->decorateLeftTop(Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;)V

    :cond_3c
    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containRight()Z

    move-result v1

    if-eqz v1, :cond_4f

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containTop()Z

    move-result v1

    if-eqz v1, :cond_4f

    invoke-direct {p0, v0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->decorateRightTop(Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;)V

    :cond_4f
    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containRight()Z

    move-result v1

    if-eqz v1, :cond_62

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containBottom()Z

    move-result v1

    if-eqz v1, :cond_62

    invoke-direct {p0, v0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->decorateRightBottom(Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;)V

    :cond_62
    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containLeft()Z

    move-result v1

    if-eqz v1, :cond_75

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containBottom()Z

    move-result v1

    if-eqz v1, :cond_75

    invoke-direct {p0, v0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->decorateLeftBottom(Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;)V

    :cond_75
    return-void
.end method

.method private addEdgeShadow()V
    .registers 3

    new-instance v0, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    invoke-direct {v0}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;-><init>()V

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->context:Landroid/content/Context;

    invoke-virtual {v0, v1}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setContext(Landroid/content/Context;)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result-object v1

    invoke-virtual {v0, v1}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setShadowColors([I)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v1

    invoke-virtual {v0, v1}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setCornerRadius(F)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v1

    invoke-virtual {v0, v1}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setShadowRadius(F)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containLeft()Z

    move-result v1

    if-eqz v1, :cond_34

    invoke-direct {p0, v0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->decorateLeft(Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;)V

    :cond_34
    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containTop()Z

    move-result v1

    if-eqz v1, :cond_3f

    invoke-direct {p0, v0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->decorateTop(Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;)V

    :cond_3f
    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containRight()Z

    move-result v1

    if-eqz v1, :cond_4a

    invoke-direct {p0, v0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->decorateRight(Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;)V

    :cond_4a
    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

    invoke-virtual {v1}, Lcom/hitomi/cslibrary/base/CrazyShadowAttr;->containBottom()Z

    move-result v1

    if-eqz v1, :cond_55

    invoke-direct {p0, v0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->decorateBottom(Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;)V

    :cond_55
    return-void
.end method

.method private addShadow()V
    .registers 1

    invoke-direct {p0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->addEdgeShadow()V

    invoke-direct {p0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->addCornerShadow()V

    return-void
.end method

.method private decorateBottom(Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;)V
    .registers 8

    const/16 v5, 0x8

    const/4 v0, -0x2

    new-instance v1, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v1, v0, v0}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v0, 0xc

    invoke-virtual {v1, v0}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

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

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

    move-result v0

    if-ne v0, v5, :cond_22

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

    :cond_1c
    :goto_1c
    const/4 v2, 0x0

    cmpg-float v2, v0, v2

    if-gtz v2, :cond_83

    :goto_21
    return-void

    :cond_22
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v0

    const/16 v2, 0x1000

    if-eq v0, v2, :cond_36

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

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

    move-result v0

    const/16 v2, 0x800

    if-ne v0, v2, :cond_54

    :cond_36
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

    const/high16 v2, 0x40000000    # 2.0f

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

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

    move-result v3

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

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

    move-result v4

    add-float/2addr v3, v4

    mul-float/2addr v2, v3

    sub-float/2addr v0, v2

    const/16 v2, 0xe

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_1c

    :cond_54
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v2

    sub-float/2addr v0, v2

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

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

    move-result v2

    sub-float/2addr v0, v2

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

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

    move-result v2

    const/16 v3, 0x80

    if-eq v2, v3, :cond_7d

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

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

    move-result v2

    const/16 v3, 0x100

    if-ne v2, v3, :cond_1c

    :cond_7d
    const/16 v2, 0xb

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_1c

    :cond_83
    invoke-virtual {p1, v0}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setShadowSize(F)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0, v5}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setDirection(I)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->create()Lcom/hitomi/cslibrary/base/view/EdgeShadowView;

    move-result-object v0

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v2, v0, v1}, Landroid/widget/RelativeLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V

    goto :goto_21
.end method

.method private decorateLeft(Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;)V
    .registers 8

    const/4 v5, 0x1

    const/4 v0, -0x2

    new-instance v1, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v1, v0, v0}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

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

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

    move-result v0

    if-ne v0, v5, :cond_1c

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

    :cond_16
    :goto_16
    const/4 v2, 0x0

    cmpg-float v2, v0, v2

    if-gtz v2, :cond_7d

    :goto_1b
    return-void

    :cond_1c
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v0

    const/16 v2, 0x1000

    if-eq v0, v2, :cond_30

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

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

    move-result v0

    const/16 v2, 0x100

    if-ne v0, v2, :cond_4e

    :cond_30
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

    const/high16 v2, 0x40000000    # 2.0f

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

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

    move-result v3

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

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

    move-result v4

    add-float/2addr v3, v4

    mul-float/2addr v2, v3

    sub-float/2addr v0, v2

    const/16 v2, 0xf

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_16

    :cond_4e
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v2

    sub-float/2addr v0, v2

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

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

    move-result v2

    sub-float/2addr v0, v2

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

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

    move-result v2

    const/16 v3, 0x10

    if-eq v2, v3, :cond_77

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

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

    move-result v2

    const/16 v3, 0x200

    if-ne v2, v3, :cond_16

    :cond_77
    const/16 v2, 0xc

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_16

    :cond_7d
    invoke-virtual {p1, v0}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setShadowSize(F)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0, v5}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setDirection(I)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->create()Lcom/hitomi/cslibrary/base/view/EdgeShadowView;

    move-result-object v0

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v2, v0, v1}, Landroid/widget/RelativeLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V

    goto :goto_1b
.end method

.method private decorateLeftBottom(Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;)V
    .registers 5

    const/4 v2, -0x2

    const/16 v0, 0x80

    invoke-virtual {p1, v0}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->setDirection(I)Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->create()Lcom/hitomi/cslibrary/base/view/CornerShadowView;

    move-result-object v0

    new-instance v1, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v1, v2, v2}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v2, 0xc

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    const/16 v2, 0x9

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v2, v0, v1}, Landroid/widget/RelativeLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V

    return-void
.end method

.method private decorateLeftTop(Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;)V
    .registers 5

    const/4 v2, -0x2

    const/16 v0, 0x10

    invoke-virtual {p1, v0}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->setDirection(I)Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->create()Lcom/hitomi/cslibrary/base/view/CornerShadowView;

    move-result-object v0

    new-instance v1, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v1, v2, v2}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v2, 0xa

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    const/16 v2, 0x9

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v2, v0, v1}, Landroid/widget/RelativeLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V

    return-void
.end method

.method private decorateRight(Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;)V
    .registers 8

    const/4 v5, 0x4

    const/4 v0, -0x2

    new-instance v1, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v1, v0, v0}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v0, 0xb

    invoke-virtual {v1, v0}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

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

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

    move-result v0

    if-ne v0, v5, :cond_21

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

    :cond_1b
    :goto_1b
    const/4 v2, 0x0

    cmpg-float v2, v0, v2

    if-gtz v2, :cond_82

    :goto_20
    return-void

    :cond_21
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v0

    const/16 v2, 0x1000

    if-eq v0, v2, :cond_35

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

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

    move-result v0

    const/16 v2, 0x400

    if-ne v0, v2, :cond_53

    :cond_35
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

    const/high16 v2, 0x40000000    # 2.0f

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

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

    move-result v3

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

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

    move-result v4

    add-float/2addr v3, v4

    mul-float/2addr v2, v3

    sub-float/2addr v0, v2

    const/16 v2, 0xf

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_1b

    :cond_53
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v2

    sub-float/2addr v0, v2

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

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

    move-result v2

    sub-float/2addr v0, v2

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

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

    move-result v2

    const/16 v3, 0x20

    if-eq v2, v3, :cond_7c

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

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

    move-result v2

    const/16 v3, 0x200

    if-ne v2, v3, :cond_1b

    :cond_7c
    const/16 v2, 0xc

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_1b

    :cond_82
    invoke-virtual {p1, v0}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setShadowSize(F)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0, v5}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setDirection(I)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->create()Lcom/hitomi/cslibrary/base/view/EdgeShadowView;

    move-result-object v0

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v2, v0, v1}, Landroid/widget/RelativeLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V

    goto :goto_20
.end method

.method private decorateRightBottom(Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;)V
    .registers 5

    const/4 v2, -0x2

    const/16 v0, 0x40

    invoke-virtual {p1, v0}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->setDirection(I)Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->create()Lcom/hitomi/cslibrary/base/view/CornerShadowView;

    move-result-object v0

    new-instance v1, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v1, v2, v2}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v2, 0xc

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    const/16 v2, 0xb

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v2, v0, v1}, Landroid/widget/RelativeLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V

    return-void
.end method

.method private decorateRightTop(Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;)V
    .registers 5

    const/4 v2, -0x2

    const/16 v0, 0x20

    invoke-virtual {p1, v0}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->setDirection(I)Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0}, Lcom/hitomi/cslibrary/base/view/CornerShadowView$Builder;->create()Lcom/hitomi/cslibrary/base/view/CornerShadowView;

    move-result-object v0

    new-instance v1, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v1, v2, v2}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v2, 0xa

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    const/16 v2, 0xb

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v2, v0, v1}, Landroid/widget/RelativeLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V

    return-void
.end method

.method private decorateTop(Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;)V
    .registers 8

    const/4 v5, 0x2

    const/4 v0, -0x2

    new-instance v1, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v1, v0, v0}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

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

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

    move-result v0

    if-ne v0, v5, :cond_1c

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

    :cond_16
    :goto_16
    const/4 v2, 0x0

    cmpg-float v2, v0, v2

    if-gtz v2, :cond_7d

    :goto_1b
    return-void

    :cond_1c
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v0

    const/16 v2, 0x1000

    if-eq v0, v2, :cond_30

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

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

    move-result v0

    const/16 v2, 0x200

    if-ne v0, v2, :cond_4e

    :cond_30
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

    const/high16 v2, 0x40000000    # 2.0f

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

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

    move-result v3

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

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

    move-result v4

    add-float/2addr v3, v4

    mul-float/2addr v2, v3

    sub-float/2addr v0, v2

    const/16 v2, 0xe

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_16

    :cond_4e
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v2

    sub-float/2addr v0, v2

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

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

    move-result v2

    sub-float/2addr v0, v2

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

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

    move-result v2

    const/16 v3, 0x10

    if-eq v2, v3, :cond_77

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

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

    move-result v2

    const/16 v3, 0x100

    if-ne v2, v3, :cond_16

    :cond_77
    const/16 v2, 0xb

    invoke-virtual {v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_16

    :cond_7d
    invoke-virtual {p1, v0}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setShadowSize(F)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0, v5}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->setDirection(I)Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;

    move-result-object v0

    invoke-virtual {v0}, Lcom/hitomi/cslibrary/base/view/EdgeShadowView$Builder;->create()Lcom/hitomi/cslibrary/base/view/EdgeShadowView;

    move-result-object v0

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v2, v0, v1}, Landroid/widget/RelativeLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V

    goto :goto_1b
.end method

.method private getContentViewLayoutParams()Landroid/widget/RelativeLayout$LayoutParams;
    .registers 10
    .annotation build Landroid/support/annotation/NonNull;
    .end annotation

    const/4 v8, 0x2

    const/4 v7, 0x1

    const/16 v6, 0xc

    const/16 v5, 0xb

    const/high16 v4, 0x40000000    # 2.0f

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

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

    move-result v1

    if-eq v1, v7, :cond_13

    const/4 v0, 0x4

    if-ne v1, v0, :cond_33

    :cond_13
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v2

    sub-float/2addr v0, v2

    float-to-int v2, v0

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v3

    new-instance v0, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v0, v2, v3}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    if-ne v1, v7, :cond_32

    invoke-virtual {v0, v5}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    :cond_32
    :goto_32
    return-object v0

    :cond_33
    if-eq v1, v8, :cond_39

    const/16 v0, 0x8

    if-ne v1, v0, :cond_59

    :cond_39
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v2

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v3

    sub-float/2addr v0, v3

    float-to-int v3, v0

    new-instance v0, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v0, v2, v3}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    if-ne v1, v8, :cond_32

    invoke-virtual {v0, v6}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_32

    :cond_59
    const/16 v0, 0x10

    if-eq v1, v0, :cond_61

    const/16 v0, 0x20

    if-ne v1, v0, :cond_95

    :cond_61
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v2

    sub-float/2addr v0, v2

    float-to-int v2, v0

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v3

    sub-float/2addr v0, v3

    float-to-int v3, v0

    new-instance v0, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v0, v2, v3}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v2, 0x10

    if-ne v1, v2, :cond_8f

    invoke-virtual {v0, v5}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    :goto_8b
    invoke-virtual {v0, v6}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_32

    :cond_8f
    const/16 v1, 0x9

    invoke-virtual {v0, v1}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto :goto_8b

    :cond_95
    const/16 v0, 0x80

    if-eq v1, v0, :cond_9d

    const/16 v0, 0x40

    if-ne v1, v0, :cond_c9

    :cond_9d
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v2

    sub-float/2addr v0, v2

    float-to-int v2, v0

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v3

    sub-float/2addr v0, v3

    float-to-int v3, v0

    new-instance v0, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v0, v2, v3}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v2, 0x80

    if-ne v1, v2, :cond_32

    invoke-virtual {v0, v5}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto/16 :goto_32

    :cond_c9
    const/16 v0, 0x100

    if-eq v1, v0, :cond_d1

    const/16 v0, 0x400

    if-ne v1, v0, :cond_103

    :cond_d1
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v2

    sub-float/2addr v0, v2

    float-to-int v2, v0

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v3

    mul-float/2addr v3, v4

    sub-float/2addr v0, v3

    float-to-int v3, v0

    new-instance v0, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v0, v2, v3}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v2, 0x100

    if-ne v1, v2, :cond_fc

    invoke-virtual {v0, v5}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    :cond_fc
    const/16 v1, 0xf

    invoke-virtual {v0, v1}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto/16 :goto_32

    :cond_103
    const/16 v0, 0x200

    if-eq v1, v0, :cond_10b

    const/16 v0, 0x800

    if-ne v1, v0, :cond_13d

    :cond_10b
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v2

    mul-float/2addr v2, v4

    sub-float/2addr v0, v2

    float-to-int v2, v0

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v3

    sub-float/2addr v0, v3

    float-to-int v3, v0

    new-instance v0, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v0, v2, v3}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v2, 0x200

    if-ne v1, v2, :cond_136

    invoke-virtual {v0, v6}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    :cond_136
    const/16 v1, 0xe

    invoke-virtual {v0, v1}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto/16 :goto_32

    :cond_13d
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getWidth()I

    move-result v0

    int-to-float v0, v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v1

    mul-float/2addr v1, v4

    sub-float/2addr v0, v1

    float-to-int v1, v0

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getHeight()I

    move-result v0

    int-to-float v0, v0

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

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

    move-result v2

    mul-float/2addr v2, v4

    sub-float/2addr v0, v2

    float-to-int v2, v0

    new-instance v0, Landroid/widget/RelativeLayout$LayoutParams;

    invoke-direct {v0, v1, v2}, Landroid/widget/RelativeLayout$LayoutParams;-><init>(II)V

    const/16 v1, 0xd

    invoke-virtual {v0, v1}, Landroid/widget/RelativeLayout$LayoutParams;->addRule(I)V

    goto/16 :goto_32
.end method

.method private prepareLayout()V
    .registers 5

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getParent()Landroid/view/ViewParent;

    move-result-object v0

    check-cast v0, Landroid/view/ViewGroup;

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0, v1}, Landroid/view/ViewGroup;->indexOfChild(Landroid/view/View;)I

    move-result v1

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0, v2}, Landroid/view/ViewGroup;->removeView(Landroid/view/View;)V

    new-instance v2, Landroid/widget/RelativeLayout;

    iget-object v3, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->context:Landroid/content/Context;

    invoke-direct {v2, v3}, Landroid/widget/RelativeLayout;-><init>(Landroid/content/Context;)V

    iput-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v2}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v2

    iget-object v3, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v3}, Landroid/view/View;->getWidth()I

    move-result v3

    iput v3, v2, Landroid/view/ViewGroup$LayoutParams;->width:I

    iget-object v3, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v3}, Landroid/view/View;->getHeight()I

    move-result v3

    iput v3, v2, Landroid/view/ViewGroup$LayoutParams;->height:I

    iget-object v3, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v3, v2}, Landroid/widget/RelativeLayout;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v0, v2, v1}, Landroid/view/ViewGroup;->addView(Landroid/view/View;I)V

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-direct {p0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->getContentViewLayoutParams()Landroid/widget/RelativeLayout$LayoutParams;

    move-result-object v2

    invoke-virtual {v0, v1, v2}, Landroid/widget/RelativeLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V

    return-void
.end method

.method private setShadowViewAlpha(I)V
    .registers 6

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v0}, Landroid/widget/RelativeLayout;->getChildCount()I

    move-result v1

    const/4 v0, 0x0

    :goto_7
    if-ge v0, v1, :cond_1e

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v2, v0}, Landroid/widget/RelativeLayout;->getChildAt(I)Landroid/view/View;

    move-result-object v2

    instance-of v3, v2, Lcom/hitomi/cslibrary/base/view/EdgeShadowView;

    if-nez v3, :cond_17

    instance-of v3, v2, Lcom/hitomi/cslibrary/base/view/CornerShadowView;

    if-eqz v3, :cond_1b

    :cond_17
    int-to-float v3, p1

    invoke-virtual {v2, v3}, Landroid/view/View;->setAlpha(F)V

    :cond_1b
    add-int/lit8 v0, v0, 0x1

    goto :goto_7

    :cond_1e
    return-void
.end method


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

    const/4 v0, 0x0

    invoke-direct {p0, v0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->setShadowViewAlpha(I)V

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v1}, Landroid/widget/RelativeLayout;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v1

    iget v1, v1, Landroid/view/ViewGroup$LayoutParams;->width:I

    iput v1, v0, Landroid/view/ViewGroup$LayoutParams;->width:I

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v1}, Landroid/widget/RelativeLayout;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v1

    iget v1, v1, Landroid/view/ViewGroup$LayoutParams;->height:I

    iput v1, v0, Landroid/view/ViewGroup$LayoutParams;->height:I

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v1, v0}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V

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

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

    move-result v0

    if-eqz v0, :cond_32

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

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

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

    :cond_32
    return-void
.end method

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

    iput-object p1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->init:Z

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

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

    move-result v0

    if-eqz v0, :cond_20

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

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

    move-result-object v0

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

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v1

    invoke-virtual {v0, v1}, Landroid/view/View;->setBackgroundColor(I)V

    :cond_20
    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0}, Landroid/view/View;->getViewTreeObserver()Landroid/view/ViewTreeObserver;

    move-result-object v0

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->measureListener:Lcom/hitomi/cslibrary/wrap/ShadowWrapper$OnMeasureListener;

    invoke-virtual {v0, v1}, Landroid/view/ViewTreeObserver;->addOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V

    return-void
.end method

.method public removeShadow()V
    .registers 5

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0, v1}, Landroid/widget/RelativeLayout;->removeView(Landroid/view/View;)V

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v0}, Landroid/widget/RelativeLayout;->getParent()Landroid/view/ViewParent;

    move-result-object v0

    check-cast v0, Landroid/view/ViewGroup;

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v0, v1}, Landroid/view/ViewGroup;->indexOfChild(Landroid/view/View;)I

    move-result v1

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v0, v2}, Landroid/view/ViewGroup;->removeView(Landroid/view/View;)V

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    iget-object v3, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->shadowLayout:Landroid/widget/RelativeLayout;

    invoke-virtual {v3}, Landroid/widget/RelativeLayout;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v3

    invoke-virtual {v2, v3}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V

    iget-object v2, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-virtual {v0, v2, v1}, Landroid/view/ViewGroup;->addView(Landroid/view/View;I)V

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

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

    move-result v0

    if-eqz v0, :cond_39

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

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

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

    :cond_39
    return-void
.end method

.method public showShadow()V
    .registers 3

    const/4 v0, 0x1

    invoke-direct {p0, v0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->setShadowViewAlpha(I)V

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    invoke-direct {p0}, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->getContentViewLayoutParams()Landroid/widget/RelativeLayout$LayoutParams;

    move-result-object v1

    invoke-virtual {v0, v1}, Landroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V

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

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

    move-result v0

    if-eqz v0, :cond_24

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    if-eqz v0, :cond_24

    iget-object v0, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->contentView:Landroid/view/View;

    iget-object v1, p0, Lcom/hitomi/cslibrary/wrap/ShadowWrapper;->attr:Lcom/hitomi/cslibrary/base/CrazyShadowAttr;

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

    move-result v1

    invoke-virtual {v0, v1}, Landroid/view/View;->setBackgroundColor(I)V

    :cond_24
    return-void
.end method