Class DownloadStatus

  • All Implemented Interfaces:
    android.os.Parcelable

    public class DownloadStatus
    extends java.lang.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  DownloadStatus.ReasonCode
      The list of possible reasons code that will be set when DownloadStatus.StatusCode is either STATUS_RETRY or STATUS_FAILED.
      static interface  DownloadStatus.StatusCode
      The list of possible status values for DownloadManager.Request.
      • Nested classes/interfaces inherited from interface android.os.Parcelable

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

      Fields 
      Modifier and Type Field Description
      static android.os.Parcelable.Creator<DownloadStatus> CREATOR
      Provides a creator field as required by the Parcelable contract.
      static int ERROR_CANNOT_RESUME
      The download has failed because some possibly transient error occurred but prevents resuming the download.
      static int ERROR_DEVICE_NOT_FOUND
      The download has failed because no external storage device was found.
      static int ERROR_FILE_ALREADY_EXISTS
      The download has failed because the requested destination file already exists.
      static int ERROR_FILE_ERROR
      The download has failed because of storage issue which doesn't fit under any other error code.
      static int ERROR_HTTP_DATA_ERROR
      The download has failed because an error occurred while receiving or processing data at the HTTP level.
      static int ERROR_INSUFFICIENT_SPACE
      The download has failed because there was insufficient storage space.
      static int ERROR_NONE
      There are no errors in the download request.
      static int ERROR_TOO_MANY_REDIRECTS
      The download has failed because there were too many redirects.
      static int ERROR_UNHANDLED_HTTP_CODE
      The download has failed because an HTTP code was received that cannot be handled.
      static int ERROR_UNKNOWN
      The download has failed with an error that doesn't fit under any other error code.
      static 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.
      static int PAUSED_UNKNOWN
      The download is paused for some other reason.
      static int PAUSED_WAITING_FOR_NETWORK
      The download is waiting for network connectivity to proceed.
      static int PAUSED_WAITING_TO_RETRY
      The download is paused because some network error occurred and the download manager is waiting before retrying the request.
      static int STATUS_CANCELLING
      Status of DownloadManager.Request that is being removed before the download is complete.
      static int STATUS_COMPLETE
      Status of DownloadManager.Request that has successfully downloaded.
      static int STATUS_DELETING
      Status of DownloadManager.Request that is being removed after the download is complete.
      static int STATUS_DOWNLOADING
      Status of DownloadManager.Request that is currently being downloaded.
      static int STATUS_FAILED
      Status of DownloadManager.Request that has failed (and will not be retried).
      static int STATUS_NOT_QUEUED
      Status of DownloadManager.Request that has been not queued for download.
      static int STATUS_PAUSED
      Status of DownloadManager.Request that has been paused explicitly.
      static int STATUS_PENDING
      Status of DownloadManager.Request is waiting to start.
      static int STATUS_QUEUEING
      Status of DownloadManager.Request that is being queued with the DownloadManager service.
      static int STATUS_RETRY
      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
      DownloadStatus()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static DownloadStatus createForInvalidDownloadsFile()
      Creates a new DownloadStatus instance with error specifying that the DownloadsFile is invalid.
      int describeContents()  
      boolean equals​(java.lang.Object o)  
      long getActualSize()
      Gets the actual total size of the file as number of bytes.
      long getBytesDownloaded()
      Gets the total number of bytes downloaded so far.
      int getCode()
      Gets the status code of the download request.
      long getEstimatedSize()
      Gets the estimated total size of the file as number of bytes.
      long getMaxSize()
      Gets the maximum size of the file as number of bytes by comparing actualSize and estimatedSize
      double getProgress()
      Calculates the download progress as percentage value.
      int getReason()
      Gets the reason code of the download request, if any.
      int getReasonMessage()
      Converts the current status code the string resourced identifier that explains the status.
      int getStatusMessage()
      Converts the current status code to a string resource identifier that explains status.
      long getTime()
      Gets the date and time when the status changed as number of milliseconds since January 1, 1970, 00:00:00 GMT.
      int hashCode()  
      boolean isMarkedForDeletion()
      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.
      java.lang.String toString()  
      void writeToParcel​(android.os.Parcel dest, int flags)  
      • Methods inherited from class java.lang.Object

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

      • STATUS_PAUSED

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

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

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

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

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

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

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

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

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

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

        public static final int ERROR_NONE
        There are no errors in the download request.
        See Also:
        Constant Field Values
      • 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:
        Constant Field Values
      • PAUSED_WAITING_FOR_NETWORK

        public static final int PAUSED_WAITING_FOR_NETWORK
        The download is waiting for network connectivity to proceed.
        See Also:
        Constant Field Values
      • 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:
        Constant Field Values
      • PAUSED_UNKNOWN

        public static final int PAUSED_UNKNOWN
        The download is paused for some other reason.
        See Also:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • ERROR_TOO_MANY_REDIRECTS

        public static final int ERROR_TOO_MANY_REDIRECTS
        The download has failed because there were too many redirects.
        See Also:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • 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:
        Constant Field Values
      • CREATOR

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

      • DownloadStatus

        public DownloadStatus()
    • Method Detail

      • toString

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

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.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