From 450cd772e2017127579afddbe3dd4d3e1b03ff1b Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Mon, 10 Jun 2024 16:42:13 +0200 Subject: [PATCH] JNI: use QJniArray in ContentFileEngine Replace manual array creation and conversion code. Change-Id: Icd728b69790c0ed7a6ab38ff4f07622bea2be000 Reviewed-by: Assam Boudjelthia (cherry picked from commit 254d5ca38dff0b580777b5067816a6bb2669704d) Reviewed-by: Qt Cherry-pick Bot --- .../android/androidcontentfileengine.cpp | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/plugins/platforms/android/androidcontentfileengine.cpp b/src/plugins/platforms/android/androidcontentfileengine.cpp index db6c601f335..5757f5d8cc0 100644 --- a/src/plugins/platforms/android/androidcontentfileengine.cpp +++ b/src/plugins/platforms/android/androidcontentfileengine.cpp @@ -21,7 +21,6 @@ Q_DECLARE_JNI_CLASS(UriType, "android/net/Uri"); Q_DECLARE_JNI_CLASS(Uri, "android/net/Uri"); Q_DECLARE_JNI_CLASS(ParcelFileDescriptorType, "android/os/ParcelFileDescriptor"); Q_DECLARE_JNI_CLASS(CursorType, "android/database/Cursor"); -Q_DECLARE_JNI_TYPE(StringArray, "[Ljava/lang/String;"); static QJniObject &contentResolverInstance() { @@ -375,11 +374,9 @@ public: auto cursor = contentResolverInstance().callMethod( "query", uri.object(), - projection.isEmpty() ? - nullptr : fromStringList(projection).object(), + QJniArray(projection), selection.isEmpty() ? nullptr : QJniObject::fromString(selection).object(), - selectionArgs.isEmpty() ? - nullptr : fromStringList(selectionArgs).object(), + QJniArray(selectionArgs), sortOrder.isEmpty() ? nullptr : QJniObject::fromString(sortOrder).object()); if (!cursor.isValid()) return {}; @@ -413,15 +410,6 @@ public: bool moveToNext() { return m_object.callMethod("moveToNext"); } private: - static QJniObject fromStringList(const QStringList &list) - { - QJniEnvironment env; - auto array = env->NewObjectArray(list.size(), env.findClass("java/lang/String"), nullptr); - for (int i = 0; i < list.size(); ++i) - env->SetObjectArrayElement(array, i, QJniObject::fromString(list[i]).object()); - return QJniObject::fromLocalRef(array); - } - QJniObject m_object; };