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;
}