# Package com.google.android.exoplayer2.offline

- Interface Summary
  Interface | Description
  --- | ---
  DownloadCursor | Provides random read-write access to the result set returned by a database query.
  Downloader | Downloads and removes a piece of content.
  Downloader.ProgressListener | Receives progress updates during download operations.
  DownloaderFactory | Creates `Downloaders` for given `DownloadRequests`.
  DownloadHelper.Callback | A callback to be notified when the `DownloadHelper` is prepared.
  DownloadIndex | An index of `Downloads`.
  DownloadManager.Listener | Listener for `DownloadManager` events.
  FilterableManifest<T> | A manifest that can generate copies of itself including only the streams specified by the given keys.
  WritableDownloadIndex | A writable index of `Downloads`.

- Class Summary
  Class | Description
  --- | ---
  DefaultDownloaderFactory | Default `DownloaderFactory`, supporting creation of progressive, DASH, HLS and SmoothStreaming downloaders.
  DefaultDownloadIndex | A `DownloadIndex` that uses SQLite to persist `Downloads`.
  Download | Represents state of a download.
  DownloadHelper | A helper for initializing and removing downloads.
  DownloadManager | Manages downloads.
  DownloadProgress | Mutable `Download` progress.
  DownloadRequest | Defines content to be downloaded.
  DownloadRequest.Builder | A builder for download requests.
  DownloadService | A `Service` for downloading media.
  FilteringManifestParser<T extends FilterableManifest<T>> | A manifest parser that includes only the streams identified by the given stream keys.
  ProgressiveDownloader | A downloader for progressive media streams.
  SegmentDownloader<M extends FilterableManifest<M>> | Base class for multi segment stream downloaders.
  SegmentDownloader.Segment | Smallest unit of content to be downloaded.
  StreamKey | A key for a subset of media that can be separately loaded (a "stream").

- Exception Summary
  Exception | Description
  --- | ---
  DownloadException | Thrown on an error during downloading.
  DownloadHelper.LiveContentUnsupportedException | Thrown at an attempt to download live content.
  DownloadRequest.UnsupportedRequestException | Thrown when the encoded request data belongs to an unsupported request type.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  Download.FailureReason | Failure reasons.
  Download.State | Download states.