Example #1
0
        /// <summary>
        /// Sets the MDIX primary accent color
        /// </summary>
        /// <param name="color">One of the 18 color values</param>
        internal static void SetPrimaryColor(AccentColor color)
        {
            PaletteHelper paletteHelper = new();
            ITheme        theme         = paletteHelper.GetTheme();
            PrimaryColor  primary       = color switch
            {
                AccentColor.Red => PrimaryColor.Red,
                AccentColor.Pink => PrimaryColor.Pink,
                AccentColor.Purple => PrimaryColor.Purple,
                AccentColor.DeepPurple => PrimaryColor.DeepPurple,
                AccentColor.Indigo => PrimaryColor.Indigo,
                AccentColor.Blue => PrimaryColor.Blue,
                AccentColor.LightBlue => PrimaryColor.LightBlue,
                AccentColor.Cyan => PrimaryColor.Cyan,
                AccentColor.Teal => PrimaryColor.Teal,
                AccentColor.Green => PrimaryColor.Green,
                AccentColor.LightGreen => PrimaryColor.LightGreen,
                AccentColor.Lime => PrimaryColor.Lime,
                AccentColor.Yellow => PrimaryColor.Yellow,
                AccentColor.Amber => PrimaryColor.Amber,
                AccentColor.Orange => PrimaryColor.Orange,
                AccentColor.DeepOrange => PrimaryColor.DeepOrange,
                AccentColor.Brown => PrimaryColor.Brown,
                AccentColor.Grey => PrimaryColor.Grey,
                AccentColor.BlueGray => PrimaryColor.BlueGrey,
                _ => PrimaryColor.Blue,
            };
            Color primaryColor = SwatchHelper.Lookup[(MaterialDesignColor)primary];

            theme.SetPrimaryColor(primaryColor);
            paletteHelper.SetTheme(theme);
        }
Example #2
0
        public void SetAccentColor(AccentColor accentColor)
        {
            if (accentColor == AccentColor.Blue)
            {
                Application.Current.Resources.MergedDictionaries.RemoveAt(0);
                Application.Current.Resources.MergedDictionaries.Insert(0, _blueAccent);
            }
            else if (accentColor == AccentColor.Green)
            {
                Application.Current.Resources.MergedDictionaries.RemoveAt(0);
                Application.Current.Resources.MergedDictionaries.Insert(0, _greenAccent);
            }
            else if (accentColor == AccentColor.Orange)
            {
                Application.Current.Resources.MergedDictionaries.RemoveAt(0);
                Application.Current.Resources.MergedDictionaries.Insert(0, _orangeAccent);
            }
            else if (accentColor == AccentColor.Purple)
            {
                Application.Current.Resources.MergedDictionaries.RemoveAt(0);
                Application.Current.Resources.MergedDictionaries.Insert(0, _purpleAccent);
            }
            else if (accentColor == AccentColor.Red)
            {
                Application.Current.Resources.MergedDictionaries.RemoveAt(0);
                Application.Current.Resources.MergedDictionaries.Insert(0, _redAccent);
            }
            else if (accentColor == AccentColor.Steel)
            {
                Application.Current.Resources.MergedDictionaries.RemoveAt(0);
                Application.Current.Resources.MergedDictionaries.Insert(0, _steelAccent);
            }

            _selectedAccentColor = accentColor;
        }
Example #3
0
        public Color GetAccentColor(AccentColor accentColor)
        {
            string value = String.Empty;

            if (accentColor == AccentColor.Blue)
            {
                value = _blueAccent["_accentColor"].ToString();
            }
            else if (accentColor == AccentColor.Green)
            {
                value = _greenAccent["_accentColor"].ToString();
            }
            else if (accentColor == AccentColor.Orange)
            {
                value = _orangeAccent["_accentColor"].ToString();
            }
            else if (accentColor == AccentColor.Purple)
            {
                value = _purpleAccent["_accentColor"].ToString();
            }
            else if (accentColor == AccentColor.Red)
            {
                value = _redAccent["_accentColor"].ToString();
            }
            else if (accentColor == AccentColor.Steel)
            {
                value = _steelAccent["_accentColor"].ToString();
            }

            return((Color)ColorConverter.ConvertFromString(value));
        }
