DownloaderConstructorHelper.smali

.class public final Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;
.super Ljava/lang/Object;
.source "DownloaderConstructorHelper.java"


# instance fields
.field private final cache:Lcom/google/android/exoplayer2/upstream/cache/Cache;

.field private final cacheKeyFactory:Lcom/google/android/exoplayer2/upstream/cache/CacheKeyFactory;

.field private final offlineCacheDataSourceFactory:Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;

.field private final onlineCacheDataSourceFactory:Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;

.field private final priorityTaskManager:Lcom/google/android/exoplayer2/util/PriorityTaskManager;


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

    return-void
.end method

.method public constructor <init>(Lcom/google/android/exoplayer2/upstream/cache/Cache;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;)V
    .registers 9
    .param p1, "cache"    # Lcom/google/android/exoplayer2/upstream/cache/Cache;
    .param p2, "upstreamFactory"    # Lcom/google/android/exoplayer2/upstream/DataSource$Factory;

    .line 49
    const/4 v3, 0x0

    const/4 v4, 0x0

    const/4 v5, 0x0

    move-object v0, p0

    move-object v1, p1

    move-object v2, p2

    invoke-direct/range {v0 .. v5}, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;-><init>(Lcom/google/android/exoplayer2/upstream/cache/Cache;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSink$Factory;Lcom/google/android/exoplayer2/util/PriorityTaskManager;)V

    .line 55
    return-void
.end method

.method public constructor <init>(Lcom/google/android/exoplayer2/upstream/cache/Cache;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSink$Factory;Lcom/google/android/exoplayer2/util/PriorityTaskManager;)V
    .registers 13
    .param p1, "cache"    # Lcom/google/android/exoplayer2/upstream/cache/Cache;
    .param p2, "upstreamFactory"    # Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    .param p3, "cacheReadDataSourceFactory"    # Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    .param p4, "cacheWriteDataSinkFactory"    # Lcom/google/android/exoplayer2/upstream/DataSink$Factory;
    .param p5, "priorityTaskManager"    # Lcom/google/android/exoplayer2/util/PriorityTaskManager;

    .line 75
    const/4 v6, 0x0

    move-object v0, p0

    move-object v1, p1

    move-object v2, p2

    move-object v3, p3

    move-object v4, p4

    move-object v5, p5

    invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;-><init>(Lcom/google/android/exoplayer2/upstream/cache/Cache;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSink$Factory;Lcom/google/android/exoplayer2/util/PriorityTaskManager;Lcom/google/android/exoplayer2/upstream/cache/CacheKeyFactory;)V

    .line 82
    return-void
.end method

