SlidingTabView.smali

.class public Lim/tpelyyftgw/ui/components/SlidingTabView;
.super Landroid/widget/LinearLayout;
.source "SlidingTabView.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lim/tpelyyftgw/ui/components/SlidingTabView$SlidingTabViewDelegate;
    }
.end annotation


# instance fields
.field private animateTabXTo:F

.field private delegate:Lim/tpelyyftgw/ui/components/SlidingTabView$SlidingTabViewDelegate;

.field private interpolator:Landroid/view/animation/DecelerateInterpolator;

.field private paint:Landroid/graphics/Paint;

.field private selectedTab:I

.field private startAnimationTime:J

.field private startAnimationX:F

.field private tabCount:I

.field private tabWidth:F

.field private tabX:F

.field private totalAnimationDiff:J


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>(Landroid/content/Context;)V
    .registers 6
    .param p1, "context"    # Landroid/content/Context;

    .line 37
    invoke-direct {p0, p1}, Landroid/widget/LinearLayout;-><init>(Landroid/content/Context;)V

    .line 25
    const/4 v0, 0x0

    iput v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->selectedTab:I

    .line 26
    iput v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabCount:I

    .line 27
    const/4 v1, 0x0

    iput v1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabWidth:F

    .line 28
    iput v1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabX:F

    .line 29
    iput v1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->animateTabXTo:F

    .line 30
    new-instance v2, Landroid/graphics/Paint;

    invoke-direct {v2}, Landroid/graphics/Paint;-><init>()V

    iput-object v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->paint:Landroid/graphics/Paint;

    .line 31
    const-wide/16 v2, 0x0

    iput-wide v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->startAnimationTime:J

    .line 32
    iput-wide v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->totalAnimationDiff:J

    .line 33
    iput v1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->startAnimationX:F

    .line 38
    invoke-virtual {p0, v0}, Lim/tpelyyftgw/ui/components/SlidingTabView;->setOrientation(I)V

    .line 39
    const/high16 v1, 0x42c80000    # 100.0f

    invoke-virtual {p0, v1}, Lim/tpelyyftgw/ui/components/SlidingTabView;->setWeightSum(F)V

    .line 40
    iget-object v1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->paint:Landroid/graphics/Paint;

    const/4 v2, -0x1

    invoke-virtual {v1, v2}, Landroid/graphics/Paint;->setColor(I)V

    .line 41
    invoke-virtual {p0, v0}, Lim/tpelyyftgw/ui/components/SlidingTabView;->setWillNotDraw(Z)V

    .line 42
    new-instance v0, Landroid/view/animation/DecelerateInterpolator;

    invoke-direct {v0}, Landroid/view/animation/DecelerateInterpolator;-><init>()V

    iput-object v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->interpolator:Landroid/view/animation/DecelerateInterpolator;

    .line 43
    return-void
.end method

.method static synthetic access$000(Lim/tpelyyftgw/ui/components/SlidingTabView;I)V
    .registers 2
    .param p0, "x0"    # Lim/tpelyyftgw/ui/components/SlidingTabView;
    .param p1, "x1"    # I

    .line 18
    invoke-direct {p0, p1}, Lim/tpelyyftgw/ui/components/SlidingTabView;->didSelectTab(I)V

    return-void
.end method

.method private animateToTab(I)V
    .registers 4
    .param p1, "tab"    # I

    .line 92
    int-to-float v0, p1

    iget v1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabWidth:F

    mul-float v0, v0, v1

    iput v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->animateTabXTo:F

    .line 93
    iget v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabX:F

    iput v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->startAnimationX:F

    .line 94
    const-wide/16 v0, 0x0

    iput-wide v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->totalAnimationDiff:J

    .line 95
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v0

    iput-wide v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->startAnimationTime:J

    .line 96
    invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/SlidingTabView;->invalidate()V

    .line 97
    return-void
.end method