Example #4
0
        public AccentColorTest()
        {
            TestBootstrapper bootstrapper = new TestBootstrapper();

            bootstrapper.Run();

            ctt        = new AccentColor();
            colorBrush = new SolidColorBrush(Color.FromRgb(200, 100, 0));
        }
Example #5
0
        public static AccentColor GetNextColor(AccentColor currentColor)
        {
            List <AccentColor> accentColors = GetAccentColors();

            var total        = accentColors.Count;
            var currentIndex = accentColors.IndexOf(currentColor);

            var nextIndex = currentIndex == total - 1 ? 0 : currentIndex + 1;

            return(accentColors[nextIndex]);
        }
Example #6
0
        /// <summary>
        /// Creates a new instance of <see cref="ThemeManager"/>
        /// </summary>
        public ThemeManager(IDataManager dataManager)
        {
            _dataManager = dataManager;

            Uri location = new Uri(@"/CritCompendium;component/Resources/Themes/Accents/Blue.xaml", UriKind.Relative);

            _blueAccent = (ResourceDictionary)Application.LoadComponent(location);

            location     = new Uri(@"/CritCompendium;component/Resources/Themes/Accents/Green.xaml", UriKind.Relative);
            _greenAccent = (ResourceDictionary)Application.LoadComponent(location);

            location      = new Uri(@"/CritCompendium;component/Resources/Themes/Accents/Orange.xaml", UriKind.Relative);
            _orangeAccent = (ResourceDictionary)Application.LoadComponent(location);

            location      = new Uri(@"/CritCompendium;component/Resources/Themes/Accents/Purple.xaml", UriKind.Relative);
            _purpleAccent = (ResourceDictionary)Application.LoadComponent(location);

            location   = new Uri(@"/CritCompendium;component/Resources/Themes/Accents/Red.xaml", UriKind.Relative);
            _redAccent = (ResourceDictionary)Application.LoadComponent(location);

            location     = new Uri(@"/CritCompendium;component/Resources/Themes/Accents/Steel.xaml", UriKind.Relative);
            _steelAccent = (ResourceDictionary)Application.LoadComponent(location);

            byte[] themeBytes = _dataManager.LoadTheme();

            if (themeBytes == null)
            {
                _selectedFont        = "Segoe UI";
                _selectedAccentColor = AccentColor.Blue;
                _selectedTheme       = Theme.Dark;
            }
            else
            {
                using (MemoryStream stream = new MemoryStream(themeBytes))
                {
                    using (BinaryReader reader = new BinaryReader(stream))
                    {
                        int version = reader.ReadInt32();

                        if (version == 1)
                        {
                            _selectedFont        = reader.ReadString();
                            _selectedAccentColor = (AccentColor)reader.ReadInt32();
                            _selectedTheme       = (Theme)reader.ReadInt32();
                        }
                    }
                }
            }

            SetFont(_selectedFont);
            SetAccentColor(_selectedAccentColor);
            SetTheme(_selectedTheme);
        }
        private static uint AccentColorEnumToColorValue(AccentColor accent)
        {
            switch (accent)
            {
            case AccentColor.Brown:
                return(0xFFA05000);

            case AccentColor.Green:
                return(0xFF339933);

            case AccentColor.Lime:
                return(0xFFA2C139);

            case AccentColor.Magenta:
                return(0xFFD80073);

            case AccentColor.Mango:
                return(0xFFF09609);

            case AccentColor.Pink:
                return(0xFFE671B8);

            case AccentColor.Purple:
                return(0xFFA200FF);

            case AccentColor.Red:
                return(0xFFE51400);

            case AccentColor.Teal:
                return(0xFF00ABA9);

            // Gray is a custom accent color that my Lumia 800 came with.
            case AccentColor.Gray:
                return(0xFF4B4B4B);

            // Many Lumias come with this custom color.
            case AccentColor.NokiaBlue:
                return(0xFF1080DD);

            // This is the accent colour phones from OrangeUK come with by default
            case AccentColor.OrangeUK:
                return(0xFFF7610A);

            // This is the accent colour phones from O2 in the UK come with by default
            case AccentColor.O2Blue:
                return(0xFF31AFE1);

            case AccentColor.Blue:
            default:
                return(0xFF1BA1E2);
            }
        }
