SnowflakesEffect.smali
.class public Lim/tpelyyftgw/ui/components/SnowflakesEffect;
.super Ljava/lang/Object;
.source "SnowflakesEffect.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
}
.end annotation
# instance fields
.field final angleDiff:F
.field private freeParticles:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;",
">;"
}
.end annotation
.end field
.field private lastAnimationTime:J
.field private particlePaint:Landroid/graphics/Paint;
.field private particleThinPaint:Landroid/graphics/Paint;
.field private particles:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 6
.line 79
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 21
const v0, 0x3f860a92
iput v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->angleDiff:F
.line 76
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particles:Ljava/util/ArrayList;
.line 77
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->freeParticles:Ljava/util/ArrayList;
.line 80
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/SnowflakesEffect;->particlePaint:Landroid/graphics/Paint;
.line 81
const/high16 v2, 0x3fc00000 # 1.5f
invoke-static {v2}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v2
int-to-float v2, v2
invoke-virtual {v0, v2}, Landroid/graphics/Paint;->setStrokeWidth(F)V
.line 82
iget-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particlePaint:Landroid/graphics/Paint;
const-string v2, "actionBarDefaultTitle"
invoke-static {v2}, Lim/tpelyyftgw/ui/actionbar/Theme;->getColor(Ljava/lang/String;)I
move-result v3
const v4, -0x19191a
and-int/2addr v3, v4
invoke-virtual {v0, v3}, Landroid/graphics/Paint;->setColor(I)V
.line 83
iget-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particlePaint:Landroid/graphics/Paint;
sget-object v3, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap;
invoke-virtual {v0, v3}, Landroid/graphics/Paint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
.line 84
iget-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particlePaint:Landroid/graphics/Paint;
sget-object v3, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style;
invoke-virtual {v0, v3}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
.line 86
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0, v1}, Landroid/graphics/Paint;-><init>(I)V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particleThinPaint:Landroid/graphics/Paint;
.line 87
const/high16 v1, 0x3f000000 # 0.5f
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 88
iget-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particleThinPaint:Landroid/graphics/Paint;
invoke-static {v2}, Lim/tpelyyftgw/ui/actionbar/Theme;->getColor(Ljava/lang/String;)I
move-result v1
and-int/2addr v1, v4
invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColor(I)V
.line 89
iget-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particleThinPaint: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 90
iget-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particleThinPaint:Landroid/graphics/Paint;
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 92
const/4 v0, 0x0
.local v0, "a":I
:goto_6f
const/16 v1, 0x14
if-ge v0, v1, :cond_81
.line 93
iget-object v1, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->freeParticles:Ljava/util/ArrayList;
new-instance v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
const/4 v3, 0x0
invoke-direct {v2, p0, v3}, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;-><init>(Lim/tpelyyftgw/ui/components/SnowflakesEffect;Lim/tpelyyftgw/ui/components/SnowflakesEffect$1;)V
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 92
add-int/lit8 v0, v0, 0x1
goto :goto_6f
.line 95
.end local v0 # "a":I
:cond_81
return-void
.end method
.method static synthetic access$000(Lim/tpelyyftgw/ui/components/SnowflakesEffect;)Landroid/graphics/Paint;
.registers 2
.param p0, "x0" # Lim/tpelyyftgw/ui/components/SnowflakesEffect;
.line 14
iget-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particlePaint:Landroid/graphics/Paint;
return-object v0
.end method
.method static synthetic access$100(Lim/tpelyyftgw/ui/components/SnowflakesEffect;)Landroid/graphics/Paint;
.registers 2
.param p0, "x0" # Lim/tpelyyftgw/ui/components/SnowflakesEffect;
.line 14
iget-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particleThinPaint:Landroid/graphics/Paint;
return-object v0
.end method
.method private updateParticles(J)V
.registers 11
.param p1, "dt" # J
.line 98
iget-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particles:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 99
.local v0, "count":I
const/4 v1, 0x0
.local v1, "a":I
:goto_7
if-ge v1, v0, :cond_81
.line 100
iget-object v2, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particles:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
.line 101
.local v2, "particle":Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
iget v3, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->currentTime:F
iget v4, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->lifeTime:F
cmpl-float v3, v3, v4
if-ltz v3, :cond_32
.line 102
iget-object v3, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->freeParticles:Ljava/util/ArrayList;
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v3
const/16 v4, 0x28
if-ge v3, v4, :cond_28
.line 103
iget-object v3, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->freeParticles:Ljava/util/ArrayList;
invoke-virtual {v3, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 105
:cond_28
iget-object v3, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particles:Ljava/util/ArrayList;
invoke-virtual {v3, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
.line 106
add-int/lit8 v1, v1, -0x1
.line 107
add-int/lit8 v0, v0, -0x1
.line 108
goto :goto_7e
.line 110
:cond_32
iget v3, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->currentTime:F
const/high16 v4, 0x43480000 # 200.0f
cmpg-float v3, v3, v4
if-gez v3, :cond_46
.line 111
sget-object v3, Lim/tpelyyftgw/messenger/AndroidUtilities;->accelerateInterpolator:Landroid/view/animation/AccelerateInterpolator;
iget v5, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->currentTime:F
div-float/2addr v5, v4
invoke-virtual {v3, v5}, Landroid/view/animation/AccelerateInterpolator;->getInterpolation(F)F
move-result v3
iput v3, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->alpha:F
goto :goto_58
.line 113
:cond_46
const/high16 v3, 0x3f800000 # 1.0f
sget-object v5, Lim/tpelyyftgw/messenger/AndroidUtilities;->decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
iget v6, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->currentTime:F
sub-float/2addr v6, v4
iget v7, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->lifeTime:F
sub-float/2addr v7, v4
div-float/2addr v6, v7
invoke-virtual {v5, v6}, Landroid/view/animation/DecelerateInterpolator;->getInterpolation(F)F
move-result v4
sub-float/2addr v3, v4
iput v3, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->alpha:F
.line 115
:goto_58
iget v3, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->x:F
iget v4, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->vx:F
iget v5, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->velocity:F
mul-float v4, v4, v5
long-to-float v5, p1
mul-float v4, v4, v5
const/high16 v5, 0x43fa0000 # 500.0f
div-float/2addr v4, v5
add-float/2addr v3, v4
iput v3, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->x:F
.line 116
iget v3, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->y:F
iget v4, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->vy:F
iget v6, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->velocity:F
mul-float v4, v4, v6
long-to-float v6, p1
mul-float v4, v4, v6
div-float/2addr v4, v5
add-float/2addr v3, v4
iput v3, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->y:F
.line 117
iget v3, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->currentTime:F
long-to-float v4, p1
add-float/2addr v3, v4
iput v3, v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->currentTime:F
.line 99
.end local v2 # "particle":Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
:goto_7e
add-int/lit8 v1, v1, 0x1
goto :goto_7
.line 119
.end local v1 # "a":I
:cond_81
return-void
.end method
# virtual methods
.method public onDraw(Landroid/view/View;Landroid/graphics/Canvas;)V
.registers 16
.param p1, "parent" # Landroid/view/View;
.param p2, "canvas" # Landroid/graphics/Canvas;
.line 122
if-eqz p1, :cond_fe
if-nez p2, :cond_6
goto/16 :goto_fe
.line 126
:cond_6
iget-object v0, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particles:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
.line 127
.local v0, "count":I
const/4 v1, 0x0
.local v1, "a":I
:goto_d
if-ge v1, v0, :cond_1d
.line 128
iget-object v2, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particles:Ljava/util/ArrayList;
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
.line 129
.local v2, "particle":Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
invoke-virtual {v2, p2}, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->draw(Landroid/graphics/Canvas;)V
.line 127
.end local v2 # "particle":Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
add-int/lit8 v1, v1, 0x1
goto :goto_d
.line 132
.end local v1 # "a":I
:cond_1d
sget-object v1, Lim/tpelyyftgw/messenger/Utilities;->random:Ljava/security/SecureRandom;
invoke-virtual {v1}, Ljava/security/SecureRandom;->nextFloat()F
move-result v1
const v2, 0x3f333333 # 0.7f
cmpl-float v1, v1, v2
if-lez v1, :cond_e7
iget-object v1, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particles:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
const/16 v2, 0x64
if-ge v1, v2, :cond_e7
.line 133
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v3, 0x15
const/4 v4, 0x0
if-lt v1, v3, :cond_3e
sget v1, Lim/tpelyyftgw/messenger/AndroidUtilities;->statusBarHeight:I
goto :goto_3f
:cond_3e
const/4 v1, 0x0
.line 134
.local v1, "statusBarHeight":I
:goto_3f
sget-object v3, Lim/tpelyyftgw/messenger/Utilities;->random:Ljava/security/SecureRandom;
invoke-virtual {v3}, Ljava/security/SecureRandom;->nextFloat()F
move-result v3
invoke-virtual {p1}, Landroid/view/View;->getMeasuredWidth()I
move-result v5
int-to-float v5, v5
mul-float v3, v3, v5
.line 135
.local v3, "cx":F
int-to-float v5, v1
sget-object v6, Lim/tpelyyftgw/messenger/Utilities;->random:Ljava/security/SecureRandom;
invoke-virtual {v6}, Ljava/security/SecureRandom;->nextFloat()F
move-result v6
invoke-virtual {p1}, Landroid/view/View;->getMeasuredHeight()I
move-result v7
const/high16 v8, 0x41a00000 # 20.0f
invoke-static {v8}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v9
sub-int/2addr v7, v9
sub-int/2addr v7, v1
int-to-float v7, v7
mul-float v6, v6, v7
add-float/2addr v5, v6
.line 137
.local v5, "cy":F
sget-object v6, Lim/tpelyyftgw/messenger/Utilities;->random:Ljava/security/SecureRandom;
const/16 v7, 0x28
invoke-virtual {v6, v7}, Ljava/security/SecureRandom;->nextInt(I)I
move-result v6
add-int/lit8 v6, v6, -0x14
add-int/lit8 v6, v6, 0x5a
.line 138
.local v6, "angle":I
int-to-double v9, v6
const-wide v11, 0x3f91df46a2529d39L # 0.017453292519943295
invoke-static {v9, v10}, Ljava/lang/Double;->isNaN(D)Z
mul-double v9, v9, v11
invoke-static {v9, v10}, Ljava/lang/Math;->cos(D)D
move-result-wide v9
double-to-float v7, v9
.line 139
.local v7, "vx":F
int-to-double v9, v6
invoke-static {v9, v10}, Ljava/lang/Double;->isNaN(D)Z
mul-double v9, v9, v11
invoke-static {v9, v10}, Ljava/lang/Math;->sin(D)D
move-result-wide v9
double-to-float v9, v9
.line 142
.local v9, "vy":F
iget-object v10, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->freeParticles:Ljava/util/ArrayList;
invoke-virtual {v10}, Ljava/util/ArrayList;->isEmpty()Z
move-result v10
if-nez v10, :cond_a0
.line 143
iget-object v10, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->freeParticles:Ljava/util/ArrayList;
invoke-virtual {v10, v4}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v10
check-cast v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
.line 144
.local v10, "newParticle":Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
iget-object v11, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->freeParticles:Ljava/util/ArrayList;
invoke-virtual {v11, v4}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
goto :goto_a7
.line 146
.end local v10 # "newParticle":Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
:cond_a0
new-instance v4, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
const/4 v10, 0x0
invoke-direct {v4, p0, v10}, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;-><init>(Lim/tpelyyftgw/ui/components/SnowflakesEffect;Lim/tpelyyftgw/ui/components/SnowflakesEffect$1;)V
move-object v10, v4
.line 148
.restart local v10 # "newParticle":Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
:goto_a7
iput v3, v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->x:F
.line 149
iput v5, v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->y:F
.line 151
iput v7, v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->vx:F
.line 152
iput v9, v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->vy:F
.line 154
const/4 v4, 0x0
iput v4, v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->alpha:F
.line 155
iput v4, v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->currentTime:F
.line 157
sget-object v4, Lim/tpelyyftgw/messenger/Utilities;->random:Ljava/security/SecureRandom;
invoke-virtual {v4}, Ljava/security/SecureRandom;->nextFloat()F
move-result v4
const v11, 0x3f99999a # 1.2f
mul-float v4, v4, v11
iput v4, v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->scale:F
.line 158
sget-object v4, Lim/tpelyyftgw/messenger/Utilities;->random:Ljava/security/SecureRandom;
const/4 v11, 0x2
invoke-virtual {v4, v11}, Ljava/security/SecureRandom;->nextInt(I)I
move-result v4
iput v4, v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->type:I
.line 160
sget-object v4, Lim/tpelyyftgw/messenger/Utilities;->random:Ljava/security/SecureRandom;
invoke-virtual {v4, v2}, Ljava/security/SecureRandom;->nextInt(I)I
move-result v2
add-int/lit16 v2, v2, 0x7d0
int-to-float v2, v2
iput v2, v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->lifeTime:F
.line 161
sget-object v2, Lim/tpelyyftgw/messenger/Utilities;->random:Ljava/security/SecureRandom;
invoke-virtual {v2}, Ljava/security/SecureRandom;->nextFloat()F
move-result v2
const/high16 v4, 0x40800000 # 4.0f
mul-float v2, v2, v4
add-float/2addr v2, v8
iput v2, v10, Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;->velocity:F
.line 162
iget-object v2, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->particles:Ljava/util/ArrayList;
invoke-virtual {v2, v10}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 165
.end local v1 # "statusBarHeight":I
.end local v3 # "cx":F
.end local v5 # "cy":F
.end local v6 # "angle":I
.end local v7 # "vx":F
.end local v9 # "vy":F
.end local v10 # "newParticle":Lim/tpelyyftgw/ui/components/SnowflakesEffect$Particle;
:cond_e7
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v1
.line 166
.local v1, "newTime":J
const-wide/16 v3, 0x11
iget-wide v5, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->lastAnimationTime:J
sub-long v5, v1, v5
invoke-static {v3, v4, v5, v6}, Ljava/lang/Math;->min(JJ)J
move-result-wide v3
.line 167
.local v3, "dt":J
invoke-direct {p0, v3, v4}, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->updateParticles(J)V
.line 168
iput-wide v1, p0, Lim/tpelyyftgw/ui/components/SnowflakesEffect;->lastAnimationTime:J
.line 169
invoke-virtual {p1}, Landroid/view/View;->invalidate()V
.line 170
return-void
.line 123
.end local v0 # "count":I
.end local v1 # "newTime":J
.end local v3 # "dt":J
:cond_fe
:goto_fe
return-void
.end method