Quick GUI: Change theming to use green colors

This commit is contained in:
Martchus 2018-12-08 19:18:12 +01:00
parent 08268f50ee
commit c090141ec3
5 changed files with 27 additions and 32 deletions

View File

@ -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) {

View File

@ -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<void>("applyTheming", "()");
QtAndroid::runOnAndroidThread([=]() {
const auto color = QColor(QLatin1String("#2c714a")).rgba();
QAndroidJniObject window = QtAndroid::androidActivity().callObjectMethod("getWindow", "()Landroid/view/Window;");
window.callMethod<void>("addFlags", "(I)V", Android::WindowManager::LayoutParams::DrawsSystemBarBackgrounds);
window.callMethod<void>("clearFlags", "(I)V", Android::WindowManager::LayoutParams::TranslucentStatus);
window.callMethod<void>("setStatusBarColor", "(I)V", color);
window.callMethod<void>("setNavigationBarColor", "(I)V", color);
});
}
void registerControllerForAndroid(Controller *controller)

View File

@ -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();
}

View File

@ -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();
}

View File

@ -1,8 +1,9 @@
[Material]
Primary=#000000
Accent=#000000
Primary=#2c714a
Accent=#2c8352
Theme=System
[Universal]
Accent=#000000
Primary=#2c714a
Accent=#2c8352
Theme=System