ProgressDrawable.smali
.class public Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;
.super Lcom/scwang/smartrefresh/layout/internal/PaintDrawable;
.source "ProgressDrawable.java"
# interfaces
.implements Landroid/graphics/drawable/Animatable;
.implements Landroid/animation/ValueAnimator$AnimatorUpdateListener;
# instance fields
.field protected mHeight:I
.field protected mPath:Landroid/graphics/Path;
.field protected mProgressDegree:I
.field protected mValueAnimator:Landroid/animation/ValueAnimator;
.field protected mWidth:I
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 4
.line 25
invoke-direct {p0}, Lcom/scwang/smartrefresh/layout/internal/PaintDrawable;-><init>()V
.line 19
const/4 v0, 0x0
iput v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mWidth:I
.line 20
iput v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mHeight:I
.line 21
iput v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mProgressDegree:I
.line 23
new-instance v0, Landroid/graphics/Path;
invoke-direct {v0}, Landroid/graphics/Path;-><init>()V
iput-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mPath:Landroid/graphics/Path;
.line 26
const/4 v0, 0x2
new-array v0, v0, [I
fill-array-data v0, :array_36
invoke-static {v0}, Landroid/animation/ValueAnimator;->ofInt([I)Landroid/animation/ValueAnimator;
move-result-object v0
iput-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
.line 27
const-wide/16 v1, 0x2710
invoke-virtual {v0, v1, v2}, Landroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/ValueAnimator;
.line 28
iget-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/animation/ValueAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V
.line 29
iget-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
const/4 v1, -0x1
invoke-virtual {v0, v1}, Landroid/animation/ValueAnimator;->setRepeatCount(I)V
.line 30
iget-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
const/4 v1, 0x1
invoke-virtual {v0, v1}, Landroid/animation/ValueAnimator;->setRepeatMode(I)V
.line 31
return-void
nop
:array_36
.array-data 4
0x1e
0xe10
.end array-data
.end method
# virtual methods
.method public draw(Landroid/graphics/Canvas;)V
.registers 20
.param p1, "canvas" # Landroid/graphics/Canvas;
.line 44
move-object/from16 v0, p0
move-object/from16 v1, p1
move-object/from16 v2, p0
.line 45
.local v2, "drawable":Landroid/graphics/drawable/Drawable;
invoke-virtual {v2}, Landroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect;
move-result-object v3
.line 46
.local v3, "bounds":Landroid/graphics/Rect;
invoke-virtual {v3}, Landroid/graphics/Rect;->width()I
move-result v4
.line 47
.local v4, "width":I
invoke-virtual {v3}, Landroid/graphics/Rect;->height()I
move-result v5
.line 48
.local v5, "height":I
int-to-float v6, v4
const/high16 v7, 0x41b00000 # 22.0f
div-float/2addr v6, v7
const/high16 v7, 0x3f800000 # 1.0f
invoke-static {v7, v6}, Ljava/lang/Math;->max(FF)F
move-result v6
.line 50
.local v6, "r":F
iget v7, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mWidth:I
const/high16 v8, 0x40000000 # 2.0f
if-ne v7, v4, :cond_26
iget v7, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mHeight:I
if-eq v7, v5, :cond_60
.line 51
:cond_26
iget-object v7, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mPath:Landroid/graphics/Path;
invoke-virtual {v7}, Landroid/graphics/Path;->reset()V
.line 52
iget-object v7, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mPath:Landroid/graphics/Path;
int-to-float v9, v4
sub-float/2addr v9, v6
int-to-float v10, v5
div-float/2addr v10, v8
sget-object v11, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;
invoke-virtual {v7, v9, v10, v6, v11}, Landroid/graphics/Path;->addCircle(FFFLandroid/graphics/Path$Direction;)V
.line 53
iget-object v12, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mPath:Landroid/graphics/Path;
int-to-float v7, v4
const/high16 v9, 0x40a00000 # 5.0f
mul-float v10, v6, v9
sub-float v13, v7, v10
int-to-float v7, v5
div-float/2addr v7, v8
sub-float v14, v7, v6
int-to-float v7, v4
sub-float v15, v7, v6
int-to-float v7, v5
div-float/2addr v7, v8
add-float v16, v7, v6
sget-object v17, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;
invoke-virtual/range {v12 .. v17}, Landroid/graphics/Path;->addRect(FFFFLandroid/graphics/Path$Direction;)V
.line 54
iget-object v7, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mPath:Landroid/graphics/Path;
int-to-float v10, v4
mul-float v9, v9, v6
sub-float/2addr v10, v9
int-to-float v9, v5
div-float/2addr v9, v8
sget-object v11, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;
invoke-virtual {v7, v10, v9, v6, v11}, Landroid/graphics/Path;->addCircle(FFFLandroid/graphics/Path$Direction;)V
.line 55
iput v4, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mWidth:I
.line 56
iput v5, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mHeight:I
.line 59
:cond_60
invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->save()I
.line 60
iget v7, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mProgressDegree:I
int-to-float v7, v7
int-to-float v9, v4
div-float/2addr v9, v8
int-to-float v10, v5
div-float/2addr v10, v8
invoke-virtual {v1, v7, v9, v10}, Landroid/graphics/Canvas;->rotate(FFF)V
.line 61
const/4 v7, 0x0
.local v7, "i":I
:goto_6e
const/16 v9, 0xc
if-ge v7, v9, :cond_8e
.line 62
iget-object v9, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mPaint:Landroid/graphics/Paint;
add-int/lit8 v10, v7, 0x5
mul-int/lit8 v10, v10, 0x11
invoke-virtual {v9, v10}, Landroid/graphics/Paint;->setAlpha(I)V
.line 63
const/high16 v9, 0x41f00000 # 30.0f
int-to-float v10, v4
div-float/2addr v10, v8
int-to-float v11, v5
div-float/2addr v11, v8
invoke-virtual {v1, v9, v10, v11}, Landroid/graphics/Canvas;->rotate(FFF)V
.line 64
iget-object v9, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mPath:Landroid/graphics/Path;
iget-object v10, v0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mPaint:Landroid/graphics/Paint;
invoke-virtual {v1, v9, v10}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
.line 61
add-int/lit8 v7, v7, 0x1
goto :goto_6e
.line 66
.end local v7 # "i":I
:cond_8e
invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->restore()V
.line 67
return-void
.end method
.method public isRunning()Z
.registers 2
.line 90
iget-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
invoke-virtual {v0}, Landroid/animation/ValueAnimator;->isRunning()Z
move-result v0
return v0
.end method
.method public onAnimationUpdate(Landroid/animation/ValueAnimator;)V
.registers 4
.param p1, "animation" # Landroid/animation/ValueAnimator;
.line 35
invoke-virtual {p1}, Landroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
.line 36
.local v0, "value":I
div-int/lit8 v1, v0, 0x1e
mul-int/lit8 v1, v1, 0x1e
iput v1, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mProgressDegree:I
.line 37
move-object v1, p0
.line 38
.local v1, "drawable":Landroid/graphics/drawable/Drawable;
invoke-virtual {v1}, Landroid/graphics/drawable/Drawable;->invalidateSelf()V
.line 39
return-void
.end method
.method public start()V
.registers 2
.line 72
iget-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
invoke-virtual {v0}, Landroid/animation/ValueAnimator;->isRunning()Z
move-result v0
if-nez v0, :cond_12
.line 73
iget-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
invoke-virtual {v0, p0}, Landroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
.line 74
iget-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
invoke-virtual {v0}, Landroid/animation/ValueAnimator;->start()V
.line 76
:cond_12
return-void
.end method
.method public stop()V
.registers 3
.line 80
iget-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
invoke-virtual {v0}, Landroid/animation/ValueAnimator;->isRunning()Z
move-result v0
if-eqz v0, :cond_17
.line 81
iget-object v0, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
.line 82
.local v0, "animator":Landroid/animation/Animator;
invoke-virtual {v0}, Landroid/animation/Animator;->removeAllListeners()V
.line 83
iget-object v1, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
invoke-virtual {v1}, Landroid/animation/ValueAnimator;->removeAllUpdateListeners()V
.line 84
iget-object v1, p0, Lcom/scwang/smartrefresh/layout/internal/ProgressDrawable;->mValueAnimator:Landroid/animation/ValueAnimator;
invoke-virtual {v1}, Landroid/animation/ValueAnimator;->cancel()V
.line 86
.end local v0 # "animator":Landroid/animation/Animator;
:cond_17
return-void
.end method