Package com.castlabs.android.drm
Class DrmTodayException
java.lang.Object
java.lang.Throwable
java.lang.Exception
com.castlabs.android.drm.DrmTodayException
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
DrmException
Use this Exception class to report any errors from DrmToday services. The exception
is initialized with an error code which is one of:
ERROR_NOT_AUTHORIZED
,
ERROR_INVALID_REQUEST
, ERROR_KEY_NOT_FOUND
, ERROR_PROVISIONING_FAILED
,
ERROR_TOO_MANY_CONCURRENT_SESSIONS
, or ERROR_UNKNOWN
.
The exception can also contain a custom message and code from the DrmToday service.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic @interface
Annotation interface for error codes used in DrmTodayException. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
A device time error occurredstatic final int
Error indicating an invalid request that was rejected by the serverstatic final int
Error indicating that an IO error occurred during the license request.static final int
Error indicating that the requested content was not foundstatic final int
Error indicating an unauthorized requeststatic final int
Error indicating that the provisioning request failed.static final int
Error raised when DRMtoday refuses license renewal due to too many open sessionsstatic final int
Error indicating a general errorstatic final int
A device's Widevine certificate was revoked -
Constructor Summary
ConstructorsConstructorDescriptionDrmTodayException
(String message, int errorCode) Create a new instance with the given message and error errorCodeDrmTodayException
(String message, int errorCode, String customMessage) Create a new instance with the given message and error errorCodeDrmTodayException
(String message, int errorCode, String customMessage, String customCode, Throwable cause) Create a new instanceDrmTodayException
(String message, int errorCode, Throwable cause) Create a new instance with the given message and error errorCode -
Method Summary
Modifier and TypeMethodDescriptionstatic DrmTodayException
create
(DrmUtils.HttpExecutorException httpException) Looks at the response code, the response body, and the headers and returns a DrmToday Exception that maps to the given error.Returns the custom DrmToday response code string, if available.Returns the custom CRT error message, if available.int
Returns the error code of this exception.toString()
Methods inherited from class java.lang.Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace
-
Field Details
-
ERROR_UNKNOWN
public static final int ERROR_UNKNOWNError indicating a general error- See Also:
-
ERROR_INVALID_REQUEST
public static final int ERROR_INVALID_REQUESTError indicating an invalid request that was rejected by the server- See Also:
-
ERROR_NOT_AUTHORIZED
public static final int ERROR_NOT_AUTHORIZEDError indicating an unauthorized request- See Also:
-
ERROR_KEY_NOT_FOUND
public static final int ERROR_KEY_NOT_FOUNDError indicating that the requested content was not found- See Also:
-
ERROR_IO_ERROR
public static final int ERROR_IO_ERRORError indicating that an IO error occurred during the license request. This cause of this exception will be anIOException
- See Also:
-
ERROR_PROVISIONING_FAILED
public static final int ERROR_PROVISIONING_FAILEDError indicating that the provisioning request failed. Error of this type can also have anIOException
as cause.- See Also:
-
ERROR_TOO_MANY_CONCURRENT_SESSIONS
public static final int ERROR_TOO_MANY_CONCURRENT_SESSIONSError raised when DRMtoday refuses license renewal due to too many open sessions- See Also:
-
ERROR_DEVICE_TIME
public static final int ERROR_DEVICE_TIMEA device time error occurred- See Also:
-
ERROR_WIDEVINE_DEV_CERTIFICATE_REVOKED
public static final int ERROR_WIDEVINE_DEV_CERTIFICATE_REVOKEDA device's Widevine certificate was revoked- See Also:
-
-
Constructor Details
-
DrmTodayException
Create a new instance with the given message and error errorCode- Parameters:
message
- the error messageerrorCode
- the error errorCode
-
DrmTodayException
Create a new instance with the given message and error errorCode- Parameters:
message
- the error messageerrorCode
- the error errorCodecustomMessage
- the custom message
-
DrmTodayException
Create a new instance with the given message and error errorCode- Parameters:
message
- the error messageerrorCode
- the error errorCodecause
- the cause
-
DrmTodayException
public DrmTodayException(@NonNull String message, int errorCode, @Nullable String customMessage, @Nullable String customCode, Throwable cause) Create a new instance- Parameters:
message
- the error messageerrorCode
- the error errorCodecustomMessage
- the custom messagecustomCode
- the custom codecause
- the cause
-
-
Method Details
-
getErrorCode
public int getErrorCode()Returns the error code of this exception.- Returns:
- The error code. One of
ERROR_NOT_AUTHORIZED
,ERROR_INVALID_REQUEST
,ERROR_UNKNOWN
,ERROR_TOO_MANY_CONCURRENT_SESSIONS
, orERROR_KEY_NOT_FOUND
-
getCustomMessage
Returns the custom CRT error message, if available.- Returns:
- The custom CRT error message or null
-
getCustomCode
Returns the custom DrmToday response code string, if available.- Returns:
- DrmToday response code string, or null if not available
-
toString
-
create
@NonNull public static DrmTodayException create(@NonNull DrmUtils.HttpExecutorException httpException) Looks at the response code, the response body, and the headers and returns a DrmToday Exception that maps to the given error.- Parameters:
httpException
- The HTTP exception- Returns:
- The DrmTodayException
-