Example #8
0
        private void ColorSpinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
        {
            AccentColor selectedColor = AccentColors.GetAccentColors()[e.Position];

            if (selectedColor != currentAccentColor && !ignoreSelection)
            {
                currentAccentColor = selectedColor;

                colorLayout.SetBackgroundColor(GetColor(currentAccentColor));

                editor.PutString(ACCENT_COLOR_KEY, AccentColors.GetResource(currentAccentColor)).Commit();
            }

            ignoreSelection = false;
        }
Example #9
0
        public void OnSharedPreferenceChanged(ISharedPreferences sharedPreferences, string key)
        {
            switch (key)
            {
            case ACCENT_COLOR_KEY:
                AccentColor newColor = AccentColors.GetIdFromResource(sharedPreferences.GetString(key, ACCENT_COLOR_DEFAULT));

                if (newColor != currentAccentColor)
                {
                    currentAccentColor = newColor;

                    clickableFrameLayout.SetBackgroundColor(GetColor(currentAccentColor));
                }

                break;
            }
        }
Example #10
0
        internal void ChangeAppTheme()
        {
            RuntimeThemeGenerator.Current.Options.UseHSL = UseSolidAccent;

            Theme newTheme = new Theme("Custom",
                                       "Custom",
                                       BaseTheme,
                                       AccentColor.ToString(),
                                       AccentColor,
                                       new SolidColorBrush(AccentColor),
                                       true,
                                       false);

            newTheme.Resources["MahApps.Colors.Highlight"]  = HighlightColor;
            newTheme.Resources["MahApps.Brushes.Highlight"] = new SolidColorBrush(HighlightColor);

            ThemeManager.Current.ChangeTheme(App.Current, newTheme);
        }
Example #11
0
        public void OnSharedPreferenceChanged(ISharedPreferences sharedPreferences, string key)
        {
            switch (key)
            {
            case ACCENT_COLOR_KEY:
                AccentColor newColor = AccentColors.GetIdFromResource(sharedPreferences.GetString(key, ACCENT_COLOR_DEFAULT));

                if (newColor != currentAccentColor)
                {
                    currentAccentColor = newColor;

                    colorLayout.SetBackgroundColor(GetColor(currentAccentColor));
                    ignoreSelection = true;
                    colorSpinner.SetSelection(AccentColors.GetAccentColors().IndexOf(currentAccentColor));
                }

                break;
            }
        }
Example #12
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.activity_main);

            settings = PreferenceManager.GetDefaultSharedPreferences(this);
            editor   = settings.Edit();
            //editor.Clear().Commit();
            prefListener = new PrefListener(this);

            clickableFrameLayout = FindViewById <FrameLayout>(Resource.Id.clickableFrameLayout);

            currentAccentColor = AccentColors.GetIdFromResource(settings.GetString(ACCENT_COLOR_KEY, ACCENT_COLOR_DEFAULT));

            clickableFrameLayout.SetBackgroundColor(GetColor(currentAccentColor));
            clickableFrameLayout.SetOnClickListener(this);

            SetAmbientEnabled();
        }
Example #13
0
        /// <summary>
        /// Updates main window accent color.
        /// </summary>
        /// <param name="dsp">Dispatcher.</param>
        /// <param name="color">Accent color.</param>
        public static void SetAccentColor(this Dispatcher dsp, AccentColor color)
        {
            switch (color)
            {
            case AccentColor.Connected:
                dsp.SetAccentColor(Color.FromRgb(96, 169, 23));
                break;

            case AccentColor.Disconnected:
                dsp.SetAccentColor(Color.FromRgb(229, 20, 0));
                break;

            case AccentColor.Running:
                dsp.SetAccentColor(Color.FromRgb(35, 143, 255));
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(color), color, null);
            }
        }
