public interface

DownloadCursor

implements java.io.Closeable

 androidx.media3.exoplayer.offline.DownloadCursor

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

Provides random read-write access to the result set returned by a database query.

Summary

Methods
public voidclose()

public intgetCount()

Returns the numbers of downloads in the cursor.

public DownloadgetDownload()

Returns the download at the current position.

public intgetPosition()

Returns the current position of the cursor in the download set.

public booleanisAfterLast()

Returns whether the cursor is pointing to the position after the last download.

public booleanisBeforeFirst()

Returns whether the cursor is pointing to the position before the first download.

public booleanisClosed()

Returns whether the cursor is closed

public booleanisFirst()

Returns whether the cursor is pointing to the first download.

public booleanisLast()

Returns whether the cursor is pointing to the last download.

public booleanmoveToFirst()

Move the cursor to the first download.

public booleanmoveToLast()

Move the cursor to the last download.

public booleanmoveToNext()

Move the cursor to the next download.

public booleanmoveToPosition(int position)

Move the cursor to an absolute position.

public booleanmoveToPrevious()

Move the cursor to the previous download.

Methods

public Download getDownload()

Returns the download at the current position.

public int getCount()

Returns the numbers of downloads in the cursor.

public int getPosition()

Returns the current position of the cursor in the download set. The value is zero-based. When the download set is first returned the cursor will be at position -1, which is before the first download. After the last download is returned another call to next() will leave the cursor past the last entry, at a position of count().

Returns:

the current cursor position.

public boolean moveToPosition(int position)

Move the cursor to an absolute position. The valid range of values is -1 <= position <= count.

This method will return true if the request destination was reachable, otherwise, it returns false.

Parameters:

position: the zero-based position to move to.

Returns:

whether the requested move fully succeeded.

public boolean moveToFirst()

Move the cursor to the first download.

This method will return false if the cursor is empty.

Returns:

whether the move succeeded.

public boolean moveToLast()

Move the cursor to the last download.

This method will return false if the cursor is empty.

Returns:

whether the move succeeded.

public boolean moveToNext()

Move the cursor to the next download.

This method will return false if the cursor is already past the last entry in the result set.

Returns:

whether the move succeeded.

public boolean moveToPrevious()

Move the cursor to the previous download.

This method will return false if the cursor is already before the first entry in the result set.

Returns:

whether the move succeeded.

public boolean isFirst()

Returns whether the cursor is pointing to the first download.

public boolean isLast()

Returns whether the cursor is pointing to the last download.

public boolean isBeforeFirst()

Returns whether the cursor is pointing to the position before the first download.

public boolean isAfterLast()

Returns whether the cursor is pointing to the position after the last download.

public boolean isClosed()

Returns whether the cursor is closed

public void close()

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.media3.common.util.UnstableApi;
import java.io.Closeable;

/** Provides random read-write access to the result set returned by a database query. */
@UnstableApi
public interface DownloadCursor extends Closeable {

  /** Returns the download at the current position. */
  Download getDownload();

  /** Returns the numbers of downloads in the cursor. */
  int getCount();

  /**
   * Returns the current position of the cursor in the download set. The value is zero-based. When
   * the download set is first returned the cursor will be at position -1, which is before the first
   * download. After the last download is returned another call to next() will leave the cursor past
   * the last entry, at a position of count().
   *
   * @return the current cursor position.
   */
  int getPosition();

  /**
   * Move the cursor to an absolute position. The valid range of values is -1 &lt;= position &lt;=
   * count.
   *
   * <p>This method will return true if the request destination was reachable, otherwise, it returns
   * false.
   *
   * @param position the zero-based position to move to.
   * @return whether the requested move fully succeeded.
   */
  boolean moveToPosition(int position);

  /**
   * Move the cursor to the first download.
   *
   * <p>This method will return false if the cursor is empty.
   *
   * @return whether the move succeeded.
   */
  default boolean moveToFirst() {
    return moveToPosition(0);
  }

  /**
   * Move the cursor to the last download.
   *
   * <p>This method will return false if the cursor is empty.
   *
   * @return whether the move succeeded.
   */
  default boolean moveToLast() {
    return moveToPosition(getCount() - 1);
  }

  /**
   * Move the cursor to the next download.
   *
   * <p>This method will return false if the cursor is already past the last entry in the result
   * set.
   *
   * @return whether the move succeeded.
   */
  default boolean moveToNext() {
    return moveToPosition(getPosition() + 1);
  }

  /**
   * Move the cursor to the previous download.
   *
   * <p>This method will return false if the cursor is already before the first entry in the result
   * set.
   *
   * @return whether the move succeeded.
   */
  default boolean moveToPrevious() {
    return moveToPosition(getPosition() - 1);
  }

  /** Returns whether the cursor is pointing to the first download. */
  default boolean isFirst() {
    return getPosition() == 0 && getCount() != 0;
  }

  /** Returns whether the cursor is pointing to the last download. */
  default boolean isLast() {
    int count = getCount();
    return getPosition() == (count - 1) && count != 0;
  }

  /** Returns whether the cursor is pointing to the position before the first download. */
  default boolean isBeforeFirst() {
    if (getCount() == 0) {
      return true;
    }
    return getPosition() == -1;
  }

  /** Returns whether the cursor is pointing to the position after the last download. */
  default boolean isAfterLast() {
    if (getCount() == 0) {
      return true;
    }
    return getPosition() == getCount();
  }

  /** Returns whether the cursor is closed */
  boolean isClosed();

  @Override
  void close();
}