.method public constructor <init>(Lcom/google/android/exoplayer2/upstream/cache/Cache;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSink$Factory;Lcom/google/android/exoplayer2/util/PriorityTaskManager;Lcom/google/android/exoplayer2/upstream/cache/CacheKeyFactory;)V
    .registers 24
    .param p1, "cache"    # Lcom/google/android/exoplayer2/upstream/cache/Cache;
    .param p2, "upstreamFactory"    # Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    .param p3, "cacheReadDataSourceFactory"    # Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    .param p4, "cacheWriteDataSinkFactory"    # Lcom/google/android/exoplayer2/upstream/DataSink$Factory;
    .param p5, "priorityTaskManager"    # Lcom/google/android/exoplayer2/util/PriorityTaskManager;
    .param p6, "cacheKeyFactory"    # Lcom/google/android/exoplayer2/upstream/cache/CacheKeyFactory;

    .line 103
    move-object/from16 v0, p0

    move-object/from16 v13, p1

    move-object/from16 v14, p5

    invoke-direct/range {p0 .. p0}, Ljava/lang/Object;-><init>()V

    .line 104
    if-eqz v14, :cond_16

    .line 105
    new-instance v1, Lcom/google/android/exoplayer2/upstream/PriorityDataSourceFactory;

    const/16 v2, -0x3e8

    move-object/from16 v3, p2

    invoke-direct {v1, v3, v14, v2}, Lcom/google/android/exoplayer2/upstream/PriorityDataSourceFactory;-><init>(Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/util/PriorityTaskManager;I)V

    move-object v15, v1

    .end local p2    # "upstreamFactory":Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    .local v1, "upstreamFactory":Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    goto :goto_19

    .line 104
    .end local v1    # "upstreamFactory":Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    .restart local p2    # "upstreamFactory":Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    :cond_16
    move-object/from16 v3, p2

    move-object v15, v3

    .line 108
    .end local p2    # "upstreamFactory":Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    .local v15, "upstreamFactory":Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    :goto_19
    if-eqz p3, :cond_1e

    move-object/from16 v4, p3

    goto :goto_24

    :cond_1e
    new-instance v1, Lcom/google/android/exoplayer2/upstream/FileDataSourceFactory;

    invoke-direct {v1}, Lcom/google/android/exoplayer2/upstream/FileDataSourceFactory;-><init>()V

    move-object v4, v1

    .line 112
    .local v4, "readDataSourceFactory":Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
    :goto_24
    if-nez p4, :cond_36

    .line 113
    new-instance v1, Lcom/google/android/exoplayer2/upstream/cache/CacheDataSinkFactory;

    const-wide/32 v2, 0x500000

    invoke-direct {v1, v13, v2, v3}, Lcom/google/android/exoplayer2/upstream/cache/CacheDataSinkFactory;-><init>(Lcom/google/android/exoplayer2/upstream/cache/Cache;J)V

    .line 115
    .local v1, "factory":Lcom/google/android/exoplayer2/upstream/cache/CacheDataSinkFactory;
    const/4 v2, 0x1

    invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/upstream/cache/CacheDataSinkFactory;->experimental_setRespectCacheFragmentationFlag(Z)Lcom/google/android/exoplayer2/upstream/cache/CacheDataSinkFactory;

    .line 116
    move-object v2, v1

    move-object/from16 v16, v2

    .end local p4    # "cacheWriteDataSinkFactory":Lcom/google/android/exoplayer2/upstream/DataSink$Factory;
    .local v2, "cacheWriteDataSinkFactory":Lcom/google/android/exoplayer2/upstream/DataSink$Factory;
    goto :goto_38

    .line 112
    .end local v1    # "factory":Lcom/google/android/exoplayer2/upstream/cache/CacheDataSinkFactory;
    .end local v2    # "cacheWriteDataSinkFactory":Lcom/google/android/exoplayer2/upstream/DataSink$Factory;
    .restart local p4    # "cacheWriteDataSinkFactory":Lcom/google/android/exoplayer2/upstream/DataSink$Factory;
    :cond_36
    move-object/from16 v16, p4

    .line 118
    .end local p4    # "cacheWriteDataSinkFactory":Lcom/google/android/exoplayer2/upstream/DataSink$Factory;
    .local v16, "cacheWriteDataSinkFactory":Lcom/google/android/exoplayer2/upstream/DataSink$Factory;
    :goto_38
    new-instance v9, Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;

    const/4 v6, 0x1

    const/4 v7, 0x0

    move-object v1, v9

    move-object/from16 v2, p1

    move-object v3, v15

    move-object/from16 v5, v16

    move-object/from16 v8, p6

    invoke-direct/range {v1 .. v8}, Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;-><init>(Lcom/google/android/exoplayer2/upstream/cache/Cache;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSink$Factory;ILcom/google/android/exoplayer2/upstream/cache/CacheDataSource$EventListener;Lcom/google/android/exoplayer2/upstream/cache/CacheKeyFactory;)V

    iput-object v9, v0, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;->onlineCacheDataSourceFactory:Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;

    .line 127
    new-instance v1, Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;

    sget-object v7, Lcom/google/android/exoplayer2/upstream/DummyDataSource;->FACTORY:Lcom/google/android/exoplayer2/upstream/DataSource$Factory;

    const/4 v9, 0x0

    const/4 v10, 0x1

    const/4 v11, 0x0

    move-object v5, v1

    move-object/from16 v6, p1

    move-object v8, v4

    move-object/from16 v12, p6

    invoke-direct/range {v5 .. v12}, Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;-><init>(Lcom/google/android/exoplayer2/upstream/cache/Cache;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/DataSink$Factory;ILcom/google/android/exoplayer2/upstream/cache/CacheDataSource$EventListener;Lcom/google/android/exoplayer2/upstream/cache/CacheKeyFactory;)V

    iput-object v1, v0, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;->offlineCacheDataSourceFactory:Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;

    .line 136
    iput-object v13, v0, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;->cache:Lcom/google/android/exoplayer2/upstream/cache/Cache;

    .line 137
    iput-object v14, v0, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;->priorityTaskManager:Lcom/google/android/exoplayer2/util/PriorityTaskManager;

    .line 138
    move-object/from16 v1, p6

    iput-object v1, v0, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;->cacheKeyFactory:Lcom/google/android/exoplayer2/upstream/cache/CacheKeyFactory;

    .line 139
    return-void
.end method


# virtual methods
.method public createCacheDataSource()Lcom/google/android/exoplayer2/upstream/cache/CacheDataSource;
    .registers 2

    .line 160
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;->onlineCacheDataSourceFactory:Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;

    invoke-virtual {v0}, Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;->createDataSource()Lcom/google/android/exoplayer2/upstream/cache/CacheDataSource;

    move-result-object v0

    return-object v0
.end method

.method public createOfflineCacheDataSource()Lcom/google/android/exoplayer2/upstream/cache/CacheDataSource;
    .registers 2

    .line 168
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;->offlineCacheDataSourceFactory:Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;

    invoke-virtual {v0}, Lcom/google/android/exoplayer2/upstream/cache/CacheDataSourceFactory;->createDataSource()Lcom/google/android/exoplayer2/upstream/cache/CacheDataSource;

    move-result-object v0

    return-object v0
.end method

.method public getCache()Lcom/google/android/exoplayer2/upstream/cache/Cache;
    .registers 2

    .line 143
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;->cache:Lcom/google/android/exoplayer2/upstream/cache/Cache;

    return-object v0
.end method

.method public getCacheKeyFactory()Lcom/google/android/exoplayer2/upstream/cache/CacheKeyFactory;
    .registers 2

    .line 148
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;->cacheKeyFactory:Lcom/google/android/exoplayer2/upstream/cache/CacheKeyFactory;

    if-eqz v0, :cond_5

    goto :goto_7

    :cond_5
    sget-object v0, Lcom/google/android/exoplayer2/upstream/cache/CacheUtil;->DEFAULT_CACHE_KEY_FACTORY:Lcom/google/android/exoplayer2/upstream/cache/CacheKeyFactory;

    :goto_7
    return-object v0
.end method

.method public getPriorityTaskManager()Lcom/google/android/exoplayer2/util/PriorityTaskManager;
    .registers 2

    .line 155
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DownloaderConstructorHelper;->priorityTaskManager:Lcom/google/android/exoplayer2/util/PriorityTaskManager;

    if-eqz v0, :cond_5

    goto :goto_a

    :cond_5
    new-instance v0, Lcom/google/android/exoplayer2/util/PriorityTaskManager;

    invoke-direct {v0}, Lcom/google/android/exoplayer2/util/PriorityTaskManager;-><init>()V

    :goto_a
    return-object v0
.end method