[NUI] Improve AddPackageTheme (#2603)
authorJiyun Yang <ji.yang@samsung.com>
Tue, 2 Feb 2021 06:21:11 +0000 (15:21 +0900)
committerheeyongsong <35289263+heeyongsong@users.noreply.github.com>
Tue, 9 Feb 2021 05:36:55 +0000 (14:36 +0900)
To use package theme creator multiple times after it registered,
it needs to register the instance itself, as so the singleton pattern introduced for it.

Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
src/Tizen.NUI.Components/Controls/Control.cs
src/Tizen.NUI.Components/Style/ControlStyle.cs
src/Tizen.NUI.Components/Theme/DefaultTheme.cs
src/Tizen.NUI.Wearable/src/internal/Theme/DefaultTheme.cs
src/Tizen.NUI.Wearable/src/public/CircularPagination.cs
src/Tizen.NUI.Wearable/src/public/CircularProgress.cs
src/Tizen.NUI.Wearable/src/public/CircularScrollbar.cs
src/Tizen.NUI.Wearable/src/public/CircularSlider.cs

index a9a7464..459a349 100755 (executable)
@@ -52,7 +52,7 @@ namespace Tizen.NUI.Components
 
         static Control()
         {
-            ThemeManager.AddPackageTheme(new DefaultThemeCreator());
+            ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance);
         }
 
         /// <summary>
index 7593717..ed364e7 100755 (executable)
@@ -29,7 +29,7 @@ namespace Tizen.NUI.Components
     {
         static ControlStyle()
         {
-            ThemeManager.AddPackageTheme(new DefaultThemeCreator());
+            ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance);
         }
 
         /// <summary>
index 8571d94..d8dcc42 100644 (file)
@@ -26,6 +26,10 @@ namespace Tizen.NUI.Components
     // It is a C# version of res/Tizen.NUI.Components_Tizen.NUI.Theme.Common.xaml
     internal class DefaultThemeCreator : IThemeCreator
     {
+        private DefaultThemeCreator() { }
+
+        public static IThemeCreator Instance { get; set; } = new DefaultThemeCreator();
+
         public ResourceDictionary CreateThemeResource() => new ResourceDictionary()
         {
             ["ButtonBackgroundColorNormal"] = new Color(0.039f, 0.055f, 0.29f, 1),
index 8eec8d6..0caa06d 100644 (file)
@@ -22,6 +22,10 @@ namespace Tizen.NUI.Wearable
 {
     internal class DefaultThemeCreator : IThemeCreator
     {
+        private DefaultThemeCreator() { }
+
+        public static IThemeCreator Instance { get; set; } = new DefaultThemeCreator();
+
         public Theme Create() => Create(null);
 
         public Theme Create(IEnumerable<KeyValuePair<string, string>> changedResources)
index 923ea7e..68c0038 100755 (executable)
@@ -64,7 +64,7 @@ namespace Tizen.NUI.Wearable
 
         static CircularPagination()
         {
-            ThemeManager.AddPackageTheme(new DefaultThemeCreator());
+            ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance);
         }
 
         /// <summary>
index 855d63d..f8e1d87 100755 (executable)
@@ -160,7 +160,7 @@ namespace Tizen.NUI.Wearable
 
         static CircularProgress()
         {
-            ThemeManager.AddPackageTheme(new DefaultThemeCreator());
+            ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance);
         }
 
         /// <summary>
index a44d367..fafcd7b 100755 (executable)
@@ -137,7 +137,7 @@ namespace Tizen.NUI.Wearable
         /// </summary>
         static CircularScrollbar()
         {
-            ThemeManager.AddPackageTheme(new DefaultThemeCreator());
+            ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance);
         }
 
         #endregion Constructors
index 39499bd..4f2dfa4 100755 (executable)
@@ -215,7 +215,7 @@ namespace Tizen.NUI.Wearable
 
         static CircularSlider()
         {
-            ThemeManager.AddPackageTheme(new DefaultThemeCreator());
+            ThemeManager.AddPackageTheme(DefaultThemeCreator.Instance);
         }
 
         /// <summary>