Revision control
++ // Copyright (C) 2023 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
++
++ /*!
++ \page android-environment-variables.html
++ \title Qt for Android Environment Variables
++ \brief Lists some useful environment variables used by the Qt For Android toolchain.
++ \ingroup android-platform-extra-topics
++
++ \section1 Enabling or disabling workarounds
++
++ Qt for Android uses some environment variables to enable/disable certain workarounds:
++
++ \section2 Commonly used variables
++
++ \table 80%
++ \header \li Variable \li Description
++ \row
++ \li QT_ANDROID_NO_EXIT_CALL
++ \li In some cases, an Android app might not be able to safely clean all
++ threads while calling \c exit() and it might crash. This is because there
++ are C++ threads running and destroying these without joining them terminates
++ an application. These threads cannot be joined because it's not possible
++ to know if they are running. This flag avoids calling \c exit() and lets
++ the Android system handle this, at the cost of not attempting to run
++ global destructors.
++ \row
++ \li QT_ANDROID_ENABLE_WORKAROUND_TO_DISABLE_PREDICTIVE_TEXT
++ \li Allows the hiding of predictive text suggestions, mainly from password
++ fields. Certain devices don’t handle this properly. For more information,
++ see \l {Android Platform Notes}{Predictive Text}.
++ \row
++ \li QT_ANDROID_ENABLE_RIGHT_MOUSE_FROM_LONG_PRESS
++ \li Interprets a long touch press as a right mouse click event.
++ \row
++ \li QT_ANDROID_DISABLE_ACCESSIBILITY
++ \li Disable \l{Assistive Tools}{Accessibility}. This prevents the processing
++ of accessibility events.
++ \row
++ \li QT_ANDROID_NO_FULLSCREEN_KEYBOARD
++ \li Do not allow Android to display full-screen IME.
++ \note This variable is valid only for Qt 6.8.8, 6.11.1, 6.12 or newer. For Qt 6.12 and
++ newer it's recommended to use \l {Qt::ImhNoFullscreen} instead.
++ \endtable
++
++ \section2 Less commonly used variables
++
++ \table 80%
++ \header \li Variable \li Description
++ \row
++ \li QT_ANDROID_FONT_LOCATION
++ \li Sets a custom path for system fonts.
++ \row
++ \li QT_ANDROID_MAX_ASSETS_CACHE_SIZE
++ \li Cache size for assets under the assets folder.
++ \row
++ \li QT_ANDROID_DISABLE_GLYPH_CACHE_WORKAROUND
++ \li See \l{Text Glyph Caching}{Text Glyph Caching}
++ \row
++ \li QT_ANDROID_RASTER_IMAGE_DEPTH
++ \li
++ \row
++ \li QT_ANDROID_MINIMUM_MOUSE_DOUBLE_CLICK_DISTANCE
++ \li
++ \row
++ \li QT_ANDROID_BACKGROUND_ACTIONS_QUEUE_SIZE
++ \li When an Android app is paused or inactive, it may continue to receive
++ UI updates from components like a BroadcastReceiver or Service. These updates
++ are queued until the app resumes. The queue can grow indefinitely, leading
++ to extra memory usage and latency when processing these updates once the app is
++ active again.
++ This environment variable addresses this issue by introducing a size limit
++ for the queue. Once the specified limit is reached, the oldest entry is
++ discarded to add the newest entry, therefore preventing unbound growth.
++ By default, the queue is unbound and this environment variable is not set.
++ Additionally, if set to any negative number the queue remains unbound.
++
++ For example, QT_ANDROID_BACKGROUND_ACTIONS_QUEUE_SIZE=100 limits the queue
++ to 100 actions.
++ \endtable
++
++ \note Though related, these are not the same as CMake commands or variables used
++ by Qt For Android, see \l{Qt for Android CMake Configuration}
++
++ */