From: Yurii Zinchuk/Tizen Services & IoT (PLT) /SRPOL/Engineer/Samsung Electronics Date: Thu, 25 Jan 2024 13:41:40 +0000 (+0100) Subject: unsubscribe from theme-changed event X-Git-Tag: accepted/tizen/unified/20240222.163404~18 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=508b9c9abf80858ff39b94ca553553194c53058b;p=profile%2Fiot%2Fapps%2Fdotnet%2Fsettings.git unsubscribe from theme-changed event --- diff --git a/SettingCore/Views/BackButton.cs b/SettingCore/Views/BackButton.cs index ae49d9e..7fef07f 100644 --- a/SettingCore/Views/BackButton.cs +++ b/SettingCore/Views/BackButton.cs @@ -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); + } } } diff --git a/SettingCore/Views/CancelButton.cs b/SettingCore/Views/CancelButton.cs index ad0844b..66b5d9c 100644 --- a/SettingCore/Views/CancelButton.cs +++ b/SettingCore/Views/CancelButton.cs @@ -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); + } } } diff --git a/SettingCore/Views/RadioButtonListItem.cs b/SettingCore/Views/RadioButtonListItem.cs index 1e2ab62..4ccc928 100644 --- a/SettingCore/Views/RadioButtonListItem.cs +++ b/SettingCore/Views/RadioButtonListItem.cs @@ -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 { 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); + } } } diff --git a/SettingCore/Views/SliderListItem.cs b/SettingCore/Views/SliderListItem.cs index ed2b65a..849d371 100644 --- a/SettingCore/Views/SliderListItem.cs +++ b/SettingCore/Views/SliderListItem.cs @@ -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); + } } } diff --git a/SettingCore/Views/SpeechRateRow.cs b/SettingCore/Views/SpeechRateRow.cs index 520896f..4ff057e 100644 --- a/SettingCore/Views/SpeechRateRow.cs +++ b/SettingCore/Views/SpeechRateRow.cs @@ -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); + } } } diff --git a/SettingCore/Views/TextHeaderListItem.cs b/SettingCore/Views/TextHeaderListItem.cs index 0988e77..cf08ea1 100644 --- a/SettingCore/Views/TextHeaderListItem.cs +++ b/SettingCore/Views/TextHeaderListItem.cs @@ -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); + } } } diff --git a/SettingCore/Views/TextListItem.cs b/SettingCore/Views/TextListItem.cs index 61aff59..616b912 100644 --- a/SettingCore/Views/TextListItem.cs +++ b/SettingCore/Views/TextListItem.cs @@ -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); + } } }