aboutsummaryrefslogtreecommitdiffstats
path: root/src/androidextras/jni/qandroidjniobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/androidextras/jni/qandroidjniobject.cpp')
-rw-r--r--src/androidextras/jni/qandroidjniobject.cpp306
1 files changed, 267 insertions, 39 deletions
diff --git a/src/androidextras/jni/qandroidjniobject.cpp b/src/androidextras/jni/qandroidjniobject.cpp
index ff1d563..587d508 100644
--- a/src/androidextras/jni/qandroidjniobject.cpp
+++ b/src/androidextras/jni/qandroidjniobject.cpp
@@ -148,14 +148,19 @@ QT_BEGIN_NAMESPACE
\li Signature
\row
\li jobject
- \li {1, 3} L\e<fully-qualified-name>;
+ \li Ljava/lang/Object;
\row
\li jclass
+ \li Ljava/lang/Class;
\row
\li jstring
+ \li Ljava/lang/String;
+ \row
+ \li jthrowable
+ \li Ljava/lang/Throwable;
\row
\li jobjectArray
- \li [L\e<fully-qualified-name>;
+ \li [Ljava/lang/Object;
\row
\li jarray
\li [\e<type>
@@ -225,6 +230,9 @@ QT_BEGIN_NAMESPACE
\row
\li void
\li V
+ \row
+ \li \e{Custom type}
+ \li L\e<fully-qualified-name>;
\endtable
For more information about JNI see: \l http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html
@@ -909,12 +917,30 @@ jdouble QAndroidJniObject::callMethod<jdouble>(const char *methodName) const
}
template <>
+QAndroidJniObject QAndroidJniObject::callObjectMethod<jobject>(const char *methodName) const
+{
+ return d->callObjectMethod(methodName, "()Ljava/lang/Object;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::callObjectMethod<jclass>(const char *methodName) const
+{
+ return d->callObjectMethod(methodName, "()Ljava/lang/Class;");
+}
+
+template <>
QAndroidJniObject QAndroidJniObject::callObjectMethod<jstring>(const char *methodName) const
{
return d->callObjectMethod(methodName, "()Ljava/lang/String;");
}
template <>
+QAndroidJniObject QAndroidJniObject::callObjectMethod<jobjectArray>(const char *methodName) const
+{
+ return d->callObjectMethod(methodName, "()[Ljava/lang/Object;");
+}
+
+template <>
QAndroidJniObject QAndroidJniObject::callObjectMethod<jbooleanArray>(const char *methodName) const
{
return d->callObjectMethod(methodName, "()[Z");
@@ -963,6 +989,12 @@ QAndroidJniObject QAndroidJniObject::callObjectMethod<jdoubleArray>(const char *
}
template <>
+QAndroidJniObject QAndroidJniObject::callObjectMethod<jthrowable>(const char *methodName) const
+{
+ return d->callObjectMethod(methodName, "()Ljava/lang/Throwable;");
+}
+
+template <>
void QAndroidJniObject::callStaticMethod<void>(const char *className,
const char *methodName,
const char *sig,
@@ -1331,6 +1363,34 @@ jdouble QAndroidJniObject::callStaticMethod<jdouble>(jclass clazz, const char *m
}
template <>
+QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jobject>(const char *className,
+ const char *methodName)
+{
+ return callStaticObjectMethod(className, methodName, "()Ljava/lang/Object;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jobject>(jclass clazz,
+ const char *methodName)
+{
+ return callStaticObjectMethod(clazz, methodName, "()Ljava/lang/Object;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jclass>(const char *className,
+ const char *methodName)
+{
+ return callStaticObjectMethod(className, methodName, "()Ljava/lang/Class;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jclass>(jclass clazz,
+ const char *methodName)
+{
+ return callStaticObjectMethod(clazz, methodName, "()Ljava/lang/Class;");
+}
+
+template <>
QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jstring>(const char *className,
const char *methodName)
{
@@ -1345,6 +1405,20 @@ QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jstring>(jclass claz
}
template <>
+QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jobjectArray>(const char *className,
+ const char *methodName)
+{
+ return callStaticObjectMethod(className, methodName, "()[Ljava/lang/Object;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jobjectArray>(jclass clazz,
+ const char *methodName)
+{
+ return callStaticObjectMethod(clazz, methodName, "()[Ljava/lang/Object;");
+}
+
+template <>
QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jbooleanArray>(const char *className,
const char *methodName)
{
@@ -1457,6 +1531,20 @@ QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jdoubleArray>(jclass
}
template <>
+QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jthrowable>(const char *className,
+ const char *methodName)
+{
+ return callStaticObjectMethod(className, methodName, "()Ljava/lang/Throwable;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::callStaticObjectMethod<jthrowable>(jclass clazz,
+ const char *methodName)
+{
+ return callStaticObjectMethod(clazz, methodName, "()Ljava/lang/Throwable;");
+}
+
+template <>
jboolean QAndroidJniObject::getField<jboolean>(const char *fieldName) const
{
return d->getField<jboolean>(fieldName);
@@ -1516,6 +1604,18 @@ QAndroidJniObject QAndroidJniObject::getObjectField<jobject>(const char *fieldNa
}
template <>
+QAndroidJniObject QAndroidJniObject::getObjectField<jobject>(const char *fieldName) const
+{
+ return d->getObjectField(fieldName, "Ljava/lang/Object;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::getObjectField<jclass>(const char *fieldName) const
+{
+ return d->getObjectField(fieldName, "Ljava/lang/Class;");
+}
+
+template <>
QAndroidJniObject QAndroidJniObject::getObjectField<jbooleanArray>(const char *fieldName) const
{
return d->getObjectField(fieldName, "[Z");
@@ -1570,6 +1670,12 @@ QAndroidJniObject QAndroidJniObject::getObjectField<jstring>(const char *fieldNa
}
template <>
+QAndroidJniObject QAndroidJniObject::getObjectField<jthrowable>(const char *fieldName) const
+{
+ return d->getObjectField(fieldName, "Ljava/lang/Throwable;");
+}
+
+template <>
QAndroidJniObject QAndroidJniObject::getObjectField<jobjectArray>(const char *fieldName,
const char *sig) const
{
@@ -1625,6 +1731,42 @@ void QAndroidJniObject::setField<jdouble>(const char *fieldName, jdouble value)
}
template <>
+void QAndroidJniObject::setField<jobject>(const char *fieldName,
+ const char *sig,
+ jobject value)
+{
+ d->setField<jobject>(fieldName, sig, value);
+}
+
+template <>
+void QAndroidJniObject::setField<jobjectArray>(const char *fieldName,
+ const char *sig,
+ jobjectArray value)
+{
+ d->setField<jobjectArray>(fieldName, sig, value);
+}
+
+template <>
+void QAndroidJniObject::setField<jobject>(const char *fieldName,
+ jobject value)
+{
+ setField<jobject>(fieldName, "Ljava/lang/Object;", value);
+}
+
+template <>
+void QAndroidJniObject::setField<jclass>(const char *fieldName,
+ jclass value)
+{
+ setField<jobject>(fieldName, "Ljava/lang/Class;", value);
+}
+
+template <>
+void QAndroidJniObject::setField<jstring>(const char *fieldName, jstring value)
+{
+ d->setField<jstring>(fieldName, value);
+}
+
+template <>
void QAndroidJniObject::setField<jbooleanArray>(const char *fieldName, jbooleanArray value)
{
d->setField<jbooleanArray>(fieldName, value);
@@ -1673,25 +1815,9 @@ void QAndroidJniObject::setField<jdoubleArray>(const char *fieldName, jdoubleArr
}
template <>
-void QAndroidJniObject::setField<jstring>(const char *fieldName, jstring value)
+void QAndroidJniObject::setField<jthrowable>(const char *fieldName, jthrowable value)
{
- d->setField<jstring>(fieldName, value);
-}
-
-template <>
-void QAndroidJniObject::setField<jobject>(const char *fieldName,
- const char *sig,
- jobject value)
-{
- d->setField<jobject>(fieldName, sig, value);
-}
-
-template <>
-void QAndroidJniObject::setField<jobjectArray>(const char *fieldName,
- const char *sig,
- jobjectArray value)
-{
- d->setField<jobjectArray>(fieldName, sig, value);
+ d->setField<jobject>(fieldName, "Ljava/lang/Throwable;", value);
}
template <>
@@ -1790,6 +1916,14 @@ jdouble QAndroidJniObject::getStaticField<jdouble>(const char *className, const
return QJNIObjectPrivate::getStaticField<jdouble>(className, fieldName);
}
+template <>
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(jclass clazz,
+ const char *fieldName,
+ const char *sig)
+{
+ return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, sig);
+}
+
QAndroidJniObject QAndroidJniObject::getStaticObjectField(jclass clazz,
const char *fieldName,
const char *sig)
@@ -1797,23 +1931,66 @@ QAndroidJniObject QAndroidJniObject::getStaticObjectField(jclass clazz,
return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, sig);
}
+QAndroidJniObject QAndroidJniObject::getStaticObjectField(const char *className,
+ const char *fieldName,
+ const char *sig)
+{
+ return QJNIObjectPrivate::getStaticObjectField(className, fieldName, sig);
+}
+
template <>
-QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(jclass clazz,
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(const char *className,
const char *fieldName,
const char *sig)
{
+ return QJNIObjectPrivate::getStaticObjectField(className, fieldName, sig);
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(jclass clazz,
+ const char *fieldName,
+ const char *sig)
+{
return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, sig);
}
template <>
-QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(const char *className,
- const char *fieldName,
- const char *sig)
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(const char *className,
+ const char *fieldName,
+ const char *sig)
{
return QJNIObjectPrivate::getStaticObjectField(className, fieldName, sig);
}
template <>
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(jclass clazz,
+ const char *fieldName)
+{
+ return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, "Ljava/lang/Object;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobject>(const char *className,
+ const char *fieldName)
+{
+ return QJNIObjectPrivate::getStaticObjectField(className, fieldName, "Ljava/lang/Object;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jclass>(jclass clazz,
+ const char *fieldName)
+{
+ return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, "Ljava/lang/Class;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jclass>(const char *className,
+ const char *fieldName)
+{
+ return QJNIObjectPrivate::getStaticObjectField(className, fieldName, "Ljava/lang/Class;");
+}
+
+template <>
QAndroidJniObject QAndroidJniObject::getStaticObjectField<jstring>(jclass clazz,
const char *fieldName)
{
@@ -1828,6 +2005,20 @@ QAndroidJniObject QAndroidJniObject::getStaticObjectField<jstring>(const char *c
}
template <>
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(jclass clazz,
+ const char *fieldName)
+{
+ return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, "[Ljava/lang/Object;");
+}
+
+template <>
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(const char *className,
+ const char *fieldName)
+{
+ return QJNIObjectPrivate::getStaticObjectField(className, fieldName, "[Ljava/lang/Object;");
+}
+
+template <>
QAndroidJniObject QAndroidJniObject::getStaticObjectField<jbooleanArray>(jclass clazz,
const char *fieldName)
{
@@ -1939,27 +2130,18 @@ QAndroidJniObject QAndroidJniObject::getStaticObjectField<jdoubleArray>(const ch
return QJNIObjectPrivate::getStaticObjectField(className, fieldName, "[D");
}
-QAndroidJniObject QAndroidJniObject::getStaticObjectField(const char *className,
- const char *fieldName,
- const char *sig)
-{
- return QJNIObjectPrivate::getStaticObjectField(className, fieldName, sig);
-}
-
template <>
-QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(jclass clazz,
- const char *fieldName,
- const char *sig)
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jthrowable>(jclass clazz,
+ const char *fieldName)
{
- return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, sig);
+ return QJNIObjectPrivate::getStaticObjectField(clazz, fieldName, "Ljava/lang/Throwable;");
}
template <>
-QAndroidJniObject QAndroidJniObject::getStaticObjectField<jobjectArray>(const char *className,
- const char *fieldName,
- const char *sig)
+QAndroidJniObject QAndroidJniObject::getStaticObjectField<jthrowable>(const char *className,
+ const char *fieldName)
{
- return QJNIObjectPrivate::getStaticObjectField(className, fieldName, sig);
+ return QJNIObjectPrivate::getStaticObjectField(className, fieldName, "Ljava/lang/Throwable;");
}
template <>
@@ -2091,6 +2273,20 @@ void QAndroidJniObject::setStaticField<jobject>(const char *className,
}
template <>
+void QAndroidJniObject::setStaticField<jclass>(const char *className,
+ const char *fieldName,
+ jclass value)
+{
+ QJNIObjectPrivate::setStaticField<jobject>(className, fieldName, "Ljava/lang/Class;", value);
+}
+
+template <>
+void QAndroidJniObject::setStaticField<jclass>(jclass clazz, const char *fieldName, jclass value)
+{
+ QJNIObjectPrivate::setStaticField<jobject>(clazz, fieldName, "Ljava/lang/Class;", value);
+}
+
+template <>
void QAndroidJniObject::setStaticField<jstring>(const char *className,
const char *fieldName,
jstring value)
@@ -2105,6 +2301,22 @@ void QAndroidJniObject::setStaticField<jstring>(jclass clazz, const char *fieldN
}
template <>
+void QAndroidJniObject::setStaticField<jobjectArray>(const char *className,
+ const char *fieldName,
+ jobjectArray value)
+{
+ QJNIObjectPrivate::setStaticField<jobject>(className, fieldName, "[Ljava/lang/Object;", value);
+}
+
+template <>
+void QAndroidJniObject::setStaticField<jobjectArray>(jclass clazz,
+ const char *fieldName,
+ jobjectArray value)
+{
+ QJNIObjectPrivate::setStaticField<jobject>(clazz, fieldName, "[Ljava/lang/Object;", value);
+}
+
+template <>
void QAndroidJniObject::setStaticField<jbooleanArray>(const char *className,
const char *fieldName,
jbooleanArray value)
@@ -2232,6 +2444,22 @@ void QAndroidJniObject::setStaticField<jdoubleArray>(jclass clazz,
QJNIObjectPrivate::setStaticField<jobject>(clazz, fieldName, "[D", value);
}
+template <>
+void QAndroidJniObject::setStaticField<jthrowable>(const char *className,
+ const char *fieldName,
+ jthrowable value)
+{
+ QJNIObjectPrivate::setStaticField<jobject>(className, fieldName, "Ljava/lang/Throwable;", value);
+}
+
+template <>
+void QAndroidJniObject::setStaticField<jthrowable>(jclass clazz,
+ const char *fieldName,
+ jthrowable value)
+{
+ QJNIObjectPrivate::setStaticField<jobject>(clazz, fieldName, "Ljava/lang/Throwable;", value);
+}
+
QAndroidJniObject QAndroidJniObject::fromString(const QString &string)
{
return QJNIObjectPrivate::fromString(string);