diff --git a/nymea-app/images.qrc b/nymea-app/images.qrc
index dabaebe0..c16b3c8c 100644
--- a/nymea-app/images.qrc
+++ b/nymea-app/images.qrc
@@ -80,7 +80,7 @@
ui/images/find.svg
ui/images/fingerprint.svg
ui/images/go-down.svg
- ui/images/guh-logo.svg
+ ui/images/nymea-logo.svg
ui/images/info.svg
ui/images/light-off.svg
ui/images/light-on.svg
@@ -256,6 +256,6 @@
ui/images/sensors/water.svg
ui/images/zigbee/deCONZ.svg
ui/images/zigbee/NXP.svg
- ui/images/nymea-splash-horizontal.svg
+ ui/images/nymea-splash.svg
diff --git a/nymea-app/main.cpp b/nymea-app/main.cpp
index 377210aa..03cbe386 100644
--- a/nymea-app/main.cpp
+++ b/nymea-app/main.cpp
@@ -81,7 +81,6 @@ int main(int argc, char *argv[])
QCommandLineOption styleOption = QCommandLineOption({"s", "style"}, "Override the style. Style in settings will be disabled.", "style");
parser.addOption(styleOption);
QCommandLineOption defaultStyleOption = QCommandLineOption({"d", "default-style"}, "The default style to be used if there is no style explicitly selected by the user yet.", "style");
- defaultStyleOption.setDefaultValue("light");
parser.addOption(defaultStyleOption);
#endif
QCommandLineOption defaultViewsOption = QCommandLineOption({"v", "default-views"}, "The main views enabled by default if there is no configuration done by the user and the style doesn't dictate them, comma separated.", "mainviews");
@@ -119,9 +118,17 @@ int main(int argc, char *argv[])
StyleController styleController(BRANDING);
styleController.lockToStyle(BRANDING);
#else
- StyleController styleController(parser.value(defaultStyleOption));
+ QString defaultStyle;
+ if (parser.isSet(defaultStyleOption)) {
+ defaultStyle = parser.value(defaultStyleOption);
+ } else if (PlatformHelper::instance()->darkModeEnabled()) {
+ defaultStyle = "dark";
+ } else {
+ defaultStyle = "light";
+ }
+ StyleController styleController(defaultStyle);
if (parser.isSet(styleOption)) {
- qCInfo(dcApplication()) << "Setting style to" << parser.value(styleOption);
+ qCInfo(dcApplication()) << "Setting style to" << defaultStyle;
styleController.lockToStyle(parser.value(styleOption));
}
#endif
diff --git a/nymea-app/nymea-app.pro b/nymea-app/nymea-app.pro
index 50757505..328e48c8 100644
--- a/nymea-app/nymea-app.pro
+++ b/nymea-app/nymea-app.pro
@@ -55,10 +55,6 @@ win32 {
QT += webview
}
-linux:!android: {
- PKGCONFIG += ply-boot-client
-}
-
android {
include(../3rdParty/android/android_openssl/openssl.pri)
@@ -145,7 +141,6 @@ ios: {
QMAKE_BUNDLE = nymeaApp
# Configure generated xcode project to have our bundle id
xcode_product_bundle_identifier_setting.value = $${QMAKE_TARGET_BUNDLE_PREFIX}.$${QMAKE_BUNDLE}
- QMAKE_ASSET_CATALOGS += ../packaging/ios/AppIcons.xcassets
plist.input = ../packaging/ios/Info.plist.in
plist.output = $$OUT_PWD/Info.plist
QMAKE_SUBSTITUTES += plist
@@ -154,9 +149,10 @@ ios: {
../packaging/ios/pushnotifications.entitlements \
../packaging/ios/GoogleService-Info.plist
- ios_icon_files.files += $$files(../packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon*.png)
- ios_launch_images.files += $$files(../packaging/ios/LaunchImage*.png) ../packaging/ios/LaunchScreen1.xib
- QMAKE_BUNDLE_DATA += ios_icon_files ios_launch_images
+ QMAKE_ASSET_CATALOGS += ../packaging/ios/Assets.xcassets
+
+ ios_launch_images.files += ../packaging/ios/NymeaLaunchScreen.storyboard
+ QMAKE_BUNDLE_DATA += ios_launch_images
IOS_DEVELOPMENT_TEAM.name = DEVELOPMENT_TEAM
IOS_DEVELOPMENT_TEAM.value = Z45PLKLTHM
diff --git a/nymea-app/platformhelper.cpp b/nymea-app/platformhelper.cpp
index fcf84a4b..4e01fb86 100644
--- a/nymea-app/platformhelper.cpp
+++ b/nymea-app/platformhelper.cpp
@@ -173,6 +173,11 @@ void PlatformHelper::setBottomPanelColor(const QColor &color)
}
}
+bool PlatformHelper::darkModeEnabled() const
+{
+ return false;
+}
+
bool PlatformHelper::splashVisible() const
{
return m_splashVisible;
diff --git a/nymea-app/platformhelper.h b/nymea-app/platformhelper.h
index f3ad8edb..8e8a30ec 100644
--- a/nymea-app/platformhelper.h
+++ b/nymea-app/platformhelper.h
@@ -53,6 +53,7 @@ class PlatformHelper : public QObject
Q_PROPERTY(int screenBrightness READ screenBrightness WRITE setScreenBrightness NOTIFY screenBrightnessChanged)
Q_PROPERTY(QColor topPanelColor READ topPanelColor WRITE setTopPanelColor NOTIFY topPanelColorChanged)
Q_PROPERTY(QColor bottomPanelColor READ bottomPanelColor WRITE setBottomPanelColor NOTIFY bottomPanelColorChanged)
+ Q_PROPERTY(bool darkModeEnabled READ darkModeEnabled NOTIFY darkModeEnabledChanged)
public:
enum HapticsFeedback {
@@ -86,6 +87,8 @@ public:
virtual QColor bottomPanelColor() const;
virtual void setBottomPanelColor(const QColor &color);
+ virtual bool darkModeEnabled() const;
+
virtual bool splashVisible() const;
virtual void setSplashVisible(bool splashVisible);
Q_INVOKABLE virtual void hideSplashScreen();
@@ -105,6 +108,7 @@ signals:
void screenBrightnessChanged();
void topPanelColorChanged();
void bottomPanelColorChanged();
+ void darkModeEnabledChanged();
void splashVisibleChanged();
protected:
diff --git a/nymea-app/platformintegration/android/java/io/guh/nymeaapp/NymeaAppActivity.java b/nymea-app/platformintegration/android/java/io/guh/nymeaapp/NymeaAppActivity.java
index 92e24bf2..fc24626d 100644
--- a/nymea-app/platformintegration/android/java/io/guh/nymeaapp/NymeaAppActivity.java
+++ b/nymea-app/platformintegration/android/java/io/guh/nymeaapp/NymeaAppActivity.java
@@ -12,18 +12,28 @@ import android.provider.Settings.Secure;
import android.os.Vibrator;
import android.net.Uri;
import android.support.v4.content.FileProvider;
+import android.content.res.Configuration;
public class NymeaAppActivity extends org.qtproject.qt5.android.bindings.QtActivity
{
private static final String TAG = "nymea-app: NymeaAppActivity";
private static Context context = null;
+ private static native void darkModeEnabledChangedJNI();
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.context = getApplicationContext();
}
+ @Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ NymeaAppActivity.darkModeEnabledChangedJNI();
+ }
+
+
public static Context getAppContext() {
return NymeaAppActivity.context;
}
@@ -66,4 +76,8 @@ public class NymeaAppActivity extends org.qtproject.qt5.android.bindings.QtActiv
Log.d(TAG, "Intent not resolved");
}
}
+
+ public boolean nightModeEnabled() {
+ return (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
+ }
}
diff --git a/nymea-app/platformintegration/android/platformhelperandroid.cpp b/nymea-app/platformintegration/android/platformhelperandroid.cpp
index e058da4c..318fa18e 100644
--- a/nymea-app/platformintegration/android/platformhelperandroid.cpp
+++ b/nymea-app/platformintegration/android/platformhelperandroid.cpp
@@ -42,8 +42,28 @@
// View
#define SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 0x00002000
+static PlatformHelperAndroid *m_instance = nullptr;
-static PlatformHelperAndroid *m_instance;
+static JNINativeMethod methods[] = {
+ { "darkModeEnabledChangedJNI", "()V", (void *)PlatformHelperAndroid::darkModeEnabledChangedJNI },
+};
+
+JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* /*reserved*/)
+{
+ JNIEnv* env;
+ if (vm->GetEnv(reinterpret_cast(&env), JNI_VERSION_1_6) != JNI_OK) {
+ return JNI_ERR;
+ }
+
+ jclass javaClass = env->FindClass("io/guh/nymeaapp/NymeaAppActivity");
+ if (!javaClass)
+ return JNI_ERR;
+
+ if (env->RegisterNatives(javaClass, methods, sizeof(methods) / sizeof(methods[0])) < 0) {
+ return JNI_ERR;
+ }
+ return JNI_VERSION_1_6;
+}
static QAndroidJniObject getAndroidWindow()
{
@@ -54,6 +74,7 @@ static QAndroidJniObject getAndroidWindow()
PlatformHelperAndroid::PlatformHelperAndroid(QObject *parent) : PlatformHelper(parent)
{
m_instance = this;
+
}
void PlatformHelperAndroid::requestPermissions()
@@ -178,6 +199,11 @@ void PlatformHelperAndroid::setBottomPanelColor(const QColor &color)
return;
}
+bool PlatformHelperAndroid::darkModeEnabled() const
+{
+ return QtAndroid::androidActivity().callMethod("darkModeEnabled");
+}
+
void PlatformHelperAndroid::shareFile(const QString &fileName)
{
QtAndroid::androidActivity().callMethod("shareFile", "(Ljava/lang/String;)V",
@@ -193,6 +219,13 @@ void PlatformHelperAndroid::permissionRequestFinished(const QtAndroid::Permissio
emit m_instance->permissionsRequestFinished();
}
+void PlatformHelperAndroid::darkModeEnabledChangedJNI()
+{
+ if (m_instance) {
+ emit m_instance->darkModeEnabledChanged();
+ }
+}
+
void PlatformHelperAndroid::setTopPanelTheme(PlatformHelperAndroid::Theme theme)
{
if (QtAndroid::androidSdkVersion() < 23)
diff --git a/nymea-app/platformintegration/android/platformhelperandroid.h b/nymea-app/platformintegration/android/platformhelperandroid.h
index 62980518..bfbe5c7e 100644
--- a/nymea-app/platformintegration/android/platformhelperandroid.h
+++ b/nymea-app/platformintegration/android/platformhelperandroid.h
@@ -62,8 +62,12 @@ public:
void setTopPanelTheme(Theme theme);
void setBottomPanelColor(const QColor &color) override;
+ bool darkModeEnabled() const override;
+
void shareFile(const QString &fileName) override;
+ static void darkModeEnabledChangedJNI();
+
private:
static void permissionRequestFinished(const QtAndroid::PermissionResultMap &);
};
diff --git a/nymea-app/platformintegration/generic/screenhelper.cpp b/nymea-app/platformintegration/generic/screenhelper.cpp
index 96b234a9..833a3b52 100644
--- a/nymea-app/platformintegration/generic/screenhelper.cpp
+++ b/nymea-app/platformintegration/generic/screenhelper.cpp
@@ -87,8 +87,16 @@ ScreenHelper::ScreenHelper(QObject *parent) : QObject(parent)
foreach (QWindow *w, qApp->topLevelWindows()) {
w->installEventFilter(this);
+ m_watchedWindows.append(w);
}
+ connect(qApp, &QGuiApplication::focusWindowChanged, this, [=](QWindow *w){
+ if (!m_watchedWindows.contains(w)) {
+ w->installEventFilter(this);
+ m_watchedWindows.append(w);
+ }
+ });
+
QSettings settings;
m_currentBrightness = settings.value("screenBrightness", 80).toInt();
@@ -122,6 +130,7 @@ int ScreenHelper::screenTimeout() const
void ScreenHelper::setScreenTimeout(int timeout)
{
+ qCInfo(dcPlatformIntegration()) << "Set screen timeout to" << timeout << "ms";
m_screenDimTimer.setInterval(timeout);
QSettings settings;
settings.setValue("screenOffTimeout", timeout);
diff --git a/nymea-app/platformintegration/generic/screenhelper.h b/nymea-app/platformintegration/generic/screenhelper.h
index 956b45ca..035a5782 100644
--- a/nymea-app/platformintegration/generic/screenhelper.h
+++ b/nymea-app/platformintegration/generic/screenhelper.h
@@ -35,6 +35,8 @@
#include
#include
+class QWindow;
+
class ScreenHelper : public QObject
{
Q_OBJECT
@@ -63,6 +65,8 @@ private:
QFile m_powerFile;
QFile m_brightnessFile;
+ QList m_watchedWindows;
+
bool m_cursorHidden = false;
int m_maxBrightness = -1;
diff --git a/nymea-app/platformintegration/ios/platformhelperios.h b/nymea-app/platformintegration/ios/platformhelperios.h
index ec431e47..f28e2e81 100644
--- a/nymea-app/platformintegration/ios/platformhelperios.h
+++ b/nymea-app/platformintegration/ios/platformhelperios.h
@@ -57,6 +57,8 @@ public:
void setTopPanelColor(const QColor &color) override;
void setBottomPanelColor(const QColor &color) override;
+ bool darkModeEnabled() const override;
+
void shareFile(const QString &fileName) override;
private:
diff --git a/nymea-app/styles/light/logo.svg b/nymea-app/styles/light/logo.svg
index 9d1907c3..03fb23c5 100644
--- a/nymea-app/styles/light/logo.svg
+++ b/nymea-app/styles/light/logo.svg
@@ -15,7 +15,6 @@
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="logo.svg"
- inkscape:export-filename="/home/micha/Develop/mea/mea/guh-logo-256x256.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
+ height="595.28003"
+ inkscape:export-filename="/home/micha/Develop/nymea-app/packaging/linux-common/nymea-splash.png"
+ inkscape:export-xdpi="218.94"
+ inkscape:export-ydpi="218.94">
@@ -41,14 +44,15 @@
inkscape:window-height="873"
id="namedview106"
showgrid="true"
- inkscape:zoom="0.44473763"
- inkscape:cx="248.2707"
- inkscape:cy="236.96862"
+ inkscape:zoom="0.48384218"
+ inkscape:cx="372.45009"
+ inkscape:cy="442.5357"
inkscape:window-x="60"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1"
- units="px">
+ units="px"
+ inkscape:document-rotation="0">
@@ -476,18 +480,224 @@
style="stop-color:#57BAAE"
id="stop158" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Artboard 1 copy 5 Kopie 2
@@ -799,23 +1009,33 @@
+ class="cls-4"
+ d="m 458.45974,254.10869 -0.15,0.1 z"
+ id="path1063"
+ style="fill:url(#linear-gradient-3-5)" />
+ d="m 342.16974,376.39868 c 1,-0.25 2.33,-0.52 4,-0.8 a 34.89,34.89 0 0 1 5.74,-0.42 12.38,12.38 0 0 1 4.84,0.82 7.7,7.7 0 0 1 3.08,2.3 9.12,9.12 0 0 1 1.62,3.55 20.81,20.81 0 0 1 0.47,4.56 v 13.73 h -4.37 v -12.74 a 21.09,21.09 0 0 0 -0.31,-3.85 6.47,6.47 0 0 0 -1,-2.59 4,4 0 0 0 -1.88,-1.43 8.16,8.16 0 0 0 -2.91,-0.45 c -0.47,0 -1,0 -1.46,0.05 -0.46,0.05 -1,0.07 -1.43,0.12 -0.43,0.05 -0.87,0.10001 -1.23,0.16001 l -0.77,0.14 v 20.63999 h -4.37 z"
+ id="path1079"
+ style="fill:#fffff8;fill-opacity:1" />
+ d="m 373.04974,404.68868 a 7.7,7.7 0 0 0 1.34,0.45 6.55,6.55 0 0 0 1.61,0.26 6.35,6.35 0 0 0 4,-1.15 11.64,11.64 0 0 0 2.77,-4.06 128.42,128.42 0 0 1 -5.66,-11.63999 103.32,103.32 0 0 1 -4.25,-12.81001 h 4.7 c 0.34,1.42001 0.76,2.94 1.24,4.56001 0.48,1.62 1,3.31 1.63,5 0.63,1.68999 1.23,3.44999 1.92,5.17 0.69,1.72 1.41,3.39 2.17,5 q 1.79,-4.94 3.1,-9.78 1.31,-4.84 2.49,-10 h 4.51 q -1.69,6.91 -3.76,13.28 -2.07,6.37 -4.46,11.92 a 24.85,24.85 0 0 1 -2,3.64 10.55,10.55 0 0 1 -2.23,2.51 8,8 0 0 1 -2.75,1.45999 11.85,11.85 0 0 1 -3.45,0.47001 8,8 0 0 1 -1.08,-0.07 c -0.38,-0.05 -0.75,-0.11 -1.11,-0.19 a 9.18,9.18 0 0 1 -1,-0.26 5.09,5.09 0 0 1 -0.64,-0.23 z"
+ id="path1081"
+ style="fill:#fffff8;fill-opacity:1" />
+ d="m 404.86974,376.39868 c 1,-0.25 2.33,-0.52 4,-0.8 a 34.43,34.43 0 0 1 5.71,-0.42 10.83,10.83 0 0 1 3.95,0.63 7,7 0 0 1 2.68,1.86 c 0.22,-0.16 0.56,-0.38 1,-0.66 a 11.94,11.94 0 0 1 1.74,-0.82 18.64,18.64 0 0 1 2.31,-0.71 11.75,11.75 0 0 1 2.72,-0.3 11.06,11.06 0 0 1 4.61,0.82 6.54,6.54 0 0 1 2.79,2.33 9,9 0 0 1 1.37,3.57 27.44,27.44 0 0 1 0.35,4.51 v 13.73 h -4.37 v -12.74 a 28.09,28.09 0 0 0 -0.21,-3.71 7.19,7.19 0 0 0 -0.8,-2.58999 3.66,3.66 0 0 0 -1.6,-1.52 5.94,5.94 0 0 0 -2.6,-0.46 8.47,8.47 0 0 0 -3.54,0.89 12.23,12.23 0 0 0 -2,1.09 11.82,11.82 0 0 1 0.45,2.31 23,23 0 0 1 0.19,3.05 v 13.73 h -4.32 v -12.79001 a 24.63,24.63 0 0 0 -0.24,-3.71 7.38,7.38 0 0 0 -0.82,-2.58999 3.61,3.61 0 0 0 -1.6,-1.52 5.78,5.78 0 0 0 -2.56,-0.5 c -0.44,0 -0.91,0 -1.41,0.05 -0.5,0.05 -1,0.07 -1.43,0.12 -0.43,0.05 -0.87,0.1 -1.25,0.16 l -0.75,0.14 v 20.64 h -4.37 z"
+ id="path1083"
+ style="fill:#fffff8;fill-opacity:1" />
+ d="m 490.31974,375.07868 a 12.47,12.47 0 0 1 4.44,0.69 7.17,7.17 0 0 1 2.92,1.92 7.34,7.34 0 0 1 1.57,3 14.51,14.51 0 0 1 0.47,3.79001 v 15.18 c -0.38,0.09 -1,0.24 -1.64,0.35 -0.64,0.11 -1.37,0.21 -2.21,0.31 -0.84,0.1 -1.76,0.18 -2.75,0.25 -0.99,0.07 -2,0.12 -2.94,0.12 a 16.23,16.23 0 0 1 -3.81,-0.42 8.4,8.4 0 0 1 -3,-1.34 6.12,6.12 0 0 1 -2,-2.42 8.47,8.47 0 0 1 -0.7,-3.62 6.94,6.94 0 0 1 0.82,-3.48 6.61,6.61 0 0 1 2.23,-2.35001 10.44,10.44 0 0 1 3.29,-1.31 17.46,17.46 0 0 1 4,-0.43 c 0.44,0 0.89,0 1.36,0.07 0.47,0.07 0.92,0.11 1.34,0.19 l 1.11,0.21 0.65,0.14 v -1.22 a 9.67,9.67 0 0 0 -0.23,-2.14 5,5 0 0 0 -0.85,-1.88 4.27,4.27 0 0 0 -1.67,-1.31 6.48,6.48 0 0 0 -2.74,-0.5 19.9,19.9 0 0 0 -3.73,0.36 11.47,11.47 0 0 0 -2.42,0.82 l -0.71,-3.62 a 12.45,12.45 0 0 1 3,-1 24,24 0 0 1 4.2,-0.36 z m 0.38,21.91 c 1,0 1.95,0 2.75,-0.07 a 12.76,12.76 0 0 0 2,-0.26 v -7.26001 a 5.81,5.81 0 0 0 -1.52,-0.4 17.06,17.06 0 0 0 -2.56,-0.16 17.48,17.48 0 0 0 -2.1,0.14 6.32,6.32 0 0 0 -2,0.59 4.13,4.13 0 0 0 -1.52,1.22 3.2,3.2 0 0 0 -0.62,2 3.52,3.52 0 0 0 1.51,3.27 7.82,7.82 0 0 0 4.06,0.93 z"
+ id="path1085"
+ style="fill:#fffff8;fill-opacity:1" />
+
diff --git a/nymea-app/ui/images/nymea-splash.svg b/nymea-app/ui/images/nymea-splash.svg
new file mode 100644
index 00000000..471beede
--- /dev/null
+++ b/nymea-app/ui/images/nymea-splash.svg
@@ -0,0 +1,1040 @@
+
+
diff --git a/packaging/android/appicon.svg b/packaging/android/appicon.svg
index fb743ef7..fcdd3b76 100644
--- a/packaging/android/appicon.svg
+++ b/packaging/android/appicon.svg
@@ -15,7 +15,6 @@
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="appicon.svg"
- inkscape:export-filename="/home/micha/Develop/mea/mea/guh-logo-256x256.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
+
+ -
+
+
+
+
+
+
diff --git a/packaging/android/res/drawable/splash.xml b/packaging/android/res/drawable/splash.xml
index e155ae71..129bf592 100644
--- a/packaging/android/res/drawable/splash.xml
+++ b/packaging/android/res/drawable/splash.xml
@@ -5,6 +5,6 @@
-
diff --git a/packaging/android/res/mipmap-anydpi/nymea_splash.xml b/packaging/android/res/mipmap-anydpi/nymea_splash.xml
new file mode 100644
index 00000000..1f84a9b4
--- /dev/null
+++ b/packaging/android/res/mipmap-anydpi/nymea_splash.xml
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packaging/android/res/mipmap-anydpi/nymea_splash_dark.xml b/packaging/android/res/mipmap-anydpi/nymea_splash_dark.xml
new file mode 100644
index 00000000..24827502
--- /dev/null
+++ b/packaging/android/res/mipmap-anydpi/nymea_splash_dark.xml
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packaging/android/res/mipmap-anydpi/nymea_splash_horizontal.xml b/packaging/android/res/mipmap-anydpi/nymea_splash_horizontal.xml
deleted file mode 100644
index 2f251e9a..00000000
--- a/packaging/android/res/mipmap-anydpi/nymea_splash_horizontal.xml
+++ /dev/null
@@ -1,272 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packaging/android/res/values-night/colors.xml b/packaging/android/res/values-night/colors.xml
new file mode 100644
index 00000000..e5a8857a
--- /dev/null
+++ b/packaging/android/res/values-night/colors.xml
@@ -0,0 +1,4 @@
+
+
+ #ffffff
+
diff --git a/packaging/android/res/values-night/splashscreentheme.xml b/packaging/android/res/values-night/splashscreentheme.xml
new file mode 100644
index 00000000..915db62c
--- /dev/null
+++ b/packaging/android/res/values-night/splashscreentheme.xml
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon1024x1024.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon1024x1024.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon167x167~ipad.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon167x167~ipad.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon167x167~ipad.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon167x167~ipad.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon20x20.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon20x20.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon20x20.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon20x20.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon20x20@2x-1.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x-1.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon20x20@2x-1.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x-1.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon29x29.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon29x29.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon29x29.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon29x29@2x-1.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x-1.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon29x29@2x-1.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x-1.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon40x40.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon40x40.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon40x40.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon40x40.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon40x40@2x-1.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x-1.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon40x40@2x-1.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x-1.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon76x76.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon76x76.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon76x76.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon76x76.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon76x76@2x.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon76x76@2x.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon76x76@2x.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon76x76@2x.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x.png b/packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x.png
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x.png
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x.png
diff --git a/packaging/ios/AppIcons.xcassets/AppIcon.appiconset/Contents.json b/packaging/ios/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from packaging/ios/AppIcons.xcassets/AppIcon.appiconset/Contents.json
rename to packaging/ios/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/packaging/ios/Assets.xcassets/Contents.json b/packaging/ios/Assets.xcassets/Contents.json
new file mode 100644
index 00000000..73c00596
--- /dev/null
+++ b/packaging/ios/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/packaging/ios/Assets.xcassets/LaunchImage.imageset/Contents.json b/packaging/ios/Assets.xcassets/LaunchImage.imageset/Contents.json
new file mode 100644
index 00000000..6a20736e
--- /dev/null
+++ b/packaging/ios/Assets.xcassets/LaunchImage.imageset/Contents.json
@@ -0,0 +1,56 @@
+{
+ "images" : [
+ {
+ "filename" : "LaunchScreenL@1x.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "filename" : "LaunchScreenD@1x.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "LaunchScreenL@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "filename" : "LaunchScreenD@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "LaunchScreenL@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "filename" : "LaunchScreenD@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenD@1x.png b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenD@1x.png
new file mode 100644
index 00000000..52413457
Binary files /dev/null and b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenD@1x.png differ
diff --git a/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenD@2x.png b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenD@2x.png
new file mode 100644
index 00000000..3909a034
Binary files /dev/null and b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenD@2x.png differ
diff --git a/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenD@3x.png b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenD@3x.png
new file mode 100644
index 00000000..2881fb03
Binary files /dev/null and b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenD@3x.png differ
diff --git a/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenL@1x.png b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenL@1x.png
new file mode 100644
index 00000000..2c498457
Binary files /dev/null and b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenL@1x.png differ
diff --git a/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenL@2x.png b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenL@2x.png
new file mode 100644
index 00000000..77d234d4
Binary files /dev/null and b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenL@2x.png differ
diff --git a/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenL@3x.png b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenL@3x.png
new file mode 100644
index 00000000..b5420c41
Binary files /dev/null and b/packaging/ios/Assets.xcassets/LaunchImage.imageset/LaunchScreenL@3x.png differ
diff --git a/packaging/ios/Info.plist.in b/packaging/ios/Info.plist.in
index 43508eeb..0001caa9 100644
--- a/packaging/ios/Info.plist.in
+++ b/packaging/ios/Info.plist.in
@@ -25,7 +25,7 @@
NOTE
This file was generated by Qt/QMake.
UILaunchStoryboardName
- LaunchScreen1
+ NymeaLaunchScreen
UISupportedInterfaceOrientations
UIInterfaceOrientationPortrait
diff --git a/packaging/ios/LaunchImage-iOS7@2x.png b/packaging/ios/LaunchImage-iOS7@2x.png
deleted file mode 100644
index 0f37e19d..00000000
Binary files a/packaging/ios/LaunchImage-iOS7@2x.png and /dev/null differ
diff --git a/packaging/ios/LaunchScreen1.xib b/packaging/ios/LaunchScreen1.xib
deleted file mode 100644
index fde31be0..00000000
--- a/packaging/ios/LaunchScreen1.xib
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packaging/ios/NymeaLaunchScreen.storyboard b/packaging/ios/NymeaLaunchScreen.storyboard
new file mode 100644
index 00000000..225c3438
--- /dev/null
+++ b/packaging/ios/NymeaLaunchScreen.storyboard
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packaging/ios/platformhelperios.mm b/packaging/ios/platformhelperios.mm
index 22d6fb6a..d64de231 100644
--- a/packaging/ios/platformhelperios.mm
+++ b/packaging/ios/platformhelperios.mm
@@ -128,6 +128,14 @@ void PlatformHelperIOS::setBottomPanelColorInternal(const QColor &color)
app.windows.firstObject.backgroundColor = [UIColor colorWithRed:color.redF() green:color.greenF() blue:color.blueF() alpha:color.alphaF()];
}
+bool PlatformHelperIOS::darkModeEnabled() const
+{
+ if (@available(iOS 12.0, *)) {
+ return UIScreen.mainScreen.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark;
+ }
+ return false;
+}
+
void PlatformHelperIOS::shareFile(const QString &fileName)
{
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:@[[NSURL fileURLWithPath:fileName.toNSString()]] applicationActivities:nil];
diff --git a/packaging/ios/splash-dark.svg b/packaging/ios/splash-dark.svg
new file mode 100644
index 00000000..3aa0a028
--- /dev/null
+++ b/packaging/ios/splash-dark.svg
@@ -0,0 +1,1034 @@
+
+
diff --git a/packaging/osx/AppIcon.svg b/packaging/ios/splash-light.svg
similarity index 52%
rename from packaging/osx/AppIcon.svg
rename to packaging/ios/splash-light.svg
index 301ab05e..b02c3ef1 100644
--- a/packaging/osx/AppIcon.svg
+++ b/packaging/ios/splash-light.svg
@@ -1,25 +1,262 @@
-
-
diff --git a/packaging/linux-common/nymea-app-plain.svg b/packaging/linux-common/nymea-app-plain.svg
deleted file mode 100644
index 064fcc23..00000000
--- a/packaging/linux-common/nymea-app-plain.svg
+++ /dev/null
@@ -1,555 +0,0 @@
-
-
diff --git a/packaging/linux-common/nymea-splash-horizontal.png b/packaging/linux-common/nymea-splash-horizontal.png
deleted file mode 100644
index 40f2abcd..00000000
Binary files a/packaging/linux-common/nymea-splash-horizontal.png and /dev/null differ
diff --git a/packaging/linux-common/nymea-splash.png b/packaging/linux-common/nymea-splash.png
new file mode 100644
index 00000000..bf47e43d
Binary files /dev/null and b/packaging/linux-common/nymea-splash.png differ
diff --git a/packaging/linux-common/nymea-splashscreen.service b/packaging/linux-common/nymea-splashscreen.service
index 4364719b..25c2a786 100644
--- a/packaging/linux-common/nymea-splashscreen.service
+++ b/packaging/linux-common/nymea-splashscreen.service
@@ -6,7 +6,7 @@ ConditionKernelCommandLine=!nosplash
ConditionKernelCommandLine=splash
[Service]
-ExecStart=/usr/bin/fbi --noverbose -d /dev/fb0 -a /usr/share/nymea-splashscreen/nymea-splash-horizontal.png -fitwidth
+ExecStart=/usr/bin/fbi --noverbose -d /dev/fb0 -a /usr/share/nymea-splashscreen/nymea-splash.png -fitwidth
StandardInput=tty
StandardOutput=tty
#TTYPath=/dev/tty1
diff --git a/packaging/ubuntu/click/appicon.svg b/packaging/ubuntu/click/appicon.svg
index 7f1ddd65..b8f096ee 100644
--- a/packaging/ubuntu/click/appicon.svg
+++ b/packaging/ubuntu/click/appicon.svg
@@ -15,7 +15,6 @@
version="1.1"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="appicon.svg"
- inkscape:export-filename="/home/micha/Develop/mea/mea/guh-logo-256x256.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
= 9.0.0),
qtconnectivity5-dev,
qtdeclarative5-dev,
qtquickcontrols2-5-dev,
- libplymouth-dev,
Package: nymea-app
Architecture: any
diff --git a/packaging/ubuntu/debian/nymea-splashscreen.install b/packaging/ubuntu/debian/nymea-splashscreen.install
index 8b35f7bc..5bfae213 100644
--- a/packaging/ubuntu/debian/nymea-splashscreen.install
+++ b/packaging/ubuntu/debian/nymea-splashscreen.install
@@ -1,2 +1,2 @@
packaging/linux-common/nymea-splashscreen.service /lib/systemd/system/
-packaging/linux-common/nymea-splash-horizontal.png /usr/share/nymea-splashscreen/
+packaging/linux-common/nymea-splash.png /usr/share/nymea-splashscreen/