bitwarden-android/src/App/Utilities/ThemeManager.cs
Kyle Spearrin a1741fdd67 themeing
2019-05-29 15:50:20 -04:00

54 lines
1.6 KiB
C#

using Bit.App.Services;
using Bit.App.Styles;
using Bit.Core;
using Xamarin.Forms;
namespace Bit.App.Utilities
{
public static class ThemeManager
{
public static void SetThemeStyle(string name)
{
// Reset styles
Application.Current.Resources.Clear();
Application.Current.Resources.MergedDictionaries.Clear();
// Variables
Application.Current.Resources.MergedDictionaries.Add(new Variables());
// Themed variables
if(name == "dark")
{
Application.Current.Resources.MergedDictionaries.Add(new Dark());
}
else
{
Application.Current.Resources.MergedDictionaries.Add(new Light());
}
// Base styles
Application.Current.Resources.MergedDictionaries.Add(new Base());
// Platform styles
if(Device.RuntimePlatform == Device.Android)
{
Application.Current.Resources.MergedDictionaries.Add(new Android());
}
else if(Device.RuntimePlatform == Device.iOS)
{
Application.Current.Resources.MergedDictionaries.Add(new iOS());
}
}
public static void SetTheme()
{
SetThemeStyle(GetTheme());
}
public static string GetTheme()
{
return Xamarin.Essentials.Preferences.Get(
string.Format(PreferencesStorageService.KeyFormat, Constants.ThemeKey), default(string));
}
}
}