DownloadHelper.smali
.class public abstract Lcom/google/android/exoplayer2/offline/DownloadHelper;
.super Ljava/lang/Object;
.source "DownloadHelper.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/offline/DownloadHelper$DummyBandwidthMeter;,
Lcom/google/android/exoplayer2/offline/DownloadHelper$DownloadTrackSelection;,
Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# static fields
.field public static final DEFAULT_TRACK_SELECTOR_PARAMETERS:Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;
# instance fields
.field private final cacheKey:Ljava/lang/String;
.field private currentTrackSelectionPeriodIndex:I
.field private final downloadType:Ljava/lang/String;
.field private immutableTrackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"[[",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/trackselection/TrackSelection;",
">;"
}
.end annotation
.end field
.field private manifest:Ljava/lang/Object;
.annotation system Ldalvik/annotation/Signature;
value = {
"TT;"
}
.end annotation
.end field
.field private mappedTrackInfos:[Lcom/google/android/exoplayer2/trackselection/MappingTrackSelector$MappedTrackInfo;
.field private final rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
.field private final scratchSet:Landroid/util/SparseIntArray;
.field private trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
.field private trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"[[",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/trackselection/TrackSelection;",
">;"
}
.end annotation
.end field
.field private final trackSelector:Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;
.field private final uri:Landroid/net/Uri;
# direct methods
.method static constructor <clinit>()V
.registers 2
.line 79
new-instance v0, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$ParametersBuilder;
invoke-direct {v0}, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$ParametersBuilder;-><init>()V
.line 80
const/4 v1, 0x1
invoke-virtual {v0, v1}, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$ParametersBuilder;->setForceHighestSupportedBitrate(Z)Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$ParametersBuilder;
move-result-object v0
invoke-virtual {v0}, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$ParametersBuilder;->build()Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->DEFAULT_TRACK_SELECTOR_PARAMETERS:Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;
.line 79
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;Lcom/google/android/exoplayer2/RenderersFactory;Lcom/google/android/exoplayer2/drm/DrmSessionManager;)V
.registers 11
.param p1, "downloadType" # Ljava/lang/String;
.param p2, "uri" # Landroid/net/Uri;
.param p3, "cacheKey" # Ljava/lang/String;
.param p4, "trackSelectorParameters" # Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;
.param p5, "renderersFactory" # Lcom/google/android/exoplayer2/RenderersFactory;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Landroid/net/Uri;",
"Ljava/lang/String;",
"Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;",
"Lcom/google/android/exoplayer2/RenderersFactory;",
"Lcom/google/android/exoplayer2/drm/DrmSessionManager<",
"Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;",
">;)V"
}
.end annotation
.line 134
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
.local p6, "drmSessionManager":Lcom/google/android/exoplayer2/drm/DrmSessionManager;, "Lcom/google/android/exoplayer2/drm/DrmSessionManager<Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;>;"
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 135
iput-object p1, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->downloadType:Ljava/lang/String;
.line 136
iput-object p2, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->uri:Landroid/net/Uri;
.line 137
iput-object p3, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->cacheKey:Ljava/lang/String;
.line 138
new-instance v0, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;
new-instance v1, Lcom/google/android/exoplayer2/offline/DownloadHelper$DownloadTrackSelection$Factory;
const/4 v2, 0x0
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/offline/DownloadHelper$DownloadTrackSelection$Factory;-><init>(Lcom/google/android/exoplayer2/offline/DownloadHelper$1;)V
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;-><init>(Lcom/google/android/exoplayer2/trackselection/TrackSelection$Factory;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelector:Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;
.line 139
invoke-static {p5, p6}, Lcom/google/android/exoplayer2/util/Util;->getRendererCapabilities(Lcom/google/android/exoplayer2/RenderersFactory;Lcom/google/android/exoplayer2/drm/DrmSessionManager;)[Lcom/google/android/exoplayer2/RendererCapabilities;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
.line 140
new-instance v0, Landroid/util/SparseIntArray;
invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->scratchSet:Landroid/util/SparseIntArray;
.line 141
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelector:Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;
invoke-virtual {v0, p4}, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;->setParameters(Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;)V
.line 142
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelector:Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;
sget-object v1, Lcom/google/android/exoplayer2/offline/-$$Lambda$DownloadHelper$7Z-k9CqspX3ZiYWCChYkf8Ai-TY;->INSTANCE:Lcom/google/android/exoplayer2/offline/-$$Lambda$DownloadHelper$7Z-k9CqspX3ZiYWCChYkf8Ai-TY;
new-instance v3, Lcom/google/android/exoplayer2/offline/DownloadHelper$DummyBandwidthMeter;
invoke-direct {v3, v2}, Lcom/google/android/exoplayer2/offline/DownloadHelper$DummyBandwidthMeter;-><init>(Lcom/google/android/exoplayer2/offline/DownloadHelper$1;)V
invoke-virtual {v0, v1, v3}, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;->init(Lcom/google/android/exoplayer2/trackselection/TrackSelector$InvalidationListener;Lcom/google/android/exoplayer2/upstream/BandwidthMeter;)V
.line 143
return-void
.end method
.method private initializeTrackSelectionLists(II)V
.registers 8
.param p1, "periodCount" # I
.param p2, "rendererCount" # I
.annotation runtime Lorg/checkerframework/checker/nullness/qual/EnsuresNonNull;
value = {
"trackSelectionsByPeriodAndRenderer"
}
.end annotation
.line 345
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
const/4 v0, 0x2
new-array v1, v0, [I
const/4 v2, 0x1
aput p2, v1, v2
const/4 v3, 0x0
aput p1, v1, v3
const-class v4, Ljava/util/List;
invoke-static {v4, v1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v1
check-cast v1, [[Ljava/util/List;
check-cast v1, [[Ljava/util/List;
iput-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
.line 347
new-array v0, v0, [I
aput p2, v0, v2
aput p1, v0, v3
const-class v1, Ljava/util/List;
invoke-static {v1, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[Ljava/util/List;
check-cast v0, [[Ljava/util/List;
iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->immutableTrackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
.line 349
const/4 v0, 0x0
.local v0, "i":I
:goto_28
if-ge v0, p1, :cond_4e
.line 350
const/4 v1, 0x0
.local v1, "j":I
:goto_2b
if-ge v1, p2, :cond_4b
.line 351
iget-object v2, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
aget-object v2, v2, v0
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
aput-object v3, v2, v1
.line 352
iget-object v2, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->immutableTrackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
aget-object v2, v2, v0
iget-object v3, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
aget-object v3, v3, v0
aget-object v3, v3, v1
.line 353
invoke-static {v3}, Ljava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
move-result-object v3
aput-object v3, v2, v1
.line 350
add-int/lit8 v1, v1, 0x1
goto :goto_2b
.line 349
.end local v1 # "j":I
:cond_4b
add-int/lit8 v0, v0, 0x1
goto :goto_28
.line 356
.end local v0 # "i":I
:cond_4e
return-void
.end method
.method static synthetic lambda$new$0()V
.registers 0
.line 142
return-void
.end method
.method private runTrackSelection(I)Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
.registers 15
.param p1, "periodIndex" # I
.annotation runtime Lorg/checkerframework/checker/nullness/qual/RequiresNonNull;
value = {
"trackGroupArrays",
"trackSelectionsByPeriodAndRenderer"
}
.end annotation
.line 367
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
new-instance v0, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
new-instance v1, Ljava/lang/Object;
invoke-direct {v1}, Ljava/lang/Object;-><init>()V
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;-><init>(Ljava/lang/Object;)V
.line 368
.local v0, "dummyMediaPeriodId":Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
sget-object v1, Lcom/google/android/exoplayer2/Timeline;->EMPTY:Lcom/google/android/exoplayer2/Timeline;
.line 369
.local v1, "dummyTimeline":Lcom/google/android/exoplayer2/Timeline;
iput p1, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->currentTrackSelectionPeriodIndex:I
.line 371
:try_start_e
iget-object v2, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelector:Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;
iget-object v3, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
iget-object v4, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
aget-object v4, v4, p1
.line 372
invoke-virtual {v2, v3, v4, v0, v1}, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;->selectTracks([Lcom/google/android/exoplayer2/RendererCapabilities;Lcom/google/android/exoplayer2/source/TrackGroupArray;Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;Lcom/google/android/exoplayer2/Timeline;)Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
move-result-object v2
.line 377
.local v2, "trackSelectorResult":Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
const/4 v3, 0x0
.local v3, "i":I
:goto_1b
iget v4, v2, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->length:I
if-ge v3, v4, :cond_ab
.line 378
iget-object v4, v2, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->selections:Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;
invoke-virtual {v4, v3}, Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;->get(I)Lcom/google/android/exoplayer2/trackselection/TrackSelection;
move-result-object v4
.line 379
.local v4, "newSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
if-nez v4, :cond_29
.line 380
goto/16 :goto_a7
.line 382
:cond_29
iget-object v5, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
iget v6, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->currentTrackSelectionPeriodIndex:I
aget-object v5, v5, v6
aget-object v5, v5, v3
.line 384
.local v5, "existingSelectionList":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/trackselection/TrackSelection;>;"
const/4 v6, 0x0
.line 385
.local v6, "mergedWithExistingSelection":Z
const/4 v7, 0x0
.local v7, "j":I
:goto_33
invoke-interface {v5}, Ljava/util/List;->size()I
move-result v8
if-ge v7, v8, :cond_a2
.line 386
invoke-interface {v5, v7}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.line 387
.local v8, "existingSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
invoke-interface {v8}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getTrackGroup()Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v9
invoke-interface {v4}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getTrackGroup()Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v10
if-ne v9, v10, :cond_9f
.line 389
iget-object v9, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->scratchSet:Landroid/util/SparseIntArray;
invoke-virtual {v9}, Landroid/util/SparseIntArray;->clear()V
.line 390
const/4 v9, 0x0
.local v9, "k":I
:goto_4f
invoke-interface {v8}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->length()I
move-result v10
const/4 v11, 0x0
if-ge v9, v10, :cond_62
.line 391
iget-object v10, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->scratchSet:Landroid/util/SparseIntArray;
invoke-interface {v8, v9}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getIndexInTrackGroup(I)I
move-result v12
invoke-virtual {v10, v12, v11}, Landroid/util/SparseIntArray;->put(II)V
.line 390
add-int/lit8 v9, v9, 0x1
goto :goto_4f
.line 393
.end local v9 # "k":I
:cond_62
const/4 v9, 0x0
.restart local v9 # "k":I
:goto_63
invoke-interface {v4}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->length()I
move-result v10
if-ge v9, v10, :cond_75
.line 394
iget-object v10, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->scratchSet:Landroid/util/SparseIntArray;
invoke-interface {v4, v9}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getIndexInTrackGroup(I)I
move-result v12
invoke-virtual {v10, v12, v11}, Landroid/util/SparseIntArray;->put(II)V
.line 393
add-int/lit8 v9, v9, 0x1
goto :goto_63
.line 396
.end local v9 # "k":I
:cond_75
iget-object v9, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->scratchSet:Landroid/util/SparseIntArray;
invoke-virtual {v9}, Landroid/util/SparseIntArray;->size()I
move-result v9
new-array v9, v9, [I
.line 397
.local v9, "mergedTracks":[I
const/4 v10, 0x0
.local v10, "k":I
:goto_7e
iget-object v11, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->scratchSet:Landroid/util/SparseIntArray;
invoke-virtual {v11}, Landroid/util/SparseIntArray;->size()I
move-result v11
if-ge v10, v11, :cond_91
.line 398
iget-object v11, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->scratchSet:Landroid/util/SparseIntArray;
invoke-virtual {v11, v10}, Landroid/util/SparseIntArray;->keyAt(I)I
move-result v11
aput v11, v9, v10
.line 397
add-int/lit8 v10, v10, 0x1
goto :goto_7e
.line 400
.end local v10 # "k":I
:cond_91
new-instance v10, Lcom/google/android/exoplayer2/offline/DownloadHelper$DownloadTrackSelection;
.line 401
invoke-interface {v8}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getTrackGroup()Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v11
invoke-direct {v10, v11, v9}, Lcom/google/android/exoplayer2/offline/DownloadHelper$DownloadTrackSelection;-><init>(Lcom/google/android/exoplayer2/source/TrackGroup;[I)V
.line 400
invoke-interface {v5, v7, v10}, Ljava/util/List;->set(ILjava/lang/Object;)Ljava/lang/Object;
.line 402
const/4 v6, 0x1
.line 403
goto :goto_a2
.line 385
.end local v8 # "existingSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v9 # "mergedTracks":[I
:cond_9f
add-int/lit8 v7, v7, 0x1
goto :goto_33
.line 406
.end local v7 # "j":I
:cond_a2
:goto_a2
if-nez v6, :cond_a7
.line 407
invoke-interface {v5, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_a7
.catch Lcom/google/android/exoplayer2/ExoPlaybackException; {:try_start_e .. :try_end_a7} :catch_ac
.line 377
.end local v4 # "newSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v5 # "existingSelectionList":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/trackselection/TrackSelection;>;"
.end local v6 # "mergedWithExistingSelection":Z
:cond_a7
:goto_a7
add-int/lit8 v3, v3, 0x1
goto/16 :goto_1b
.line 410
.end local v3 # "i":I
:cond_ab
return-object v2
.line 411
.end local v2 # "trackSelectorResult":Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
:catch_ac
move-exception v2
.line 413
.local v2, "e":Lcom/google/android/exoplayer2/ExoPlaybackException;
new-instance v3, Ljava/lang/UnsupportedOperationException;
invoke-direct {v3, v2}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/Throwable;)V
goto :goto_b4
:goto_b3
throw v3
:goto_b4
goto :goto_b3
.end method
# virtual methods
.method public final addTrackSelection(ILcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;)V
.registers 4
.param p1, "periodIndex" # I
.param p2, "trackSelectorParameters" # Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;
.line 268
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 269
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 270
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelector:Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;
invoke-virtual {v0, p2}, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;->setParameters(Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;)V
.line 271
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/offline/DownloadHelper;->runTrackSelection(I)Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
.line 272
return-void
.end method
.method public final clearTrackSelections(I)V
.registers 4
.param p1, "periodIndex" # I
.line 238
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 239
const/4 v0, 0x0
.local v0, "i":I
:goto_6
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
array-length v1, v1
if-ge v0, v1, :cond_17
.line 240
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
aget-object v1, v1, p1
aget-object v1, v1, v0
invoke-interface {v1}, Ljava/util/List;->clear()V
.line 239
add-int/lit8 v0, v0, 0x1
goto :goto_6
.line 242
.end local v0 # "i":I
:cond_17
return-void
.end method
.method public final getDownloadAction([B)Lcom/google/android/exoplayer2/offline/DownloadAction;
.registers 15
.param p1, "data" # [B
.line 282
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 283
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 284
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 285
.local v0, "streamKeys":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/offline/StreamKey;>;"
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
array-length v1, v1
.line 286
.local v1, "periodCount":I
const/4 v2, 0x0
.local v2, "periodIndex":I
:goto_13
if-ge v2, v1, :cond_5a
.line 287
iget-object v3, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
aget-object v3, v3, v2
array-length v3, v3
.line 288
.local v3, "rendererCount":I
const/4 v4, 0x0
.local v4, "rendererIndex":I
:goto_1b
if-ge v4, v3, :cond_57
.line 289
iget-object v5, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
aget-object v5, v5, v2
aget-object v5, v5, v4
.line 291
.local v5, "trackSelectionList":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/trackselection/TrackSelection;>;"
const/4 v6, 0x0
.local v6, "selectionIndex":I
:goto_24
invoke-interface {v5}, Ljava/util/List;->size()I
move-result v7
if-ge v6, v7, :cond_54
.line 292
invoke-interface {v5, v6}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v7
check-cast v7, Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.line 293
.local v7, "trackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
iget-object v8, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
aget-object v8, v8, v2
.line 294
invoke-interface {v7}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getTrackGroup()Lcom/google/android/exoplayer2/source/TrackGroup;
move-result-object v9
invoke-virtual {v8, v9}, Lcom/google/android/exoplayer2/source/TrackGroupArray;->indexOf(Lcom/google/android/exoplayer2/source/TrackGroup;)I
move-result v8
.line 295
.local v8, "trackGroupIndex":I
invoke-interface {v7}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->length()I
move-result v9
.line 296
.local v9, "trackCount":I
const/4 v10, 0x0
.local v10, "trackListIndex":I
:goto_41
if-ge v10, v9, :cond_51
.line 297
invoke-interface {v7, v10}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getIndexInTrackGroup(I)I
move-result v11
.line 298
.local v11, "trackIndex":I
invoke-virtual {p0, v2, v8, v11}, Lcom/google/android/exoplayer2/offline/DownloadHelper;->toStreamKey(III)Lcom/google/android/exoplayer2/offline/StreamKey;
move-result-object v12
invoke-interface {v0, v12}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 296
.end local v11 # "trackIndex":I
add-int/lit8 v10, v10, 0x1
goto :goto_41
.line 291
.end local v7 # "trackSelection":Lcom/google/android/exoplayer2/trackselection/TrackSelection;
.end local v8 # "trackGroupIndex":I
.end local v9 # "trackCount":I
.end local v10 # "trackListIndex":I
:cond_51
add-int/lit8 v6, v6, 0x1
goto :goto_24
.line 288
.end local v5 # "trackSelectionList":Ljava/util/List;, "Ljava/util/List<Lcom/google/android/exoplayer2/trackselection/TrackSelection;>;"
.end local v6 # "selectionIndex":I
:cond_54
add-int/lit8 v4, v4, 0x1
goto :goto_1b
.line 286
.end local v3 # "rendererCount":I
.end local v4 # "rendererIndex":I
:cond_57
add-int/lit8 v2, v2, 0x1
goto :goto_13
.line 303
.end local v2 # "periodIndex":I
:cond_5a
iget-object v2, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->downloadType:Ljava/lang/String;
iget-object v3, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->uri:Landroid/net/Uri;
iget-object v4, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->cacheKey:Ljava/lang/String;
invoke-static {v2, v3, v0, v4, p1}, Lcom/google/android/exoplayer2/offline/DownloadAction;->createDownloadAction(Ljava/lang/String;Landroid/net/Uri;Ljava/util/List;Ljava/lang/String;[B)Lcom/google/android/exoplayer2/offline/DownloadAction;
move-result-object v2
return-object v2
.end method
.method public final getManifest()Ljava/lang/Object;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()TT;"
}
.end annotation
.line 178
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->manifest:Ljava/lang/Object;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 179
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->manifest:Ljava/lang/Object;
return-object v0
.end method
.method public final getMappedTrackInfo(I)Lcom/google/android/exoplayer2/trackselection/MappingTrackSelector$MappedTrackInfo;
.registers 3
.param p1, "periodIndex" # I
.line 214
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->mappedTrackInfos:[Lcom/google/android/exoplayer2/trackselection/MappingTrackSelector$MappedTrackInfo;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 215
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->mappedTrackInfos:[Lcom/google/android/exoplayer2/trackselection/MappingTrackSelector$MappedTrackInfo;
aget-object v0, v0, p1
return-object v0
.end method
.method public final getPeriodCount()I
.registers 2
.line 187
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 188
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
array-length v0, v0
return v0
.end method
.method public final getRemoveAction()Lcom/google/android/exoplayer2/offline/DownloadAction;
.registers 4
.line 312
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->downloadType:Ljava/lang/String;
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->uri:Landroid/net/Uri;
iget-object v2, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->cacheKey:Ljava/lang/String;
invoke-static {v0, v1, v2}, Lcom/google/android/exoplayer2/offline/DownloadAction;->createRemoveAction(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;)Lcom/google/android/exoplayer2/offline/DownloadAction;
move-result-object v0
return-object v0
.end method
.method protected abstract getTrackGroupArrays(Ljava/lang/Object;)[Lcom/google/android/exoplayer2/source/TrackGroupArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"(TT;)[",
"Lcom/google/android/exoplayer2/source/TrackGroupArray;"
}
.end annotation
.end method
.method public final getTrackGroups(I)Lcom/google/android/exoplayer2/source/TrackGroupArray;
.registers 3
.param p1, "periodIndex" # I
.line 202
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 203
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
aget-object v0, v0, p1
return-object v0
.end method
.method public final getTrackSelections(II)Ljava/util/List;
.registers 4
.param p1, "periodIndex" # I
.param p2, "rendererIndex" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(II)",
"Ljava/util/List<",
"Lcom/google/android/exoplayer2/trackselection/TrackSelection;",
">;"
}
.end annotation
.line 227
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->immutableTrackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 228
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->immutableTrackSelectionsByPeriodAndRenderer:[[Ljava/util/List;
aget-object v0, v0, p1
aget-object v0, v0, p2
return-object v0
.end method
.method public synthetic lambda$null$1$DownloadHelper(Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;)V
.registers 2
.param p1, "callback" # Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;
.line 168
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
invoke-interface {p1, p0}, Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;->onPrepared(Lcom/google/android/exoplayer2/offline/DownloadHelper;)V
return-void
.end method
.method public synthetic lambda$null$2$DownloadHelper(Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;Ljava/io/IOException;)V
.registers 3
.param p1, "callback" # Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;
.param p2, "e" # Ljava/io/IOException;
.line 170
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
invoke-interface {p1, p0, p2}, Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;->onPrepareError(Lcom/google/android/exoplayer2/offline/DownloadHelper;Ljava/io/IOException;)V
return-void
.end method
.method public synthetic lambda$prepare$3$DownloadHelper(Landroid/os/Handler;Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;)V
.registers 7
.param p1, "handler" # Landroid/os/Handler;
.param p2, "callback" # Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;
.line 158
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
:try_start_0
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->uri:Landroid/net/Uri;
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadHelper;->loadManifest(Landroid/net/Uri;)Ljava/lang/Object;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->manifest:Ljava/lang/Object;
.line 159
invoke-virtual {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadHelper;->getTrackGroupArrays(Ljava/lang/Object;)[Lcom/google/android/exoplayer2/source/TrackGroupArray;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
.line 160
array-length v0, v0
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
array-length v1, v1
invoke-direct {p0, v0, v1}, Lcom/google/android/exoplayer2/offline/DownloadHelper;->initializeTrackSelectionLists(II)V
.line 161
iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
array-length v0, v0
new-array v0, v0, [Lcom/google/android/exoplayer2/trackselection/MappingTrackSelector$MappedTrackInfo;
iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->mappedTrackInfos:[Lcom/google/android/exoplayer2/trackselection/MappingTrackSelector$MappedTrackInfo;
.line 162
const/4 v0, 0x0
.local v0, "i":I
:goto_1d
iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackGroupArrays:[Lcom/google/android/exoplayer2/source/TrackGroupArray;
array-length v1, v1
if-ge v0, v1, :cond_40
.line 163
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DownloadHelper;->runTrackSelection(I)Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
move-result-object v1
.line 164
.local v1, "trackSelectorResult":Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
iget-object v2, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelector:Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;
iget-object v3, v1, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->info:Ljava/lang/Object;
invoke-virtual {v2, v3}, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;->onSelectionActivated(Ljava/lang/Object;)V
.line 165
iget-object v2, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->mappedTrackInfos:[Lcom/google/android/exoplayer2/trackselection/MappingTrackSelector$MappedTrackInfo;
iget-object v3, p0, Lcom/google/android/exoplayer2/offline/DownloadHelper;->trackSelector:Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;
.line 166
invoke-virtual {v3}, Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector;->getCurrentMappedTrackInfo()Lcom/google/android/exoplayer2/trackselection/MappingTrackSelector$MappedTrackInfo;
move-result-object v3
invoke-static {v3}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/exoplayer2/trackselection/MappingTrackSelector$MappedTrackInfo;
aput-object v3, v2, v0
.line 162
.end local v1 # "trackSelectorResult":Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
add-int/lit8 v0, v0, 0x1
goto :goto_1d
.line 168
.end local v0 # "i":I
:cond_40
new-instance v0, Lcom/google/android/exoplayer2/offline/-$$Lambda$DownloadHelper$mwjzy8WVCMvC2MDmjlfj6q5fAGg;
invoke-direct {v0, p0, p2}, Lcom/google/android/exoplayer2/offline/-$$Lambda$DownloadHelper$mwjzy8WVCMvC2MDmjlfj6q5fAGg;-><init>(Lcom/google/android/exoplayer2/offline/DownloadHelper;Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;)V
invoke-virtual {p1, v0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:try_end_48
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_48} :catch_49
.line 171
goto :goto_52
.line 169
:catch_49
move-exception v0
.line 170
.local v0, "e":Ljava/io/IOException;
new-instance v1, Lcom/google/android/exoplayer2/offline/-$$Lambda$DownloadHelper$RWmTWzB-HvCIBrns5h5DpGV7zgg;
invoke-direct {v1, p0, p2, v0}, Lcom/google/android/exoplayer2/offline/-$$Lambda$DownloadHelper$RWmTWzB-HvCIBrns5h5DpGV7zgg;-><init>(Lcom/google/android/exoplayer2/offline/DownloadHelper;Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;Ljava/io/IOException;)V
invoke-virtual {p1, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
.line 172
.end local v0 # "e":Ljava/io/IOException;
:goto_52
return-void
.end method
.method protected abstract loadManifest(Landroid/net/Uri;)Ljava/lang/Object;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/net/Uri;",
")TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.end method
.method public final prepare(Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;)V
.registers 5
.param p1, "callback" # Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;
.line 153
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
new-instance v0, Landroid/os/Handler;
.line 154
invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
move-result-object v1
if-eqz v1, :cond_d
invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
move-result-object v1
goto :goto_11
:cond_d
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
:goto_11
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
.line 155
.local v0, "handler":Landroid/os/Handler;
new-instance v1, Ljava/lang/Thread;
new-instance v2, Lcom/google/android/exoplayer2/offline/-$$Lambda$DownloadHelper$nyj6edQv5O15mBYo-Gau5u6d-Lw;
invoke-direct {v2, p0, v0, p1}, Lcom/google/android/exoplayer2/offline/-$$Lambda$DownloadHelper$nyj6edQv5O15mBYo-Gau5u6d-Lw;-><init>(Lcom/google/android/exoplayer2/offline/DownloadHelper;Landroid/os/Handler;Lcom/google/android/exoplayer2/offline/DownloadHelper$Callback;)V
invoke-direct {v1, v2}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
.line 173
invoke-virtual {v1}, Ljava/lang/Thread;->start()V
.line 174
return-void
.end method
.method public final replaceTrackSelections(ILcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;)V
.registers 3
.param p1, "periodIndex" # I
.param p2, "trackSelectorParameters" # Lcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;
.line 254
.local p0, "this":Lcom/google/android/exoplayer2/offline/DownloadHelper;, "Lcom/google/android/exoplayer2/offline/DownloadHelper<TT;>;"
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/offline/DownloadHelper;->clearTrackSelections(I)V
.line 255
invoke-virtual {p0, p1, p2}, Lcom/google/android/exoplayer2/offline/DownloadHelper;->addTrackSelection(ILcom/google/android/exoplayer2/trackselection/DefaultTrackSelector$Parameters;)V
.line 256
return-void
.end method
.method protected abstract toStreamKey(III)Lcom/google/android/exoplayer2/offline/StreamKey;
.end method