Class DownloadManager

java.lang.Object
com.brightcove.player.network.DownloadManager
All Implemented Interfaces:
IDownloadManager

public class DownloadManager extends Object implements IDownloadManager
Provides an implementation of IDownloadManager that uses an application database to track the requests. The requests placed in the database will be downloaded asynchronously in a separate process. Any request sets that have been marked for deletion will be cancelled.
  • Field Details

    • downloadListener

      public final com.liulishuo.filedownloader.FileDownloadLargeFileListener downloadListener
      A listener will be used watch download status changes and update the overall download status.
  • Method Details

    • getInstance

      @NonNull public static DownloadManager getInstance(@NonNull android.content.Context context)
      Gets reference to the single instance of the default download manager.
      Parameters:
      context - the context of the host application.
      Returns:
      the single instance of the default download manager.
    • addListener

      public boolean addListener(@NonNull Long key, @NonNull DownloadManager.Listener listener)
    • removeListener

      public boolean removeListener(@NonNull DownloadManager.Listener listener)
    • createDownloadRequestSet

      @NonNull public io.reactivex.Observable<com.brightcove.player.store.DownloadRequestSet> createDownloadRequestSet(@Nullable RequestConfig requestConfig, long estimatedSize, @NonNull DownloadManager.Listener listener)
      Description copied from interface: IDownloadManager
      Creates an empty download request set with the specified estimated size.

      Please note the operation will be carried on a background i/o thread.

      Specified by:
      createDownloadRequestSet in interface IDownloadManager
      Parameters:
      requestConfig - the configuration to be used for handling the download requests.
      estimatedSize - the estimated total size of the download.
      listener - reference to the callback listener that must be notified about status changes related to this download request.
      Returns:
      reference to an Observable that must subscribed to complete operation and obtain the result.
    • enqueueDownload

      @NonNull public io.reactivex.Observable<com.brightcove.player.store.DownloadRequestSet> enqueueDownload(@NonNull com.brightcove.player.store.DownloadRequestSet requestSet, @NonNull IDownloadManager.IRequest... requests)
      Description copied from interface: IDownloadManager
      Enqueues a set of download requests to the specified request set. The status of the download request set will be more to DownloadStatus.STATUS_PENDING immediately adding the requests to the database. The DownloadManager will start to process the download requests after this call, because of network availability and current download queue load.

      Please note the operation will be carried on a background i/o thread.

      Specified by:
      enqueueDownload in interface IDownloadManager
      Parameters:
      requestSet - reference to the
      requests - the download requests to be enqueued.
      Returns:
      reference to an Observable that must subscribed to complete operation and obtain the result.
    • pauseDownload

      @NonNull public DownloadStatus pauseDownload(@Nullable com.brightcove.player.store.DownloadRequestSet requestSet)
      Description copied from interface: IDownloadManager
      Pauses download of the specified request set, if it is not already paused.
      Specified by:
      pauseDownload in interface IDownloadManager
      Parameters:
      requestSet - reference to the download request to be paused.
      Returns:
      the new status of download request set.
    • pauseDownload

      @NonNull public DownloadStatus pauseDownload(@NonNull Long requestSetKey)
      Description copied from interface: IDownloadManager
      Pauses download of the specified request set, if it is not already paused.
      Specified by:
      pauseDownload in interface IDownloadManager
      Parameters:
      requestSetKey - the unique identifier to the download request.
      Returns:
      the new status of download request set.
    • resumeDownload

      @NonNull public DownloadStatus resumeDownload(@Nullable com.brightcove.player.store.DownloadRequestSet requestSet)
      Description copied from interface: IDownloadManager
      Resumes download of the specified request set, if it is currently paused.
      Specified by:
      resumeDownload in interface IDownloadManager
      Parameters:
      requestSet - reference to the download request to be resumed.
      Returns:
      the new status of download request set.
    • resumeDownload

      @NonNull public DownloadStatus resumeDownload(@NonNull Long requestSetKey)
      Description copied from interface: IDownloadManager
      Resumes download of the specified request set, if it is currently paused.
      Specified by:
      resumeDownload in interface IDownloadManager
      Parameters:
      requestSetKey - the unique identifier to the download request.
      Returns:
      the new status of download request set.
    • deleteDownload

      public boolean deleteDownload(@NonNull Long requestSetKey)
      Description copied from interface: IDownloadManager
      Cancels all the download requests in the specified set and removes the download request set.
      Specified by:
      deleteDownload in interface IDownloadManager
      Parameters:
      requestSetKey - the unique identifier to the download request.
      Returns:
      true if the request set was found and removed, otherwise false.
    • deleteDownload

      public boolean deleteDownload(@Nullable com.brightcove.player.store.DownloadRequestSet requestSet)
      Description copied from interface: IDownloadManager
      Cancels all the download requests in the specified set and removes the download request set.
      Specified by:
      deleteDownload in interface IDownloadManager
      Parameters:
      requestSet - the request set to be cancelled.
      Returns:
      true if the request set was found and removed, otherwise false.
    • getDownloadStatus

      @NonNull public DownloadStatus getDownloadStatus(@NonNull Long requestSetKey)
      Description copied from interface: IDownloadManager
      Queries the overall download status of the specified download request set.
      Specified by:
      getDownloadStatus in interface IDownloadManager
      Parameters:
      requestSetKey - the unique identifier to the download request.
      Returns:
      the overall download status
    • getDownloadStatus

      @NonNull public DownloadStatus getDownloadStatus(@Nullable com.brightcove.player.store.DownloadRequestSet requestSet)
      Description copied from interface: IDownloadManager
      Queries the overall download status of the specified download request set.
      Specified by:
      getDownloadStatus in interface IDownloadManager
      Parameters:
      requestSet - reference to the download request set.
      Returns:
      the overall download status
    • setNotificationChannel

      public void setNotificationChannel(@NonNull android.app.NotificationChannel notificationChannel)
      Set the specified NotificationChannel This is typically done when use of a customized NotificationChannel (for example, to manage Notification sound settings) is desired. Note that setting a custom NotificationChannel will remove this DownloadManager's default NotificationChannel
      Parameters:
      notificationChannel - The user-created NotificationChannel object
    • getNotificationChannelById

      @Nullable public android.app.NotificationChannel getNotificationChannelById(@NonNull String notificationChannelId)
      Retrieve the NotificationChannel specified by ID (or null if the NotificationChannel does not exist)
      Parameters:
      notificationChannelId - The NotificationChannel ID
      Returns:
      The NotificationChannel with that ID, or null if the channel is not found
    • removeNotificationChannelById

      public void removeNotificationChannelById(@NonNull String notificationChannelId)
      Remove the NotificationChannel with the spedified ID from the NotificationManager
      Parameters:
      notificationChannelId - The ID of the NotificationChannel to remove
    • getAllNotificationChannels

      @Nullable public List<android.app.NotificationChannel> getAllNotificationChannels()
      Get all of the notification channels assigned to this DownloadManager instance
      Returns:
      The List of this DownloadManager's NotificationChannels