MediaDrm API: Add two exceptions to handle error path scenarios

bug: 8725707
Change-Id: Ia00c495ac591cc2993f4d11ad3480b59833d009e
diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp
index d1b499e..ec88949 100644
--- a/media/jni/android_media_MediaDrm.cpp
+++ b/media/jni/android_media_MediaDrm.cpp
@@ -219,12 +219,6 @@
     case ERROR_DRM_TAMPER_DETECTED:
         drmMessage = "Invalid state";
         break;
-    case ERROR_DRM_NOT_PROVISIONED:
-        drmMessage = "Not provisioned";
-        break;
-    case ERROR_DRM_DEVICE_REVOKED:
-        drmMessage = "Device revoked";
-        break;
     default:
         break;
     }
@@ -238,6 +232,12 @@
     if (err == BAD_VALUE) {
         jniThrowException(env, "java/lang/IllegalArgumentException", msg);
         return true;
+    } else if (err == ERROR_DRM_NOT_PROVISIONED) {
+        jniThrowException(env, "android/media/NotProvisionedException", msg);
+        return true;
+    } else if (err == ERROR_DRM_DEVICE_REVOKED) {
+        jniThrowException(env, "android/media/DeniedByServerException", msg);
+        return true;
     } else if (err != OK) {
         String8 errbuf;
         if (drmMessage != NULL) {
@@ -248,6 +248,7 @@
                 msg = errbuf.string();
             }
         }
+        ALOGE("Illegal state exception: %s", msg);
         jniThrowException(env, "java/lang/IllegalStateException", msg);
         return true;
     }
@@ -574,7 +575,7 @@
     if (err != OK) {
         jniThrowException(
                 env,
-                "android/media/MediaDrmException",
+                "android/media/UnsupportedSchemeException",
                 "Failed to instantiate drm object.");
         return;
     }