DownloadManager$Download.smali
.class final Lcom/google/android/exoplayer2/offline/DownloadManager$Download;
.super Ljava/lang/Object;
.source "DownloadManager.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/offline/DownloadManager;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1a
name = "Download"
.end annotation
# instance fields
.field private final actionQueue:Ljava/util/ArrayDeque;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayDeque<",
"Lcom/google/android/exoplayer2/offline/DownloadAction;",
">;"
}
.end annotation
.end field
.field private final downloadManager:Lcom/google/android/exoplayer2/offline/DownloadManager;
.field private downloadThread:Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;
.field private downloader:Lcom/google/android/exoplayer2/offline/Downloader;
.field private final downloaderFactory:Lcom/google/android/exoplayer2/offline/DownloaderFactory;
.field private failureReason:I
.field private final id:Ljava/lang/String;
.field private final minRetryCount:I
.field private final startTimeMs:J
.field private state:I
.field private stopFlags:I
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method private constructor <init>(Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/offline/DownloaderFactory;Lcom/google/android/exoplayer2/offline/DownloadAction;II)V
.registers 8
.param p1, "downloadManager" # Lcom/google/android/exoplayer2/offline/DownloadManager;
.param p2, "downloaderFactory" # Lcom/google/android/exoplayer2/offline/DownloaderFactory;
.param p3, "action" # Lcom/google/android/exoplayer2/offline/DownloadAction;
.param p4, "minRetryCount" # I
.param p5, "stopFlags" # I
.line 520
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 521
iget-object v0, p3, Lcom/google/android/exoplayer2/offline/DownloadAction;->id:Ljava/lang/String;
iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->id:Ljava/lang/String;
.line 522
iput-object p1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloadManager:Lcom/google/android/exoplayer2/offline/DownloadManager;
.line 523
iput-object p2, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloaderFactory:Lcom/google/android/exoplayer2/offline/DownloaderFactory;
.line 524
iput p4, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->minRetryCount:I
.line 525
iput p5, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->stopFlags:I
.line 526
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
iput-wide v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->startTimeMs:J
.line 527
new-instance v0, Ljava/util/ArrayDeque;
invoke-direct {v0}, Ljava/util/ArrayDeque;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
.line 528
invoke-virtual {v0, p3}, Ljava/util/ArrayDeque;->add(Ljava/lang/Object;)Z
.line 529
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->initialize(Z)V
.line 530
return-void
.end method
.method synthetic constructor <init>(Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/offline/DownloaderFactory;Lcom/google/android/exoplayer2/offline/DownloadAction;IILcom/google/android/exoplayer2/offline/DownloadManager$1;)V
.registers 7
.param p1, "x0" # Lcom/google/android/exoplayer2/offline/DownloadManager;
.param p2, "x1" # Lcom/google/android/exoplayer2/offline/DownloaderFactory;
.param p3, "x2" # Lcom/google/android/exoplayer2/offline/DownloadAction;
.param p4, "x3" # I
.param p5, "x4" # I
.param p6, "x5" # Lcom/google/android/exoplayer2/offline/DownloadManager$1;
.line 499
invoke-direct/range {p0 .. p5}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;-><init>(Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/offline/DownloaderFactory;Lcom/google/android/exoplayer2/offline/DownloadAction;II)V
return-void
.end method
.method static synthetic access$000(Lcom/google/android/exoplayer2/offline/DownloadManager$Download;)Ljava/lang/String;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/offline/DownloadManager$Download;
.line 499
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->id:Ljava/lang/String;
return-object v0
.end method
.method static synthetic access$1100(Lcom/google/android/exoplayer2/offline/DownloadManager$Download;Ljava/lang/Throwable;)V
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/offline/DownloadManager$Download;
.param p1, "x1" # Ljava/lang/Throwable;
.line 499
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->onDownloadThreadStopped(Ljava/lang/Throwable;)V
return-void
.end method
.method static synthetic access$200(Lcom/google/android/exoplayer2/offline/DownloadManager$Download;)Ljava/util/ArrayDeque;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/offline/DownloadManager$Download;
.line 499
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
return-object v0
.end method
.method private initialize(Z)V
.registers 5
.param p1, "restart" # Z
.line 632
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/offline/DownloadAction;
.line 633
.local v0, "action":Lcom/google/android/exoplayer2/offline/DownloadAction;
iget-boolean v1, v0, Lcom/google/android/exoplayer2/offline/DownloadAction;->isRemoveAction:Z
const/4 v2, 0x1
if-eqz v1, :cond_27
.line 634
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloadManager:Lcom/google/android/exoplayer2/offline/DownloadManager;
# getter for: Lcom/google/android/exoplayer2/offline/DownloadManager;->released:Z
invoke-static {v1}, Lcom/google/android/exoplayer2/offline/DownloadManager;->access$400(Lcom/google/android/exoplayer2/offline/DownloadManager;)Z
move-result v1
if-nez v1, :cond_18
.line 635
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->startDownloadThread(Lcom/google/android/exoplayer2/offline/DownloadAction;)V
.line 637
:cond_18
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-virtual {v1}, Ljava/util/ArrayDeque;->size()I
move-result v1
if-ne v1, v2, :cond_22
const/4 v1, 0x5
goto :goto_23
:cond_22
const/4 v1, 0x7
:goto_23
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->setState(I)V
goto :goto_32
.line 638
:cond_27
iget v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->stopFlags:I
if-eqz v1, :cond_2f
.line 639
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->setState(I)V
goto :goto_32
.line 641
:cond_2f
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->startOrQueue(Z)V
.line 643
:goto_32
return-void
.end method
.method private onDownloadThreadStopped(Ljava/lang/Throwable;)V
.registers 8
.param p1, "finalError" # Ljava/lang/Throwable;
.line 675
const/4 v0, 0x0
iput v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->failureReason:I
.line 676
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloadThread:Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;
# getter for: Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;->isCanceled:Z
invoke-static {v1}, Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;->access$900(Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;)Z
move-result v1
const/4 v2, 0x2
const/4 v3, 0x1
if-nez v1, :cond_3f
.line 677
const/4 v1, 0x5
if-eqz p1, :cond_1e
iget v4, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
if-eq v4, v1, :cond_1e
const/4 v5, 0x7
if-eq v4, v5, :cond_1e
.line 678
iput v3, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->failureReason:I
.line 679
const/4 v0, 0x4
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->setState(I)V
.line 680
return-void
.line 682
:cond_1e
iget-object v4, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-virtual {v4}, Ljava/util/ArrayDeque;->size()I
move-result v4
if-ne v4, v3, :cond_3a
.line 683
iget v4, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
if-ne v4, v1, :cond_2f
.line 684
const/4 v0, 0x6
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->setState(I)V
goto :goto_39
.line 686
:cond_2f
if-ne v4, v2, :cond_32
const/4 v0, 0x1
:cond_32
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 687
const/4 v0, 0x3
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->setState(I)V
.line 689
:goto_39
return-void
.line 691
:cond_3a
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-virtual {v1}, Ljava/util/ArrayDeque;->remove()Ljava/lang/Object;
.line 693
:cond_3f
iget v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
if-ne v1, v2, :cond_44
const/4 v0, 0x1
:cond_44
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->initialize(Z)V
.line 694
return-void
.end method
.method private setState(I)V
.registers 3
.param p1, "newState" # I
.line 659
iput p1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
.line 660
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloadManager:Lcom/google/android/exoplayer2/offline/DownloadManager;
# invokes: Lcom/google/android/exoplayer2/offline/DownloadManager;->onDownloadStateChange(Lcom/google/android/exoplayer2/offline/DownloadManager$Download;)V
invoke-static {v0, p0}, Lcom/google/android/exoplayer2/offline/DownloadManager;->access$600(Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/offline/DownloadManager$Download;)V
.line 661
return-void
.end method
.method private startDownloadThread(Lcom/google/android/exoplayer2/offline/DownloadAction;)V
.registers 10
.param p1, "action" # Lcom/google/android/exoplayer2/offline/DownloadAction;
.line 664
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloaderFactory:Lcom/google/android/exoplayer2/offline/DownloaderFactory;
invoke-interface {v0, p1}, Lcom/google/android/exoplayer2/offline/DownloaderFactory;->createDownloader(Lcom/google/android/exoplayer2/offline/DownloadAction;)Lcom/google/android/exoplayer2/offline/Downloader;
move-result-object v3
iput-object v3, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloader:Lcom/google/android/exoplayer2/offline/Downloader;
.line 665
new-instance v0, Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;
iget-boolean v4, p1, Lcom/google/android/exoplayer2/offline/DownloadAction;->isRemoveAction:Z
iget v5, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->minRetryCount:I
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloadManager:Lcom/google/android/exoplayer2/offline/DownloadManager;
.line 667
# getter for: Lcom/google/android/exoplayer2/offline/DownloadManager;->handler:Landroid/os/Handler;
invoke-static {v1}, Lcom/google/android/exoplayer2/offline/DownloadManager;->access$700(Lcom/google/android/exoplayer2/offline/DownloadManager;)Landroid/os/Handler;
move-result-object v6
const/4 v7, 0x0
move-object v1, v0
move-object v2, p0
invoke-direct/range {v1 .. v7}, Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;-><init>(Lcom/google/android/exoplayer2/offline/DownloadManager$Download;Lcom/google/android/exoplayer2/offline/Downloader;ZILandroid/os/Handler;Lcom/google/android/exoplayer2/offline/DownloadManager$1;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloadThread:Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;
.line 668
return-void
.end method
.method private startOrQueue(Z)V
.registers 3
.param p1, "restart" # Z
.line 647
const/4 v0, 0x0
iput v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
.line 648
if-eqz p1, :cond_9
.line 649
invoke-virtual {p0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->start()Z
goto :goto_e
.line 651
:cond_9
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloadManager:Lcom/google/android/exoplayer2/offline/DownloadManager;
# invokes: Lcom/google/android/exoplayer2/offline/DownloadManager;->maybeStartDownload(Lcom/google/android/exoplayer2/offline/DownloadManager$Download;)V
invoke-static {v0, p0}, Lcom/google/android/exoplayer2/offline/DownloadManager;->access$500(Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/offline/DownloadManager$Download;)V
.line 653
:goto_e
iget v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
if-nez v0, :cond_17
.line 654
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloadManager:Lcom/google/android/exoplayer2/offline/DownloadManager;
# invokes: Lcom/google/android/exoplayer2/offline/DownloadManager;->onDownloadStateChange(Lcom/google/android/exoplayer2/offline/DownloadManager$Download;)V
invoke-static {v0, p0}, Lcom/google/android/exoplayer2/offline/DownloadManager;->access$600(Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/offline/DownloadManager$Download;)V
.line 656
:cond_17
return-void
.end method
.method private stopDownloadThread()V
.registers 2
.line 671
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloadThread:Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$DownloadThread;->cancel()V
.line 672
return-void
.end method
# virtual methods
.method public addAction(Lcom/google/android/exoplayer2/offline/DownloadAction;)Z
.registers 9
.param p1, "newAction" # Lcom/google/android/exoplayer2/offline/DownloadAction;
.line 533
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/offline/DownloadAction;
.line 534
.local v0, "action":Lcom/google/android/exoplayer2/offline/DownloadAction;
invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/offline/DownloadAction;->isSameMedia(Lcom/google/android/exoplayer2/offline/DownloadAction;)Z
move-result v1
const/4 v2, 0x0
if-nez v1, :cond_10
.line 535
return v2
.line 537
:cond_10
iget-object v1, v0, Lcom/google/android/exoplayer2/offline/DownloadAction;->type:Ljava/lang/String;
iget-object v3, p1, Lcom/google/android/exoplayer2/offline/DownloadAction;->type:Ljava/lang/String;
invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 538
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-virtual {v1, p1}, Ljava/util/ArrayDeque;->add(Ljava/lang/Object;)Z
.line 539
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-static {v1}, Lcom/google/android/exoplayer2/offline/DownloadActionUtil;->mergeActions(Ljava/util/ArrayDeque;)Lcom/google/android/exoplayer2/offline/DownloadAction;
move-result-object v1
.line 540
.local v1, "updatedAction":Lcom/google/android/exoplayer2/offline/DownloadAction;
iget v3, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
const/4 v4, 0x7
const/4 v5, 0x5
const/4 v6, 0x1
if-ne v3, v5, :cond_3e
.line 541
iget-boolean v2, v1, Lcom/google/android/exoplayer2/offline/DownloadAction;->isRemoveAction:Z
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 542
iget-object v2, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-virtual {v2}, Ljava/util/ArrayDeque;->size()I
move-result v2
if-le v2, v6, :cond_6e
.line 543
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->setState(I)V
goto :goto_6e
.line 545
:cond_3e
if-ne v3, v4, :cond_51
.line 546
iget-boolean v2, v1, Lcom/google/android/exoplayer2/offline/DownloadAction;->isRemoveAction:Z
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 547
iget-object v2, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-virtual {v2}, Ljava/util/ArrayDeque;->size()I
move-result v2
if-ne v2, v6, :cond_6e
.line 548
invoke-direct {p0, v5}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->setState(I)V
goto :goto_6e
.line 550
:cond_51
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/offline/DownloadAction;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_6e
.line 551
iget v3, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
const/4 v4, 0x2
if-ne v3, v4, :cond_60
.line 552
invoke-direct {p0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->stopDownloadThread()V
goto :goto_6e
.line 554
:cond_60
if-eqz v3, :cond_67
if-ne v3, v6, :cond_65
goto :goto_67
:cond_65
const/4 v3, 0x0
goto :goto_68
:cond_67
:goto_67
const/4 v3, 0x1
:goto_68
invoke-static {v3}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 555
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->initialize(Z)V
.line 558
:cond_6e
:goto_6e
return v6
.end method
.method public clearStopFlags(I)V
.registers 3
.param p1, "flags" # I
.line 615
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->updateStopFlags(II)V
.line 616
return-void
.end method
.method public getDownloadState()Lcom/google/android/exoplayer2/offline/DownloadState;
.registers 28
.line 562
move-object/from16 v0, p0
const/high16 v1, -0x40800000 # -1.0f
.line 563
.local v1, "downloadPercentage":F
const-wide/16 v2, 0x0
.line 564
.local v2, "downloadedBytes":J
const-wide/16 v4, -0x1
.line 565
.local v4, "totalBytes":J
iget-object v6, v0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloader:Lcom/google/android/exoplayer2/offline/Downloader;
if-eqz v6, :cond_1c
.line 566
invoke-interface {v6}, Lcom/google/android/exoplayer2/offline/Downloader;->getDownloadPercentage()F
move-result v1
.line 567
iget-object v6, v0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloader:Lcom/google/android/exoplayer2/offline/Downloader;
invoke-interface {v6}, Lcom/google/android/exoplayer2/offline/Downloader;->getDownloadedBytes()J
move-result-wide v2
.line 568
iget-object v6, v0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->downloader:Lcom/google/android/exoplayer2/offline/Downloader;
invoke-interface {v6}, Lcom/google/android/exoplayer2/offline/Downloader;->getTotalBytes()J
move-result-wide v4
.line 570
:cond_1c
iget-object v6, v0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-virtual {v6}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object;
move-result-object v6
move-object v15, v6
check-cast v15, Lcom/google/android/exoplayer2/offline/DownloadAction;
.line 571
.local v15, "action":Lcom/google/android/exoplayer2/offline/DownloadAction;
new-instance v25, Lcom/google/android/exoplayer2/offline/DownloadState;
move-object/from16 v6, v25
iget-object v7, v15, Lcom/google/android/exoplayer2/offline/DownloadAction;->id:Ljava/lang/String;
iget-object v8, v15, Lcom/google/android/exoplayer2/offline/DownloadAction;->type:Ljava/lang/String;
iget-object v9, v15, Lcom/google/android/exoplayer2/offline/DownloadAction;->uri:Landroid/net/Uri;
iget-object v10, v15, Lcom/google/android/exoplayer2/offline/DownloadAction;->customCacheKey:Ljava/lang/String;
iget v11, v0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
iget v12, v0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->failureReason:I
move/from16 v17, v12
iget v12, v0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->stopFlags:I
move/from16 v18, v12
iget-wide v12, v0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->startTimeMs:J
move-wide/from16 v19, v12
.line 583
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v21
iget-object v12, v15, Lcom/google/android/exoplayer2/offline/DownloadAction;->keys:Ljava/util/List;
const/4 v13, 0x0
new-array v13, v13, [Lcom/google/android/exoplayer2/offline/StreamKey;
.line 584
invoke-interface {v12, v13}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v12
move-object/from16 v23, v12
check-cast v23, [Lcom/google/android/exoplayer2/offline/StreamKey;
iget-object v12, v15, Lcom/google/android/exoplayer2/offline/DownloadAction;->data:[B
move-object/from16 v24, v12
move v12, v1
move-wide v13, v2
move-object/from16 v26, v15
.end local v15 # "action":Lcom/google/android/exoplayer2/offline/DownloadAction;
.local v26, "action":Lcom/google/android/exoplayer2/offline/DownloadAction;
move-wide v15, v4
invoke-direct/range {v6 .. v24}, Lcom/google/android/exoplayer2/offline/DownloadState;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;IFJJIIJJ[Lcom/google/android/exoplayer2/offline/StreamKey;[B)V
.line 571
return-object v25
.end method
.method public isFinished()Z
.registers 3
.line 589
iget v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
const/4 v1, 0x4
if-eq v0, v1, :cond_e
const/4 v1, 0x3
if-eq v0, v1, :cond_e
const/4 v1, 0x6
if-ne v0, v1, :cond_c
goto :goto_e
:cond_c
const/4 v0, 0x0
goto :goto_f
:cond_e
:goto_e
const/4 v0, 0x1
:goto_f
return v0
.end method
.method public isIdle()Z
.registers 3
.line 593
iget v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
const/4 v1, 0x2
if-eq v0, v1, :cond_d
const/4 v1, 0x5
if-eq v0, v1, :cond_d
const/4 v1, 0x7
if-eq v0, v1, :cond_d
const/4 v0, 0x1
goto :goto_e
:cond_d
const/4 v0, 0x0
:goto_e
return v0
.end method
.method public setStopFlags(I)V
.registers 2
.param p1, "flags" # I
.line 611
invoke-virtual {p0, p1, p1}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->updateStopFlags(II)V
.line 612
return-void
.end method
.method public start()Z
.registers 2
.line 602
iget v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
if-eqz v0, :cond_6
.line 603
const/4 v0, 0x0
return v0
.line 605
:cond_6
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->actionQueue:Ljava/util/ArrayDeque;
invoke-virtual {v0}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/exoplayer2/offline/DownloadAction;
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->startDownloadThread(Lcom/google/android/exoplayer2/offline/DownloadAction;)V
.line 606
const/4 v0, 0x2
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->setState(I)V
.line 607
const/4 v0, 0x1
return v0
.end method
.method public toString()Ljava/lang/String;
.registers 3
.line 598
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->id:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v1, 0x20
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
invoke-static {v1}, Lcom/google/android/exoplayer2/offline/DownloadState;->getStateString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public updateStopFlags(II)V
.registers 6
.param p1, "flags" # I
.param p2, "values" # I
.line 619
and-int v0, p2, p1
iget v1, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->stopFlags:I
xor-int/lit8 v2, p1, -0x1
and-int/2addr v1, v2
or-int/2addr v0, v1
iput v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->stopFlags:I
.line 620
const/4 v1, 0x1
if-eqz v0, :cond_1c
.line 621
iget v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
const/4 v2, 0x2
if-ne v0, v2, :cond_16
.line 622
invoke-direct {p0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->stopDownloadThread()V
goto :goto_24
.line 623
:cond_16
if-nez v0, :cond_24
.line 624
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->setState(I)V
goto :goto_24
.line 626
:cond_1c
iget v0, p0, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->state:I
if-ne v0, v1, :cond_24
.line 627
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadManager$Download;->startOrQueue(Z)V
.line 629
:cond_24
:goto_24
return-void
.end method