diff --git a/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarTracker.cs b/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarTracker.cs index feda1cdbb481..80a85e4a377f 100644 --- a/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarTracker.cs +++ b/src/Controls/src/Core/Compatibility/Handlers/Shell/Android/ShellToolbarTracker.cs @@ -416,8 +416,7 @@ protected virtual async void UpdateLeftBarButtonItem(Context context, AToolbar t var command = backButtonHandler.GetPropertyIfSet(BackButtonBehavior.CommandProperty, null); var backButtonVisibleFromBehavior = backButtonHandler.GetPropertyIfSet(BackButtonBehavior.IsVisibleProperty, true); bool isEnabled = _shell.Toolbar.BackButtonEnabled; - //Add the FlyoutIcon only if the FlyoutBehavior is Flyout - var image = _flyoutBehavior == FlyoutBehavior.Flyout ? GetFlyoutIcon(backButtonHandler, page) : null; + var image = _flyoutBehavior == FlyoutBehavior.Flyout ? GetFlyoutIcon(backButtonHandler, page) : backButtonHandler.GetPropertyIfSet(BackButtonBehavior.IconOverrideProperty, null); var backButtonVisible = _toolbar.BackButtonVisible; DrawerArrowDrawable icon = null; diff --git a/src/Controls/tests/TestCases.HostApp/Issues/Issue32050.xaml b/src/Controls/tests/TestCases.HostApp/Issues/Issue32050.xaml new file mode 100644 index 000000000000..7d42469112d2 --- /dev/null +++ b/src/Controls/tests/TestCases.HostApp/Issues/Issue32050.xaml @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/Controls/tests/TestCases.HostApp/Issues/Issue32050.xaml.cs b/src/Controls/tests/TestCases.HostApp/Issues/Issue32050.xaml.cs new file mode 100644 index 000000000000..86f91e3f2de7 --- /dev/null +++ b/src/Controls/tests/TestCases.HostApp/Issues/Issue32050.xaml.cs @@ -0,0 +1,21 @@ +namespace Maui.Controls.Sample.Issues; + +[Issue(IssueTracker.Github, 32050, "IconOverride in Shell.BackButtonBehavior does not work.", PlatformAffected.iOS)] +public partial class Issue32050 : Shell +{ + public Issue32050() + { + InitializeComponent(); + Routing.RegisterRoute("Issue32050SubPage", typeof(Issue32050SubPage)); + GoToAsync("Issue32050SubPage"); + } + + class Issue32050SubPage : ContentPage + { + public Issue32050SubPage() + { + Content = new Label { Text = "Label", AutomationId = "Label" }; + SetBackButtonBehavior(this, new BackButtonBehavior { IconOverride = "coffee.png" }); + } + } +} \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue32050.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue32050.cs new file mode 100644 index 000000000000..a23677289e08 --- /dev/null +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue32050.cs @@ -0,0 +1,22 @@ +using NUnit.Framework; +using UITest.Appium; +using UITest.Core; + +namespace Microsoft.Maui.TestCases.Tests.Issues; + +public class Issue32050 : _IssuesUITest +{ + public Issue32050(TestDevice testDevice) : base(testDevice) + { + } + + public override string Issue => "IconOverride in Shell.BackButtonBehavior does not work."; + + [Test] + [Category(UITestCategories.TitleView)] + public void IconOverrideInShellBackButtonBehaviorShouldWork() + { + App.WaitForElement("Label"); + VerifyScreenshot(); + } +} \ No newline at end of file