RippleManager.smali

.class public final Lcom/rey/material/widget/RippleManager;
.super Ljava/lang/Object;
.source "RippleManager.java"

# interfaces
.implements Landroid/view/View$OnClickListener;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/rey/material/widget/RippleManager$ClickRunnable;
    }
.end annotation


# instance fields
.field private mClickListener:Landroid/view/View$OnClickListener;

.field private mClickScheduled:Z


# direct methods
.method public constructor <init>()V
    .registers 2

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

    const/4 v0, 0x0

    .line 19
    iput-boolean v0, p0, Lcom/rey/material/widget/RippleManager;->mClickScheduled:Z

    return-void
.end method

.method static synthetic access$002(Lcom/rey/material/widget/RippleManager;Z)Z
    .registers 2

    .line 16
    iput-boolean p1, p0, Lcom/rey/material/widget/RippleManager;->mClickScheduled:Z

    return p1
.end method

.method static synthetic access$100(Lcom/rey/material/widget/RippleManager;Landroid/view/View;)V
    .registers 2

    .line 16
    invoke-direct {p0, p1}, Lcom/rey/material/widget/RippleManager;->dispatchClickEvent(Landroid/view/View;)V

    return-void
.end method

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

    .line 103
    invoke-virtual {p0}, Landroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable;

    move-result-object v0

    .line 104
    instance-of v1, v0, Lcom/rey/material/drawable/RippleDrawable;

    if-eqz v1, :cond_e

    .line 105
    check-cast v0, Lcom/rey/material/drawable/RippleDrawable;

    invoke-virtual {v0}, Lcom/rey/material/drawable/RippleDrawable;->cancel()V

    goto :goto_17

    .line 106
    :cond_e
    instance-of v1, v0, Lcom/rey/material/drawable/ToolbarRippleDrawable;

    if-eqz v1, :cond_17

    .line 107
    check-cast v0, Lcom/rey/material/drawable/ToolbarRippleDrawable;

    invoke-virtual {v0}, Lcom/rey/material/drawable/ToolbarRippleDrawable;->cancel()V

    .line 109
    :cond_17
    :goto_17
    instance-of v0, p0, Landroid/view/ViewGroup;

    if-eqz v0, :cond_2e

    .line 110
    check-cast p0, Landroid/view/ViewGroup;

    const/4 v0, 0x0

    .line 111
    invoke-virtual {p0}, Landroid/view/ViewGroup;->getChildCount()I

    move-result v1

    :goto_22
    if-ge v0, v1, :cond_2e

    .line 112
    invoke-virtual {p0, v0}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;

    move-result-object v2

    invoke-static {v2}, Lcom/rey/material/widget/RippleManager;->cancelRipple(Landroid/view/View;)V

    add-int/lit8 v0, v0, 0x1

    goto :goto_22

    :cond_2e
    return-void
.end method

.method private dispatchClickEvent(Landroid/view/View;)V
    .registers 3

    .line 94
    iget-object v0, p0, Lcom/rey/material/widget/RippleManager;->mClickListener:Landroid/view/View$OnClickListener;

    if-eqz v0, :cond_7

    .line 95
    invoke-interface {v0, p1}, Landroid/view/View$OnClickListener;->onClick(Landroid/view/View;)V

    :cond_7
    return-void
.end method

.method private getBackground(Landroid/view/View;)Landroid/graphics/drawable/Drawable;
    .registers 3

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

    move-result-object p1

    if-nez p1, :cond_8

    const/4 p1, 0x0

    return-object p1

    .line 58
    :cond_8
    instance-of v0, p1, Lcom/rey/material/drawable/RippleDrawable;

    if-eqz v0, :cond_12

    .line 59
    check-cast p1, Lcom/rey/material/drawable/RippleDrawable;

    invoke-virtual {p1}, Lcom/rey/material/drawable/RippleDrawable;->getBackgroundDrawable()Landroid/graphics/drawable/Drawable;

    move-result-object p1

    :cond_12
    return-object p1
.end method


# virtual methods
.method public onClick(Landroid/view/View;)V
    .registers 7

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

    move-result-object v0

    const-wide/16 v1, 0x0

    if-eqz v0, :cond_1e

    .line 79
    instance-of v3, v0, Lcom/rey/material/drawable/RippleDrawable;

    if-eqz v3, :cond_13

    .line 80
    check-cast v0, Lcom/rey/material/drawable/RippleDrawable;

    invoke-virtual {v0}, Lcom/rey/material/drawable/RippleDrawable;->getClickDelayTime()J

    move-result-wide v3

    goto :goto_1f

    .line 81
    :cond_13
    instance-of v3, v0, Lcom/rey/material/drawable/ToolbarRippleDrawable;

    if-eqz v3, :cond_1e

    .line 82
    check-cast v0, Lcom/rey/material/drawable/ToolbarRippleDrawable;

    invoke-virtual {v0}, Lcom/rey/material/drawable/ToolbarRippleDrawable;->getClickDelayTime()J

    move-result-wide v3

    goto :goto_1f

    :cond_1e
    move-wide v3, v1

    :goto_1f
    cmp-long v0, v3, v1

    if-lez v0, :cond_3d

    .line 85
    invoke-virtual {p1}, Landroid/view/View;->getHandler()Landroid/os/Handler;

    move-result-object v0

    if-eqz v0, :cond_3d

    iget-boolean v0, p0, Lcom/rey/material/widget/RippleManager;->mClickScheduled:Z

    if-nez v0, :cond_3d

    const/4 v0, 0x1

    .line 86
    iput-boolean v0, p0, Lcom/rey/material/widget/RippleManager;->mClickScheduled:Z

    .line 87
    invoke-virtual {p1}, Landroid/view/View;->getHandler()Landroid/os/Handler;

    move-result-object v0

    new-instance v1, Lcom/rey/material/widget/RippleManager$ClickRunnable;

    invoke-direct {v1, p0, p1}, Lcom/rey/material/widget/RippleManager$ClickRunnable;-><init>(Lcom/rey/material/widget/RippleManager;Landroid/view/View;)V

    invoke-virtual {v0, v1, v3, v4}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    goto :goto_40

    .line 90
    :cond_3d
    invoke-direct {p0, p1}, Lcom/rey/material/widget/RippleManager;->dispatchClickEvent(Landroid/view/View;)V

    :goto_40
    return-void
