Class DownloadStatus

java.lang.Object
com.brightcove.player.network.DownloadStatus
All Implemented Interfaces:
android.os.Parcelable

public class DownloadStatus extends Object implements android.os.Parcelable
Download status describes the current status of a download request.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static @interface 
    The list of possible reasons code that will be set when DownloadStatus.StatusCode is either STATUS_RETRY or STATUS_FAILED.
    static @interface 
    The list of possible status values for DownloadManager.Request.

    Nested classes/interfaces inherited from interface android.os.Parcelable

    android.os.Parcelable.ClassLoaderCreator<T extends Object>, android.os.Parcelable.Creator<T extends Object>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final android.os.Parcelable.Creator<DownloadStatus>
    Provides a creator field as required by the Parcelable contract.
    static final int
    The download has failed because some possibly transient error occurred but prevents resuming the download.
    static final int
    The download has failed because no external storage device was found.
    static final int
    The download has failed because the requested destination file already exists.
    static final int
    The download has failed because of storage issue which doesn't fit under any other error code.
    static final int
    The download has failed because an error occurred while receiving or processing data at the HTTP level.
    static final int
    The download has failed because there was insufficient storage space.
    static final int
    There are no errors in the download request.
    static final int
    The download has failed because there were too many redirects.
    static final int
    The download has failed because an HTTP code was received that cannot be handled.
    static final int
    The download has failed with an error that doesn't fit under any other error code.
    static final int
    The download exceeds a size limit for downloads over the mobile network and the download manager is waiting for a Wi-Fi connection to proceed.
    static final int
    The download is paused for some other reason.
    static final int
    The download is waiting for network connectivity to proceed.
    static final int
    The download is paused because some network error occurred and the download manager is waiting before retrying the request.
    static final int
    Status of DownloadManager.Request that is being removed before the download is complete.
    static final int
    Status of DownloadManager.Request that has successfully downloaded.
    static final int
    Status of DownloadManager.Request that is being removed after the download is complete.
    static final int
    Status of DownloadManager.Request that is currently being downloaded.
    static final int
    Status of DownloadManager.Request that has failed (and will not be retried).
    static final int
    Status of DownloadManager.Request that has been not queued for download.
    static final int
    Status of DownloadManager.Request that has been paused explicitly.
    static final int
    Status of DownloadManager.Request is waiting to start.
    static final int
    Status of DownloadManager.Request that is being queued with the DownloadManager service.
    static final int
    Status of DownloadManager.Request that is currently waiting to retry or resume.

    Fields inherited from interface android.os.Parcelable

    CONTENTS_FILE_DESCRIPTOR, PARCELABLE_WRITE_RETURN_VALUE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Creates a new DownloadStatus instance with error specifying that the DownloadsFile is invalid.
    int
     
    boolean
     
    long
    Gets the actual total size of the file as number of bytes.
    long
    Gets the total number of bytes downloaded so far.
    int
    Gets the status code of the download request.
    long
    Gets the estimated total size of the file as number of bytes.
    long
    Gets the maximum size of the file as number of bytes by comparing actualSize and estimatedSize
    double
    Calculates the download progress as percentage value.
    int
    Gets the reason code of the download request, if any.
    int
    Converts the current status code the string resourced identifier that explains the status.
    int
    Converts the current status code to a string resource identifier that explains status.
    long
    Gets the date and time when the status changed as number of milliseconds since January 1, 1970, 00:00:00 GMT.
    int
     
    boolean
    Checks if the status indicates the download is currently marked for deletion.
    static int
    toReasonMessage(int reason)
    Converts the given reason code to a string resource identifier that explains the reason.
    static int
    toStatusMessage(int code)
    Converts the given status code to a string resource identifier that explains the status.
     
    void
    writeToParcel(android.os.Parcel dest, int flags)
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • STATUS_PAUSED

      public static final int STATUS_PAUSED
      Status of DownloadManager.Request that has been paused explicitly.
      See Also:
    • STATUS_DELETING

      public static final int STATUS_DELETING
      Status of DownloadManager.Request that is being removed after the download is complete.
      See Also:
    • STATUS_CANCELLING

      public static final int STATUS_CANCELLING
      Status of DownloadManager.Request that is being removed before the download is complete.
      See Also:
    • STATUS_QUEUEING

      public static final int STATUS_QUEUEING
      Status of DownloadManager.Request that is being queued with the DownloadManager service.
      See Also:
    • STATUS_NOT_QUEUED

      public static final int STATUS_NOT_QUEUED
      Status of DownloadManager.Request that has been not queued for download.
      See Also:
    • STATUS_PENDING

      public static final int STATUS_PENDING
      Status of DownloadManager.Request is waiting to start.
      See Also:
    • STATUS_DOWNLOADING

      public static final int STATUS_DOWNLOADING
      Status of DownloadManager.Request that is currently being downloaded.
      See Also:
    • STATUS_RETRY

      public static final int STATUS_RETRY
      Status of DownloadManager.Request that is currently waiting to retry or resume.
      See Also:
    • STATUS_FAILED

      public static final int STATUS_FAILED
      Status of DownloadManager.Request that has failed (and will not be retried).
      See Also:
    • STATUS_COMPLETE

      public static final int STATUS_COMPLETE
      Status of DownloadManager.Request that has successfully downloaded.
      See Also:
    • ERROR_NONE

      public static final int ERROR_NONE
      There are no errors in the download request.
      See Also:
    • PAUSED_WAITING_TO_RETRY

      public static final int PAUSED_WAITING_TO_RETRY
      The download is paused because some network error occurred and the download manager is waiting before retrying the request.
      See Also:
    • PAUSED_WAITING_FOR_NETWORK

      public static final int PAUSED_WAITING_FOR_NETWORK
      The download is waiting for network connectivity to proceed.
      See Also:
    • PAUSED_QUEUED_FOR_WIFI

      public static final int PAUSED_QUEUED_FOR_WIFI
      The download exceeds a size limit for downloads over the mobile network and the download manager is waiting for a Wi-Fi connection to proceed.
      See Also:
    • PAUSED_UNKNOWN

      public static final int PAUSED_UNKNOWN
      The download is paused for some other reason.
      See Also:
    • ERROR_UNKNOWN

      public static final int ERROR_UNKNOWN
      The download has failed with an error that doesn't fit under any other error code.
      See Also:
    • ERROR_FILE_ERROR

      public static final int ERROR_FILE_ERROR
      The download has failed because of storage issue which doesn't fit under any other error code. Use the more specific ERROR_INSUFFICIENT_SPACE and ERROR_DEVICE_NOT_FOUND when appropriate.
      See Also:
    • ERROR_UNHANDLED_HTTP_CODE

      public static final int ERROR_UNHANDLED_HTTP_CODE
      The download has failed because an HTTP code was received that cannot be handled.
      See Also:
    • ERROR_HTTP_DATA_ERROR

      public static final int ERROR_HTTP_DATA_ERROR
      The download has failed because an error occurred while receiving or processing data at the HTTP level.
      See Also:
    • ERROR_TOO_MANY_REDIRECTS

      public static final int ERROR_TOO_MANY_REDIRECTS
      The download has failed because there were too many redirects.
      See Also:
    • ERROR_INSUFFICIENT_SPACE

      public static final int ERROR_INSUFFICIENT_SPACE
      The download has failed because there was insufficient storage space. Typically, this is because the SD card is full.
      See Also:
    • ERROR_DEVICE_NOT_FOUND

      public static final int ERROR_DEVICE_NOT_FOUND
      The download has failed because no external storage device was found. Typically, this is because the SD card is not mounted.
      See Also:
    • ERROR_CANNOT_RESUME

      public static final int ERROR_CANNOT_RESUME
      The download has failed because some possibly transient error occurred but prevents resuming the download.
      See Also:
    • ERROR_FILE_ALREADY_EXISTS

      public static final int ERROR_FILE_ALREADY_EXISTS
      The download has failed because the requested destination file already exists. Please call delete media and the try again.
      See Also:
    • CREATOR

      public static final android.os.Parcelable.Creator<DownloadStatus> CREATOR
      Provides a creator field as required by the Parcelable contract.
  • Constructor Details

    • DownloadStatus

      public DownloadStatus()
  • Method Details

    • createForInvalidDownloadsFile

      public static DownloadStatus createForInvalidDownloadsFile()
      Creates a new DownloadStatus instance with error specifying that the DownloadsFile is invalid.
      Returns:
      DownloadStatus with code = STATUS_NOT_QUEUED and reason = ERROR_DEVICE_NOT_FOUND.
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • isMarkedForDeletion

      public boolean isMarkedForDeletion()
      Checks if the status indicates the download is currently marked for deletion.
      Returns:
      true if the downloads is marked of deletion, otherwise false.
    • getStatusMessage

      public int getStatusMessage()
      Converts the current status code to a string resource identifier that explains status.
      Returns:
      the string resource identifier.
    • toStatusMessage

      public static int toStatusMessage(int code)
      Converts the given status code to a string resource identifier that explains the status.
      Parameters:
      code - the status code.
      Returns:
      the matching string resource identifier.
    • getReasonMessage

      public int getReasonMessage()
      Converts the current status code the string resourced identifier that explains the status.
      Returns:
      the string resource identifier.
    • toReasonMessage

      public static int toReasonMessage(int reason)
      Converts the given reason code to a string resource identifier that explains the reason.
      Parameters:
      reason - the reason code.
      Returns:
      the matching string resource identifier.
    • getTime

      public long getTime()
      Gets the date and time when the status changed as number of milliseconds since January 1, 1970, 00:00:00 GMT.
      Returns:
      epoch time as milliseconds.
    • getCode

      public int getCode()
      Gets the status code of the download request.
      Returns:
      0 if the download request is not found, otherwise the download status code.
    • getReason

      public int getReason()
      Gets the reason code of the download request, if any.
      Returns:
      0 if the download request is not paused or failed, otherwise the reason code.
    • getBytesDownloaded

      public long getBytesDownloaded()
      Gets the total number of bytes downloaded so far.
      Returns:
      0 if the download request is not found, otherwise the total number of bytes downloaded so far.
    • getActualSize

      public long getActualSize()
      Gets the actual total size of the file as number of bytes.
      Returns:
      0 if the download request is not found, otherwise the actual total size of the file as number of bytes.
    • getEstimatedSize

      public long getEstimatedSize()
      Gets the estimated total size of the file as number of bytes.
      Returns:
      0 if the download request is not found, otherwise the estimated total size of the file as number of bytes.
    • getMaxSize

      public long getMaxSize()
      Gets the maximum size of the file as number of bytes by comparing actualSize and estimatedSize
      Returns:
      0 if the download request is not found, otherwise the maximum size of the file as number of bytes.
    • getProgress

      public double getProgress()
      Calculates the download progress as percentage value.
      Returns:
      Double.NaN if the actualSize is zero, otherwise a value between 0 and 100.
    • describeContents

      public int describeContents()
      Specified by:
      describeContents in interface android.os.Parcelable
    • writeToParcel

      public void writeToParcel(android.os.Parcel dest, int flags)
      Specified by:
      writeToParcel in interface android.os.Parcelable