allow to choose Light/Dark Design as indicated by the system settings (Android 10+), closes https://github.com/PhilippC/keepass2android/issues/966

This commit is contained in:
Philipp Crocoll
2021-02-19 12:04:47 +01:00
parent e00eb2a5bc
commit 7bbe3fb9b5
4 changed files with 15 additions and 1 deletions

View File

@@ -943,6 +943,7 @@ Erstes öffentliches Release</string>
<string-array name="design_options">
<item>Hell</item>
<item>Dunkel</item>
<item>Wie System</item>
</string-array>
<string name="design_title">Design</string>
<string-array name="ftp_encryption_modes">

View File

@@ -177,10 +177,11 @@
<item>28</item>
</string-array>
<string name="design_default">Light</string>
<string name="design_default">System</string>
<string-array name="design_values">
<item>Light</item>
<item>Dark</item>
<item>System</item>
</string-array>
<string name="AcceptAllServerCertificates_default">WARN</string>

View File

@@ -1198,6 +1198,7 @@ Initial public release
<string-array name="design_options">
<item>Light</item>
<item>Dark</item>
<item>System settings</item>
</string-array>
<string name="design_title">Design</string>

View File

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