.method private didSelectTab(I)V
    .registers 3
    .param p1, "tab"    # I

    .line 81
    iget v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->selectedTab:I

    if-ne v0, p1, :cond_5

    .line 82
    return-void

    .line 84
    :cond_5
    iput p1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->selectedTab:I

    .line 85
    invoke-direct {p0, p1}, Lim/tpelyyftgw/ui/components/SlidingTabView;->animateToTab(I)V

    .line 86
    iget-object v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->delegate:Lim/tpelyyftgw/ui/components/SlidingTabView$SlidingTabViewDelegate;

    if-eqz v0, :cond_11

    .line 87
    invoke-interface {v0, p1}, Lim/tpelyyftgw/ui/components/SlidingTabView$SlidingTabViewDelegate;->didSelectTab(I)V

    .line 89
    :cond_11
    return-void
.end method


# virtual methods
.method public addTextTab(ILjava/lang/String;)V
    .registers 8
    .param p1, "position"    # I
    .param p2, "title"    # Ljava/lang/String;

    .line 46
    new-instance v0, Landroid/widget/TextView;

    invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/SlidingTabView;->getContext()Landroid/content/Context;

    move-result-object v1

    invoke-direct {v0, v1}, Landroid/widget/TextView;-><init>(Landroid/content/Context;)V

    .line 47
    .local v0, "tab":Landroid/widget/TextView;
    invoke-virtual {v0, p2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

    .line 48
    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Landroid/widget/TextView;->setFocusable(Z)V

    .line 49
    const/16 v2, 0x11

    invoke-virtual {v0, v2}, Landroid/widget/TextView;->setGravity(I)V

    .line 50
    invoke-virtual {v0}, Landroid/widget/TextView;->setSingleLine()V

    .line 51
    const/4 v2, -0x1

    invoke-virtual {v0, v2}, Landroid/widget/TextView;->setTextColor(I)V

    .line 52
    const/high16 v3, 0x41600000    # 14.0f

    invoke-virtual {v0, v1, v3}, Landroid/widget/TextView;->setTextSize(IF)V

    .line 53
    sget-object v3, Landroid/graphics/Typeface;->DEFAULT_BOLD:Landroid/graphics/Typeface;

    invoke-virtual {v0, v3}, Landroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;)V

    .line 54
    const/4 v3, 0x0

    const v4, -0xc2c2c3

    invoke-static {v4, v3}, Lim/tpelyyftgw/ui/actionbar/Theme;->createSelectorDrawable(II)Landroid/graphics/drawable/Drawable;

    move-result-object v4

    invoke-virtual {v0, v4}, Landroid/widget/TextView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V

    .line 56
    new-instance v4, Lim/tpelyyftgw/ui/components/SlidingTabView$1;

    invoke-direct {v4, p0, p1}, Lim/tpelyyftgw/ui/components/SlidingTabView$1;-><init>(Lim/tpelyyftgw/ui/components/SlidingTabView;I)V

    invoke-virtual {v0, v4}, Landroid/widget/TextView;->setOnClickListener(Landroid/view/View$OnClickListener;)V

    .line 62
    invoke-virtual {p0, v0}, Lim/tpelyyftgw/ui/components/SlidingTabView;->addView(Landroid/view/View;)V

    .line 63
    invoke-virtual {v0}, Landroid/widget/TextView;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;

    move-result-object v4

    check-cast v4, Landroid/widget/LinearLayout$LayoutParams;

    .line 64
    .local v4, "layoutParams":Landroid/widget/LinearLayout$LayoutParams;
    iput v2, v4, Landroid/widget/LinearLayout$LayoutParams;->height:I

    .line 65
    iput v3, v4, Landroid/widget/LinearLayout$LayoutParams;->width:I

    .line 66
    const/high16 v2, 0x42480000    # 50.0f

    iput v2, v4, Landroid/widget/LinearLayout$LayoutParams;->weight:F

    .line 67
    invoke-virtual {v0, v4}, Landroid/widget/TextView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V

    .line 69
    iget v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabCount:I

    add-int/2addr v2, v1

    iput v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabCount:I

    .line 70
    return-void
