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