JNI: use QJniArray in ContentFileEngine
Replace manual array creation and conversion code. Change-Id: Icd728b69790c0ed7a6ab38ff4f07622bea2be000 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 254d5ca38dff0b580777b5067816a6bb2669704d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
3d9527a102
commit
450cd772e2
@ -21,7 +21,6 @@ Q_DECLARE_JNI_CLASS(UriType, "android/net/Uri");
|
|||||||
Q_DECLARE_JNI_CLASS(Uri, "android/net/Uri");
|
Q_DECLARE_JNI_CLASS(Uri, "android/net/Uri");
|
||||||
Q_DECLARE_JNI_CLASS(ParcelFileDescriptorType, "android/os/ParcelFileDescriptor");
|
Q_DECLARE_JNI_CLASS(ParcelFileDescriptorType, "android/os/ParcelFileDescriptor");
|
||||||
Q_DECLARE_JNI_CLASS(CursorType, "android/database/Cursor");
|
Q_DECLARE_JNI_CLASS(CursorType, "android/database/Cursor");
|
||||||
Q_DECLARE_JNI_TYPE(StringArray, "[Ljava/lang/String;");
|
|
||||||
|
|
||||||
static QJniObject &contentResolverInstance()
|
static QJniObject &contentResolverInstance()
|
||||||
{
|
{
|
||||||
@ -375,11 +374,9 @@ public:
|
|||||||
auto cursor = contentResolverInstance().callMethod<QtJniTypes::CursorType>(
|
auto cursor = contentResolverInstance().callMethod<QtJniTypes::CursorType>(
|
||||||
"query",
|
"query",
|
||||||
uri.object<QtJniTypes::UriType>(),
|
uri.object<QtJniTypes::UriType>(),
|
||||||
projection.isEmpty() ?
|
QJniArray(projection),
|
||||||
nullptr : fromStringList(projection).object<QtJniTypes::StringArray>(),
|
|
||||||
selection.isEmpty() ? nullptr : QJniObject::fromString(selection).object<jstring>(),
|
selection.isEmpty() ? nullptr : QJniObject::fromString(selection).object<jstring>(),
|
||||||
selectionArgs.isEmpty() ?
|
QJniArray(selectionArgs),
|
||||||
nullptr : fromStringList(selectionArgs).object<QtJniTypes::StringArray>(),
|
|
||||||
sortOrder.isEmpty() ? nullptr : QJniObject::fromString(sortOrder).object<jstring>());
|
sortOrder.isEmpty() ? nullptr : QJniObject::fromString(sortOrder).object<jstring>());
|
||||||
if (!cursor.isValid())
|
if (!cursor.isValid())
|
||||||
return {};
|
return {};
|
||||||
@ -413,15 +410,6 @@ public:
|
|||||||
bool moveToNext() { return m_object.callMethod<jboolean>("moveToNext"); }
|
bool moveToNext() { return m_object.callMethod<jboolean>("moveToNext"); }
|
||||||
|
|
||||||
private:
|
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;
|
QJniObject m_object;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user