Example #14
0
 /// <summary>
 /// The Watcher Thread it self.
 /// </summary>
 internal static void RegistryWatcher()
 {
     while (!watcherStop)
     {
         if (AccentColor.CheckRegValue() == RegCheck.False)
         {
             if (AccentColor.Hack())
             {
                 SetHackApplied();
             }
         }
         if (AccentColorInactive.CheckRegValue() == RegCheck.False)
         {
             if (AccentColorInactive.Hack())
             {
                 SetHackApplied();
             }
         }
         Thread.Sleep((int)(interval * 1000));
     }
 }
Example #15
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.activity_main);

            settings = PreferenceManager.GetDefaultSharedPreferences(this);
            editor   = settings.Edit();
            //editor.Clear().Commit();
            prefListener = new PrefListener(this);

            colorSpinner = FindViewById <Spinner>(Resource.Id.colorSpinner);
            colorLayout  = FindViewById <FrameLayout>(Resource.Id.colorLayout);

            currentAccentColor = AccentColors.GetIdFromResource(settings.GetString(ACCENT_COLOR_KEY, ACCENT_COLOR_DEFAULT));

            AccentColor[] colors = AccentColors.GetAccentColors().ToArray();
            colorSpinner.Adapter = new ArrayAdapter <AccentColor>(this, Resource.Layout.colorspinner_item, colors);

            colorLayout.SetBackgroundColor(GetColor(currentAccentColor));
            colorSpinner.ItemSelected += ColorSpinner_ItemSelected;
        }
Example #16
0
 public static string GetTitle(AccentColor color) => AccentColorsList.FirstOrDefault(x => x.Id == color)?.Title;
Example #17
0
 public bool Equals(ApplicationDesign obj)
 {
     return(AccentColor.Equals(obj.AccentColor) && AppTheme.Equals(obj.AppTheme) &&
            ApplicationBackground != null && ApplicationBackground.Equals(obj.ApplicationBackground));
 }
Example #18
0
        /// <summary>
        /// Represents an AccentColor value as a primary Color value.
        /// </summary>
        /// <param name="accentColor">
        /// The accent color.
        /// </param>
        /// <returns>
        /// Returns a primary Color for the given AccentColor.
        /// </returns>
        public static Color AsPrimaryAccentColor(this AccentColor accentColor)
        {
            var newColor = MaterialDesignColors.Indigo.Color500;

            switch (accentColor)
            {
            case AccentColor.Lime:
                newColor = MaterialDesignColors.Lime.Color500;
                break;

            case AccentColor.LightGreen:
                newColor = MaterialDesignColors.LightGreen.Color500;
                break;

            case AccentColor.Green:
                newColor = MaterialDesignColors.Green.Color500;
                break;

            case AccentColor.Teal:
                newColor = MaterialDesignColors.Teal.Color500;
                break;

            case AccentColor.Cyan:
                newColor = MaterialDesignColors.Cyan.Color500;
                break;

            case AccentColor.Blue:
                newColor = MaterialDesignColors.Blue.Color500;
                break;

            case AccentColor.DeepPurple:
                newColor = MaterialDesignColors.DeepPurple.Color500;
                break;

            case AccentColor.Pink:
                newColor = MaterialDesignColors.Pink.Color500;
                break;

            case AccentColor.Purple:
                newColor = MaterialDesignColors.Purple.Color500;
                break;

            case AccentColor.Red:
                newColor = MaterialDesignColors.Red.Color500;
                break;

            case AccentColor.Orange:
                newColor = MaterialDesignColors.Orange.Color500;
                break;

            case AccentColor.Amber:
                newColor = MaterialDesignColors.Amber.Color500;
                break;

            case AccentColor.Yellow:
                newColor = MaterialDesignColors.Yellow.Color500;
                break;
            }

            return(newColor);
        }
 /// <summary>
 /// Overrides the accent color and brush used at runtime to a new one.
 /// </summary>
 /// <param name="accentColor">Represents the new popular accent color
 /// to use.</param>
 public static void SetAccentColor(AccentColor accentColor)
 {
     SetAccentColor(AccentColorEnumToColorValue(accentColor));
 }
