unsubscribe from theme-changed event
authorYurii Zinchuk/Tizen Services & IoT (PLT) /SRPOL/Engineer/Samsung Electronics <y.zinchuk@samsung.com>
Thu, 25 Jan 2024 13:41:40 +0000 (14:41 +0100)
committerYurii Zinchuk/Tizen Services & IoT (PLT) /SRPOL/Engineer/Samsung Electronics <y.zinchuk@samsung.com>
Fri, 26 Jan 2024 13:09:49 +0000 (14:09 +0100)
SettingCore/Views/BackButton.cs
SettingCore/Views/CancelButton.cs
SettingCore/Views/RadioButtonListItem.cs
SettingCore/Views/SliderListItem.cs
SettingCore/Views/SpeechRateRow.cs
SettingCore/Views/TextHeaderListItem.cs
SettingCore/Views/TextListItem.cs

index ae49d9ebaea151adb677b273c35c67050b00ffed..7fef07ffe268797514839e9694de3430ba09601d 100644 (file)
@@ -33,7 +33,7 @@ namespace SettingCore.Views
             };
             Add(icon);
 
-            ThemeManager.ThemeChanged += (s, e) => { OnChangeSelected(false); };
+            ThemeManager.ThemeChanged += ThemeManager_ThemeChanged;
         }
 
         public override void OnChangeSelected(bool selected)
@@ -58,5 +58,16 @@ namespace SettingCore.Views
         {
             return Resources.IDS_ST_BUTTON_BACK;
         }
+
+        private void ThemeManager_ThemeChanged(object sender, ThemeChangedEventArgs e)
+        {
+            OnChangeSelected(false);
+        }
+
+        protected override void Dispose(bool disposing)
+        {
+            ThemeManager.ThemeChanged -= ThemeManager_ThemeChanged;
+            base.Dispose(disposing);
+        }
     }
 }
index ad0844b31168fd5510571cfe389c00bc0cc24578..66b5d9c01fc14bacd60d3f303a5cc865c274d51e 100644 (file)
@@ -31,7 +31,7 @@ namespace SettingCore.Views
             };
             Add(icon);
 
-            ThemeManager.ThemeChanged += (s, e) => { OnChangeSelected(false); };
+            ThemeManager.ThemeChanged += ThemeManager_ThemeChanged;
         }
 
         public override void OnChangeSelected(bool selected)
@@ -51,5 +51,16 @@ namespace SettingCore.Views
                 BackgroundColor = BackgroundColors.Normal;
             }
         }
+
+        private void ThemeManager_ThemeChanged(object sender, ThemeChangedEventArgs e)
+        {
+            OnChangeSelected(false);
+        }
+
+        protected override void Dispose(bool disposing)
+        {
+            ThemeManager.ThemeChanged -= ThemeManager_ThemeChanged;
+            base.Dispose(disposing);
+        }
     }
 }
index 1e2ab62e421009c0276a3e539ebc01dff23bfab1..4ccc928bae16333a13d92393701598a421a7f202 100644 (file)
@@ -13,6 +13,8 @@ namespace SettingCore.Views
         public RadioButton RadioButton { get; private set; }
 
         private bool isLightTheme => ThemeManager.PlatformThemeId == "org.tizen.default-light-theme";
+        private ButtonStyle style_light;
+        private ButtonStyle style_dark;
 
         public RadioButtonListItem(string text)
             :base()
@@ -25,7 +27,8 @@ namespace SettingCore.Views
                 VerticalAlignment = VerticalAlignment.Center,
             };
 
-            var style_light = ThemeManager.GetStyle("Tizen.NUI.Components.RadioButton") as ButtonStyle;
+            style_light = ThemeManager.GetStyle("Tizen.NUI.Components.RadioButton") as ButtonStyle;
+            style_light.Text.LineWrapMode = LineWrapMode.Mixed;
             style_light.Text.PixelSize = 24.SpToPx();
             style_light.Text.ThemeChangeSensitive = false;
             style_light.Icon.Size = new Size(48, 48).SpToPx();
@@ -37,7 +40,7 @@ namespace SettingCore.Views
                 DisabledSelected = GetIconPath("Rb_selected_disabled.svg"),
             };
 
-            var style_dark = new ButtonStyle(style_light);
+            style_dark = new ButtonStyle(style_light);
             style_dark.Icon.ResourceUrl = new Selector<string>
             {
                 Normal = GetIconPath("Rb_normal_dark.svg"),
@@ -51,7 +54,10 @@ namespace SettingCore.Views
                 Text = text,
                 AccessibilityHidden = true,
                 Margin = new Extents(24, 0, 0, 0).SpToPx(),
+                WidthResizePolicy = ResizePolicyType.FillToParent,
             };
