DownloadService$DownloadManagerHelper.smali

.class final Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;
.super Ljava/lang/Object;
.source "DownloadService.java"

# interfaces
.implements Lcom/google/android/exoplayer2/offline/DownloadManager$Listener;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/google/android/exoplayer2/offline/DownloadService;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x1a
    name = "DownloadManagerHelper"
.end annotation


# instance fields
.field private final context:Landroid/content/Context;

.field private final downloadManager:Lcom/google/android/exoplayer2/offline/DownloadManager;

.field private downloadService:Lcom/google/android/exoplayer2/offline/DownloadService;

.field private final scheduler:Lcom/google/android/exoplayer2/scheduler/Scheduler;

.field private final serviceClass:Ljava/lang/Class;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/lang/Class<",
            "+",
            "Lcom/google/android/exoplayer2/offline/DownloadService;",
            ">;"
        }
    .end annotation
.end field


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method private constructor <init>(Landroid/content/Context;Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/scheduler/Scheduler;Ljava/lang/Class;)V
    .registers 7
    .param p1, "context"    # Landroid/content/Context;
    .param p2, "downloadManager"    # Lcom/google/android/exoplayer2/offline/DownloadManager;
    .param p3, "scheduler"    # Lcom/google/android/exoplayer2/scheduler/Scheduler;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Landroid/content/Context;",
            "Lcom/google/android/exoplayer2/offline/DownloadManager;",
            "Lcom/google/android/exoplayer2/scheduler/Scheduler;",
            "Ljava/lang/Class<",
            "+",
            "Lcom/google/android/exoplayer2/offline/DownloadService;",
            ">;)V"
        }
    .end annotation

    .line 445
    .local p4, "serviceClass":Ljava/lang/Class;, "Ljava/lang/Class<+Lcom/google/android/exoplayer2/offline/DownloadService;>;"
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 446
    iput-object p1, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->context:Landroid/content/Context;

    .line 447
    iput-object p2, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->downloadManager:Lcom/google/android/exoplayer2/offline/DownloadManager;

    .line 448
    iput-object p3, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->scheduler:Lcom/google/android/exoplayer2/scheduler/Scheduler;

    .line 449
    iput-object p4, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->serviceClass:Ljava/lang/Class;

    .line 450
    invoke-virtual {p2, p0}, Lcom/google/android/exoplayer2/offline/DownloadManager;->addListener(Lcom/google/android/exoplayer2/offline/DownloadManager$Listener;)V

    .line 451
    if-eqz p3, :cond_1d

    .line 452
    invoke-virtual {p2}, Lcom/google/android/exoplayer2/offline/DownloadManager;->getRequirements()Lcom/google/android/exoplayer2/scheduler/Requirements;

    move-result-object v0

    .line 453
    .local v0, "requirements":Lcom/google/android/exoplayer2/scheduler/Requirements;
    invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/scheduler/Requirements;->checkRequirements(Landroid/content/Context;)Z

    move-result v1

    xor-int/lit8 v1, v1, 0x1

    invoke-direct {p0, v1, v0}, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->setSchedulerEnabled(ZLcom/google/android/exoplayer2/scheduler/Requirements;)V

    .line 455
    .end local v0    # "requirements":Lcom/google/android/exoplayer2/scheduler/Requirements;
    :cond_1d
    return-void
.end method

.method synthetic constructor <init>(Landroid/content/Context;Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/scheduler/Scheduler;Ljava/lang/Class;Lcom/google/android/exoplayer2/offline/DownloadService$1;)V
    .registers 6
    .param p1, "x0"    # Landroid/content/Context;
    .param p2, "x1"    # Lcom/google/android/exoplayer2/offline/DownloadManager;
    .param p3, "x2"    # Lcom/google/android/exoplayer2/scheduler/Scheduler;
    .param p4, "x3"    # Ljava/lang/Class;
    .param p5, "x4"    # Lcom/google/android/exoplayer2/offline/DownloadService$1;

    .line 433
    invoke-direct {p0, p1, p2, p3, p4}, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;-><init>(Landroid/content/Context;Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/scheduler/Scheduler;Ljava/lang/Class;)V

    return-void
