DefaultDownloadIndex.smali

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

# interfaces
.implements Lcom/google/android/exoplayer2/offline/DownloadIndex;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DefaultDatabaseProvider;,
        Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$VersionTable;,
        Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;,
        Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateCursorImpl;,
        Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;
    }
.end annotation


# static fields
.field private static final DATABASE_NAME:Ljava/lang/String; = "exoplayer_internal.db"


# instance fields
.field private final databaseProvider:Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;

.field private downloadStateTable:Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;


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

    return-void
.end method

.method public constructor <init>(Landroid/content/Context;)V
    .registers 3
    .param p1, "context"    # Landroid/content/Context;

    .line 90
    new-instance v0, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DefaultDatabaseProvider;

    invoke-direct {v0, p1}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DefaultDatabaseProvider;-><init>(Landroid/content/Context;)V

    invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;-><init>(Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;)V

    .line 91
    return-void
.end method

.method public constructor <init>(Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;)V
    .registers 2
    .param p1, "databaseProvider"    # Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;

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

    .line 101
    iput-object p1, p0, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;->databaseProvider:Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;

    .line 102
    return-void
.end method

.method static doesTableExist(Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;Ljava/lang/String;)Z
    .registers 10
    .param p0, "databaseProvider"    # Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;
    .param p1, "tableName"    # Ljava/lang/String;

    .line 139
    invoke-interface {p0}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;->getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v0

    .line 140
    .local v0, "readableDatabase":Landroid/database/sqlite/SQLiteDatabase;
    const/4 v1, 0x1

    new-array v2, v1, [Ljava/lang/String;

    const/4 v3, 0x0

    aput-object p1, v2, v3

    .line 141
    const-string/jumbo v4, "sqlite_master"

    const-string/jumbo v5, "tbl_name = ?"

    invoke-static {v0, v4, v5, v2}, Landroid/database/DatabaseUtils;->queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)J

    move-result-wide v4

    .line 143
    .local v4, "count":J
    const-wide/16 v6, 0x0

    cmp-long v2, v4, v6

    if-lez v2, :cond_1b

    goto :goto_1c

    :cond_1b
    const/4 v1, 0x0

    :goto_1c
    return v1
.end method

.method private getDownloadStateTable()Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;
    .registers 3

    .line 131
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;->downloadStateTable:Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;

    if-nez v0, :cond_d

    .line 132
    new-instance v0, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;

    iget-object v1, p0, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;->databaseProvider:Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;

    invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;-><init>(Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;)V

    iput-object v0, p0, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;->downloadStateTable:Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;

    .line 134
    :cond_d
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;->downloadStateTable:Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;

    return-object v0
.end method


# virtual methods
.method public getDownloadState(Ljava/lang/String;)Lcom/google/android/exoplayer2/offline/DownloadState;
    .registers 3
    .param p1, "id"    # Ljava/lang/String;

    .line 112
    invoke-direct {p0}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;->getDownloadStateTable()Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;

    move-result-object v0

    invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;->get(Ljava/lang/String;)Lcom/google/android/exoplayer2/offline/DownloadState;

    move-result-object v0

    return-object v0
.end method

.method public varargs getDownloadStates([I)Lcom/google/android/exoplayer2/offline/DownloadStateCursor;
    .registers 3
    .param p1, "states"    # [I

    .line 117
    invoke-direct {p0}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;->getDownloadStateTable()Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;

    move-result-object v0

    invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;->get([I)Lcom/google/android/exoplayer2/offline/DownloadStateCursor;

    move-result-object v0

    return-object v0
.end method

.method public putDownloadState(Lcom/google/android/exoplayer2/offline/DownloadState;)V
    .registers 3
    .param p1, "downloadState"    # Lcom/google/android/exoplayer2/offline/DownloadState;

    .line 122
    invoke-direct {p0}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;->getDownloadStateTable()Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;

    move-result-object v0

    invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;->replace(Lcom/google/android/exoplayer2/offline/DownloadState;)V

    .line 123
    return-void
.end method

.method public release()V
    .registers 2

    .line 106
    iget-object v0, p0, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;->databaseProvider:Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;

    invoke-interface {v0}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DatabaseProvider;->close()V

    .line 107
    return-void
.end method

.method public removeDownloadState(Ljava/lang/String;)V
    .registers 3
    .param p1, "id"    # Ljava/lang/String;

    .line 127
    invoke-direct {p0}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex;->getDownloadStateTable()Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;

    move-result-object v0

    invoke-virtual {v0, p1}, Lcom/google/android/exoplayer2/offline/DefaultDownloadIndex$DownloadStateTable;->delete(Ljava/lang/String;)V

    .line 128
    return-void
.end method