AnimatedFileDrawableStream.smali
.class public Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;
.super Ljava/lang/Object;
.source "AnimatedFileDrawableStream.java"
# interfaces
.implements Lim/tpelyyftgw/messenger/FileLoadOperationStream;
# instance fields
.field private volatile canceled:Z
.field private countDownLatch:Ljava/util/concurrent/CountDownLatch;
.field private currentAccount:I
.field private document:Lim/tpelyyftgw/tgnet/TLRPC$Document;
.field private lastOffset:I
.field private loadOperation:Lim/tpelyyftgw/messenger/FileLoadOperation;
.field private parentObject:Ljava/lang/Object;
.field private preview:Z
.field private final sync:Ljava/lang/Object;
.field private waitingForLoad:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Lim/tpelyyftgw/tgnet/TLRPC$Document;Ljava/lang/Object;IZ)V
.registers 12
.param p1, "d" # Lim/tpelyyftgw/tgnet/TLRPC$Document;
.param p2, "p" # Ljava/lang/Object;
.param p3, "a" # I
.param p4, "prev" # Z
.line 20
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 15
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->sync:Ljava/lang/Object;
.line 21
iput-object p1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->document:Lim/tpelyyftgw/tgnet/TLRPC$Document;
.line 22
iput-object p2, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->parentObject:Ljava/lang/Object;
.line 23
iput p3, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->currentAccount:I
.line 24
iput-boolean p4, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->preview:Z
.line 25
invoke-static {p3}, Lim/tpelyyftgw/messenger/FileLoader;->getInstance(I)Lim/tpelyyftgw/messenger/FileLoader;
move-result-object v1
iget-object v3, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->document:Lim/tpelyyftgw/tgnet/TLRPC$Document;
iget-object v4, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->parentObject:Ljava/lang/Object;
iget-boolean v6, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->preview:Z
const/4 v5, 0x0
move-object v2, p0
invoke-virtual/range {v1 .. v6}, Lim/tpelyyftgw/messenger/FileLoader;->loadStreamFile(Lim/tpelyyftgw/messenger/FileLoadOperationStream;Lim/tpelyyftgw/tgnet/TLRPC$Document;Ljava/lang/Object;IZ)Lim/tpelyyftgw/messenger/FileLoadOperation;
move-result-object v0
iput-object v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->loadOperation:Lim/tpelyyftgw/messenger/FileLoadOperation;
.line 26
return-void
.end method
# virtual methods
.method public cancel()V
.registers 2
.line 68
const/4 v0, 0x1
invoke-virtual {p0, v0}, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->cancel(Z)V
.line 69
return-void
.end method
.method public cancel(Z)V
.registers 7
.param p1, "removeLoading" # Z
.line 72
iget-object v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->sync:Ljava/lang/Object;
monitor-enter v0
.line 73
:try_start_3
iget-object v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->countDownLatch:Ljava/util/concurrent/CountDownLatch;
const/4 v2, 0x1
if-eqz v1, :cond_23
.line 74
iget-object v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->countDownLatch:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v1}, Ljava/util/concurrent/CountDownLatch;->countDown()V
.line 75
if-eqz p1, :cond_23
iget-boolean v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->canceled:Z
if-nez v1, :cond_23
iget-boolean v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->preview:Z
if-nez v1, :cond_23
.line 76
iget v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->currentAccount:I
invoke-static {v1}, Lim/tpelyyftgw/messenger/FileLoader;->getInstance(I)Lim/tpelyyftgw/messenger/FileLoader;
move-result-object v1
iget-object v3, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->document:Lim/tpelyyftgw/tgnet/TLRPC$Document;
const/4 v4, 0x0
invoke-virtual {v1, v3, v4, v2}, Lim/tpelyyftgw/messenger/FileLoader;->removeLoadingVideo(Lim/tpelyyftgw/tgnet/TLRPC$Document;ZZ)V
.line 79
:cond_23
iput-boolean v2, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->canceled:Z
.line 80
monitor-exit v0
.line 81
return-void
.line 80
:catchall_27
move-exception v1
monitor-exit v0
:try_end_29
.catchall {:try_start_3 .. :try_end_29} :catchall_27
throw v1
.end method
.method public getCurrentAccount()I
.registers 2
.line 102
iget v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->currentAccount:I
return v0
.end method
.method public getDocument()Lim/tpelyyftgw/tgnet/TLRPC$Document;
.registers 2
.line 90
iget-object v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->document:Lim/tpelyyftgw/tgnet/TLRPC$Document;
return-object v0
.end method
.method public getParentObject()Ljava/lang/Object;
.registers 2
.line 94
iget-object v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->document:Lim/tpelyyftgw/tgnet/TLRPC$Document;
return-object v0
.end method
.method public isPreview()Z
.registers 2
.line 98
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->preview:Z
return v0
.end method
.method public isWaitingForLoad()Z
.registers 2
.line 106
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->waitingForLoad:Z
return v0
.end method
.method public newDataAvailable()V
.registers 2
.line 111
iget-object v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->countDownLatch:Ljava/util/concurrent/CountDownLatch;
if-eqz v0, :cond_7
.line 112
invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->countDown()V
.line 114
:cond_7
return-void
.end method
.method public read(II)I
.registers 12
.param p1, "offset" # I
.param p2, "readLength" # I
.line 29
iget-object v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->sync:Ljava/lang/Object;
monitor-enter v0
.line 30
:try_start_3
iget-boolean v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->canceled:Z
const/4 v2, 0x0
if-eqz v1, :cond_a
.line 31
monitor-exit v0
return v2
.line 33
:cond_a
monitor-exit v0
:try_end_b
.catchall {:try_start_3 .. :try_end_b} :catchall_73
.line 34
if-nez p2, :cond_e
.line 35
return v2
.line 37
:cond_e
const/4 v0, 0x0
.line 39
.local v0, "availableLength":I
:cond_f
:goto_f
if-nez v0, :cond_69
.line 40
:try_start_11
iget-object v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->loadOperation:Lim/tpelyyftgw/messenger/FileLoadOperation;
invoke-virtual {v1, p1, p2}, Lim/tpelyyftgw/messenger/FileLoadOperation;->getDownloadedLengthFromOffset(II)I
move-result v1
move v0, v1
.line 41
if-nez v0, :cond_f
.line 42
iget-object v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->loadOperation:Lim/tpelyyftgw/messenger/FileLoadOperation;
invoke-virtual {v1}, Lim/tpelyyftgw/messenger/FileLoadOperation;->isPaused()Z
move-result v1
if-nez v1, :cond_2a
iget v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->lastOffset:I
if-ne v1, p1, :cond_2a
iget-boolean v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->preview:Z
if-eqz v1, :cond_3b
.line 43
:cond_2a
iget v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->currentAccount:I
invoke-static {v1}, Lim/tpelyyftgw/messenger/FileLoader;->getInstance(I)Lim/tpelyyftgw/messenger/FileLoader;
move-result-object v3
iget-object v5, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->document:Lim/tpelyyftgw/tgnet/TLRPC$Document;
iget-object v6, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->parentObject:Ljava/lang/Object;
iget-boolean v8, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->preview:Z
move-object v4, p0
move v7, p1
invoke-virtual/range {v3 .. v8}, Lim/tpelyyftgw/messenger/FileLoader;->loadStreamFile(Lim/tpelyyftgw/messenger/FileLoadOperationStream;Lim/tpelyyftgw/tgnet/TLRPC$Document;Ljava/lang/Object;IZ)Lim/tpelyyftgw/messenger/FileLoadOperation;
.line 45
:cond_3b
iget-object v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->sync:Ljava/lang/Object;
monitor-enter v1
:try_end_3e
.catch Ljava/lang/Exception; {:try_start_11 .. :try_end_3e} :catch_6e
.line 46
:try_start_3e
iget-boolean v3, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->canceled:Z
if-eqz v3, :cond_44
.line 47
monitor-exit v1
return v2
.line 49
:cond_44
new-instance v3, Ljava/util/concurrent/CountDownLatch;
const/4 v4, 0x1
invoke-direct {v3, v4}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V
iput-object v3, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->countDownLatch:Ljava/util/concurrent/CountDownLatch;
.line 50
monitor-exit v1
:try_end_4d
.catchall {:try_start_3e .. :try_end_4d} :catchall_66
.line 51
:try_start_4d
iget-boolean v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->preview:Z
if-nez v1, :cond_5c
.line 52
iget v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->currentAccount:I
invoke-static {v1}, Lim/tpelyyftgw/messenger/FileLoader;->getInstance(I)Lim/tpelyyftgw/messenger/FileLoader;
move-result-object v1
iget-object v3, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->document:Lim/tpelyyftgw/tgnet/TLRPC$Document;
invoke-virtual {v1, v3, v2, v4}, Lim/tpelyyftgw/messenger/FileLoader;->setLoadingVideo(Lim/tpelyyftgw/tgnet/TLRPC$Document;ZZ)V
.line 54
:cond_5c
iput-boolean v4, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->waitingForLoad:Z
.line 55
iget-object v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->countDownLatch:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v1}, Ljava/util/concurrent/CountDownLatch;->await()V
.line 56
iput-boolean v2, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->waitingForLoad:Z
:try_end_65
.catch Ljava/lang/Exception; {:try_start_4d .. :try_end_65} :catch_6e
goto :goto_f
.line 50
:catchall_66
move-exception v2
:try_start_67
monitor-exit v1
:try_end_68
.catchall {:try_start_67 .. :try_end_68} :catchall_66
.end local v0 # "availableLength":I
.end local p1 # "offset":I
.end local p2 # "readLength":I
:try_start_68
throw v2
.line 59
.restart local v0 # "availableLength":I
.restart local p1 # "offset":I
.restart local p2 # "readLength":I
:cond_69
add-int v1, p1, v0
iput v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->lastOffset:I
:try_end_6d
.catch Ljava/lang/Exception; {:try_start_68 .. :try_end_6d} :catch_6e
.line 62
goto :goto_72
.line 60
:catch_6e
move-exception v1
.line 61
.local v1, "e":Ljava/lang/Exception;
invoke-static {v1}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 63
.end local v1 # "e":Ljava/lang/Exception;
:goto_72
return v0
.line 33
.end local v0 # "availableLength":I
:catchall_73
move-exception v1
:try_start_74
monitor-exit v0
:try_end_75
.catchall {:try_start_74 .. :try_end_75} :catchall_73
goto :goto_77
:goto_76
throw v1
:goto_77
goto :goto_76
.end method
.method public reset()V
.registers 3
.line 84
iget-object v0, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->sync:Ljava/lang/Object;
monitor-enter v0
.line 85
const/4 v1, 0x0
:try_start_4
iput-boolean v1, p0, Lim/tpelyyftgw/messenger/AnimatedFileDrawableStream;->canceled:Z
.line 86
monitor-exit v0
.line 87
return-void
.line 86
:catchall_8
move-exception v1
monitor-exit v0
:try_end_a
.catchall {:try_start_4 .. :try_end_a} :catchall_8
throw v1
.end method