From 6b51c92a9308e0f523a446943c4ef9df6f35f2cd Mon Sep 17 00:00:00 2001 From: Matthew Rajala Date: Mon, 10 Feb 2025 20:13:05 -0500 Subject: [PATCH 1/3] fix: android maincommand tint --- .../NavigationBar/NavigationAppBarButtonRenderer.Android.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationAppBarButtonRenderer.Android.cs b/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationAppBarButtonRenderer.Android.cs index 70e15a07c..0fa6fd2c7 100644 --- a/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationAppBarButtonRenderer.Android.cs +++ b/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationAppBarButtonRenderer.Android.cs @@ -135,7 +135,7 @@ bool TrySetIcon() if (bitmap.UriSource is { } uriSource) { native.NavigationIcon = DrawableHelper.FromUri(uriSource); - if (hasIconColor && native.NavigationIcon is { }) + if (bitmap.ShowAsMonochrome && hasIconColor && native.NavigationIcon is { }) { DrawableCompat.SetTint(native.NavigationIcon, (Android.Graphics.Color)foregroundColor); } From fc7b45aeef55a119a81be843d2d943156c2668e9 Mon Sep 17 00:00:00 2001 From: Matthew Rajala Date: Tue, 11 Feb 2025 10:02:03 -0500 Subject: [PATCH 2/3] fix: second fix for android maincommand tint --- .../NavigationBar/NavigationAppBarButtonRenderer.Android.cs | 4 ++-- src/Uno.Toolkit.UI/Extensions/AppBarButtonExtensions.cs | 6 ------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationAppBarButtonRenderer.Android.cs b/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationAppBarButtonRenderer.Android.cs index 0fa6fd2c7..01e0f0414 100644 --- a/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationAppBarButtonRenderer.Android.cs +++ b/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationAppBarButtonRenderer.Android.cs @@ -84,7 +84,7 @@ protected override void Render() // Foreground var hasIconColor = element.TryGetIconColor(out var foregroundColor); - var foregroundOpacity = hasIconColor ? foregroundColor.A / 255d : 0d; + var foregroundOpacity = hasIconColor ? foregroundColor.A / 255d : 1.0; // Visibility if (element.Visibility == Visibility.Visible) @@ -135,7 +135,7 @@ bool TrySetIcon() if (bitmap.UriSource is { } uriSource) { native.NavigationIcon = DrawableHelper.FromUri(uriSource); - if (bitmap.ShowAsMonochrome && hasIconColor && native.NavigationIcon is { }) + if (hasIconColor && native.NavigationIcon is { }) { DrawableCompat.SetTint(native.NavigationIcon, (Android.Graphics.Color)foregroundColor); } diff --git a/src/Uno.Toolkit.UI/Extensions/AppBarButtonExtensions.cs b/src/Uno.Toolkit.UI/Extensions/AppBarButtonExtensions.cs index fba287eb7..115935c4c 100644 --- a/src/Uno.Toolkit.UI/Extensions/AppBarButtonExtensions.cs +++ b/src/Uno.Toolkit.UI/Extensions/AppBarButtonExtensions.cs @@ -48,12 +48,6 @@ public static bool TryGetIconColor(this AppBarButton appBarButton, out Color ico return true; } - if (ColorHelper.TryGetColorWithOpacity(appBarButton.Foreground, out var buttonForeground)) - { - iconColor = buttonForeground; - return true; - } - return false; } } From ac300d1ae8c8d43a978130008afec264c07d665d Mon Sep 17 00:00:00 2001 From: Matthew Rajala Date: Wed, 12 Feb 2025 14:34:20 -0500 Subject: [PATCH 3/3] fix: ios maincommand tint --- .../Controls/NavigationBar/NavigationBarRenderer.iOS.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationBarRenderer.iOS.cs b/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationBarRenderer.iOS.cs index 8f745be43..52fba1df1 100644 --- a/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationBarRenderer.iOS.cs +++ b/src/Uno.Toolkit.UI/Controls/NavigationBar/NavigationBarRenderer.iOS.cs @@ -220,7 +220,10 @@ protected override void Render() backButtonAppearance.Normal.TitleTextAttributes = attributes; backButtonAppearance.Highlighted.TitleTextAttributes = attributes; - backImage = backImage?.ApplyTintColor(foreground); + if (mainCommand is { } && mainCommand.TryGetIconColor(out var _)) + { + backImage = backImage?.ApplyTintColor(foregroundColor); + } } if (backImage is { })