aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android/androidsdkmanager.cpp
diff options
context:
space:
mode:
authorJarek Kobus <[email protected]>2024-05-02 15:33:06 +0200
committerJarek Kobus <[email protected]>2024-05-03 12:44:08 +0000
commit7039c06f821d8cc8e88af82864e7d5239888320f (patch)
tree4eeaa82660058939a7deb2e9741dc0e11dafe17d /src/plugins/android/androidsdkmanager.cpp
parentadcea416175705626948c16c0368fda30b82e383 (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.cpp35
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;