+            RadioButton.TextLabel.WidthResizePolicy = ResizePolicyType.FillToParent;
+            RadioButton.TextLabel.HorizontalAlignment = HorizontalAlignment.Begin;
 
             RadioButton.ControlStateChangedEvent += (s, e) =>
             {
@@ -68,11 +74,7 @@ namespace SettingCore.Views
 
             Add(RadioButton);
 
-            ThemeManager.ThemeChanged += (s, e) =>
-            {
-                RadioButton.ApplyStyle(isLightTheme ? style_light : style_dark);
-                OnChangeSelected(false);
-            };
+            ThemeManager.ThemeChanged += ThemeManager_ThemeChanged;
 
             Relayout += RadioButtonListItem_Relayout;
         }
@@ -129,5 +131,17 @@ namespace SettingCore.Views
 
             return states;
         }
+
+        private void ThemeManager_ThemeChanged(object sender, ThemeChangedEventArgs e)
+        {
+            RadioButton.ApplyStyle(isLightTheme ? style_light : style_dark);
+            OnChangeSelected(false);
+        }
+
+        protected override void Dispose(bool disposing)
+        {
+            ThemeManager.ThemeChanged -= ThemeManager_ThemeChanged;
+            base.Dispose(disposing);
+        }
     }
 }
index ed2b65a9822e644a04106f11b41b153666413440..849d371fda54d1096b49d9c74f54a782b39f7679 100644 (file)
@@ -113,5 +113,11 @@ namespace SettingCore.Views
         {
             return $"{primary.Text}, {(int)(Slider.CurrentValue / Slider.MaxValue * 100)} %";
         }
+
+        protected override void Dispose(bool disposing)
+        {
+            ThemeManager.ThemeChanged -= ThemeManager_ThemeChanged;
+            base.Dispose(disposing);
+        }
     }
 }
index 520896f143a7aeaa1cdca4222a963e3d55babef9..4ff057e100aaf893f6e2e326695186833bbb7c06 100644 (file)
@@ -97,5 +97,11 @@ namespace SettingCore.Views
         {
             return $"{primary.Text}, {(int)(Slider.CurrentValue / Slider.MaxValue * 100)} %";
         }
+
+        protected override void Dispose(bool disposing)
+        {
+            ThemeManager.ThemeChanged -= ThemeManager_ThemeChanged;
+            base.Dispose(disposing);
+        }
     }
 }
index 0988e7758c9ab7a74a0645f3ac7f9b5fa6324507..cf08ea1101a4d88587244f8aa4b21fdf6b376ebd 100644 (file)
@@ -1,5 +1,4 @@
-using System.Text;
-using Tizen.NUI;
+using Tizen.NUI;
 using Tizen.NUI.BaseComponents;
 
 namespace SettingCore.Views
@@ -33,13 +32,21 @@ namespace SettingCore.Views
 
             Add(textLabel);
 
-            ThemeManager.ThemeChanged += (s, e) =>
-            {
-                textLabel.TextColor = TextColors.Normal;
-            };
+            ThemeManager.ThemeChanged += ThemeManager_ThemeChanged;
         }
 
         protected override string AccessibilityGetName() => textLabel.Text;
+
+        private void ThemeManager_ThemeChanged(object sender, ThemeChangedEventArgs e)
+        {
+            textLabel.TextColor = TextColors.Normal;
+        }
+
+        protected override void Dispose(bool disposing)
+        {
+            ThemeManager.ThemeChanged -= ThemeManager_ThemeChanged;
+            base.Dispose(disposing);
+        }
     }
 }
 
index 61aff59d3803629b7f928c6f572d5bf6547c6486..616b912285ae694fa1d0488e78f4d62a1f059141 100644 (file)
@@ -81,7 +81,7 @@ namespace SettingCore.Views
                 AddPrimarySubText(primarySubText);
             }
 
-            ThemeManager.ThemeChanged += (s, e) => OnChangeSelected(false);
+            ThemeManager.ThemeChanged += ThemeManager_ThemeChanged;
         }
 
         public override void OnDisabledStateChanged(bool isEnabled)
@@ -171,5 +171,16 @@ namespace SettingCore.Views
             }
             return sb.ToString();
         }
+
+        private void ThemeManager_ThemeChanged(object sender, ThemeChangedEventArgs e)
+        {
+            OnChangeSelected(false);
+        }
+
+        protected override void Dispose(bool disposing)
+        {
+            ThemeManager.ThemeChanged -= ThemeManager_ThemeChanged;
+            base.Dispose(disposing);
+        }
     }
 }