From 7bbe3fb9b57dc3b8c49552784dc9c724e400cddd Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Fri, 19 Feb 2021 12:04:47 +0100 Subject: [PATCH] allow to choose Light/Dark Design as indicated by the system settings (Android 10+), closes https://github.com/PhilippC/keepass2android/issues/966 --- src/keepass2android/Resources/values-de/strings.xml | 1 + src/keepass2android/Resources/values/config.xml | 3 ++- src/keepass2android/Resources/values/strings.xml | 1 + src/keepass2android/Utils/ActivityDesign.cs | 11 +++++++++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/keepass2android/Resources/values-de/strings.xml b/src/keepass2android/Resources/values-de/strings.xml index 30f25237..92ae5b65 100644 --- a/src/keepass2android/Resources/values-de/strings.xml +++ b/src/keepass2android/Resources/values-de/strings.xml @@ -943,6 +943,7 @@ Erstes öffentliches Release Hell Dunkel + Wie System Design diff --git a/src/keepass2android/Resources/values/config.xml b/src/keepass2android/Resources/values/config.xml index 9ee8fe7d..38c93f9c 100644 --- a/src/keepass2android/Resources/values/config.xml +++ b/src/keepass2android/Resources/values/config.xml @@ -177,10 +177,11 @@ 28 - Light + System Light Dark + System WARN diff --git a/src/keepass2android/Resources/values/strings.xml b/src/keepass2android/Resources/values/strings.xml index f4ad145f..0b63b250 100644 --- a/src/keepass2android/Resources/values/strings.xml +++ b/src/keepass2android/Resources/values/strings.xml @@ -1198,6 +1198,7 @@ Initial public release Light Dark + System settings Design diff --git a/src/keepass2android/Utils/ActivityDesign.cs b/src/keepass2android/Utils/ActivityDesign.cs index d47a5549..9d345433 100644 --- a/src/keepass2android/Utils/ActivityDesign.cs +++ b/src/keepass2android/Utils/ActivityDesign.cs @@ -1,6 +1,8 @@ using System; using System.Linq; using Android.App; +using Android.Content.Res; +using Android.OS; using Android.Preferences; namespace keepass2android @@ -121,6 +123,15 @@ namespace keepass2android { var prefs = PreferenceManager.GetDefaultSharedPreferences(_activity); string design = prefs.GetString(_activity.GetString(Resource.String.design_key), _activity.GetString(Resource.String.design_default)); + + if ((design == "System") && (int)Build.VERSION.SdkInt>=29 && _activity.Resources.Configuration != null) + { + UiMode nightModeFlags = ((UiMode)((int)_activity.Resources.Configuration.UiMode & (int)Android.Content.Res.UiMode.NightMask)); + + if (nightModeFlags == UiMode.NightYes) + return true; + } + bool dark = (design == "Dark"); return dark; }