summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android/qandroidplatformservices.cpp
diff options
context:
space:
mode:
authorChristian Strømme <christian.stromme@digia.com>2014-04-23 16:22:04 +0200
committerChristian Stromme <christian.stromme@digia.com>2014-07-14 02:24:57 +0200
commit1220a87f8adfcc30cd31a2b1a5bccbee8c394cec (patch)
treefbb5607dd9de6be2c19b2f2c1bcfeb3c8e436198 /src/plugins/platforms/android/qandroidplatformservices.cpp
parentc4b1fffb22e8b20ffe51c5367cdf49eaeada9546 (diff)
Android: Simplify the jni code in QAndroidPlatformServices
Remove the use of QtAndroid::AttachedJNIEnv and lazily cache the openURL() methodID on first use. Change-Id: I601d13bc7d644d7cb2f78655ad40c7d9566cf3cb Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformservices.cpp')
-rw-r--r--src/plugins/platforms/android/qandroidplatformservices.cpp21
1 files changed, 6 insertions, 15 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformservices.cpp b/src/plugins/platforms/android/qandroidplatformservices.cpp
index 02fe29e576..9c21abe39b 100644
--- a/src/plugins/platforms/android/qandroidplatformservices.cpp
+++ b/src/plugins/platforms/android/qandroidplatformservices.cpp
@@ -43,30 +43,21 @@
#include <QUrl>
#include <QDir>
#include <QDebug>
+#include <QtCore/private/qjni_p.h>
QT_BEGIN_NAMESPACE
QAndroidPlatformServices::QAndroidPlatformServices()
{
- QtAndroid::AttachedJNIEnv env;
- if (!env.jniEnv)
- return;
-
- m_openURIMethodID = env.jniEnv->GetStaticMethodID(QtAndroid::applicationClass(),
- "openURL",
- "(Ljava/lang/String;)V");
}
bool QAndroidPlatformServices::openUrl(const QUrl &url)
{
- QtAndroid::AttachedJNIEnv env;
- if (!env.jniEnv)
- return false;
-
- jstring string = env.jniEnv->NewString(reinterpret_cast<const jchar *>(url.toString().constData()),
- url.toString().length());
- env.jniEnv->CallStaticVoidMethod(QtAndroid::applicationClass(), m_openURIMethodID, string);
- env.jniEnv->DeleteLocalRef(string);
+ QJNIObjectPrivate urlString = QJNIObjectPrivate::fromString(url.toString());
+ QJNIObjectPrivate::callStaticMethod<void>(QtAndroid::applicationClass(),
+ "openURL",
+ "(Ljava/lang/String;)V",
+ urlString.object());
return true;
}