Example #20
0
 private int GetColorResource(AccentColor accentColor) => GetColorResource(AccentColors.GetResource(accentColor));
Example #21
0
        /// <summary>
        /// Represents an AccentColor value as a light Color value.
        /// </summary>
        /// <param name="accentColor">
        /// The accent color.
        /// </param>
        /// <returns>
        /// Returns a light Color value for the given AccentColor.
        /// </returns>
        public static Color ToLightAccentColor(this AccentColor accentColor)
        {
            var newColor = "#FFC5CAE9".ToColor(); // Indigo (Default)

            switch (accentColor)
            {
            case AccentColor.Lime:
                newColor = "#FFF0F4C3".ToColor();
                break;

            case AccentColor.Green:
                newColor = "#FFDCEDC8".ToColor();
                break;

            case AccentColor.Emerald:
                newColor = "#FFC8E6C9".ToColor();
                break;

            case AccentColor.Teal:
                newColor = "#FFB2DFDB".ToColor();
                break;

            case AccentColor.Cyan:
                newColor = "#FFB2EBF2".ToColor();
                break;

            case AccentColor.Cobalt:
                newColor = "#FFBBDEFB".ToColor();
                break;

            case AccentColor.Violet:
                newColor = "#FFD1C4E9".ToColor();
                break;

            case AccentColor.Pink:
                newColor = "#FFF8BBD0".ToColor();
                break;

            case AccentColor.Magenta:
                newColor = "#FFE1BEE7".ToColor();
                break;

            case AccentColor.Red:
                newColor = "#FFFFCDD2".ToColor();
                break;

            case AccentColor.Orange:
                newColor = "#FFFFE0B2".ToColor();
                break;

            case AccentColor.Amber:
                newColor = "#FFFFECB3".ToColor();
                break;

            case AccentColor.Yellow:
                newColor = "#FFFFF9C4".ToColor();
                break;
            }

            return(newColor);
        }
Example #22
0
        /// <summary>
        /// Represents an AccentColor value as a light Color value.
        /// </summary>
        /// <param name="accentColor">
        /// The accent color.
        /// </param>
        /// <returns>
        /// Returns a light Color value for the given AccentColor.
        /// </returns>
        public static Color ToLightAccentColor(this AccentColor accentColor)
        {
            var newColor = MaterialDesignColors.Indigo.Color100;

            switch (accentColor)
            {
            case AccentColor.Lime:
                newColor = MaterialDesignColors.Lime.Color100;
                break;

            case AccentColor.Green:
                newColor = MaterialDesignColors.LightGreen.Color100;
                break;

            case AccentColor.Emerald:
                newColor = MaterialDesignColors.Green.Color100;
                break;

            case AccentColor.Teal:
                newColor = MaterialDesignColors.Teal.Color100;
                break;

            case AccentColor.Cyan:
                newColor = MaterialDesignColors.Cyan.Color100;
                break;

            case AccentColor.Cobalt:
                newColor = MaterialDesignColors.Blue.Color100;
                break;

            case AccentColor.Violet:
                newColor = MaterialDesignColors.DeepPurple.Color100;
                break;

            case AccentColor.Pink:
                newColor = MaterialDesignColors.Pink.Color100;
                break;

            case AccentColor.Magenta:
                newColor = MaterialDesignColors.Purple.Color100;
                break;

            case AccentColor.Red:
                newColor = MaterialDesignColors.Red.Color100;
                break;

            case AccentColor.Orange:
                newColor = MaterialDesignColors.Orange.Color100;
                break;

            case AccentColor.Amber:
                newColor = MaterialDesignColors.Amber.Color100;
                break;

            case AccentColor.Yellow:
                newColor = MaterialDesignColors.Yellow.Color100;
                break;
            }

            return(newColor);
        }
Example #23
0
 public void UpdateThemeAndAccent(ThemeStyle theme, AccentColor accent)
 {
     ThemeManager.ChangeAppStyle(Application.Current,
                                 ThemeManager.GetAccent(accent.ToString()),
                                 ThemeManager.GetAppTheme(theme.ToString()));
 }
