diff options
| author | Bartlomiej Moskal <bartlomiej.moskal@qt.io> | 2022-08-02 12:11:56 +0200 |
|---|---|---|
| committer | Bartlomiej Moskal <bartlomiej.moskal@qt.io> | 2022-10-26 17:13:44 +0200 |
| commit | b4a9bb1f6a40e6d504c1f48f0d9ea2b70ab1a9f0 (patch) | |
| tree | e5d14e3250a113836098d8933d4813afce3b976f /src/plugins/platforms/android/qandroidplatformintegration.cpp | |
| parent | f157e223c21c79ebaf7e5e1a23dbdb3d8da1a59e (diff) | |
Android: Handle light/dark mode changes
Update Theme's style according to current UiMode.
New style.json file for dark mode was added (stored in separate
subdirectory 'darkUiMode/'). Theme_DeviceDefault_DayNight[0] is used for
extraction for API 29 or higher. Style is updated each time when UiMode
is changed.
[0]https://developer.android.com/reference/android/R.style#Theme_DeviceDefault_DayNight
Task-number: QTBUG-83185
Pick-to: 6.4 6.2
Change-Id: Id26059231f41761d822d494ac6c641bf3cba3322
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformintegration.cpp')
| -rw-r--r-- | src/plugins/platforms/android/qandroidplatformintegration.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformintegration.cpp b/src/plugins/platforms/android/qandroidplatformintegration.cpp index 57546bdbca3..0d5b4734777 100644 --- a/src/plugins/platforms/android/qandroidplatformintegration.cpp +++ b/src/plugins/platforms/android/qandroidplatformintegration.cpp @@ -460,7 +460,7 @@ QStringList QAndroidPlatformIntegration::themeNames() const QPlatformTheme *QAndroidPlatformIntegration::createPlatformTheme(const QString &name) const { if (androidThemeName == name) - return new QAndroidPlatformTheme(m_androidPlatformNativeInterface); + return QAndroidPlatformTheme::instance(m_androidPlatformNativeInterface); return 0; } @@ -523,6 +523,9 @@ void QAndroidPlatformIntegration::setAppearance(Qt::Appearance newAppearance) if (m_appearance == newAppearance) return; m_appearance = newAppearance; + + QMetaObject::invokeMethod(qGuiApp, + [] () { QAndroidPlatformTheme::instance()->updateAppearance();}); } void QAndroidPlatformIntegration::setScreenSizeParameters(const QSize &physicalSize, |
