Skip to content

Commit

Permalink
Refactored platform navigation methods
Browse files Browse the repository at this point in the history
  • Loading branch information
brianlagunas committed Jan 16, 2019
1 parent 802ea9f commit 753fe5a
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 41 deletions.
16 changes: 0 additions & 16 deletions Source/Xamarin/Prism.Forms/Navigation/INavigateInternal.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public static class INavigationServiceExtensions
/// <returns>If <c>true</c> a go back operation was successful. If <c>false</c> the go back operation failed.</returns>
public static Task<INavigationResult> GoBackAsync(this INavigationService navigationService, INavigationParameters parameters = null, bool? useModalNavigation = null, bool animated = true)
{
return ((INavigateInternal)navigationService).GoBackInternal(parameters, useModalNavigation, animated);
return ((IPlatformNavigationService)navigationService).GoBackAsync(parameters, useModalNavigation, animated);
}

/// <summary>
Expand All @@ -30,7 +30,7 @@ public static Task<INavigationResult> GoBackAsync(this INavigationService naviga
/// <remarks>Only works when called from a View within a NavigationPage</remarks>
public static Task<INavigationResult> GoBackToRootAsync(this INavigationService navigationService, INavigationParameters parameters = null)
{
return ((INavigateInternal)navigationService).GoBackToRootInternal(parameters);
return ((IPlatformNavigationService)navigationService).GoBackToRootAsync(parameters);
}

/// <summary>
Expand All @@ -42,7 +42,7 @@ public static Task<INavigationResult> GoBackToRootAsync(this INavigationService
/// <param name="animated">If <c>true</c> the transition is animated, if <c>false</c> there is no animation on transition.</param>
public static Task<INavigationResult> NavigateAsync(this INavigationService navigationService, string name, INavigationParameters parameters = null, bool? useModalNavigation = null, bool animated = true)
{
return ((INavigateInternal)navigationService).NavigateInternal(name, parameters, useModalNavigation, animated);
return ((IPlatformNavigationService)navigationService).NavigateAsync(name, parameters, useModalNavigation, animated);
}

/// <summary>
Expand All @@ -58,7 +58,7 @@ public static Task<INavigationResult> NavigateAsync(this INavigationService navi
/// </example>
public static Task<INavigationResult> NavigateAsync(this INavigationService navigationService, Uri uri, INavigationParameters parameters = null, bool? useModalNavigation = null, bool animated = true)
{
return ((INavigateInternal)navigationService).NavigateInternal(uri, parameters, useModalNavigation, animated);
return ((IPlatformNavigationService)navigationService).NavigateAsync(uri, parameters, useModalNavigation, animated);
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using System;
using System.Threading.Tasks;

namespace Prism.Navigation
{
public interface IPlatformNavigationService
{
Task<INavigationResult> GoBackAsync(INavigationParameters parameters, bool? useModalNavigation, bool animated);

Task<INavigationResult> GoBackToRootAsync(INavigationParameters parameters);

Task<INavigationResult> NavigateAsync(string name, INavigationParameters parameters, bool? useModalNavigation, bool animated);

Task<INavigationResult> NavigateAsync(Uri uri, INavigationParameters parameters, bool? useModalNavigation, bool animated);
}
}
42 changes: 21 additions & 21 deletions Source/Xamarin/Prism.Forms/Navigation/PageNavigationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ namespace Prism.Navigation
/// <summary>
/// Provides page based navigation for ViewModels.
/// </summary>
public class PageNavigationService : INavigationService, INavigateInternal, IPageAware
public class PageNavigationService : INavigationService, IPlatformNavigationService, IPageAware
{
internal const string RemovePageRelativePath = "../";
internal const string RemovePageInstruction = "__RemovePage/";
Expand Down Expand Up @@ -61,6 +61,11 @@ public virtual Task<INavigationResult> GoBackAsync(INavigationParameters paramet
return GoBackInternal(parameters, null, true);
}

Task<INavigationResult> IPlatformNavigationService.GoBackAsync(INavigationParameters parameters, bool? useModalNavigation, bool animated)
{
return GoBackInternal(parameters, useModalNavigation, animated);
}

/// <summary>
/// Navigates to the most recent entry in the back navigation history by popping the calling Page off the navigation stack.
/// </summary>
Expand Down Expand Up @@ -118,6 +123,11 @@ protected async virtual Task<INavigationResult> GoBackInternal(INavigationParame
return result;
}

Task<INavigationResult> IPlatformNavigationService.GoBackToRootAsync(INavigationParameters parameters)
{
return GoBackToRootInternal(parameters);
}

/// <summary>
/// When navigating inside a NavigationPage: Pops all but the root Page off the navigation stack
/// </summary>
Expand Down Expand Up @@ -174,16 +184,6 @@ protected async virtual Task<INavigationResult> GoBackToRootInternal(INavigation
}
}

Task<INavigationResult> INavigateInternal.GoBackInternal(INavigationParameters parameters, bool? useModalNavigation, bool animated)
{
return GoBackInternal(parameters, useModalNavigation, animated);
}

Task<INavigationResult> INavigateInternal.GoBackToRootInternal(INavigationParameters parameters)
{
return GoBackToRootInternal(parameters);
}

/// <summary>
/// Initiates navigation to the target specified by the <paramref name="name"/>.
/// </summary>
Expand All @@ -203,6 +203,11 @@ public virtual Task<INavigationResult> NavigateAsync(string name, INavigationPar
return NavigateInternal(name, parameters, null, true);
}

Task<INavigationResult> IPlatformNavigationService.NavigateAsync(string name, INavigationParameters parameters, bool? useModalNavigation, bool animated)
{
return NavigateInternal(name, parameters, useModalNavigation, animated);
}

/// <summary>
/// Initiates navigation to the target specified by the <paramref name="name"/>.
/// </summary>
Expand All @@ -218,11 +223,6 @@ protected virtual Task<INavigationResult> NavigateInternal(string name, INavigat
return NavigateInternal(UriParsingHelper.Parse(name), parameters, useModalNavigation, animated);
}

Task<INavigationResult> INavigateInternal.NavigateInternal(string name, INavigationParameters parameters, bool? useModalNavigation, bool animated)
{
return NavigateInternal(name, parameters, useModalNavigation, animated);
}

/// <summary>
/// Initiates navigation to the target specified by the <paramref name="uri"/>.
/// </summary>
Expand Down Expand Up @@ -250,6 +250,11 @@ public virtual Task<INavigationResult> NavigateAsync(Uri uri, INavigationParamet
return NavigateInternal(uri, parameters, null, true);
}

Task<INavigationResult> IPlatformNavigationService.NavigateAsync(Uri uri, INavigationParameters parameters, bool? useModalNavigation, bool animated)
{
return NavigateInternal(uri, parameters, useModalNavigation, animated);
}

/// <summary>
/// Initiates navigation to the target specified by the <paramref name="uri"/>.
/// </summary>
Expand Down Expand Up @@ -296,11 +301,6 @@ protected async virtual Task<INavigationResult> NavigateInternal(Uri uri, INavig
}
}

Task<INavigationResult> INavigateInternal.NavigateInternal(Uri uri, INavigationParameters parameters, bool? useModalNavigation, bool animated)
{
return NavigateInternal(uri, parameters, useModalNavigation, animated);
}

protected virtual async Task ProcessNavigation(Page currentPage, Queue<string> segments, INavigationParameters parameters, bool? useModalNavigation, bool animated)
{
if (segments.Count == 0)
Expand Down

0 comments on commit 753fe5a

Please sign in to comment.