Guest User

Untitled

a guest
Oct 24th, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.82 KB | None | 0 0
  1. using Android.Animation;
  2. using Android.Views;
  3. using System;
  4. using System.Threading.Tasks;
  5.  
  6. private Task<bool> SwitchContentAsync (Page view, bool animated, bool removed = false)
  7. {
  8.     NavigationRenderer.<>c__DisplayClass13_0 <>c__DisplayClass13_ = new NavigationRenderer.<>c__DisplayClass13_0 ();
  9.     <>c__DisplayClass13_.<>4__this = this;
  10.     base.Context.HideKeyboard (this);
  11.     IVisualElementRenderer renderer = Platform.GetRenderer (view);
  12.     bool flag = renderer != null;
  13.     if (!flag) {
  14.         Platform.SetRenderer (view, renderer = RendererFactory.GetRenderer (view));
  15.     }
  16.     <>c__DisplayClass13_.pageToRemove = this.current;
  17.     NavigationRenderer.<>c__DisplayClass13_0 expr_43 = <>c__DisplayClass13_;
  18.     expr_43.rendererToRemove = ((expr_43.pageToRemove == null) ? null : Platform.GetRenderer (<>c__DisplayClass13_.pageToRemove));
  19.     NavigationRenderer.<>c__DisplayClass13_0 expr_5F = <>c__DisplayClass13_;
  20.     expr_5F.containerToRemove = ((expr_5F.rendererToRemove == null) ? null : ((PageContainer)<>c__DisplayClass13_.rendererToRemove.ViewGroup.Parent));
  21.     PageContainer pageContainer = ((PageContainer)renderer.ViewGroup.Parent) ?? new PageContainer (base.Context, renderer);
  22.     pageContainer.SetWindowBackground ();
  23.     this.current = view;
  24.     ((Platform)base.Element.Platform).NavAnimationInProgress = true;
  25.     <>c__DisplayClass13_.tcs = new TaskCompletionSource<bool> ();
  26.     if (animated) {
  27.         if (NavigationRenderer.currentAnimation != null) {
  28.             NavigationRenderer.currentAnimation.Cancel ();
  29.         }
  30.         if (removed) {
  31.             if (pageContainer.Parent != this) {
  32.                 this.AddView (pageContainer, base.Element.LogicalChildren.IndexOf (renderer.Element));
  33.             }
  34.             else {
  35.                 ((Page)renderer.Element).SendAppearing ();
  36.             }
  37.             pageContainer.Visibility = ViewStates.Visible;
  38.             if (<>c__DisplayClass13_.containerToRemove != null) {
  39.                 Action<Animator> done = delegate (Animator a) {
  40.                     <>c__DisplayClass13_.containerToRemove.Visibility = ViewStates.Gone;
  41.                     <>c__DisplayClass13_.containerToRemove.set_Alpha (1);
  42.                     <>c__DisplayClass13_.containerToRemove.set_ScaleX (1);
  43.                     <>c__DisplayClass13_.containerToRemove.set_ScaleY (1);
  44.                     <>c__DisplayClass13_.<>4__this.RemoveView (<>c__DisplayClass13_.containerToRemove);
  45.                     <>c__DisplayClass13_.tcs.TrySetResult (true);
  46.                     ((Platform)<>c__DisplayClass13_.<>4__this.Element.Platform).NavAnimationInProgress = false;
  47.                     VisualElement element = <>c__DisplayClass13_.rendererToRemove.Element;
  48.                     <>c__DisplayClass13_.rendererToRemove.Dispose ();
  49.                     if (element != null) {
  50.                         Platform.SetRenderer (element, null);
  51.                     }
  52.                 };
  53.                 NavigationRenderer.currentAnimation = <>c__DisplayClass13_.containerToRemove.Animate ().Alpha (0).ScaleX (0.8).ScaleY (0.8).SetDuration (250).SetListener (new GenericAnimatorListener {
  54.                     OnEnd = delegate (Animator a) {
  55.                         NavigationRenderer.currentAnimation = null;
  56.                         done (a);
  57.                     },
  58.                     OnCancel = done
  59.                 });
  60.             }
  61.         }
  62.         else {
  63.             if (pageContainer.Parent != this) {
  64.                 this.AddView (pageContainer);
  65.             }
  66.             else {
  67.                 ((Page)renderer.Element).SendAppearing ();
  68.             }
  69.             if (flag) {
  70.                 base.Element.ForceLayout ();
  71.             }
  72.             pageContainer.set_Alpha (0);
  73.             PageContainer expr_1FA = pageContainer;
  74.             float scaleX;
  75.             expr_1FA.set_ScaleY (scaleX = 0.8);
  76.             expr_1FA.set_ScaleX (scaleX);
  77.             pageContainer.Visibility = ViewStates.Visible;
  78.             NavigationRenderer.currentAnimation = pageContainer.Animate ().Alpha (1).ScaleX (1).ScaleY (1).SetDuration (250).SetListener (new GenericAnimatorListener {
  79.                 OnEnd = delegate (Animator a) {
  80.                     if (<>c__DisplayClass13_.containerToRemove != null && <>c__DisplayClass13_.containerToRemove.Handle != IntPtr.Zero) {
  81.                         <>c__DisplayClass13_.containerToRemove.Visibility = ViewStates.Gone;
  82.                         if (<>c__DisplayClass13_.pageToRemove != null) {
  83.                             <>c__DisplayClass13_.pageToRemove.SendDisappearing ();
  84.                         }
  85.                     }
  86.                     NavigationRenderer.currentAnimation = null;
  87.                     <>c__DisplayClass13_.tcs.TrySetResult (true);
  88.                     ((Platform)<>c__DisplayClass13_.<>4__this.Element.Platform).NavAnimationInProgress = false;
  89.                 }
  90.             });
  91.         }
  92.     }
  93.     else {
  94.         if (<>c__DisplayClass13_.containerToRemove != null) {
  95.             if (removed) {
  96.                 this.RemoveView (<>c__DisplayClass13_.containerToRemove);
  97.             }
  98.             else {
  99.                 <>c__DisplayClass13_.containerToRemove.Visibility = ViewStates.Gone;
  100.             }
  101.         }
  102.         if (pageContainer.Parent != this) {
  103.             this.AddView (pageContainer);
  104.         }
  105.         else {
  106.             ((Page)renderer.Element).SendAppearing ();
  107.         }
  108.         if (<>c__DisplayClass13_.containerToRemove != null && !removed) {
  109.             <>c__DisplayClass13_.pageToRemove.SendDisappearing ();
  110.         }
  111.         if (flag) {
  112.             base.Element.ForceLayout ();
  113.         }
  114.         pageContainer.Visibility = ViewStates.Visible;
  115.         <>c__DisplayClass13_.tcs.SetResult (true);
  116.         ((Platform)base.Element.Platform).NavAnimationInProgress = false;
  117.     }
  118.     return <>c__DisplayClass13_.tcs.get_Task ();
  119. }
Advertisement
Add Comment
Please, Sign In to add comment