.end method

.method public onCreate(Landroid/view/View;Landroid/content/Context;Landroid/util/AttributeSet;II)V
    .registers 10

    .line 32
    invoke-virtual {p1}, Landroid/view/View;->isInEditMode()Z

    move-result v0

    if-eqz v0, :cond_7

    return-void

    .line 35
    :cond_7
    sget-object v0, Lcom/rey/material/R$styleable;->RippleView:[I

    invoke-virtual {p2, p3, v0, p4, p5}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;

    move-result-object v0

    .line 36
    sget v1, Lcom/rey/material/R$styleable;->RippleView_rd_style:I

    const/4 v2, 0x0

    invoke-virtual {v0, v1, v2}, Landroid/content/res/TypedArray;->getResourceId(II)I

    move-result v1

    const/4 v3, 0x0

    if-eqz v1, :cond_29

    .line 40
    new-instance p3, Lcom/rey/material/drawable/RippleDrawable$Builder;

    invoke-direct {p3, p2, v1}, Lcom/rey/material/drawable/RippleDrawable$Builder;-><init>(Landroid/content/Context;I)V

    invoke-direct {p0, p1}, Lcom/rey/material/widget/RippleManager;->getBackground(Landroid/view/View;)Landroid/graphics/drawable/Drawable;

    move-result-object p2

    invoke-virtual {p3, p2}, Lcom/rey/material/drawable/RippleDrawable$Builder;->backgroundDrawable(Landroid/graphics/drawable/Drawable;)Lcom/rey/material/drawable/RippleDrawable$Builder;

    move-result-object p2

    invoke-virtual {p2}, Lcom/rey/material/drawable/RippleDrawable$Builder;->build()Lcom/rey/material/drawable/RippleDrawable;

    move-result-object v3

    goto :goto_42

    .line 42
    :cond_29
    sget v1, Lcom/rey/material/R$styleable;->RippleView_rd_enable:I

    invoke-virtual {v0, v1, v2}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z

    move-result v1

    if-eqz v1, :cond_42

    .line 44
    new-instance v1, Lcom/rey/material/drawable/RippleDrawable$Builder;

    invoke-direct {v1, p2, p3, p4, p5}, Lcom/rey/material/drawable/RippleDrawable$Builder;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V

    invoke-direct {p0, p1}, Lcom/rey/material/widget/RippleManager;->getBackground(Landroid/view/View;)Landroid/graphics/drawable/Drawable;

    move-result-object p2

    invoke-virtual {v1, p2}, Lcom/rey/material/drawable/RippleDrawable$Builder;->backgroundDrawable(Landroid/graphics/drawable/Drawable;)Lcom/rey/material/drawable/RippleDrawable$Builder;

    move-result-object p2

    invoke-virtual {p2}, Lcom/rey/material/drawable/RippleDrawable$Builder;->build()Lcom/rey/material/drawable/RippleDrawable;

    move-result-object v3

    .line 47
    :cond_42
    :goto_42
    invoke-virtual {v0}, Landroid/content/res/TypedArray;->recycle()V

    if-eqz v3, :cond_4a

    .line 50
    invoke-static {p1, v3}, Lcom/rey/material/util/ViewUtil;->setBackground(Landroid/view/View;Landroid/graphics/drawable/Drawable;)V

    :cond_4a
    return-void
.end method

.method public onTouchEvent(Landroid/view/View;Landroid/view/MotionEvent;)Z
    .registers 5

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

    move-result-object v0

    if-eqz v0, :cond_14

    .line 70
    instance-of v1, v0, Lcom/rey/material/drawable/RippleDrawable;

    if-eqz v1, :cond_14

    check-cast v0, Lcom/rey/material/drawable/RippleDrawable;

    invoke-virtual {v0, p1, p2}, Lcom/rey/material/drawable/RippleDrawable;->onTouch(Landroid/view/View;Landroid/view/MotionEvent;)Z

    move-result p1

    if-eqz p1, :cond_14

    const/4 p1, 0x1

    goto :goto_15

    :cond_14
    const/4 p1, 0x0

    :goto_15
    return p1
.end method

.method public setOnClickListener(Landroid/view/View$OnClickListener;)V
    .registers 2

    .line 65
    iput-object p1, p0, Lcom/rey/material/widget/RippleManager;->mClickListener:Landroid/view/View$OnClickListener;

    return-void
.end method