public interface

DownloadIndex

 androidx.media3.exoplayer.offline.DownloadIndex

Subclasses:

WritableDownloadIndex, DefaultDownloadIndex

Gradle dependencies

compile group: 'androidx.media3', name: 'media3-exoplayer', version: '1.5.0-alpha01'

  • groupId: androidx.media3
  • artifactId: media3-exoplayer
  • version: 1.5.0-alpha01

Artifact androidx.media3:media3-exoplayer:1.5.0-alpha01 it located at Google repository (https://maven.google.com/)

Overview

An index of Downloads.

Summary

Methods
public DownloadgetDownload(java.lang.String id)

Returns the Download with the given id, or null.

public DownloadCursorgetDownloads(int[] states[])

Returns a DownloadCursor to Downloads with the given states.

Methods

public Download getDownload(java.lang.String id)

Returns the Download with the given id, or null.

This method may be slow and shouldn't normally be called on the main thread.

Parameters:

id: ID of a Download.

Returns:

The Download with the given id, or null if a download state with this id doesn't exist.

public DownloadCursor getDownloads(int[] states[])

Returns a DownloadCursor to Downloads with the given states.

This method may be slow and shouldn't normally be called on the main thread.

Parameters:

states: Returns only the Downloads with this states. If empty, returns all.

Returns:

A cursor to Downloads with the given states.

Source

/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package androidx.media3.exoplayer.offline;

import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;
import androidx.media3.common.util.UnstableApi;
import java.io.IOException;

/** An index of {@link Download Downloads}. */
@WorkerThread
@UnstableApi
public interface DownloadIndex {

  /**
   * Returns the {@link Download} with the given {@code id}, or null.
   *
   * <p>This method may be slow and shouldn't normally be called on the main thread.
   *
   * @param id ID of a {@link Download}.
   * @return The {@link Download} with the given {@code id}, or null if a download state with this
   *     id doesn't exist.
   * @throws IOException If an error occurs reading the state.
   */
  @Nullable
  Download getDownload(String id) throws IOException;

  /**
   * Returns a {@link DownloadCursor} to {@link Download}s with the given {@code states}.
   *
   * <p>This method may be slow and shouldn't normally be called on the main thread.
   *
   * @param states Returns only the {@link Download}s with this states. If empty, returns all.
   * @return A cursor to {@link Download}s with the given {@code states}.
   * @throws IOException If an error occurs reading the state.
   */
  DownloadCursor getDownloads(@Download.State int... states) throws IOException;
}