Android: Add APIs to install, uninstall and update SDK packages

Task-number: QTCREATORBUG-18978
Change-Id: I3e19d665fb5b8a3a562010484735022d7ed333a1
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
This commit is contained in:
Vikas Pachdha
2017-09-12 09:34:02 +02:00
parent e70179e14f
commit 4b1429de55
2 changed files with 218 additions and 11 deletions

View File

@@ -28,6 +28,7 @@
#include "androidsdkpackage.h"
#include <QObject>
#include <QFuture>
#include <memory>
@@ -43,6 +44,21 @@ class AndroidSdkManager : public QObject
{
Q_OBJECT
public:
enum CommandType
{
None,
UpdateAll,
UpdatePackage
};
struct OperationOutput
{
bool success = false;
CommandType type = None;
QString stdOutput;
QString stdError;
};
AndroidSdkManager(const AndroidConfig &config, QObject *parent = nullptr);
~AndroidSdkManager();
@@ -58,9 +74,16 @@ public:
= AndroidSdkPackage::Installed);
void reloadPackages(bool forceReload = false);
bool isBusy() const;
QFuture<OperationOutput> updateAll();
QFuture<OperationOutput> update(const QStringList &install, const QStringList &uninstall);
void cancelOperatons();
signals:
void packageReloadBegin();
void packageReloadFinished();
void cancelActiveOperations();
private:
std::unique_ptr<AndroidSdkManagerPrivate> m_d;