diff options
author | Christian Strømme <christian.stromme@digia.com> | 2014-09-29 16:18:49 +0200 |
---|---|---|
committer | Christian Stromme <christian.stromme@digia.com> | 2014-10-17 13:35:35 +0200 |
commit | b366a99eb14f166ebdcfcb6d328b4d7552227b71 (patch) | |
tree | e7ba9d7cbc6f7f09519e352f79218d4a9cd6bef1 /src/plugins/android/src/wrappers/jni/androidsurfacetexture.cpp | |
parent | e128207f753da7f98cb4906775ad517cbbb0c4fb (diff) |
Android: Use the new findClass() method.
Avoid local caching.
Change-Id: I1e30896da664c5a45c38c09412c16cb8ff70c5c7
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Diffstat (limited to 'src/plugins/android/src/wrappers/jni/androidsurfacetexture.cpp')
-rw-r--r-- | src/plugins/android/src/wrappers/jni/androidsurfacetexture.cpp | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/src/plugins/android/src/wrappers/jni/androidsurfacetexture.cpp b/src/plugins/android/src/wrappers/jni/androidsurfacetexture.cpp index 261a644d5..7cdab0097 100644 --- a/src/plugins/android/src/wrappers/jni/androidsurfacetexture.cpp +++ b/src/plugins/android/src/wrappers/jni/androidsurfacetexture.cpp @@ -37,7 +37,7 @@ QT_BEGIN_NAMESPACE -static jclass g_qtSurfaceTextureListenerClass = 0; +static const char QtSurfaceTextureListenerClassName[] = "org/qtproject/qt5/android/multimedia/QtSurfaceTextureListener"; static QMap<int, AndroidSurfaceTexture*> g_objectMap; // native method for QtSurfaceTexture.java @@ -70,7 +70,7 @@ AndroidSurfaceTexture::AndroidSurfaceTexture(unsigned int texName) if (m_surfaceTexture.isValid()) g_objectMap.insert(int(texName), this); - QJNIObjectPrivate listener(g_qtSurfaceTextureListenerClass, "(I)V", jint(texName)); + QJNIObjectPrivate listener(QtSurfaceTextureListenerClassName, "(I)V", jint(texName)); m_surfaceTexture.callMethod<void>("setOnFrameAvailableListener", "(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V", listener.object()); @@ -144,27 +144,23 @@ jobject AndroidSurfaceTexture::surfaceHolder() return m_surfaceHolder.object(); } -static JNINativeMethod methods[] = { - {"notifyFrameAvailable", "(I)V", (void *)notifyFrameAvailable} -}; - bool AndroidSurfaceTexture::initJNI(JNIEnv *env) { // SurfaceTexture is available since API 11. if (QtAndroidPrivate::androidSdkVersion() < 11) return false; - jclass clazz = env->FindClass("org/qtproject/qt5/android/multimedia/QtSurfaceTextureListener"); - if (env->ExceptionCheck()) - env->ExceptionClear(); + jclass clazz = QJNIEnvironmentPrivate::findClass(QtSurfaceTextureListenerClassName, + env); - if (clazz) { - g_qtSurfaceTextureListenerClass = static_cast<jclass>(env->NewGlobalRef(clazz)); - if (env->RegisterNatives(g_qtSurfaceTextureListenerClass, - methods, - sizeof(methods) / sizeof(methods[0])) < 0) { - return false; - } + static const JNINativeMethod methods[] = { + {"notifyFrameAvailable", "(I)V", (void *)notifyFrameAvailable} + }; + + if (clazz && env->RegisterNatives(clazz, + methods, + sizeof(methods) / sizeof(methods[0])) != JNI_OK) { + return false; } return true; |