summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Android
diff options
context:
space:
mode:
authorE.Z. Hart <hartez@users.noreply.github.com>2017-01-23 12:42:38 -0700
committerKangho Hur <kangho.hur@samsung.com>2017-03-24 13:12:24 +0900
commit8ac2874b55a3f331abb58fa983b8603e08b80184 (patch)
tree8dd3a2305b3bd1eac8ee01fac37a15e6aa4ee0d0 /Xamarin.Forms.Platform.Android
parentb57d4e67779bc67070e90b23167a01e37c3a2f8a (diff)
downloadxamarin-forms-8ac2874b55a3f331abb58fa983b8603e08b80184.tar.gz
xamarin-forms-8ac2874b55a3f331abb58fa983b8603e08b80184.tar.bz2
xamarin-forms-8ac2874b55a3f331abb58fa983b8603e08b80184.zip
Reduce overhead of pushing existing navigation stack (#672)
* Make StackCopy less awkward * Clean up comment * Update docs * Update docs * Replace SecondToLast with an arbitrarily deep Peek method * Update docs * Handle negative depths in Peek()
Diffstat (limited to 'Xamarin.Forms.Platform.Android')
-rw-r--r--Xamarin.Forms.Platform.Android/AppCompat/NavigationPageRenderer.cs4
-rw-r--r--Xamarin.Forms.Platform.Android/Renderers/NavigationRenderer.cs4
2 files changed, 4 insertions, 4 deletions
diff --git a/Xamarin.Forms.Platform.Android/AppCompat/NavigationPageRenderer.cs b/Xamarin.Forms.Platform.Android/AppCompat/NavigationPageRenderer.cs
index cab4d561..cc474293 100644
--- a/Xamarin.Forms.Platform.Android/AppCompat/NavigationPageRenderer.cs
+++ b/Xamarin.Forms.Platform.Android/AppCompat/NavigationPageRenderer.cs
@@ -268,7 +268,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
navController.RemovePageRequested += OnRemovePageRequested;
// If there is already stuff on the stack we need to push it
- foreach (Page page in navController.StackCopy.Reverse())
+ foreach (Page page in navController.Pages)
{
PushViewAsync(page, false);
}
@@ -461,7 +461,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
Task<bool> OnPopViewAsync(Page page, bool animated)
{
- Page pageToShow = ((INavigationPageController)Element).StackCopy.Skip(1).FirstOrDefault();
+ Page pageToShow = ((INavigationPageController)Element).Peek(1);
if (pageToShow == null)
return Task.FromResult(false);
diff --git a/Xamarin.Forms.Platform.Android/Renderers/NavigationRenderer.cs b/Xamarin.Forms.Platform.Android/Renderers/NavigationRenderer.cs
index c02dc42b..bf6540b9 100644
--- a/Xamarin.Forms.Platform.Android/Renderers/NavigationRenderer.cs
+++ b/Xamarin.Forms.Platform.Android/Renderers/NavigationRenderer.cs
@@ -109,7 +109,7 @@ namespace Xamarin.Forms.Platform.Android
newNavController.RemovePageRequested += OnRemovePageRequested;
// If there is already stuff on the stack we need to push it
- foreach(Page page in newNavController.StackCopy.Reverse())
+ foreach (Page page in newNavController.Pages)
{
PushViewAsync(page, false);
}
@@ -130,7 +130,7 @@ namespace Xamarin.Forms.Platform.Android
protected virtual Task<bool> OnPopViewAsync(Page page, bool animated)
{
- Page pageToShow = ((INavigationPageController)Element).StackCopy.Skip(1).FirstOrDefault();
+ Page pageToShow = ((INavigationPageController)Element).Peek(1);
if (pageToShow == null)
return Task.FromResult(false);