diff options
author | Juha Vuolle <juha.vuolle@insta.fi> | 2022-08-23 07:46:21 +0300 |
---|---|---|
committer | Juha Vuolle <juha.vuolle@insta.fi> | 2022-08-24 18:50:25 +0300 |
commit | ae972085a485e4db9a5313e42d559e522163cf2b (patch) | |
tree | f3b120ce65323ad94f19b48621a8e26ba4b8619f | |
parent | 5ae013a2b6c76c92ec3008850e4e43732945bca0 (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.cpp | 25 |
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(); |