Skip to content

Commit df1b42c

Browse files
Simplify GetNavigationTree method signature
1 parent ed15c8f commit df1b42c

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

Plugin.SegmentedControl.Maui/Utils/HandlerCleanUpHelper.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ private static bool CheckIfPageIsUsed(Page targetPage)
8383
// is part of the NavigationStack or the ModalStack.
8484
{
8585
var mainPage = Application.Current.MainPage;
86-
var navigation = mainPage.Navigation;
87-
var pages = PageHelper.GetNavigationTree(navigation, mainPage).ToArray();
86+
var pages = PageHelper.GetNavigationTree(mainPage).ToArray();
8887
var pageExists = pages.Any(p => p == targetPage);
8988
return pageExists;
9089
}

Plugin.SegmentedControl.Maui/Utils/PageHelper.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,30 @@ internal static string PrintNavigationPath()
2121
{
2222
var mainPage = Application.Current.MainPage;
2323
var navigation = mainPage.Navigation;
24-
var pages = GetNavigationTree(navigation, mainPage).ToArray();
24+
var pages = GetNavigationTree(mainPage).ToArray();
2525
var navigationPath = PrintNavigationPath(pages);
2626
return navigationPath;
2727
}
2828

2929
private static string PrintNavigationPath(IEnumerable<Page> pages)
3030
{
31-
return pages.Aggregate("", (current, page) => $"{current}/{(page?.GetType().Name ?? "")}");
31+
return pages.Aggregate("", (current, page) => $"{current}/{page?.GetType().Name ?? ""}");
3232
}
3333

34-
internal static IEnumerable<Page> GetNavigationTree(INavigation navigation, Page page, bool modal = false)
34+
internal static IEnumerable<Page> GetNavigationTree(Page page, bool modal = false)
3535
{
36+
var navigation = page.Navigation;
37+
3638
switch (page)
3739
{
3840
case FlyoutPage flyoutPage:
3941
yield return flyoutPage;
40-
foreach (var p in GetNavigationTree(flyoutPage.Flyout.Navigation, flyoutPage.Flyout))
42+
foreach (var p in GetNavigationTree(flyoutPage.Flyout))
4143
{
4244
yield return p;
4345
}
4446

45-
foreach (var p in GetNavigationTree(flyoutPage.Detail.Navigation, flyoutPage.Detail))
47+
foreach (var p in GetNavigationTree(flyoutPage.Detail))
4648
{
4749
yield return p;
4850
}
@@ -51,7 +53,7 @@ internal static IEnumerable<Page> GetNavigationTree(INavigation navigation, Page
5153

5254
case TabbedPage tabbedPage:
5355
yield return tabbedPage;
54-
foreach (var p in GetNavigationTree(tabbedPage.CurrentPage.Navigation, tabbedPage.CurrentPage))
56+
foreach (var p in GetNavigationTree(tabbedPage.CurrentPage))
5557
{
5658
yield return p;
5759
}
@@ -77,7 +79,7 @@ internal static IEnumerable<Page> GetNavigationTree(INavigation navigation, Page
7779
{
7880
foreach (var modalPage in navigation.ModalStack)
7981
{
80-
foreach (var p in GetNavigationTree(modalPage.Navigation, modalPage, modal: true))
82+
foreach (var p in GetNavigationTree(modalPage, modal: true))
8183
{
8284
yield return p;
8385
}

0 commit comments

Comments
 (0)