diff options
author | Jarek Kobus <[email protected]> | 2024-05-02 15:33:06 +0200 |
---|---|---|
committer | Jarek Kobus <[email protected]> | 2024-05-03 12:44:08 +0000 |
commit | 7039c06f821d8cc8e88af82864e7d5239888320f (patch) | |
tree | 4eeaa82660058939a7deb2e9741dc0e11dafe17d /src/plugins/android/androidsdkmanager.cpp | |
parent | adcea416175705626948c16c0368fda30b82e383 (diff) |
Android: Add updateRecipe
Change-Id: Id934f238cff579208f85af6f8b716871ba0c9321
Reviewed-by: Alessandro Portale <[email protected]>
Diffstat (limited to 'src/plugins/android/androidsdkmanager.cpp')
-rw-r--r-- | src/plugins/android/androidsdkmanager.cpp | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp index 13cc38a01cc..173a4af9f3a 100644 --- a/src/plugins/android/androidsdkmanager.cpp +++ b/src/plugins/android/androidsdkmanager.cpp @@ -243,8 +243,20 @@ static void setupSdkProcess(const QStringList &args, Process *process, return; dialog->setProgress((current * 100.0 + *progress) / total); }); + QObject::connect(process, &Process::readyReadStandardError, dialog, [process, dialog] { + QTextCodec *codec = QTextCodec::codecForLocale(); + dialog->appendMessage(codec->toUnicode(process->readAllRawStandardError()), StdErrFormat); + }); }; +static void handleSdkProcess(QuestionProgressDialog *dialog, DoneWith result) +{ + if (result == DoneWith::Success) + dialog->appendMessage(Tr::tr("Finished successfully.") + "\n\n", StdOutFormat); + else + dialog->appendMessage(Tr::tr("Failed.") + "\n\n", StdErrFormat); +} + static GroupItem installationRecipe(const Storage<DialogStorage> &dialogStorage, const InstallationChange &change) { @@ -282,12 +294,7 @@ static GroupItem installationRecipe(const Storage<DialogStorage> &dialogStorage, }; const auto onDone = [dialogStorage](DoneWith result) { - if (result == DoneWith::Success) { - dialogStorage->m_dialog->appendMessage(Tr::tr("Finished successfully") + "\n\n", - StdOutFormat); - } else { - dialogStorage->m_dialog->appendMessage(Tr::tr("Failed") + "\n\n", StdErrFormat); - } + handleSdkProcess(dialogStorage->m_dialog.get(), result); }; return Group { @@ -305,6 +312,22 @@ static GroupItem installationRecipe(const Storage<DialogStorage> &dialogStorage, }; } +static GroupItem updateRecipe(const Storage<DialogStorage> &dialogStorage) +{ + const auto onUpdateSetup = [dialogStorage](Process &process) { + const QStringList args = {"--update", sdkRootArg(androidConfig())}; + QuestionProgressDialog *dialog = dialogStorage->m_dialog.get(); + setupSdkProcess(args, &process, dialog, 0, 1); + dialog->appendMessage(Tr::tr("Updating installed packages....") + '\n', NormalMessageFormat); + dialog->setProgress(0); + }; + const auto onDone = [dialogStorage](DoneWith result) { + handleSdkProcess(dialogStorage->m_dialog.get(), result); + }; + + return ProcessTask(onUpdateSetup, onDone); +} + const int sdkManagerCmdTimeoutS = 60; const int sdkManagerOperationTimeoutS = 600; |