aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/android
Commit message (Collapse)AuthorAgeFilesLines
* ProjectExplorer: Support column numbers in file path linkificationChristian Kandeler4 days1-1/+1
| | | | | | | | | | ... for task details. As a result, clicking on a linkified file path inside a task in the issues pane will now open the editor at the column specified in the compiler output, if there is one. We used to consider only the line. Change-Id: Idccba33b5b33029abfa8f29c7888af6c7f2e1622 Reviewed-by: hjk <hjk@qt.io>
* Add long descriptions to some pluginsLeena Miettinen4 days1-1/+7
| | | | | | | | | | | | Edited the short descriptions to answer the question "What can I do with this extension" to help users decide whether they need it. In long descriptions, tell users what else they need to be able to use the plugin. Change-Id: Iefce7505b61fc77cf38cc915f1f7dbd25c9cb570 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Android: Fix build before Qt6.5Christian Stenger5 days1-2/+3
| | | | | Change-Id: Ie2b674edcbd12a9c10ca1875d96da50e02914fe8 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Android: support namespace in build.gradleAssam Boudjelthia5 days3-16/+51
| | | | | | | | | | | | | The use of "package" in AndroidManifest.xml has been deprecated since AGP 7.4, and has been moved to build.gradle file instead, set as "namespace". Qt Creator has been relying on the package name being present in the manifest and projects not having that will fail to deploy. This change adds support of that to Creator. Task-number: QTBUG-106907 Change-Id: I04850a11c5840d5167f7a3d09ae76cd51dbe72ca Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Use Qt::SingleShotConnectionJarek Kobus7 days1-4/+2
| | | | | | | | Instead of disconnecting the signal inside the slot. Change-Id: Ic5b47cd560d2737fb3b347b6c06e69889394e03a Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Transform AndroidConfig into namespaceJarek Kobus7 days24-596/+545
| | | | | Change-Id: I1926758f3dcaffb4de11a85c0873eec7bd2d223c Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Rename setConfig() into applyConfig()Jarek Kobus7 days3-5/+3
| | | | | | | | Get rid of the AndroidConfig arg. Change-Id: Ifa828d4d9f382eb904d775bab890a801086b8a3b Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Remove unused methods, hide one method in private sectionJarek Kobus7 days2-9/+1
| | | | | | Change-Id: Ieeddf1ba1b0fca12deb2a3c4cb4d1344eede41ae Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* PluginSpecs: Change URLs from http:// to https://Alessandro Portale7 days1-1/+1
| | | | | | | | | | Avoid the redirect that is inevitable nowerdays. Also, change necessitas.kde.org to www.qt.io, since the orgininal page is offline. Change-Id: Ib1823f0df97d2df87822fd2bb7552e2f2c7e971e Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* Android: Make isValidNdk() staticJarek Kobus8 days3-11/+7
| | | | | | Change-Id: I3e425fa6b7c7bf395e081c7e7899f11198b7b9fc Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Android: Hide gdbPathFromNdk() and lldbPathFromNdk() in cppJarek Kobus8 days2-30/+25
| | | | | | Change-Id: I9f5923971dfa9e4431873734bb4195b565337229 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Hide toolsPrefix() and toolchainPrefix() in cppJarek Kobus8 days2-17/+15
| | | | | | Change-Id: Id71d66239cd99f3f8b48bfafa5e76125adcfedc8 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Android: Use more AndroidConfig specifiers for static method callsJarek Kobus12 days4-12/+12
| | | | | | | | There is no need to operate on AndroidConfig instance. Change-Id: Ie58f8e5aca8214efe0bb857b3d62a137f42a918c Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Hide displayNameFromInfo() in cppJarek Kobus12 days2-9/+7
| | | | | | Change-Id: Iaec548c4b2b56c7515ccf945234f4f59367b006b Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Hide getDeviceProperty() in cppJarek Kobus12 days2-20/+15
| | | | | | | Use a new CommandLine's c'tor. Change-Id: I7e0809e97ae265cc83bd05a335beb4fa815e2a4e Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Hide getAvdName() in cppJarek Kobus12 days2-34/+27
| | | | | | | | Simplify it a bit. Change-Id: I862eea2a388be3b83b73667a872f9cf9854c5c8a Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Make parseDeployError() staticJarek Kobus12 days1-51/+44
| | | | | | | | Rename DeployErrorCode into DeployErrorFlag and make it a flag type. Change-Id: I459a72a3a0a1dcddc275cd649a7f55c15369359d Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Remove unused stuff from AndroidManagerJarek Kobus12 days1-10/+0
| | | | | | Change-Id: I394da4690c6acf8ae904cd23fbc2fd2527decdba Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Android: Simplify reading manifest filesJarek Kobus12 days1-65/+50
| | | | | Change-Id: I8be86a26fd1f37ce59af7e5cdbdaf12519937da0 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Make enum parsing readableJarek Kobus12 days1-29/+15
| | | | | | | Fix tr() messages so that they don't contain newlines. Change-Id: I705e56796393501da1a2917adb6673a24c1cbcf6 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Fix QMetaType::type() related deprecation warningshjk12 days2-4/+4
| | | | | | | Not in sdktool, which still builds with Qt 5.15 Change-Id: I6e6f4331127b821e471e2840e7959cd65e6419e9 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Android: Transform AndroidAvdManager class into namespaceJarek Kobus12 days9-94/+63
| | | | | | | | | | Hide waitForBooted() in cpp. Move avdManagerCommand() into avddialog.cpp, as it's the only one usage of this method. Change-Id: Id88ecbb5532a7d2594c65dddc8245573efd41018 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Fix capitalization of group box titlesEike Ziller12 days1-1/+1
| | | | | | | Consistently use book case Change-Id: Ia0e382255fe2f311a1bd9a380f4bf8af2320c215 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Small cleanup in AndroidQmlPreviewWorkerJarek Kobus12 days1-16/+14
| | | | | | Change-Id: I56933f1dd327b233082e1f8ac81e0e7f3d19694b Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Android: Run pid watcher in the main threadJarek Kobus12 days1-52/+56
| | | | | | | Change-Id: Ia320827ed97caa3dff0611a13c52e648c9d8a79a Reviewed-by: hjk <hjk@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Reuse TaskTree for findProcessPIDAndUser()Jarek Kobus12 days2-96/+64
| | | | | | | | | Don't run blocking processes in a separate thread. Run them asynchronously from the main thread. Change-Id: I5343f05d992d974720e786e2814cba2d6b295cd4 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Inline AndroidRunnerWorker::adbKill()Jarek Kobus12 days2-9/+5
| | | | | | Change-Id: I2c4fefac4f18b65fe73619cc70090133eb4dbbf5 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Hide some methods of AndroidRunnerWorkerJarek Kobus12 days1-13/+14
| | | | | | Change-Id: I018e311dce4e3ddd9f61e6c6734e325b2eb15889 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Android: Employ TaskTree for running avdList commandJarek Kobus12 days5-93/+101
| | | | | | | | Run the command from the caller thread. Change-Id: I710c41c6da93e27d79c351e1dc5e7f9f01d6cc51 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* CommandLine: Reuse new c'torJarek Kobus13 days5-23/+17
| | | | | | Change-Id: Id154881b4f5d8c488e5c1f5e0f843d36bf838759 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* AsyncTask: Centralize setting global future synchronizerEike Ziller2024-05-211-4/+0
| | | | | | | | | | | Move the global FutureSynchronizer to Utils and use it by default for AsyncTask (if that is in the main thread). This way setting a synchronizer is less prone to be forgotten. Individual uses can still override this. Change-Id: I1a12bf4d7f4cb5be99668bf0a4797108c2fe6448 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Android: Supply newly created device with pathJarek Kobus2024-05-214-31/+42
| | | | | | | | | | Otherwise, the newly created device is going to be removed and recreated on subsequent HandleAvdsListChange() causing flickering of the devices combobox in settings. Change-Id: Idcf58f24eb7f4d4200881cfa912d0866f54d362a Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Merge remote-tracking branch 'origin/13.0'Eike Ziller2024-05-173-5/+5
|\ | | | | | | | | | | | | | | | | Conflicts: cmake/QtCreatorIDEBranding.cmake doc/qtcreator/src/projects/creator-only/creator-projects-build-run-tutorial.qdoc qbs/modules/qtc/qtc.qbs Change-Id: I67a2540677a8b5c309c0c81e2a509a61d0a65aa8
| * Android: Don't crash when dis- and reconnecting phone via USBAlessandro Portale2024-05-153-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When ADB signals a change about the list of connected devices, the whole build/run steps tree gets deleted and recreated. The AndroidBuildApkStep is a part of that tree and starts one or more "keytool" processes on creation/init. They were started with their own event loop. Those synthetic event loops caused a change in order of deletion which led to crashes with obscure backtraces. This change removes the event loop creation from "keytool" calls. The crash is avoided. The calls take ~0.5 seconds. The short UI freeze should be an acceptable hotfix trade-off for a crash in QtC13. If 0.5 seconds freeze seem too much, a better fix could be done in QtC 14. Fixes: QTCREATORBUG-30645 Fixes: QTCREATORBUG-30770 Change-Id: I8842dc87023142ae75572bf255c7f1ec808d9bab Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* | Android: Add locking mechanism when creating avdJarek Kobus2024-05-162-2/+7
| | | | | | | | | | | | | | | | | | | | | | Lock avd file system watcher changes when executing create avd command. Otherwise the avd file system watcher sends notifications during create avd command execution and subsequent avd list command doesn't report the device which is being added, yet. Change-Id: I1a0123d1bf14cf76e3a90e7f19416eb634e9c4a6 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Android: Add AndroidDeviceManager::createAvd()Jarek Kobus2024-05-163-42/+52
| | | | | | | | | | | | | | | | | | The createAvd() command is going to turn off the avd file system watcher during execution, so this needs to be a part of AndroidDeviceManager. Change-Id: Ic8038be53d2be34136649b6b8a44435a4fc87a9f Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Android: Make avdConfigEditManufacturerTag() more readableAlessandro Portale2024-05-161-4/+6
| | | | | | | | | | | | | | | | Rename it to modifyManufacturerTag() and use newly introduced enum to describe the type of modification. Change-Id: I8e903891e87d7133ec37e9aecfd303b424a36d15 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Android: Simplify listVirtualDevices()Jarek Kobus2024-05-163-20/+23
| | | | | | | | | | | | | | | | | | | | | | Introduce ParsedAvdList struct and return it from the parseAvdList(). This eliminates passing the errorPaths result by reference. Simplify listVirtualDevices() implementation by removing some local variables. Adapt the tst_AvdManagerOutputParser test accordingly. Change-Id: If4670bcc81ce36416c1fe35e8ee57e822f82516f Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Android: Simplify create avd commandJarek Kobus2024-05-101-2/+2
| | | | | | | | | | | | | | | | | | | | Simplify the code copied from the original place. Amends be222eaff4da289bc83c0e8f177b0ed8a7420719 Change-Id: Ie90da2c2c515b948d0e1321a2c8fb8f7d48b9eb8 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Android: Support "android-desktop" device definitions in AvdDialogAlessandro Portale2024-05-102-1/+27
| | | | | | | | | | | | Change-Id: Iec80fe8b46302adeb1308d41da77e0a489c9c95e Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* | Android: Simplify execution of createAvdCommand()Jarek Kobus2024-05-104-127/+49
| | | | | | | | | | | | | | | | | | Don't create a separate thread just to blocking execute it from the caller thread. Use runBlocking with event loop enabled instead. Change-Id: I9930d91d25ef4d1af1062570db1cfe20a1c4ca2b Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Android: Remove SystemInfo from CreateAvdInfoJarek Kobus2024-05-083-15/+17
| | | | | | | | | | | | | | | | | | | | | | Replace it with sdkStylePath and apiLevel fields what makes this structure safe to be used in different threads. Get rid of isValid() method. Change-Id: Iafce161457f05698fb3d5ea4a2a7fa15f8d95b38 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Android: Make use of the error reportedJarek Kobus2024-05-082-9/+16
| | | | | | | | | | | | | | | | | | | | Don't call createAvd() in case of the invalid systemImage(). Detect the erroneous result and handle it accordingly. Change-Id: Ieb869d12ea24f22dcf29beb362d934484929cdad Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Merge remote-tracking branch 'origin/13.0'Eike Ziller2024-05-061-0/+1
|\| | | | | | | Change-Id: I77d3656aec10063a90095d5299b85304692d8b32
| * Android: Disable "Make [NDK] default" button while NDKs list is emptyAlessandro Portale2024-05-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | When pressing the "Make [NDK] Default" button while the list is empty leads to a crash. The button should actually not be enabled if the list is empty. This change disables the button while the NDKs list is empty. Fixes: QTCREATORBUG-30716 Change-Id: I5f10fd180f62d20210f1b0c0261e4d821d0582dd Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* | Android: Hide AndroidSdkManagerDialogJarek Kobus2024-05-053-15/+20
| | | | | | | | | | | | | | | | Provide executeAndroidSdkManagerDialog() function instead. Change-Id: If7033ce797710f4dfbb7df0630962316b20c8a12 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* | Android: Hide QDialogButtonBox inside cppJarek Kobus2024-05-052-13/+8
| | | | | | | | | | Change-Id: I0f10933884d3a95e774defe9b1f5125a5b1eee39 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Android: Hide OptionsDialog inside cpp fileJarek Kobus2024-05-052-72/+63
| | | | | | | | | | Change-Id: I26cacdd743b51d57e154cb0dd454b8cdf07cb153 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Android: Rename AndroidSdkManager{Widget -> Dialog}Jarek Kobus2024-05-055-15/+13
| | | | | | | | | | | | | | Do some small cleanups. Change-Id: Iec6c77cb0a33ebdfcd72c3751cb1fd44ab3ea078 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Android: Create and execute AndroidSdkManagerWidget on demandJarek Kobus2024-05-052-14/+7
| | | | | | | | | | | | | | | | | | | | | | There is no need to always instantiate it inside AndroidSettingsWidget. Force data refresh on model construction. Change-Id: I1adcd933e8684df9819d3dbd9cef2d615cff84a8 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>