From c090141ec36c6ca914761ba73c2dcee308bd817e Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 8 Dec 2018 19:18:12 +0100 Subject: [PATCH] Quick GUI: Change theming to use green colors --- .../martchus/passwordmanager/Activity.java | 8 ------- quickgui/android.cpp | 20 +++++++++++++++++- quickgui/android.h | 3 ++- quickgui/initiatequick.cpp | 21 ++----------------- resources/qtquickcontrols2.conf | 7 ++++--- 5 files changed, 27 insertions(+), 32 deletions(-) diff --git a/android/src/org/martchus/passwordmanager/Activity.java b/android/src/org/martchus/passwordmanager/Activity.java index 770b992..bb28ac5 100644 --- a/android/src/org/martchus/passwordmanager/Activity.java +++ b/android/src/org/martchus/passwordmanager/Activity.java @@ -48,14 +48,6 @@ public class Activity extends QtActivity { } } - public void applyTheming() { - Window window = getWindow(); - window.addFlags(LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); - window.clearFlags(LayoutParams.FLAG_TRANSLUCENT_STATUS); - window.setStatusBarColor(0x000000FF); - window.setNavigationBarColor(0x000000FF); - } - @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { diff --git a/quickgui/android.cpp b/quickgui/android.cpp index 0fc5613..cf1b5ad 100644 --- a/quickgui/android.cpp +++ b/quickgui/android.cpp @@ -19,11 +19,29 @@ using namespace ConversionUtilities; namespace QtGui { +namespace Android { +namespace WindowManager { +namespace LayoutParams { +enum RelevantFlags { + TranslucentStatus = 0x04000000, + DrawsSystemBarBackgrounds = 0x80000000, +}; +} +} // namespace WindowManager +} // namespace Android + static Controller *controllerForAndroid = nullptr; void applyThemingForAndroid() { - QtAndroid::androidActivity().callMethod("applyTheming", "()"); + QtAndroid::runOnAndroidThread([=]() { + const auto color = QColor(QLatin1String("#2c714a")).rgba(); + QAndroidJniObject window = QtAndroid::androidActivity().callObjectMethod("getWindow", "()Landroid/view/Window;"); + window.callMethod("addFlags", "(I)V", Android::WindowManager::LayoutParams::DrawsSystemBarBackgrounds); + window.callMethod("clearFlags", "(I)V", Android::WindowManager::LayoutParams::TranslucentStatus); + window.callMethod("setStatusBarColor", "(I)V", color); + window.callMethod("setNavigationBarColor", "(I)V", color); + }); } void registerControllerForAndroid(Controller *controller) diff --git a/quickgui/android.h b/quickgui/android.h index c4578d5..81a590b 100644 --- a/quickgui/android.h +++ b/quickgui/android.h @@ -12,11 +12,12 @@ namespace QtGui { class Controller; -void applyThemingForAndroid(); +bool applyThemingForAndroid(); void registerControllerForAndroid(Controller *controller); bool showAndroidFileDialog(bool existing); int openFileDescriptorFromAndroidContentUrl(const QString &url, const QString &mode); void writeToAndroidLog(QtMsgType type, const QMessageLogContext &context, const QString &msg); +void setupAndroidSpecifics(); } diff --git a/quickgui/initiatequick.cpp b/quickgui/initiatequick.cpp index b789d58..84f2696 100644 --- a/quickgui/initiatequick.cpp +++ b/quickgui/initiatequick.cpp @@ -30,24 +30,11 @@ using namespace ApplicationUtilities; namespace QtGui { -#ifdef Q_OS_ANDROID -namespace Android { -namespace WindowManager { -namespace LayoutParams { -enum RelevantFlags { - TranslucentStatus = 0x04000000, - DrawsSystemBarBackgrounds = 0x80000000, -}; -} -} // namespace WindowManager -} // namespace Android -#endif - int runQuickGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs, const QString &file) { - // setup logging for Android + // setup Android-specifics (logging, theming) #ifdef Q_OS_ANDROID - qInstallMessageHandler(writeToAndroidLog); + setupAndroidSpecifics(); #endif // init application @@ -100,10 +87,6 @@ int runQuickGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs, c context->setContextProperty(QStringLiteral("dependencyVersions"), QStringList(DEPENCENCY_VERSIONS)); engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml"))); -#ifdef Q_OS_ANDROID - applyThemingForAndroid(); -#endif - // run event loop return a.exec(); } diff --git a/resources/qtquickcontrols2.conf b/resources/qtquickcontrols2.conf index f347b4e..9dc2cce 100644 --- a/resources/qtquickcontrols2.conf +++ b/resources/qtquickcontrols2.conf @@ -1,8 +1,9 @@ [Material] -Primary=#000000 -Accent=#000000 +Primary=#2c714a +Accent=#2c8352 Theme=System [Universal] -Accent=#000000 +Primary=#2c714a +Accent=#2c8352 Theme=System