Android: Improve "Add new AVD" dialog

* Re-organize the implementation to create a new AVD
* Use SystemImage instead of SdKPlatform because now
an SdkPlatform can be installed partially with a SystemImage.
The current implementation does not consider the this case,
thus we end up with an uncomplete list of installed system images.
* Add Device definitions with categories (phone, tablet, tv, etc.)
to the creation process (check -d arg in avdmanager create avd).

Task-number: QTCREATORBUG-23284
Change-Id: Id02a71ad452fb423fa2781d06ef3fcf2afa328a9
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Assam Boudjelthia
2020-01-08 14:55:16 +02:00
parent 382589f160
commit 0df5d8c2e5
13 changed files with 263 additions and 73 deletions

View File

@@ -85,12 +85,14 @@ using AndroidDeviceInfoList = QList<AndroidDeviceInfo>;
class CreateAvdInfo
{
public:
bool isValid() const { return sdkPlatform && sdkPlatform->isValid() && !name.isEmpty(); }
const SdkPlatform *sdkPlatform = nullptr;
bool isValid() const { return systemImage && systemImage->isValid() && !name.isEmpty(); }
const SystemImage *systemImage = nullptr;
QString name;
QString abi;
QString deviceDefinition;
int sdcardSize = 0;
QString error; // only used in the return value of createAVD
bool overwrite = false;
};
class ANDROID_EXPORT AndroidConfig