LineProgressView.smali
.class public Lim/tpelyyftgw/ui/components/LineProgressView;
.super Landroid/view/View;
.source "LineProgressView.java"
# static fields
.field private static decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
.field private static progressPaint:Landroid/graphics/Paint;
# instance fields
.field private animatedAlphaValue:F
.field private animatedProgressValue:F
.field private animationProgressStart:F
.field private backColor:I
.field private currentProgress:F
.field private currentProgressTime:J
.field private lastUpdateTime:J
.field private progressColor:I
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 4
.param p1, "context" # Landroid/content/Context;
.line 29
invoke-direct {p0, p1}, Landroid/view/View;-><init>(Landroid/content/Context;)V
.line 20
const/high16 v0, 0x3f800000 # 1.0f
iput v0, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedAlphaValue:F
.line 31
sget-object v0, Lim/tpelyyftgw/ui/components/LineProgressView;->decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
if-nez v0, :cond_2b
.line 32
new-instance v0, Landroid/view/animation/DecelerateInterpolator;
invoke-direct {v0}, Landroid/view/animation/DecelerateInterpolator;-><init>()V
sput-object v0, Lim/tpelyyftgw/ui/components/LineProgressView;->decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
.line 33
new-instance v0, Landroid/graphics/Paint;
const/4 v1, 0x1
invoke-direct {v0, v1}, Landroid/graphics/Paint;-><init>(I)V
sput-object v0, Lim/tpelyyftgw/ui/components/LineProgressView;->progressPaint:Landroid/graphics/Paint;
.line 34
sget-object v1, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
.line 35
sget-object v0, Lim/tpelyyftgw/ui/components/LineProgressView;->progressPaint:Landroid/graphics/Paint;
const/high16 v1, 0x40000000 # 2.0f
invoke-static {v1}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v1
int-to-float v1, v1
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setStrokeWidth(F)V
.line 37
:cond_2b
return-void
.end method
.method private updateAnimation()V
.registers 15
.line 40
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
.line 41
.local v0, "newTime":J
iget-wide v2, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->lastUpdateTime:J
sub-long v2, v0, v2
.line 42
.local v2, "dt":J
iput-wide v0, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->lastUpdateTime:J
.line 44
iget v4, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedProgressValue:F
const/high16 v5, 0x3f800000 # 1.0f
const/4 v6, 0x0
cmpl-float v7, v4, v5
if-eqz v7, :cond_47
iget v7, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->currentProgress:F
cmpl-float v4, v4, v7
if-eqz v4, :cond_47
.line 45
iget v4, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animationProgressStart:F
sub-float v8, v7, v4
.line 46
.local v8, "progressDiff":F
cmpl-float v9, v8, v6
if-lez v9, :cond_44
.line 47
iget-wide v9, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->currentProgressTime:J
add-long/2addr v9, v2
iput-wide v9, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->currentProgressTime:J
.line 48
const-wide/16 v11, 0x12c
cmp-long v13, v9, v11
if-ltz v13, :cond_35
.line 49
iput v7, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedProgressValue:F
.line 50
iput v7, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animationProgressStart:F
.line 51
const-wide/16 v9, 0x0
iput-wide v9, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->currentProgressTime:J
goto :goto_44
.line 53
:cond_35
sget-object v7, Lim/tpelyyftgw/ui/components/LineProgressView;->decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
long-to-float v9, v9
const/high16 v10, 0x43960000 # 300.0f
div-float/2addr v9, v10
invoke-virtual {v7, v9}, Landroid/view/animation/DecelerateInterpolator;->getInterpolation(F)F
move-result v7
mul-float v7, v7, v8
add-float/2addr v4, v7
iput v4, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedProgressValue:F
.line 56
:cond_44
:goto_44
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/LineProgressView;->invalidate()V
.line 58
.end local v8 # "progressDiff":F
:cond_47
iget v4, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedProgressValue:F
cmpl-float v7, v4, v5
if-ltz v7, :cond_67
cmpl-float v4, v4, v5
if-nez v4, :cond_67
iget v4, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedAlphaValue:F
cmpl-float v5, v4, v6
if-eqz v5, :cond_67
.line 59
long-to-float v5, v2
const/high16 v7, 0x43480000 # 200.0f
div-float/2addr v5, v7
sub-float/2addr v4, v5
iput v4, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedAlphaValue:F
.line 60
cmpg-float v4, v4, v6
if-gtz v4, :cond_64
.line 61
iput v6, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedAlphaValue:F
.line 63
:cond_64
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/LineProgressView;->invalidate()V
.line 65
:cond_67
return-void
.end method
# virtual methods
.method public getCurrentProgress()F
.registers 2
.line 93
iget v0, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->currentProgress:F
return v0
.end method
.method public onDraw(Landroid/graphics/Canvas;)V
.registers 10
.param p1, "canvas" # Landroid/graphics/Canvas;
.line 97
iget v0, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->backColor:I
const/high16 v1, 0x437f0000 # 255.0f
if-eqz v0, :cond_39
iget v2, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedProgressValue:F
const/high16 v3, 0x3f800000 # 1.0f
cmpl-float v2, v2, v3
if-eqz v2, :cond_39
.line 98
sget-object v2, Lim/tpelyyftgw/ui/components/LineProgressView;->progressPaint:Landroid/graphics/Paint;
invoke-virtual {v2, v0}, Landroid/graphics/Paint;->setColor(I)V
.line 99
sget-object v0, Lim/tpelyyftgw/ui/components/LineProgressView;->progressPaint:Landroid/graphics/Paint;
iget v2, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedAlphaValue:F
mul-float v2, v2, v1
float-to-int v2, v2
invoke-virtual {v0, v2}, Landroid/graphics/Paint;->setAlpha(I)V
.line 100
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/LineProgressView;->getWidth()I
move-result v0
int-to-float v0, v0
iget v2, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedProgressValue:F
mul-float v0, v0, v2
float-to-int v0, v0
.line 101
.local v0, "start":I
int-to-float v3, v0
const/4 v4, 0x0
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/LineProgressView;->getWidth()I
move-result v2
int-to-float v5, v2
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/LineProgressView;->getHeight()I
move-result v2
int-to-float v6, v2
sget-object v7, Lim/tpelyyftgw/ui/components/LineProgressView;->progressPaint:Landroid/graphics/Paint;
move-object v2, p1
invoke-virtual/range {v2 .. v7}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
.line 104
.end local v0 # "start":I
:cond_39
sget-object v0, Lim/tpelyyftgw/ui/components/LineProgressView;->progressPaint:Landroid/graphics/Paint;
iget v2, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->progressColor:I
invoke-virtual {v0, v2}, Landroid/graphics/Paint;->setColor(I)V
.line 105
sget-object v0, Lim/tpelyyftgw/ui/components/LineProgressView;->progressPaint:Landroid/graphics/Paint;
iget v2, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedAlphaValue:F
mul-float v2, v2, v1
float-to-int v1, v2
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setAlpha(I)V
.line 106
const/4 v3, 0x0
const/4 v4, 0x0
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/LineProgressView;->getWidth()I
move-result v0
int-to-float v0, v0
iget v1, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedProgressValue:F
mul-float v5, v0, v1
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/LineProgressView;->getHeight()I
move-result v0
int-to-float v6, v0
sget-object v7, Lim/tpelyyftgw/ui/components/LineProgressView;->progressPaint:Landroid/graphics/Paint;
move-object v2, p1
invoke-virtual/range {v2 .. v7}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
.line 107
invoke-direct {p0}, Lim/tpelyyftgw/ui/components/LineProgressView;->updateAnimation()V
.line 108
return-void
.end method
.method public setBackColor(I)V
.registers 2
.param p1, "color" # I
.line 72
iput p1, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->backColor:I
.line 73
return-void
.end method
.method public setProgress(FZ)V
.registers 5
.param p1, "value" # F
.param p2, "animated" # Z
.line 76
if-nez p2, :cond_7
.line 77
iput p1, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedProgressValue:F
.line 78
iput p1, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animationProgressStart:F
goto :goto_b
.line 80
:cond_7
iget v0, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedProgressValue:F
iput v0, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animationProgressStart:F
.line 82
:goto_b
const/high16 v0, 0x3f800000 # 1.0f
cmpl-float v1, p1, v0
if-eqz v1, :cond_13
.line 83
iput v0, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->animatedAlphaValue:F
.line 85
:cond_13
iput p1, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->currentProgress:F
.line 86
const-wide/16 v0, 0x0
iput-wide v0, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->currentProgressTime:J
.line 88
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
iput-wide v0, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->lastUpdateTime:J
.line 89
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/LineProgressView;->invalidate()V
.line 90
return-void
.end method
.method public setProgressColor(I)V
.registers 2
.param p1, "color" # I
.line 68
iput p1, p0, Lim/tpelyyftgw/ui/components/LineProgressView;->progressColor:I
.line 69
return-void
.end method