RadialProgressView.smali
.class public Lim/tpelyyftgw/ui/components/RadialProgressView;
.super Landroid/view/View;
.source "RadialProgressView.java"
# static fields
.field private static final risingTime:F = 500.0f
.field private static final rotationTime:F = 2000.0f
# instance fields
.field private accelerateInterpolator:Landroid/view/animation/AccelerateInterpolator;
.field private cicleRect:Landroid/graphics/RectF;
.field private currentCircleLength:F
.field private currentProgressTime:F
.field private decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
.field private lastUpdateTime:J
.field private progressColor:I
.field private progressPaint:Landroid/graphics/Paint;
.field private radOffset:F
.field private risingCircleLength:Z
.field private size:I
.field private useSelfAlpha:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 3
.param p1, "context" # Landroid/content/Context;
.line 39
const/4 v0, 0x0
invoke-direct {p0, p1, v0}, Lim/tpelyyftgw/ui/components/RadialProgressView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.line 40
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.registers 4
.param p1, "context" # Landroid/content/Context;
.param p2, "attrs" # Landroid/util/AttributeSet;
.line 43
const/4 v0, 0x0
invoke-direct {p0, p1, p2, v0}, Lim/tpelyyftgw/ui/components/RadialProgressView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.line 44
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.registers 6
.param p1, "context" # Landroid/content/Context;
.param p2, "attrs" # Landroid/util/AttributeSet;
.param p3, "defStyleAttr" # I
.line 47
invoke-direct {p0, p1, p2, p3}, Landroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.line 26
new-instance v0, Landroid/graphics/RectF;
invoke-direct {v0}, Landroid/graphics/RectF;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->cicleRect:Landroid/graphics/RectF;
.line 49
const/high16 v0, 0x42200000 # 40.0f
invoke-static {v0}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v0
iput v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->size:I
.line 51
const-string v0, "progressCircle"
invoke-static {v0}, Lim/tpelyyftgw/ui/actionbar/Theme;->getColor(Ljava/lang/String;)I
move-result v0
iput v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressColor:I
.line 52
new-instance v0, Landroid/view/animation/DecelerateInterpolator;
invoke-direct {v0}, Landroid/view/animation/DecelerateInterpolator;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
.line 53
new-instance v0, Landroid/view/animation/AccelerateInterpolator;
invoke-direct {v0}, Landroid/view/animation/AccelerateInterpolator;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->accelerateInterpolator:Landroid/view/animation/AccelerateInterpolator;
.line 54
new-instance v0, Landroid/graphics/Paint;
const/4 v1, 0x1
invoke-direct {v0, v1}, Landroid/graphics/Paint;-><init>(I)V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressPaint:Landroid/graphics/Paint;
.line 55
sget-object v1, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
.line 56
iget-object v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressPaint:Landroid/graphics/Paint;
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 57
iget-object v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressPaint:Landroid/graphics/Paint;
const/high16 v1, 0x40400000 # 3.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 58
iget-object v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressPaint:Landroid/graphics/Paint;
iget v1, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressColor:I
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColor(I)V
.line 59
return-void
.end method
.method private updateAnimation()V
.registers 12
.line 80
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
.line 81
.local v0, "newTime":J
iget-wide v2, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->lastUpdateTime:J
sub-long v2, v0, v2
.line 82
.local v2, "dt":J
const-wide/16 v4, 0x11
cmp-long v6, v2, v4
if-lez v6, :cond_10
.line 83
const-wide/16 v2, 0x11
.line 85
:cond_10
iput-wide v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->lastUpdateTime:J
.line 87
iget v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->radOffset:F
const-wide/16 v5, 0x168
mul-long v5, v5, v2
long-to-float v5, v5
const/high16 v6, 0x44fa0000 # 2000.0f
div-float/2addr v5, v6
add-float/2addr v4, v5
iput v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->radOffset:F
.line 88
const/high16 v5, 0x43b40000 # 360.0f
div-float v5, v4, v5
float-to-int v5, v5
.line 89
.local v5, "count":I
mul-int/lit16 v6, v5, 0x168
int-to-float v6, v6
sub-float/2addr v4, v6
iput v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->radOffset:F
.line 91
iget v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentProgressTime:F
long-to-float v6, v2
add-float/2addr v4, v6
iput v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentProgressTime:F
.line 92
const/high16 v6, 0x43fa0000 # 500.0f
cmpl-float v4, v4, v6
if-ltz v4, :cond_38
.line 93
iput v6, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentProgressTime:F
.line 95
:cond_38
iget-boolean v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->risingCircleLength:Z
const/high16 v7, 0x43870000 # 270.0f
const/high16 v8, 0x40800000 # 4.0f
if-eqz v4, :cond_51
.line 96
const/high16 v4, 0x43850000 # 266.0f
iget-object v9, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->accelerateInterpolator:Landroid/view/animation/AccelerateInterpolator;
iget v10, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentProgressTime:F
div-float/2addr v10, v6
invoke-virtual {v9, v10}, Landroid/view/animation/AccelerateInterpolator;->getInterpolation(F)F
move-result v9
mul-float v9, v9, v4
add-float/2addr v9, v8
iput v9, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentCircleLength:F
goto :goto_62
.line 98
:cond_51
const/high16 v4, 0x3f800000 # 1.0f
iget-object v9, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
iget v10, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentProgressTime:F
div-float/2addr v10, v6
invoke-virtual {v9, v10}, Landroid/view/animation/DecelerateInterpolator;->getInterpolation(F)F
move-result v9
sub-float/2addr v4, v9
mul-float v4, v4, v7
sub-float/2addr v8, v4
iput v8, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentCircleLength:F
.line 100
:goto_62
iget v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentProgressTime:F
cmpl-float v4, v4, v6
if-nez v4, :cond_7e
.line 101
iget-boolean v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->risingCircleLength:Z
if-eqz v4, :cond_75
.line 102
iget v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->radOffset:F
add-float/2addr v4, v7
iput v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->radOffset:F
.line 103
const/high16 v4, -0x3c7b0000 # -266.0f
iput v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentCircleLength:F
.line 105
:cond_75
iget-boolean v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->risingCircleLength:Z
xor-int/lit8 v4, v4, 0x1
iput-boolean v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->risingCircleLength:Z
.line 106
const/4 v4, 0x0
iput v4, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentProgressTime:F
.line 108
:cond_7e
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/RadialProgressView;->invalidate()V
.line 109
return-void
.end method
# virtual methods
.method protected onDraw(Landroid/graphics/Canvas;)V
.registers 15
.param p1, "canvas" # Landroid/graphics/Canvas;
.line 127
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/RadialProgressView;->getMeasuredWidth()I
move-result v0
iget v1, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->size:I
sub-int/2addr v0, v1
div-int/lit8 v0, v0, 0x2
.line 128
.local v0, "x":I
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/RadialProgressView;->getMeasuredHeight()I
move-result v1
iget v2, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->size:I
sub-int/2addr v1, v2
div-int/lit8 v1, v1, 0x2
.line 129
.local v1, "y":I
iget-object v3, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->cicleRect:Landroid/graphics/RectF;
int-to-float v4, v0
int-to-float v5, v1
add-int v6, v0, v2
int-to-float v6, v6
add-int/2addr v2, v1
int-to-float v2, v2
invoke-virtual {v3, v4, v5, v6, v2}, Landroid/graphics/RectF;->set(FFFF)V
.line 130
iget-object v8, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->cicleRect:Landroid/graphics/RectF;
iget v9, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->radOffset:F
iget v10, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->currentCircleLength:F
iget-object v12, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressPaint:Landroid/graphics/Paint;
const/4 v11, 0x0
move-object v7, p1
invoke-virtual/range {v7 .. v12}, Landroid/graphics/Canvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V
.line 131
invoke-direct {p0}, Lim/tpelyyftgw/ui/components/RadialProgressView;->updateAnimation()V
.line 132
return-void
.end method
.method public setAlpha(F)V
.registers 5
.param p1, "alpha" # F
.line 68
invoke-super {p0, p1}, Landroid/view/View;->setAlpha(F)V
.line 69
iget-boolean v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->useSelfAlpha:Z
if-eqz v0, :cond_1a
.line 70
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/RadialProgressView;->getBackground()Landroid/graphics/drawable/Drawable;
move-result-object v0
.line 71
.local v0, "background":Landroid/graphics/drawable/Drawable;
const/high16 v1, 0x437f0000 # 255.0f
mul-float v1, v1, p1
float-to-int v1, v1
.line 72
.local v1, "a":I
if-eqz v0, :cond_15
.line 73
invoke-virtual {v0, v1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
.line 75
:cond_15
iget-object v2, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressPaint:Landroid/graphics/Paint;
invoke-virtual {v2, v1}, Landroid/graphics/Paint;->setAlpha(I)V
.line 77
.end local v0 # "background":Landroid/graphics/drawable/Drawable;
.end local v1 # "a":I
:cond_1a
return-void
.end method
.method public setProgressColor(I)V
.registers 3
.param p1, "color" # I
.line 121
iput p1, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressColor:I
.line 122
iget-object v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressPaint:Landroid/graphics/Paint;
invoke-virtual {v0, p1}, Landroid/graphics/Paint;->setColor(I)V
.line 123
return-void
.end method
.method public setSize(I)V
.registers 2
.param p1, "value" # I
.line 112
iput p1, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->size:I
.line 113
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/RadialProgressView;->invalidate()V
.line 114
return-void
.end method
.method public setStrokeWidth(F)V
.registers 4
.param p1, "value" # F
.line 117
iget-object v0, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->progressPaint:Landroid/graphics/Paint;
invoke-static {p1}, 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 118
return-void
.end method
.method public setUseSelfAlpha(Z)V
.registers 2
.param p1, "value" # Z
.line 62
iput-boolean p1, p0, Lim/tpelyyftgw/ui/components/RadialProgressView;->useSelfAlpha:Z
.line 63
return-void
.end method