Example #24
0
 private AccentColors(AccentColor id, string name, string resource)
 {
     Id       = id;
     Title    = name;
     Resource = resource;
 }
Example #25
0
        /// <summary>
        /// Represents an AccentColor value as a primary Color value.
        /// </summary>
        /// <param name="accentColor">
        /// The accent color.
        /// </param>
        /// <returns>
        /// Returns a primary Color for the given AccentColor.
        /// </returns>
        public static Color ToPrimaryAccentColor(this AccentColor accentColor)
        {
            var newColor = "#FF3F51B5".ToColor(); // Indigo (Default)

            switch (accentColor)
            {
            case AccentColor.Lime:
                newColor = "#FFCDDC39".ToColor();
                break;

            case AccentColor.Green:
                newColor = "#FF8BC34A".ToColor();
                break;

            case AccentColor.Emerald:
                newColor = "#FF4CAF50".ToColor();
                break;

            case AccentColor.Teal:
                newColor = "#FF009688".ToColor();
                break;

            case AccentColor.Cyan:
                newColor = "#FF00BCD4".ToColor();
                break;

            case AccentColor.Cobalt:
                newColor = "#FF2196F3".ToColor();
                break;

            case AccentColor.Violet:
                newColor = "#FF673AB7".ToColor();
                break;

            case AccentColor.Pink:
                newColor = "#FFE91E63".ToColor();
                break;

            case AccentColor.Magenta:
                newColor = "#FF9C27B0".ToColor();
                break;

            case AccentColor.Red:
                newColor = "#FFF44336".ToColor();
                break;

            case AccentColor.Orange:
                newColor = "#FFFF9800".ToColor();
                break;

            case AccentColor.Amber:
                newColor = "#FFFFC107".ToColor();
                break;

            case AccentColor.Yellow:
                newColor = "#FFFFEB3B".ToColor();
                break;
            }

            return(newColor);
        }
Example #26
0
 public static string GetResource(AccentColor color) => AccentColorsList.FirstOrDefault(x => x.Id == color)?.Resource;
Example #27
0
        /// <summary>
        /// Represents an AccentColor value as a dark Color value.
        /// </summary>
        /// <param name="accentColor">
        /// The accent color.
        /// </param>
        /// <returns>
        /// Returns a dark Color value for the given AccentColor.
        /// </returns>
        public static Color ToDarkAccentColor(this AccentColor accentColor)
        {
            var newColor = "#FF303f9f".ToColor(); // Indigo (Default)

            switch (accentColor)
            {
            case AccentColor.Lime:
                newColor = "#FFAFB42B".ToColor();
                break;

            case AccentColor.Green:
                newColor = "#FF689F38".ToColor();
                break;

            case AccentColor.Emerald:
                newColor = "#FF388E3C".ToColor();
                break;

            case AccentColor.Teal:
                newColor = "#FF00796B".ToColor();
                break;

            case AccentColor.Cyan:
                newColor = "#FF0097A7".ToColor();
                break;

            case AccentColor.Cobalt:
                newColor = "#FF1976D2".ToColor();
                break;

            case AccentColor.Violet:
                newColor = "#FF512DA8".ToColor();
                break;

            case AccentColor.Pink:
                newColor = "#FFC2185B".ToColor();
                break;

            case AccentColor.Magenta:
                newColor = "#FF7B1FA2".ToColor();
                break;

            case AccentColor.Red:
                newColor = "#FFD32F2F".ToColor();
                break;

            case AccentColor.Orange:
                newColor = "#FFF57C00".ToColor();
                break;

            case AccentColor.Amber:
                newColor = "#FFFFA000".ToColor();
                break;

            case AccentColor.Yellow:
                newColor = "#FFFBC02D".ToColor();
                break;
            }

            return(newColor);
        }
Example #28
0
 private Color GetColor(AccentColor accentColor) => WatchfaceUtility.ConvertARGBToColor(GetColor(GetColorResource(accentColor)));
Example #29
0
 public ThemeChangedMessage(ThemeStyle theme, AccentColor accent)
 {
     Theme  = theme;
     Accent = accent;
 }