.end method

.method public getSeletedTab()I
    .registers 2

    .line 77
    iget v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->selectedTab:I

    return v0
.end method

.method protected onDraw(Landroid/graphics/Canvas;)V
    .registers 13
    .param p1, "canvas"    # Landroid/graphics/Canvas;

    .line 108
    iget v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabX:F

    iget v1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->animateTabXTo:F

    cmpl-float v0, v0, v1

    if-eqz v0, :cond_40

    .line 109
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v0

    iget-wide v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->startAnimationTime:J

    sub-long/2addr v0, v2

    .line 110
    .local v0, "dt":J
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v2

    iput-wide v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->startAnimationTime:J

    .line 111
    iget-wide v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->totalAnimationDiff:J

    add-long/2addr v2, v0

    iput-wide v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->totalAnimationDiff:J

    .line 112
    const-wide/16 v4, 0xc8

    cmp-long v6, v2, v4

    if-lez v6, :cond_27

    .line 113
    iput-wide v4, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->totalAnimationDiff:J

    .line 114
    iget v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->animateTabXTo:F

    iput v2, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabX:F

    goto :goto_40

    .line 116
    :cond_27
    iget v4, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->startAnimationX:F

    iget-object v5, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->interpolator:Landroid/view/animation/DecelerateInterpolator;

    long-to-float v2, v2

    const/high16 v3, 0x43480000    # 200.0f

    div-float/2addr v2, v3

    invoke-virtual {v5, v2}, Landroid/view/animation/DecelerateInterpolator;->getInterpolation(F)F

    move-result v2

    iget v3, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->animateTabXTo:F

    iget v5, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->startAnimationX:F

    sub-float/2addr v3, v5

    mul-float v2, v2, v3

    add-float/2addr v4, v2

    iput v4, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabX:F

    .line 117
    invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/SlidingTabView;->invalidate()V

    .line 121
    .end local v0    # "dt":J
    :cond_40
    :goto_40
    iget v6, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabX:F

    invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/SlidingTabView;->getHeight()I

    move-result v0

    const/high16 v1, 0x40000000    # 2.0f

    invoke-static {v1}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I

    move-result v1

    sub-int/2addr v0, v1

    int-to-float v7, v0

    iget v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabX:F

    iget v1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabWidth:F

    add-float v8, v0, v1

    invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/SlidingTabView;->getHeight()I

    move-result v0

    int-to-float v9, v0

    iget-object v10, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->paint:Landroid/graphics/Paint;

    move-object v5, p1

    invoke-virtual/range {v5 .. v10}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V

    .line 122
    return-void
.end method

.method protected onLayout(ZIIII)V
    .registers 8
    .param p1, "changed"    # Z
    .param p2, "l"    # I
    .param p3, "t"    # I
    .param p4, "r"    # I
    .param p5, "b"    # I

    .line 101
    invoke-super/range {p0 .. p5}, Landroid/widget/LinearLayout;->onLayout(ZIIII)V

    .line 102
    sub-int v0, p4, p2

    int-to-float v0, v0

    iget v1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabCount:I

    int-to-float v1, v1

    div-float/2addr v0, v1

    iput v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabWidth:F

    .line 103
    iget v1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->selectedTab:I

    int-to-float v1, v1

    mul-float v0, v0, v1

    iput v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->tabX:F

    iput v0, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->animateTabXTo:F

    .line 104
    return-void
.end method

.method public setDelegate(Lim/tpelyyftgw/ui/components/SlidingTabView$SlidingTabViewDelegate;)V
    .registers 2
    .param p1, "delegate"    # Lim/tpelyyftgw/ui/components/SlidingTabView$SlidingTabViewDelegate;

    .line 73
    iput-object p1, p0, Lim/tpelyyftgw/ui/components/SlidingTabView;->delegate:Lim/tpelyyftgw/ui/components/SlidingTabView$SlidingTabViewDelegate;

    .line 74
    return-void
.end method