PrismLauncher/launcher/JavaDownloader.h
TheKodeToad 8778313170
Merge remote-tracking branch 'upstream/develop' into feature/java-downloader
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
2023-08-16 13:39:14 +01:00

29 lines
976 B
C++

#pragma once
#include <QString>
#include "net/NetJob.h"
#include "tasks/Task.h"
class JavaDownloader : public Task {
Q_OBJECT
public:
/*Downloads the java to the runtimes folder*/
explicit JavaDownloader(bool isLegacy, const QString& OS) : m_isLegacy(isLegacy), m_OS(OS) {}
void executeTask() override;
[[nodiscard]] bool canAbort() const override { return true; }
static void showPrompts(QWidget* parent = nullptr);
private:
bool m_isLegacy;
const QString& m_OS;
void downloadMojangJavaList(const QString& OS, bool isLegacy);
void parseMojangManifest(bool isLegacy, const QJsonArray& versionArray);
void downloadMojangJava(bool isLegacy, const QJsonDocument& doc);
static void mojangOStoAzul(const QString& OS, QString& azulOS, QString& arch, QString& bitness);
void downloadAzulMeta(const QString& OS, bool isLegacy, const NetJob* netJob);
void downloadAzulJava(bool isLegacy, const QJsonArray& array);
};