.end method

.method static synthetic access$100(Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;)Lcom/google/android/exoplayer2/offline/DownloadManager;
    .registers 2
    .param p0, "x0"    # Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;

    .line 433
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->downloadManager:Lcom/google/android/exoplayer2/offline/DownloadManager;

    return-object v0
.end method

.method private setSchedulerEnabled(ZLcom/google/android/exoplayer2/scheduler/Requirements;)V
    .registers 7
    .param p1, "enabled"    # Z
    .param p2, "requirements"    # Lcom/google/android/exoplayer2/scheduler/Requirements;

    .line 511
    if-nez p1, :cond_8

    .line 512
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->scheduler:Lcom/google/android/exoplayer2/scheduler/Scheduler;

    invoke-interface {v0}, Lcom/google/android/exoplayer2/scheduler/Scheduler;->cancel()Z

    goto :goto_1f

    .line 514
    :cond_8
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->context:Landroid/content/Context;

    invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;

    move-result-object v0

    .line 515
    .local v0, "servicePackage":Ljava/lang/String;
    iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->scheduler:Lcom/google/android/exoplayer2/scheduler/Scheduler;

    const-string v2, "com.google.android.exoplayer.downloadService.action.RESTART"

    invoke-interface {v1, p2, v0, v2}, Lcom/google/android/exoplayer2/scheduler/Scheduler;->schedule(Lcom/google/android/exoplayer2/scheduler/Requirements;Ljava/lang/String;Ljava/lang/String;)Z

    move-result v1

    .line 516
    .local v1, "success":Z
    if-nez v1, :cond_1f

    .line 517
    const-string v2, "DownloadService"

    const-string v3, "Scheduling downloads failed."

    invoke-static {v2, v3}, Lcom/google/android/exoplayer2/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V

    .line 520
    .end local v0    # "servicePackage":Ljava/lang/String;
    .end local v1    # "success":Z
    :cond_1f
    :goto_1f
    return-void
.end method


# virtual methods
.method public attachService(Lcom/google/android/exoplayer2/offline/DownloadService;)V
    .registers 3
    .param p1, "downloadService"    # Lcom/google/android/exoplayer2/offline/DownloadService;

    .line 458
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->downloadService:Lcom/google/android/exoplayer2/offline/DownloadService;

    if-nez v0, :cond_6

    const/4 v0, 0x1

    goto :goto_7

    :cond_6
    const/4 v0, 0x0

    :goto_7
    invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V

    .line 459
    iput-object p1, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->downloadService:Lcom/google/android/exoplayer2/offline/DownloadService;

    .line 460
    return-void
.end method

.method public detachService(Lcom/google/android/exoplayer2/offline/DownloadService;Z)V
    .registers 4
    .param p1, "downloadService"    # Lcom/google/android/exoplayer2/offline/DownloadService;
    .param p2, "unschedule"    # Z

    .line 463
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->downloadService:Lcom/google/android/exoplayer2/offline/DownloadService;

    if-ne v0, p1, :cond_6

    const/4 v0, 0x1

    goto :goto_7

    :cond_6
    const/4 v0, 0x0

    :goto_7
    invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V

    .line 464
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->downloadService:Lcom/google/android/exoplayer2/offline/DownloadService;

    .line 465
    if-eqz p2, :cond_14

    .line 466
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->scheduler:Lcom/google/android/exoplayer2/scheduler/Scheduler;

    invoke-interface {v0}, Lcom/google/android/exoplayer2/scheduler/Scheduler;->cancel()Z

    .line 468
    :cond_14
    return-void
.end method

