Revert "Android: fix Android assets handler not listing dirs with only sub dirs"

This reverts commit 875e90d249820c6210bdc2beebe61d0224e37b93.

Reason for revert: QTBUG-107879

Task-number: QTBUG-107627
Fixes: QTBUG-107879
Change-Id: Ie593c973928758657305d1b2241a0480546ccb79
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
Jani Heikkinen 2022-10-25 04:31:35 +00:00 committed by Assam Boudjelthia
parent 03c87b0792
commit ffbf6b9ad4
5 changed files with 5 additions and 32 deletions

View File

@ -108,8 +108,6 @@ public:
FolderIterator(const QString &path) FolderIterator(const QString &path)
: m_path(path) : m_path(path)
{ {
// Note that empty dirs in the assets dir before the build are not going to be
// included in the final apk, so no empty folders should expected to be listed.
QJniObject files = QJniObject::callStaticObjectMethod(QtAndroid::applicationClass(), QJniObject files = QJniObject::callStaticObjectMethod(QtAndroid::applicationClass(),
"listAssetContent", "listAssetContent",
"(Landroid/content/res/AssetManager;Ljava/lang/String;)[Ljava/lang/String;", "(Landroid/content/res/AssetManager;Ljava/lang/String;)[Ljava/lang/String;",
@ -352,6 +350,7 @@ public:
} else { } else {
auto *assetDir = AAssetManager_openDir(m_assetManager, m_fileName.toUtf8()); auto *assetDir = AAssetManager_openDir(m_assetManager, m_fileName.toUtf8());
if (assetDir) { if (assetDir) {
if (AAssetDir_getNextFileName(assetDir))
m_assetInfo->type = AssetItem::Type::Folder; m_assetInfo->type = AssetItem::Type::Folder;
AAssetDir_close(assetDir); AAssetDir_close(assetDir);
} }

View File

@ -6,7 +6,6 @@
#include <QTest> #include <QTest>
#include <QtCore/qnativeinterface.h> #include <QtCore/qnativeinterface.h>
#include <QtCore/qjniobject.h> #include <QtCore/qjniobject.h>
#include <QtCore/qdiriterator.h>
class tst_Android : public QObject class tst_Android : public QObject
{ {
@ -14,7 +13,6 @@ Q_OBJECT
private slots: private slots:
void assetsRead(); void assetsRead();
void assetsNotWritable(); void assetsNotWritable();
void assetsIterating();
void testAndroidSdkVersion(); void testAndroidSdkVersion();
void testAndroidActivity(); void testAndroidActivity();
void testRunOnAndroidMainThread(); void testRunOnAndroidMainThread();
@ -43,27 +41,6 @@ void tst_Android::assetsNotWritable()
QVERIFY(!file.open(QIODevice::Append)); QVERIFY(!file.open(QIODevice::Append));
} }
void tst_Android::assetsIterating()
{
QStringList assets = {"assets:/top_level_dir/file_in_top_dir.txt",
"assets:/top_level_dir/sub_dir",
"assets:/top_level_dir/sub_dir/file_in_sub_dir.txt",
"assets:/top_level_dir/sub_dir/sub_dir_2",
"assets:/top_level_dir/sub_dir/sub_dir_2/sub_dir_3",
"assets:/top_level_dir/sub_dir/sub_dir_2/sub_dir_3/file_in_sub_dir_3.txt"};
// Note that we have an "assets:/top_level_dir/sub_dir/empty_sub_dir" in the test's
// assets physical directory, but empty folders are not packaged in the built apk,
// so it's expected to not have such folder be listed in the assets on runtime
QDirIterator it("assets:/top_level_dir", QDirIterator::Subdirectories);
QStringList iteratorAssets;
while (it.hasNext())
iteratorAssets.append(it.next());
QVERIFY(assets == iteratorAssets);
}
void tst_Android::testAndroidSdkVersion() void tst_Android::testAndroidSdkVersion()
{ {
QVERIFY(QNativeInterface::QAndroidApplication::sdkVersion() > 0); QVERIFY(QNativeInterface::QAndroidApplication::sdkVersion() > 0);