fix: add separate method for reading files to fix file reading on Android TV

This commit is contained in:
albexk 2024-11-11 20:53:37 +03:00
parent 7df050371e
commit a5abab8caf
8 changed files with 105 additions and 27 deletions

View file

@ -24,7 +24,7 @@ SystemController::SystemController(const std::shared_ptr<Settings> &settings, QO
{
}
void SystemController::saveFile(QString fileName, const QString &data)
void SystemController::saveFile(const QString &fileName, const QString &data)
{
#if defined Q_OS_ANDROID
AndroidController::instance()->saveFile(fileName, data);
@ -62,6 +62,31 @@ void SystemController::saveFile(QString fileName, const QString &data)
#endif
}
bool SystemController::readFile(const QString &fileName, QByteArray *data)
{
#ifdef Q_OS_ANDROID
int fd = AndroidController::instance()->getFd(fileName);
if (fd == -1) return false;
QFile file;
if(!file.open(fd, QIODevice::ReadOnly)) return false;
data->assign(file.readAll());
AndroidController::instance()->closeFd();
#else
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly)) return false;
data->assign(file.readAll());
#endif
return true;
}
bool SystemController::readFile(const QString &fileName, QString *data)
{
QByteArray byteArray;
if(!readFile(fileName, &byteArray)) return false;
data->assign(byteArray);
return true;
}
QString SystemController::getFileName(const QString &acceptLabel, const QString &nameFilter,
const QString &selectedFile, const bool isSaveMode, const QString &defaultSuffix)
{