Merge "Add a queue of pending finished input events." into jb-mr2-dev
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index c41c35e..220b997 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -2383,7 +2383,7 @@
* parameters. The latter approach is preferable, especially when you can reuse the
* URI:
* <pre>
- * Uri rawContactUri = RawContacts.URI.buildUpon()
+ * Uri rawContactUri = RawContacts.CONTENT_URI.buildUpon()
* .appendQueryParameter(RawContacts.ACCOUNT_NAME, accountName)
* .appendQueryParameter(RawContacts.ACCOUNT_TYPE, accountType)
* .build();
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index b63ccab..bbf5ae9 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -1639,7 +1639,7 @@
if (mAttachInfo.mHardwareRenderer != null &&
mAttachInfo.mHardwareRenderer.isEnabled()) {
- if (hwInitialized || windowShouldResize ||
+ if (hwInitialized ||
mWidth != mAttachInfo.mHardwareRenderer.getWidth() ||
mHeight != mAttachInfo.mHardwareRenderer.getHeight()) {
mAttachInfo.mHardwareRenderer.setup(mWidth, mHeight);
diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp
index ec88949..7799ca4 100644
--- a/media/jni/android_media_MediaDrm.cpp
+++ b/media/jni/android_media_MediaDrm.cpp
@@ -87,12 +87,18 @@
};
struct EventTypes {
- int kEventProvisionRequired;
- int kEventKeyRequired;
- int kEventKeyExpired;
- int kEventVendorDefined;
+ jint kEventProvisionRequired;
+ jint kEventKeyRequired;
+ jint kEventKeyExpired;
+ jint kEventVendorDefined;
} gEventTypes;
+struct KeyTypes {
+ jint kKeyTypeStreaming;
+ jint kKeyTypeOffline;
+ jint kKeyTypeRelease;
+} gKeyTypes;
+
struct fields_t {
jfieldID context;
jmethodID post_event;
@@ -128,7 +134,8 @@
jclass clazz = env->GetObjectClass(thiz);
if (clazz == NULL) {
ALOGE("Can't find android/media/MediaDrm");
- jniThrowException(env, "java/lang/Exception", NULL);
+ jniThrowException(env, "java/lang/Exception",
+ "Can't find android/media/MediaDrm");
return;
}
mClass = (jclass)env->NewGlobalRef(clazz);
@@ -408,13 +415,15 @@
if (entry) {
jobject obj = env->CallObjectMethod(entry, gFields.entry.getKey);
if (!env->IsInstanceOf(obj, clazz)) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "HashMap key is not a String");
}
jstring jkey = static_cast<jstring>(obj);
obj = env->CallObjectMethod(entry, gFields.entry.getValue);
if (!env->IsInstanceOf(obj, clazz)) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "HashMap value is not a String");
}
jstring jvalue = static_cast<jstring>(obj);
@@ -486,12 +495,12 @@
static bool CheckSession(JNIEnv *env, const sp<IDrm> &drm, jbyteArray const &jsessionId)
{
if (drm == NULL) {
- jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ jniThrowException(env, "java/lang/IllegalStateException", "MediaDrm obj is null");
return false;
}
if (jsessionId == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException", "sessionId is null");
return false;
}
return true;
@@ -521,6 +530,13 @@
GET_STATIC_FIELD_ID(field, clazz, "EVENT_VENDOR_DEFINED", "I");
gEventTypes.kEventVendorDefined = env->GetStaticIntField(clazz, field);
+ GET_STATIC_FIELD_ID(field, clazz, "KEY_TYPE_STREAMING", "I");
+ gKeyTypes.kKeyTypeStreaming = env->GetStaticIntField(clazz, field);
+ GET_STATIC_FIELD_ID(field, clazz, "KEY_TYPE_OFFLINE", "I");
+ gKeyTypes.kKeyTypeOffline = env->GetStaticIntField(clazz, field);
+ GET_STATIC_FIELD_ID(field, clazz, "KEY_TYPE_RELEASE", "I");
+ gKeyTypes.kKeyTypeRelease = env->GetStaticIntField(clazz, field);
+
FIND_CLASS(clazz, "android/media/MediaDrm$KeyRequest");
GET_FIELD_ID(gFields.keyRequest.data, clazz, "mData", "[B");
GET_FIELD_ID(gFields.keyRequest.defaultUrl, clazz, "mDefaultUrl", "Ljava/lang/String;");
@@ -557,14 +573,15 @@
jobject weak_this, jbyteArray uuidObj) {
if (uuidObj == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException", "uuid is null");
return;
}
Vector<uint8_t> uuid = JByteArrayToVector(env, uuidObj);
if (uuid.size() != 16) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "invalid UUID size, expected 16 bytes");
return;
}
@@ -604,7 +621,7 @@
jniThrowException(
env,
"java/lang/IllegalArgumentException",
- NULL);
+ "invalid UUID size, expected 16 bytes");
return false;
}
@@ -616,7 +633,8 @@
sp<IDrm> drm = GetDrm(env, thiz);
if (drm == NULL) {
- jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ jniThrowException(env, "java/lang/IllegalStateException",
+ "MediaDrm obj is null");
return NULL;
}
@@ -666,7 +684,18 @@
mimeType = JStringToString8(env, jmimeType);
}
- DrmPlugin::KeyType keyType = (DrmPlugin::KeyType)jkeyType;
+ DrmPlugin::KeyType keyType;
+ if (jkeyType == gKeyTypes.kKeyTypeStreaming) {
+ keyType = DrmPlugin::kKeyType_Streaming;
+ } else if (jkeyType == gKeyTypes.kKeyTypeOffline) {
+ keyType = DrmPlugin::kKeyType_Offline;
+ } else if (jkeyType == gKeyTypes.kKeyTypeRelease) {
+ keyType = DrmPlugin::kKeyType_Release;
+ } else {
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "invalid keyType");
+ return NULL;
+ }
KeyedVector<String8, String8> optParams;
if (joptParams != NULL) {
@@ -712,7 +741,8 @@
Vector<uint8_t> sessionId(JByteArrayToVector(env, jsessionId));
if (jresponse == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "key response is null");
return NULL;
}
Vector<uint8_t> response(JByteArrayToVector(env, jresponse));
@@ -729,7 +759,8 @@
sp<IDrm> drm = GetDrm(env, thiz);
if (jkeysetId == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "keySetId is null");
return;
}
@@ -788,7 +819,8 @@
sp<IDrm> drm = GetDrm(env, thiz);
if (drm == NULL) {
- jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ jniThrowException(env, "java/lang/IllegalStateException",
+ "MediaDrm obj is null");
return NULL;
}
@@ -824,12 +856,14 @@
sp<IDrm> drm = GetDrm(env, thiz);
if (drm == NULL) {
- jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ jniThrowException(env, "java/lang/IllegalStateException",
+ "MediaDrm obj is null");
return;
}
if (jresponse == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "provision response is null");
return;
}
@@ -845,7 +879,8 @@
sp<IDrm> drm = GetDrm(env, thiz);
if (drm == NULL) {
- jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ jniThrowException(env, "java/lang/IllegalStateException",
+ "MediaDrm obj is null");
return NULL;
}
@@ -865,7 +900,8 @@
sp<IDrm> drm = GetDrm(env, thiz);
if (drm == NULL) {
- jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ jniThrowException(env, "java/lang/IllegalStateException",
+ "MediaDrm obj is null");
return;
}
@@ -881,12 +917,14 @@
sp<IDrm> drm = GetDrm(env, thiz);
if (drm == NULL) {
- jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ jniThrowException(env, "java/lang/IllegalStateException",
+ "MediaDrm obj is null");
return NULL;
}
if (jname == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "property name String is null");
return NULL;
}
@@ -907,12 +945,14 @@
sp<IDrm> drm = GetDrm(env, thiz);
if (drm == NULL) {
- jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ jniThrowException(env, "java/lang/IllegalStateException",
+ "MediaDrm obj is null");
return NULL;
}
if (jname == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "property name String is null");
return NULL;
}
@@ -933,12 +973,20 @@
sp<IDrm> drm = GetDrm(env, thiz);
if (drm == NULL) {
- jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ jniThrowException(env, "java/lang/IllegalStateException",
+ "MediaDrm obj is null");
return;
}
- if (jname == NULL || jvalue == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ if (jname == NULL) {
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "property name String is null");
+ return;
+ }
+
+ if (jvalue == NULL) {
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "property value String is null");
return;
}
@@ -955,12 +1003,20 @@
sp<IDrm> drm = GetDrm(env, thiz);
if (drm == NULL) {
- jniThrowException(env, "java/lang/IllegalStateException", NULL);
+ jniThrowException(env, "java/lang/IllegalStateException",
+ "MediaDrm obj is null");
return;
}
- if (jname == NULL || jvalue == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ if (jname == NULL) {
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "property name String is null");
+ return;
+ }
+
+ if (jvalue == NULL) {
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "property value byte array is null");
return;
}
@@ -983,7 +1039,8 @@
}
if (jalgorithm == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "algorithm String is null");
return;
}
@@ -1006,7 +1063,8 @@
}
if (jalgorithm == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "algorithm String is null");
return;
}
@@ -1030,7 +1088,8 @@
}
if (jkeyId == NULL || jinput == NULL || jiv == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "required argument is null");
return NULL;
}
@@ -1058,7 +1117,8 @@
}
if (jkeyId == NULL || jinput == NULL || jiv == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "required argument is null");
return NULL;
}
@@ -1085,7 +1145,8 @@
}
if (jkeyId == NULL || jmessage == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "required argument is null");
return NULL;
}
@@ -1112,7 +1173,8 @@
}
if (jkeyId == NULL || jmessage == NULL || jsignature == NULL) {
- jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
+ jniThrowException(env, "java/lang/IllegalArgumentException",
+ "required argument is null");
return false;
}