summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@insta.fi>2022-08-23 07:46:21 +0300
committerJuha Vuolle <juha.vuolle@insta.fi>2022-08-24 18:50:25 +0300
commitae972085a485e4db9a5313e42d559e522163cf2b (patch)
treef3b120ce65323ad94f19b48621a8e26ba4b8619f
parent5ae013a2b6c76c92ec3008850e4e43732945bca0 (diff)
Unstringify QStandardPaths Android parts
Qt 6.4 introduced new facilities to reduce the plain strings with Android methods/signatures. Fixes: QTBUG-104186 Change-Id: Id01f26aff253b096054f9fd6d062cebce94fdb50 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
-rw-r--r--src/corelib/io/qstandardpaths_android.cpp25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/corelib/io/qstandardpaths_android.cpp b/src/corelib/io/qstandardpaths_android.cpp
index c26a5d30ce..4c5bea42ed 100644
--- a/src/corelib/io/qstandardpaths_android.cpp
+++ b/src/corelib/io/qstandardpaths_android.cpp
@@ -12,6 +12,9 @@
QT_BEGIN_NAMESPACE
+Q_DECLARE_JNI_CLASS(Environment, "android/os/Environment");
+Q_DECLARE_JNI_TYPE(File, "Ljava/io/File;");
+
using namespace QNativeInterface;
using namespace Qt::StringLiterals;
@@ -25,8 +28,8 @@ static QString testDir()
static inline QString getAbsolutePath(const QJniObject &file)
{
- QJniObject path = file.callObjectMethod("getAbsolutePath",
- "()Ljava/lang/String;");
+ QJniObject path = file.callMethod<jstring>("getAbsolutePath");
+
if (!path.isValid())
return QString();
@@ -49,16 +52,13 @@ static QString getExternalFilesDir(const char *directoryField = nullptr)
QJniObject dirField = QJniObject::fromString(""_L1);
if (directoryField && strlen(directoryField) > 0) {
- dirField = QJniObject::getStaticObjectField("android/os/Environment",
- directoryField,
- "Ljava/lang/String;");
+ dirField = QJniObject::getStaticField<QtJniTypes::Environment, jstring>(directoryField);
if (!dirField.isValid())
return QString();
}
- QJniObject file = appCtx.callObjectMethod("getExternalFilesDir",
- "(Ljava/lang/String;)Ljava/io/File;",
- dirField.object());
+ QJniObject file = appCtx.callMethod<QtJniTypes::File>("getExternalFilesDir",
+ dirField.object<jstring>());
if (!file.isValid())
return QString();
@@ -80,8 +80,7 @@ static QString getExternalCacheDir()
if (!appCtx.isValid())
return QString();
- QJniObject file = appCtx.callObjectMethod("getExternalCacheDir",
- "()Ljava/io/File;");
+ QJniObject file = appCtx.callMethod<QtJniTypes::File>("getExternalCacheDir");
if (!file.isValid())
return QString();
@@ -102,8 +101,7 @@ static QString getCacheDir()
if (!appCtx.isValid())
return QString();
- QJniObject file = appCtx.callObjectMethod("getCacheDir",
- "()Ljava/io/File;");
+ QJniObject file = appCtx.callMethod<QtJniTypes::File>("getCacheDir");
if (!file.isValid())
return QString();
@@ -124,8 +122,7 @@ static QString getFilesDir()
if (!appCtx.isValid())
return QString();
- QJniObject file = appCtx.callObjectMethod("getFilesDir",
- "()Ljava/io/File;");
+ QJniObject file = appCtx.callMethod<QtJniTypes::File>("getFilesDir");
if (!file.isValid())
return QString();