DownloadActionUtil.smali

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


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

    return-void
.end method

.method private constructor <init>()V
    .registers 1

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

    return-void
.end method

.method public static mergeActions(Ljava/util/ArrayDeque;)Lcom/google/android/exoplayer2/offline/DownloadAction;
    .registers 11
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/ArrayDeque<",
            "Lcom/google/android/exoplayer2/offline/DownloadAction;",
            ">;)",
            "Lcom/google/android/exoplayer2/offline/DownloadAction;"
        }
    .end annotation

    .line 37
    .local p0, "actionQueue":Ljava/util/ArrayDeque;, "Ljava/util/ArrayDeque<Lcom/google/android/exoplayer2/offline/DownloadAction;>;"
    const/4 v0, 0x0

    .line 38
    .local v0, "removeAction":Lcom/google/android/exoplayer2/offline/DownloadAction;
    const/4 v1, 0x0

    .line 39
    .local v1, "downloadAction":Lcom/google/android/exoplayer2/offline/DownloadAction;
    new-instance v2, Ljava/util/HashSet;

    invoke-direct {v2}, Ljava/util/HashSet;-><init>()V

    .line 40
    .local v2, "keys":Ljava/util/HashSet;, "Ljava/util/HashSet<Lcom/google/android/exoplayer2/offline/StreamKey;>;"
    const/4 v3, 0x0

    .line 41
    .local v3, "downloadAllTracks":Z
    invoke-virtual {p0}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object;

    move-result-object v4

    invoke-static {v4}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lcom/google/android/exoplayer2/offline/DownloadAction;

    .line 43
    .local v4, "firstAction":Lcom/google/android/exoplayer2/offline/DownloadAction;
    :goto_12
    invoke-virtual {p0}, Ljava/util/ArrayDeque;->isEmpty()Z

    move-result v5

    if-nez v5, :cond_51

    .line 44
    invoke-virtual {p0}, Ljava/util/ArrayDeque;->remove()Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Lcom/google/android/exoplayer2/offline/DownloadAction;

    .line 45
    .local v5, "action":Lcom/google/android/exoplayer2/offline/DownloadAction;
    iget-object v6, v5, Lcom/google/android/exoplayer2/offline/DownloadAction;->type:Ljava/lang/String;

    iget-object v7, v4, Lcom/google/android/exoplayer2/offline/DownloadAction;->type:Ljava/lang/String;

    invoke-virtual {v6, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v6

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

    .line 46
    invoke-virtual {v5, v4}, Lcom/google/android/exoplayer2/offline/DownloadAction;->isSameMedia(Lcom/google/android/exoplayer2/offline/DownloadAction;)Z

    move-result v6

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

    .line 47
    iget-boolean v6, v5, Lcom/google/android/exoplayer2/offline/DownloadAction;->isRemoveAction:Z

    if-eqz v6, :cond_3b

    .line 48
    move-object v0, v5

    .line 49
    const/4 v1, 0x0

    .line 50
    invoke-virtual {v2}, Ljava/util/HashSet;->clear()V

    .line 51
    const/4 v3, 0x0

    goto :goto_50

    .line 53
    :cond_3b
    if-nez v3, :cond_4f

    .line 54
    iget-object v6, v5, Lcom/google/android/exoplayer2/offline/DownloadAction;->keys:Ljava/util/List;

    invoke-interface {v6}, Ljava/util/List;->isEmpty()Z

    move-result v6

    if-eqz v6, :cond_4a

    .line 55
    const/4 v3, 0x1

    .line 56
    invoke-virtual {v2}, Ljava/util/HashSet;->clear()V

    goto :goto_4f

    .line 58
    :cond_4a
    iget-object v6, v5, Lcom/google/android/exoplayer2/offline/DownloadAction;->keys:Ljava/util/List;

    invoke-virtual {v2, v6}, Ljava/util/HashSet;->addAll(Ljava/util/Collection;)Z

    .line 61
    :cond_4f
    :goto_4f
    move-object v1, v5

    .line 63
    .end local v5    # "action":Lcom/google/android/exoplayer2/offline/DownloadAction;
    :goto_50
    goto :goto_12

    .line 65
    :cond_51
    if-eqz v0, :cond_56

    .line 66
    invoke-virtual {p0, v0}, Ljava/util/ArrayDeque;->add(Ljava/lang/Object;)Z

    .line 68
    :cond_56
    if-eqz v1, :cond_6c

    .line 69
    iget-object v5, v1, Lcom/google/android/exoplayer2/offline/DownloadAction;->type:Ljava/lang/String;

    iget-object v6, v1, Lcom/google/android/exoplayer2/offline/DownloadAction;->uri:Landroid/net/Uri;

    new-instance v7, Ljava/util/ArrayList;

    invoke-direct {v7, v2}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V

    iget-object v8, v1, Lcom/google/android/exoplayer2/offline/DownloadAction;->customCacheKey:Ljava/lang/String;

    iget-object v9, v1, Lcom/google/android/exoplayer2/offline/DownloadAction;->data:[B

    .line 70
    invoke-static {v5, v6, v7, v8, v9}, 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 v5

    .line 69
    invoke-virtual {p0, v5}, Ljava/util/ArrayDeque;->add(Ljava/lang/Object;)Z

    .line 77
    :cond_6c
    invoke-virtual {p0}, Ljava/util/ArrayDeque;->peek()Ljava/lang/Object;

    move-result-object v5

    invoke-static {v5}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Lcom/google/android/exoplayer2/offline/DownloadAction;

    return-object v5
.end method