From 1e822fcd32bece193c53755974e639892ebca4ae Mon Sep 17 00:00:00 2001 From: Darren Batchelor Date: Tue, 2 Nov 2021 11:01:17 -0700 Subject: [PATCH 1/3] Implement SampleController ThemeListener --- .../Pages/SampleController.xaml.cs | 1 + .../ThemeListener/ThemeListenerPage.xaml.cs | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs index d34b54f1e22..6ae5f61ca87 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs @@ -30,6 +30,7 @@ namespace Microsoft.Toolkit.Uwp.SampleApp public sealed partial class SampleController : Page, INotifyPropertyChanged { public static SampleController Current { get; private set; } + public ThemeListener ThemeListener => _themeListener; public SampleController() { diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs index 46d29987f48..cc4ff2449a6 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs @@ -5,6 +5,7 @@ using Microsoft.Toolkit.Uwp.UI.Helpers; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Navigation; namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages { @@ -16,9 +17,8 @@ public sealed partial class ThemeListenerPage : Page public ThemeListenerPage() { this.InitializeComponent(); - Listener = new ThemeListener(); this.Loaded += ThemeListenerPage_Loaded; - Listener.ThemeChanged += Listener_ThemeChanged; + SampleController.Current.ThemeListener.ThemeChanged += Listener_ThemeChanged; SampleController.Current.ThemeChanged += Current_ThemeChanged; } @@ -39,10 +39,15 @@ private void Listener_ThemeChanged(ThemeListener sender) private void UpdateThemeState() { - SystemTheme.Text = Listener.CurrentThemeName; + SystemTheme.Text = SampleController.Current.ThemeListener.CurrentThemeName; CurrentTheme.Text = SampleController.Current.GetCurrentTheme().ToString(); } - public ThemeListener Listener { get; } + protected async override void OnNavigatedFrom(NavigationEventArgs e) + { + Loaded -= ThemeListenerPage_Loaded; + SampleController.Current.ThemeListener.ThemeChanged -= Listener_ThemeChanged; + SampleController.Current.ThemeChanged -= Current_ThemeChanged; + } } } \ No newline at end of file From e849126ba2f96e5d9bb6220a18c01c21d67d9666 Mon Sep 17 00:00:00 2001 From: Darren Batchelor Date: Tue, 2 Nov 2021 16:47:17 -0700 Subject: [PATCH 2/3] Rename method --- Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs | 2 +- Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs b/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs index a2c9f0f698e..4dbc50f256f 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs @@ -183,7 +183,7 @@ private void Current_ThemeChanged(object sender, Models.ThemeChangedArgs e) /// Element Theme private ElementTheme SystemTheme() { - return SampleController.Current.SystemTheme() == ApplicationTheme.Dark ? ElementTheme.Dark : ElementTheme.Light; + return SampleController.Current.GetSystemTheme() == ApplicationTheme.Dark ? ElementTheme.Dark : ElementTheme.Light; } } } \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs index 6ae5f61ca87..447b3f42625 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs @@ -72,7 +72,7 @@ public ElementTheme GetCurrentTheme() /// Gets the current System Theme. /// /// System Theme - public ApplicationTheme SystemTheme() + public ApplicationTheme GetSystemTheme() { return _themeListener.CurrentTheme; } From 5c1ce3a7cc45404ec15ea5899fbd335b04f817b7 Mon Sep 17 00:00:00 2001 From: Darren Batchelor Date: Tue, 4 Jan 2022 13:58:11 -0800 Subject: [PATCH 3/3] Removed unneeded event --- .../Pages/SampleController.xaml.cs | 1 + .../SamplePages/ThemeListener/ThemeListenerPage.xaml.cs | 7 ------- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs index 447b3f42625..0c3a4d1a8cf 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs @@ -30,6 +30,7 @@ namespace Microsoft.Toolkit.Uwp.SampleApp public sealed partial class SampleController : Page, INotifyPropertyChanged { public static SampleController Current { get; private set; } + public ThemeListener ThemeListener => _themeListener; public SampleController() diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs index cc4ff2449a6..1be04689b00 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs @@ -18,7 +18,6 @@ public ThemeListenerPage() { this.InitializeComponent(); this.Loaded += ThemeListenerPage_Loaded; - SampleController.Current.ThemeListener.ThemeChanged += Listener_ThemeChanged; SampleController.Current.ThemeChanged += Current_ThemeChanged; } @@ -32,11 +31,6 @@ private void ThemeListenerPage_Loaded(object sender, RoutedEventArgs e) UpdateThemeState(); } - private void Listener_ThemeChanged(ThemeListener sender) - { - UpdateThemeState(); - } - private void UpdateThemeState() { SystemTheme.Text = SampleController.Current.ThemeListener.CurrentThemeName; @@ -46,7 +40,6 @@ private void UpdateThemeState() protected async override void OnNavigatedFrom(NavigationEventArgs e) { Loaded -= ThemeListenerPage_Loaded; - SampleController.Current.ThemeListener.ThemeChanged -= Listener_ThemeChanged; SampleController.Current.ThemeChanged -= Current_ThemeChanged; } }