From cc48d5557e2ba2b18b28cdf9d331e47002b10fc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez?= Date: Tue, 10 Jan 2023 10:51:45 +0100 Subject: [PATCH 1/3] Avoid to update Shell Toolbar colors if already disposed the Tracker --- .../Shell/Android/ShellToolbarAppearanceTracker.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs b/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs index 11deb5ac0b18..8fd354f035ab 100644 --- a/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs +++ b/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs @@ -33,9 +33,17 @@ public virtual void ResetAppearance(AToolbar toolbar, IShellToolbarTracker toolb protected virtual void SetColors(AToolbar toolbar, IShellToolbarTracker toolbarTracker, Color foreground, Color background, Color title) { - _shellContext.Shell.Toolbar.BarTextColor = title ?? ShellRenderer.DefaultTitleColor; - _shellContext.Shell.Toolbar.BarBackground = new SolidColorBrush(background ?? ShellRenderer.DefaultBackgroundColor); - _shellContext.Shell.Toolbar.IconColor = foreground ?? ShellRenderer.DefaultForegroundColor; + if (_disposed) + return; + + Toolbar shellToolbar = _shellContext.Shell.Toolbar; + + if (shellToolbar == null) + return; + + shellToolbar.BarTextColor = title ?? ShellRenderer.DefaultTitleColor; + shellToolbar.BarBackground = new SolidColorBrush(background ?? ShellRenderer.DefaultBackgroundColor); + shellToolbar.IconColor = foreground ?? ShellRenderer.DefaultForegroundColor; } #region IDisposable From 9f08a4444c0aa0e0abad3832f95a5c38017f7df7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez?= Date: Tue, 7 Feb 2023 18:02:39 +0100 Subject: [PATCH 2/3] Changes from PR feedback --- .../Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs b/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs index 8fd354f035ab..33adbcf49dec 100644 --- a/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs +++ b/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs @@ -38,7 +38,7 @@ protected virtual void SetColors(AToolbar toolbar, IShellToolbarTracker toolbarT Toolbar shellToolbar = _shellContext.Shell.Toolbar; - if (shellToolbar == null) + if (shellToolbar is null) return; shellToolbar.BarTextColor = title ?? ShellRenderer.DefaultTitleColor; From 4c480fa7e4f5720f2b12d47faedddd85e9b9a3fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez?= Date: Thu, 9 Feb 2023 18:54:21 +0100 Subject: [PATCH 3/3] Update src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs Co-authored-by: Shane Neuville --- .../Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs b/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs index 33adbcf49dec..4ab85e30e61f 100644 --- a/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs +++ b/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarAppearanceTracker.cs @@ -36,7 +36,7 @@ protected virtual void SetColors(AToolbar toolbar, IShellToolbarTracker toolbarT if (_disposed) return; - Toolbar shellToolbar = _shellContext.Shell.Toolbar; + Toolbar shellToolbar = _shellContext?.Shell?.Toolbar; if (shellToolbar is null) return;