Revert "[NUI] Unsubscribe theme changed event when the view is not on window" (#2265)
authorJiyun Yang <ji.yang@samsung.com>
Fri, 20 Nov 2020 03:30:43 +0000 (12:30 +0900)
committerGitHub <noreply@github.com>
Fri, 20 Nov 2020 03:30:43 +0000 (12:30 +0900)
This revert revious patch and make sure the theme changed event handler is disconnected when dispose.

This reverts commit 592900fdc380ce27df8c8fdb6de8084caffacc15.

src/Tizen.NUI/src/public/BaseComponents/ViewBindableProperty.cs
src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs
src/Tizen.NUI/src/public/Theme/ThemeManager.cs

index 94333c33f155d0b0473fe9606e8a84050b979ed6..b2cb0fa3a1a72b4e527d2ef2a097c67a00b7cee1 100755 (executable)
@@ -1622,11 +1622,11 @@ namespace Tizen.NUI.BaseComponents
 
             if (view.themeChangeSensitive)
             {
-                view.SubscribeThemeChange();
+                ThemeManager.ThemeChangedInternal += view.OnThemeChanged;
             }
             else
             {
-                view.UnsubscribeThemeChange();
+                ThemeManager.ThemeChangedInternal -= view.OnThemeChanged;
             }
         },
         defaultValueCreator: (bindable) =>
index 20c499e1308e64bea408973e1d451f54b6def197..59f1f58c98367d1b70019c5f0a155f7d95b9edeb 100755 (executable)
@@ -33,7 +33,6 @@ namespace Tizen.NUI.BaseComponents
     {
         private MergedStyle mergedStyle = null;
         private ViewSelectorData selectorData;
-        private uint lastThemeChangeId;
         internal string styleName;
 
         internal MergedStyle _mergedStyle
@@ -1055,8 +1054,6 @@ namespace Tizen.NUI.BaseComponents
 
         internal void UpdateStyle()
         {
-            lastThemeChangeId = ThemeManager.ChangeId;
-
             ViewStyle newStyle;
             if (styleName == null) newStyle = ThemeManager.GetStyle(GetType());
             else newStyle = ThemeManager.GetStyle(styleName);
@@ -1084,8 +1081,7 @@ namespace Tizen.NUI.BaseComponents
                 //Release your own managed resources here.
                 //You should release all of your own disposable objects here.
                 selectorData?.Reset(this);
-
-                if (themeChangeSensitive && IsOnWindow)
+                if (themeChangeSensitive)
                 {
                     ThemeManager.ThemeChangedInternal -= OnThemeChanged;
                 }
@@ -1339,49 +1335,5 @@ namespace Tizen.NUI.BaseComponents
         {
             return false;
         }
-
-        private void OnAddedToWindowInternal(object sender, global::System.EventArgs args)
-        {
-            if (lastThemeChangeId != ThemeManager.ChangeId)
-            {
-                OnThemeChanged(null, new ThemeChangedEventArgs(ThemeManager.CurrentTheme?.Id));
-            }
-            AddedToWindow -= OnAddedToWindowInternal;
-            RemovedFromWindow += OnRemovedFromWindowInternal;
-            ThemeManager.ThemeChangedInternal += OnThemeChanged;
-        }
-
-        private void OnRemovedFromWindowInternal(object sender, global::System.EventArgs args)
-        {
-            ThemeManager.ThemeChangedInternal -= OnThemeChanged;
-            RemovedFromWindow -= OnRemovedFromWindowInternal;
-            AddedToWindow += OnAddedToWindowInternal;
-        }
-
-        private void SubscribeThemeChange()
-        {
-            if (IsOnWindow)
-            {
-                ThemeManager.ThemeChangedInternal += OnThemeChanged;
-                RemovedFromWindow += OnRemovedFromWindowInternal;
-            }
-            else
-            {
-                AddedToWindow += OnAddedToWindowInternal;
-            }
-        }
-
-        private void UnsubscribeThemeChange()
-        {
-            if (IsOnWindow)
-            {
-                ThemeManager.ThemeChangedInternal -= OnThemeChanged;
-                RemovedFromWindow -= OnRemovedFromWindowInternal;
-            }
-            else
-            {
-                AddedToWindow -= OnAddedToWindowInternal;
-            }
-        }
     }
 }
index 6a4b08d0284bd32fdc8e349e6ac34e67d07931e0..239b57bf3d6a31a22bbc261b1572d3df89812ca7 100644 (file)
@@ -88,7 +88,6 @@ namespace Tizen.NUI
             set
             {
                 currentTheme = value;
-                ChangeId++;
                 NotifyThemeChanged();
             }
         }
@@ -110,8 +109,6 @@ namespace Tizen.NUI
 
         internal static bool ThemeApplied => (CurrentTheme.Count > 0 || DefaultTheme.Count > 0);
 
-        internal static uint ChangeId { get; set; }
-
         private static Profile CurrentProfile
         {
             get