.method public onDownloadStateChanged(Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/offline/DownloadState;)V
    .registers 4
    .param p1, "downloadManager"    # Lcom/google/android/exoplayer2/offline/DownloadManager;
    .param p2, "downloadState"    # Lcom/google/android/exoplayer2/offline/DownloadState;

    .line 478
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->downloadService:Lcom/google/android/exoplayer2/offline/DownloadService;

    if-eqz v0, :cond_7

    .line 479
    invoke-static {v0, p2}, Lcom/google/android/exoplayer2/offline/DownloadService;->access$300(Lcom/google/android/exoplayer2/offline/DownloadService;Lcom/google/android/exoplayer2/offline/DownloadState;)V

    .line 481
    :cond_7
    return-void
.end method

.method public final onIdle(Lcom/google/android/exoplayer2/offline/DownloadManager;)V
    .registers 3
    .param p1, "downloadManager"    # Lcom/google/android/exoplayer2/offline/DownloadManager;

    .line 485
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->downloadService:Lcom/google/android/exoplayer2/offline/DownloadService;

    if-eqz v0, :cond_7

    .line 486
    invoke-static {v0}, Lcom/google/android/exoplayer2/offline/DownloadService;->access$400(Lcom/google/android/exoplayer2/offline/DownloadService;)V

    .line 488
    :cond_7
    return-void
.end method

.method public onInitialized(Lcom/google/android/exoplayer2/offline/DownloadManager;)V
    .registers 2
    .param p1, "downloadManager"    # Lcom/google/android/exoplayer2/offline/DownloadManager;

    .line 473
    return-void
.end method

.method public onRequirementsStateChanged(Lcom/google/android/exoplayer2/offline/DownloadManager;Lcom/google/android/exoplayer2/scheduler/Requirements;I)V
    .registers 10
    .param p1, "downloadManager"    # Lcom/google/android/exoplayer2/offline/DownloadManager;
    .param p2, "requirements"    # Lcom/google/android/exoplayer2/scheduler/Requirements;
    .param p3, "notMetRequirements"    # I

    .line 495
    const/4 v0, 0x1

    const/4 v1, 0x0

    if-nez p3, :cond_6

    const/4 v2, 0x1

    goto :goto_7

    :cond_6
    const/4 v2, 0x0

    .line 496
    .local v2, "requirementsMet":Z
    :goto_7
    iget-object v3, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->downloadService:Lcom/google/android/exoplayer2/offline/DownloadService;

    if-nez v3, :cond_20

    if-eqz v2, :cond_20

    .line 498
    :try_start_d
    iget-object v3, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->context:Landroid/content/Context;

    iget-object v4, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->serviceClass:Ljava/lang/Class;

    const-string v5, "com.google.android.exoplayer.downloadService.action.INIT"

    invoke-static {v3, v4, v5}, Lcom/google/android/exoplayer2/offline/DownloadService;->access$500(Landroid/content/Context;Ljava/lang/Class;Ljava/lang/String;)Landroid/content/Intent;

    move-result-object v3

    .line 499
    .local v3, "intent":Landroid/content/Intent;
    iget-object v4, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->context:Landroid/content/Context;

    invoke-virtual {v4, v3}, Landroid/content/Context;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
    :try_end_1c
    .catch Ljava/lang/IllegalStateException; {:try_start_d .. :try_end_1c} :catch_1e

    .line 503
    nop

    .end local v3    # "intent":Landroid/content/Intent;
    goto :goto_20

    .line 500
    :catch_1e
    move-exception v0

    .line 502
    .local v0, "e":Ljava/lang/IllegalStateException;
    return-void

    .line 505
    .end local v0    # "e":Ljava/lang/IllegalStateException;
    :cond_20
    :goto_20
    iget-object v3, p0, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->scheduler:Lcom/google/android/exoplayer2/scheduler/Scheduler;

    if-eqz v3, :cond_2b

    .line 506
    if-nez v2, :cond_27

    goto :goto_28

    :cond_27
    const/4 v0, 0x0

    :goto_28
    invoke-direct {p0, v0, p2}, Lcom/google/android/exoplayer2/offline/DownloadService$DownloadManagerHelper;->setSchedulerEnabled(ZLcom/google/android/exoplayer2/scheduler/Requirements;)V

    .line 508
    :cond_2b
    return-void
.end method