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 94333c3..b2cb0fa 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 20c499e..59f1f58 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 6a4b08d..239b57b 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