TypingDotsDrawable.smali
.class public Lim/tpelyyftgw/ui/components/TypingDotsDrawable;
.super Lim/tpelyyftgw/ui/components/StatusDrawable;
.source "TypingDotsDrawable.java"
# instance fields
.field private currentAccount:I
.field private decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
.field private elapsedTimes:[F
.field private isChat:Z
.field private lastUpdateTime:J
.field private scales:[F
.field private startTimes:[F
.field private started:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 4
.line 14
invoke-direct {p0}, Lim/tpelyyftgw/ui/components/StatusDrawable;-><init>()V
.line 16
sget v0, Lim/tpelyyftgw/messenger/UserConfig;->selectedAccount:I
iput v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->currentAccount:I
.line 17
const/4 v0, 0x0
iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->isChat:Z
.line 18
const/4 v1, 0x3
new-array v2, v1, [F
iput-object v2, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->scales:[F
.line 19
new-array v2, v1, [F
fill-array-data v2, :array_2c
iput-object v2, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->startTimes:[F
.line 20
new-array v1, v1, [F
fill-array-data v1, :array_36
iput-object v1, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->elapsedTimes:[F
.line 21
const-wide/16 v1, 0x0
iput-wide v1, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->lastUpdateTime:J
.line 22
iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->started:Z
.line 23
new-instance v0, Landroid/view/animation/DecelerateInterpolator;
invoke-direct {v0}, Landroid/view/animation/DecelerateInterpolator;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
return-void
nop
:array_2c
.array-data 4
0x0
0x43160000 # 150.0f
0x43960000 # 300.0f
.end array-data
:array_36
.array-data 4
0x0
0x0
0x0
.end array-data
.end method
.method private checkUpdate()V
.registers 4
.line 95
iget-boolean v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->started:Z
if-eqz v0, :cond_1e
.line 96
iget v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->currentAccount:I
invoke-static {v0}, Lim/tpelyyftgw/messenger/NotificationCenter;->getInstance(I)Lim/tpelyyftgw/messenger/NotificationCenter;
move-result-object v0
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/NotificationCenter;->isAnimationInProgress()Z
move-result v0
if-nez v0, :cond_14
.line 97
invoke-direct {p0}, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->update()V
goto :goto_1e
.line 99
:cond_14
new-instance v0, Lim/tpelyyftgw/ui/components/-$$Lambda$TypingDotsDrawable$ANpjOHF3mpqcau2q3_sq1advbo4;
invoke-direct {v0, p0}, Lim/tpelyyftgw/ui/components/-$$Lambda$TypingDotsDrawable$ANpjOHF3mpqcau2q3_sq1advbo4;-><init>(Lim/tpelyyftgw/ui/components/TypingDotsDrawable;)V
const-wide/16 v1, 0x64
invoke-static {v0, v1, v2}, Lim/tpelyyftgw/messenger/AndroidUtilities;->runOnUIThread(Ljava/lang/Runnable;J)V
.line 102
:cond_1e
:goto_1e
return-void
.end method
.method public static synthetic lambda$ANpjOHF3mpqcau2q3_sq1advbo4(Lim/tpelyyftgw/ui/components/TypingDotsDrawable;)V
.registers 1
invoke-direct {p0}, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->checkUpdate()V
return-void
.end method
.method private update()V
.registers 13
.line 30
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
.line 31
.local v0, "newTime":J
iget-wide v2, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->lastUpdateTime:J
sub-long v2, v0, v2
.line 32
.local v2, "dt":J
iput-wide v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->lastUpdateTime:J
.line 33
const-wide/16 v4, 0x32
cmp-long v6, v2, v4
if-lez v6, :cond_12
.line 34
const-wide/16 v2, 0x32
.line 37
:cond_12
const/4 v4, 0x0
.local v4, "a":I
:goto_13
const/4 v5, 0x3
if-ge v4, v5, :cond_74
.line 38
iget-object v5, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->elapsedTimes:[F
aget v6, v5, v4
long-to-float v7, v2
add-float/2addr v6, v7
aput v6, v5, v4
.line 39
aget v6, v5, v4
iget-object v7, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->startTimes:[F
aget v8, v7, v4
sub-float/2addr v6, v8
.line 40
.local v6, "timeSinceStart":F
const/4 v8, 0x0
const v9, 0x3faa3d71 # 1.33f
cmpl-float v10, v6, v8
if-lez v10, :cond_6d
.line 41
const/high16 v10, 0x43a00000 # 320.0f
cmpg-float v11, v6, v10
if-gtz v11, :cond_41
.line 42
iget-object v5, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
div-float v7, v6, v10
invoke-virtual {v5, v7}, Landroid/view/animation/DecelerateInterpolator;->getInterpolation(F)F
move-result v5
.line 43
.local v5, "diff":F
iget-object v7, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->scales:[F
add-float/2addr v9, v5
aput v9, v7, v4
.line 44
.end local v5 # "diff":F
goto :goto_71
:cond_41
const/high16 v11, 0x44200000 # 640.0f
cmpg-float v11, v6, v11
if-gtz v11, :cond_59
.line 45
iget-object v5, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->decelerateInterpolator:Landroid/view/animation/DecelerateInterpolator;
sub-float v7, v6, v10
div-float/2addr v7, v10
invoke-virtual {v5, v7}, Landroid/view/animation/DecelerateInterpolator;->getInterpolation(F)F
move-result v5
.line 46
.restart local v5 # "diff":F
iget-object v7, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->scales:[F
const/high16 v8, 0x3f800000 # 1.0f
sub-float/2addr v8, v5
add-float/2addr v8, v9
aput v8, v7, v4
.line 47
.end local v5 # "diff":F
goto :goto_71
:cond_59
const/high16 v10, 0x44480000 # 800.0f
cmpl-float v10, v6, v10
if-ltz v10, :cond_68
.line 48
aput v8, v5, v4
.line 49
aput v8, v7, v4
.line 50
iget-object v5, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->scales:[F
aput v9, v5, v4
goto :goto_71
.line 52
:cond_68
iget-object v5, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->scales:[F
aput v9, v5, v4
goto :goto_71
.line 55
:cond_6d
iget-object v5, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->scales:[F
aput v9, v5, v4
.line 37
.end local v6 # "timeSinceStart":F
:goto_71
add-int/lit8 v4, v4, 0x1
goto :goto_13
.line 59
.end local v4 # "a":I
:cond_74
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->invalidateSelf()V
.line 60
return-void
.end method
# virtual methods
.method public draw(Landroid/graphics/Canvas;)V
.registers 7
.param p1, "canvas" # Landroid/graphics/Canvas;
.line 82
iget-boolean v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->isChat:Z
if-eqz v0, :cond_12
.line 83
const/high16 v0, 0x41080000 # 8.5f
invoke-static {v0}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v0
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->getBounds()Landroid/graphics/Rect;
move-result-object v1
iget v1, v1, Landroid/graphics/Rect;->top:I
add-int/2addr v0, v1
.local v0, "y":I
goto :goto_20
.line 85
.end local v0 # "y":I
:cond_12
const v0, 0x4114cccd # 9.3f
invoke-static {v0}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v0
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->getBounds()Landroid/graphics/Rect;
move-result-object v1
iget v1, v1, Landroid/graphics/Rect;->top:I
add-int/2addr v0, v1
.line 87
.restart local v0 # "y":I
:goto_20
sget-object v1, Lim/tpelyyftgw/ui/actionbar/Theme;->chat_statusPaint:Landroid/graphics/Paint;
const/16 v2, 0xff
invoke-virtual {v1, v2}, Landroid/graphics/Paint;->setAlpha(I)V
.line 88
const/high16 v1, 0x40400000 # 3.0f
invoke-static {v1}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v1
int-to-float v1, v1
int-to-float v2, v0
iget-object v3, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->scales:[F
const/4 v4, 0x0
aget v3, v3, v4
sget v4, Lim/tpelyyftgw/messenger/AndroidUtilities;->density:F
mul-float v3, v3, v4
sget-object v4, Lim/tpelyyftgw/ui/actionbar/Theme;->chat_statusPaint:Landroid/graphics/Paint;
invoke-virtual {p1, v1, v2, v3, v4}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
.line 89
const/high16 v1, 0x41100000 # 9.0f
invoke-static {v1}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v1
int-to-float v1, v1
int-to-float v2, v0
iget-object v3, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->scales:[F
const/4 v4, 0x1
aget v3, v3, v4
sget v4, Lim/tpelyyftgw/messenger/AndroidUtilities;->density:F
mul-float v3, v3, v4
sget-object v4, Lim/tpelyyftgw/ui/actionbar/Theme;->chat_statusPaint:Landroid/graphics/Paint;
invoke-virtual {p1, v1, v2, v3, v4}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
.line 90
const/high16 v1, 0x41700000 # 15.0f
invoke-static {v1}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v1
int-to-float v1, v1
int-to-float v2, v0
iget-object v3, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->scales:[F
const/4 v4, 0x2
aget v3, v3, v4
sget v4, Lim/tpelyyftgw/messenger/AndroidUtilities;->density:F
mul-float v3, v3, v4
sget-object v4, Lim/tpelyyftgw/ui/actionbar/Theme;->chat_statusPaint:Landroid/graphics/Paint;
invoke-virtual {p1, v1, v2, v3, v4}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
.line 91
invoke-direct {p0}, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->checkUpdate()V
.line 92
return-void
.end method
.method public getIntrinsicHeight()I
.registers 2
.line 126
const/high16 v0, 0x41900000 # 18.0f
invoke-static {v0}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v0
return v0
.end method
.method public getIntrinsicWidth()I
.registers 2
.line 121
const/high16 v0, 0x41900000 # 18.0f
invoke-static {v0}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v0
return v0
.end method
.method public getOpacity()I
.registers 2
.line 116
const/4 v0, -0x2
return v0
.end method
.method public setAlpha(I)V
.registers 2
.param p1, "alpha" # I
.line 107
return-void
.end method
.method public setColorFilter(Landroid/graphics/ColorFilter;)V
.registers 2
.param p1, "cf" # Landroid/graphics/ColorFilter;
.line 112
return-void
.end method
.method public setIsChat(Z)V
.registers 2
.param p1, "value" # Z
.line 26
iput-boolean p1, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->isChat:Z
.line 27
return-void
.end method
.method public start()V
.registers 3
.line 63
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
iput-wide v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->lastUpdateTime:J
.line 64
const/4 v0, 0x1
iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->started:Z
.line 65
invoke-virtual {p0}, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->invalidateSelf()V
.line 66
return-void
.end method
.method public stop()V
.registers 5
.line 69
const/4 v0, 0x0
.local v0, "a":I
:goto_1
const/4 v1, 0x3
const/4 v2, 0x0
if-ge v0, v1, :cond_13
.line 70
iget-object v1, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->elapsedTimes:[F
aput v2, v1, v0
.line 71
iget-object v1, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->scales:[F
const v2, 0x3faa3d71 # 1.33f
aput v2, v1, v0
.line 69
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 73
.end local v0 # "a":I
:cond_13
iget-object v0, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->startTimes:[F
const/4 v1, 0x0
aput v2, v0, v1
.line 74
const/high16 v2, 0x43160000 # 150.0f
const/4 v3, 0x1
aput v2, v0, v3
.line 75
const/4 v2, 0x2
const/high16 v3, 0x43960000 # 300.0f
aput v3, v0, v2
.line 76
iput-boolean v1, p0, Lim/tpelyyftgw/ui/components/TypingDotsDrawable;->started:Z
.line 77
return-void
.end method