public void TransitionItemBaseAssign() { tlog.Debug(tag, $"TransitionItemBaseAssign START"); using (View view = new View()) { var testingTarget = new TransitionItemBase(view.SwigCPtr.Handle, false); Assert.IsNotNull(testingTarget, "Should be not null!"); Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!"); try { testingTarget.Assign(testingTarget); } catch (Exception e) { tlog.Error(tag, "Caught Exception" + e.ToString()); LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail("Caught Exception" + e.ToString()); } testingTarget.Dispose(); } tlog.Debug(tag, $"TransitionItemBaseAssign END (OK)"); }
public void TransitionItemBaseTimePeriod() { tlog.Debug(tag, $"TransitionItemBaseTimePeriod START"); using (View view = new View()) { using (TimePeriod timePeriod = new TimePeriod(300)) { using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default)) { var testingTarget = new TransitionItemBase(view, true, timePeriod, alphaFunction); Assert.IsNotNull(testingTarget, "Should be not null!"); Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!"); tlog.Debug(tag, "TimePeriod : " + testingTarget.TimePeriod); tlog.Debug(tag, "AlphaFunction : " + testingTarget.AlphaFunction); testingTarget.Dispose(); // disposed testingTarget.Dispose(); } } } tlog.Debug(tag, $"TransitionItemBaseTimePeriod END (OK)"); }
public void TransitionItemBaseTransitionWithChild() { tlog.Debug(tag, $"TransitionItemBaseTransitionWithChild START"); using (View view = new View()) { var testingTarget = new TransitionItemBase(view.SwigCPtr.Handle, false); Assert.IsNotNull(testingTarget, "Should be not null!"); Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!"); try { testingTarget.TransitionWithChild = false; } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception : Failed!"); } testingTarget.Dispose(); } tlog.Debug(tag, $"TransitionItemBaseTransitionWithChild END (OK)"); }
public void TransitionItemBaseDuration() { tlog.Debug(tag, $"TransitionItemBaseDuration START"); View view = new View() { Name = "view", TransitionOptions = new TransitionOptions(Window.Instance) }; view.TransitionOptions.TransitionTag = "Transition"; view.TransitionOptions.EnableTransition = true; TransitionItemBase testingTarget = null; using (TimePeriod timePeriod = new TimePeriod(500)) { using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default)) { testingTarget = new TransitionItemBase(view, true, timePeriod, alphaFunction); } } testingTarget.Duration = 300; Assert.IsTrue(300 == testingTarget.Duration); view.Dispose(); testingTarget.Dispose(); tlog.Debug(tag, $"TransitionItemBaseDuration END (OK)"); }
public void TransitionItemBaseAssign() { tlog.Debug(tag, $"TransitionItemBaseAssign START"); View view = new View() { Name = "view", TransitionOptions = new TransitionOptions(Window.Instance) }; view.TransitionOptions.TransitionTag = "Transition"; view.TransitionOptions.EnableTransition = true; TransitionItemBase testingTarget = null; using (TimePeriod timePeriod = new TimePeriod(500)) { using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default)) { testingTarget = new TransitionItemBase(view, true, timePeriod, alphaFunction); } } using (TransitionItemBase rhs = new TransitionItemBase(testingTarget)) { var result = testingTarget.Assign(rhs); Assert.IsNotNull(result, "Should be not null!"); Assert.IsInstanceOf <TransitionItemBase>(result, "Should be an Instance of TransitionItemBase!"); } view.Dispose(); testingTarget.Dispose(); tlog.Debug(tag, $"TransitionItemBaseAssign END (OK)"); }
public void TransitionItemBaseConstructor() { tlog.Debug(tag, $"TransitionItemBaseConstructor START"); using (View view = new View()) { var testingTarget = new TransitionItemBase(view.SwigCPtr.Handle, false); Assert.IsNotNull(testingTarget, "Should be not null!"); Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!"); testingTarget.Dispose(); } tlog.Debug(tag, $"TransitionItemBaseConstructor END (OK)"); }
public void TransitionSetAddTransition() { tlog.Debug(tag, $"TransitionSetAddTransition START"); View view = new View() { Name = "view", TransitionOptions = new TransitionOptions(Window.Instance) }; view.TransitionOptions.TransitionTag = "Transition"; view.TransitionOptions.EnableTransition = true; TransitionItemBase transitionItemBase = null; using (TimePeriod timePeriod = new TimePeriod(500)) { using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default)) { transitionItemBase = new TransitionItemBase(view, true, timePeriod, alphaFunction); } } var testingTarget = new TransitionSet(); Assert.IsNotNull(testingTarget, "Should be not null!"); Assert.IsInstanceOf <TransitionSet>(testingTarget, "Should be an Instance of TransitionSet!"); testingTarget.Finished += OnFinished; try { testingTarget.AddTransition(transitionItemBase); } catch (Exception e) { tlog.Error(tag, "Caught Exception" + e.ToString()); LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail("Caught Exception" + e.ToString()); } view.Dispose(); transitionItemBase.Dispose(); testingTarget.Dispose(); tlog.Debug(tag, $"TransitionSetAddTransition END (OK)"); }
public void TransitionItemBaseTimePeriod() { tlog.Debug(tag, $"TransitionItemBaseTimePeriod START"); using (View view = new View()) { var testingTarget = new TransitionItemBase(view.SwigCPtr.Handle, false); Assert.IsNotNull(testingTarget, "Should be not null!"); Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!"); testingTarget.TimePeriod = new TimePeriod(300); tlog.Debug(tag, "TiemPeriod : " + testingTarget.TimePeriod); testingTarget.Dispose(); } tlog.Debug(tag, $"TransitionItemBaseTimePeriod END (OK)"); }
public void TransitionSetSignalDisconnect() { tlog.Debug(tag, $"TransitionSetSignalDisconnect START"); View view = new View() { Name = "view", TransitionOptions = new TransitionOptions(Window.Instance) }; view.TransitionOptions.TransitionTag = "Transition"; view.TransitionOptions.EnableTransition = true; TransitionItemBase transitionItemBase = null; using (TimePeriod timePeriod = new TimePeriod(500)) { using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default)) { transitionItemBase = new TransitionItemBase(view, true, timePeriod, alphaFunction); } } var testingTarget = new TransitionSet(); Assert.IsNotNull(testingTarget, "Should be not null!"); Assert.IsInstanceOf <TransitionSet>(testingTarget, "Should be an Instance of TransitionSet!"); testingTarget.AddTransition(transitionItemBase); var transitionSetSignal = testingTarget.FinishedSignal(); Assert.IsNotNull(transitionSetSignal, "Should be not null!"); Assert.IsInstanceOf <TransitionSetFinishedSignal>(transitionSetSignal, "Should be an Instance of TransitionSet!"); dummyCallback callback = OnDummyCallback; transitionSetSignal.Connect(callback); transitionSetSignal.Disconnect(callback); view.Dispose(); testingTarget.Dispose(); tlog.Debug(tag, $"TransitionSetSignalDisconnect END (OK)"); }
public void TransitionItemBaseTimePeriod() { tlog.Debug(tag, $"TransitionItemBaseTimePeriod START"); View view = new View() { Name = "view", TransitionOptions = new TransitionOptions(Window.Instance) }; view.TransitionOptions.TransitionTag = "Transition"; view.TransitionOptions.EnableTransition = true; TransitionItemBase testingTarget = null; using (TimePeriod timePeriod = new TimePeriod(500)) { using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default)) { testingTarget = new TransitionItemBase(view, true, timePeriod, alphaFunction); } } try { using (TimePeriod setValue = new TimePeriod(300)) { testingTarget.TimePeriod = setValue; } } catch (Exception e) { tlog.Error(tag, "Caught Exception" + e.ToString()); LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString()); Assert.Fail("Caught Exception" + e.ToString()); } view.Dispose(); testingTarget.Dispose(); tlog.Debug(tag, $"TransitionItemBaseTimePeriod END (OK)"); }
public void TransitionSetGetTransitionCount() { tlog.Debug(tag, $"TransitionSetGetTransitionCount START"); View view = new View() { Name = "view", TransitionOptions = new TransitionOptions(Window.Instance) }; view.TransitionOptions.TransitionTag = "Transition"; view.TransitionOptions.EnableTransition = true; TransitionItemBase transitionItemBase = null; using (TimePeriod timePeriod = new TimePeriod(500)) { using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default)) { transitionItemBase = new TransitionItemBase(view, true, timePeriod, alphaFunction); } } var testingTarget = new TransitionSet(); Assert.IsNotNull(testingTarget, "Should be not null!"); Assert.IsInstanceOf <TransitionSet>(testingTarget, "Should be an Instance of TransitionSet!"); testingTarget.AddTransition(transitionItemBase); var result = testingTarget.GetTransitionCount(); Assert.IsTrue(1 == result); view.Dispose(); transitionItemBase.Dispose(); testingTarget.Dispose(); tlog.Debug(tag, $"TransitionSetGetTransitionCount END (OK)"); }
public void TransitionItemBaseDownCastWithNullHandle() { tlog.Debug(tag, $"TransitionItemBaseDownCastWithNullHandle START"); using (View view = new View()) { var testingTarget = new TransitionItemBase(view.SwigCPtr.Handle, false); Assert.IsNotNull(testingTarget, "Should be not null!"); Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!"); try { TransitionItemBase.DownCast(null); } catch (ArgumentNullException e) { tlog.Debug(tag, e.Message.ToString()); tlog.Debug(tag, $"TransitionItemBaseDownCastWithNullHandle END (OK)"); Assert.Pass("Caught ArgumentNullException : Passed!"); } testingTarget.Dispose(); } }
/// <summary> /// Create Transitions between currentTopPage and newTopPage /// </summary> /// <param name="currentTopPage">The top page of Navigator.</param> /// <param name="newTopPage">The new top page after transition.</param> /// <param name="pushTransition">True if this transition is for push new page</param> private TransitionSet CreateTransitions(Page currentTopPage, Page newTopPage, bool pushTransition) { currentTopPage.SetVisible(true); // Set Content visible because it was hidden by HideContentOfPage. (currentTopPage as ContentPage)?.Content?.SetVisible(true); newTopPage.SetVisible(true); // Set Content visible because it was hidden by HideContentOfPage. (newTopPage as ContentPage)?.Content?.SetVisible(true); List <View> taggedViewsInNewTopPage = new List <View>(); RetrieveTaggedViews(taggedViewsInNewTopPage, newTopPage, true); List <View> taggedViewsInCurrentTopPage = new List <View>(); RetrieveTaggedViews(taggedViewsInCurrentTopPage, currentTopPage, true); List <KeyValuePair <View, View> > sameTaggedViewPair = new List <KeyValuePair <View, View> >(); foreach (View currentTopPageView in taggedViewsInCurrentTopPage) { bool findPair = false; foreach (View newTopPageView in taggedViewsInNewTopPage) { if ((currentTopPageView.TransitionOptions != null) && (newTopPageView.TransitionOptions != null) && currentTopPageView.TransitionOptions?.TransitionTag == newTopPageView.TransitionOptions?.TransitionTag) { sameTaggedViewPair.Add(new KeyValuePair <View, View>(currentTopPageView, newTopPageView)); findPair = true; break; } } if (findPair) { taggedViewsInNewTopPage.Remove(sameTaggedViewPair[sameTaggedViewPair.Count - 1].Value); } } foreach (KeyValuePair <View, View> pair in sameTaggedViewPair) { taggedViewsInCurrentTopPage.Remove(pair.Key); } TransitionSet newTransitionSet = new TransitionSet(); foreach (KeyValuePair <View, View> pair in sameTaggedViewPair) { TransitionItem pairTransition = transition.CreateTransition(pair.Key, pair.Value, pushTransition); if (pair.Value.TransitionOptions?.TransitionWithChild ?? false) { pairTransition.TransitionWithChild = true; } newTransitionSet.AddTransition(pairTransition); } newTransitionSet.Finished += (object sender, EventArgs e) => { if (newTopPage.Layout != null) { newTopPage.Layout.RequestLayout(); } if (currentTopPage.Layout != null) { currentTopPage.Layout.RequestLayout(); } transitionFinished = true; InvokeTransitionFinished(); transitionSet.Dispose(); }; if (!pushTransition || newTopPage is DialogPage == false) { View transitionView = (currentTopPage is ContentPage) ? (currentTopPage as ContentPage).Content : (currentTopPage as DialogPage).Content; if (currentTopPage.DisappearingTransition != null && transitionView != null) { TransitionItemBase disappearingTransition = currentTopPage.DisappearingTransition.CreateTransition(transitionView, false); disappearingTransition.TransitionWithChild = true; newTransitionSet.AddTransition(disappearingTransition); } else { currentTopPage.SetVisible(false); } } if (pushTransition || currentTopPage is DialogPage == false) { View transitionView = (newTopPage is ContentPage) ? (newTopPage as ContentPage).Content : (newTopPage as DialogPage).Content; if (newTopPage.AppearingTransition != null && transitionView != null) { TransitionItemBase appearingTransition = newTopPage.AppearingTransition.CreateTransition(transitionView, true); appearingTransition.TransitionWithChild = true; newTransitionSet.AddTransition(appearingTransition); } } newTransitionSet.Play(); return(newTransitionSet); }
/// <summary> /// Create Transition between currentTopPage and newTopPage /// </summary> /// <param name="currentTopPage">The top page of Navigator.</param> /// <param name="newTopPage">The new top page after transition.</param> /// <param name="pushTransition">True if this transition is for push new page</param> private TransitionSet CreateTransition(Page currentTopPage, Page newTopPage, bool pushTransition) { currentTopPage.SetVisible(true); newTopPage.SetVisible(true); List <View> taggedViewsInNewTopPage = new List <View>(); RetrieveTaggedViews(taggedViewsInNewTopPage, newTopPage); List <View> taggedViewsInCurrentTopPage = new List <View>(); RetrieveTaggedViews(taggedViewsInCurrentTopPage, currentTopPage); List <KeyValuePair <View, View> > sameTaggedViewPair = new List <KeyValuePair <View, View> >(); foreach (View currentTopPageView in taggedViewsInCurrentTopPage) { bool findPair = false; foreach (View newTopPageView in taggedViewsInNewTopPage) { if ((currentTopPageView.TransitionOptions != null) && (newTopPageView.TransitionOptions != null) && currentTopPageView.TransitionOptions?.TransitionTag == newTopPageView.TransitionOptions?.TransitionTag) { sameTaggedViewPair.Add(new KeyValuePair <View, View>(currentTopPageView, newTopPageView)); findPair = true; break; } } if (findPair) { taggedViewsInNewTopPage.Remove(sameTaggedViewPair[sameTaggedViewPair.Count - 1].Value); } } foreach (KeyValuePair <View, View> pair in sameTaggedViewPair) { taggedViewsInCurrentTopPage.Remove(pair.Key); } TransitionSet newTransitionSet = new TransitionSet(); foreach (KeyValuePair <View, View> pair in sameTaggedViewPair) { TransitionItem pairTransition = transition.CreateTransition(pair.Key, pair.Value); if (pair.Value.TransitionOptions?.TransitionWithChild ?? false) { pairTransition.TransitionWithChild = true; } newTransitionSet.AddTransition(pairTransition); } newTransitionSet.Finished += (object sender, EventArgs e) => { transitionFinished = true; InvokeTransitionFinished(); transitionSet.Dispose(); currentTopPage.Opacity = 1.0f; }; // default appearing/disappearing transition - fast fade (half duration compaired with that of view pair transition) int duration = (transition.TimePeriod.DurationMilliseconds + transition.TimePeriod.DelayMilliseconds); float durationSeconds = (float)duration / 1000.0f; TransitionItemBase disappearingTransition = currentTopPage.DisappearingTransition.CreateTransition(currentTopPage, false); TransitionItemBase appearingTransition = newTopPage.AppearingTransition.CreateTransition(newTopPage, true); disappearingTransition.TransitionWithChild = true; appearingTransition.TransitionWithChild = true; newTransitionSet.AddTransition(disappearingTransition); newTransitionSet.AddTransition(appearingTransition); newTransitionSet.Play(); return(newTransitionSet); }
/// <summary> /// Create Transitions between currentTopPage and newTopPage /// </summary> /// <param name="currentTopPage">The top page of Navigator.</param> /// <param name="newTopPage">The new top page after transition.</param> /// <param name="pushTransition">True if this transition is for push new page</param> private TransitionSet CreateTransitions(Page currentTopPage, Page newTopPage, bool pushTransition) { currentTopPage.SetVisible(true); newTopPage.SetVisible(true); List <View> taggedViewsInNewTopPage = new List <View>(); RetrieveTaggedViews(taggedViewsInNewTopPage, newTopPage, true); List <View> taggedViewsInCurrentTopPage = new List <View>(); RetrieveTaggedViews(taggedViewsInCurrentTopPage, currentTopPage, true); List <KeyValuePair <View, View> > sameTaggedViewPair = new List <KeyValuePair <View, View> >(); foreach (View currentTopPageView in taggedViewsInCurrentTopPage) { bool findPair = false; foreach (View newTopPageView in taggedViewsInNewTopPage) { if ((currentTopPageView.TransitionOptions != null) && (newTopPageView.TransitionOptions != null) && currentTopPageView.TransitionOptions?.TransitionTag == newTopPageView.TransitionOptions?.TransitionTag) { sameTaggedViewPair.Add(new KeyValuePair <View, View>(currentTopPageView, newTopPageView)); findPair = true; break; } } if (findPair) { taggedViewsInNewTopPage.Remove(sameTaggedViewPair[sameTaggedViewPair.Count - 1].Value); } } foreach (KeyValuePair <View, View> pair in sameTaggedViewPair) { taggedViewsInCurrentTopPage.Remove(pair.Key); } TransitionSet newTransitionSet = new TransitionSet(); foreach (KeyValuePair <View, View> pair in sameTaggedViewPair) { TransitionItem pairTransition = transition.CreateTransition(pair.Key, pair.Value); if (pair.Value.TransitionOptions?.TransitionWithChild ?? false) { pairTransition.TransitionWithChild = true; } newTransitionSet.AddTransition(pairTransition); } newTransitionSet.Finished += (object sender, EventArgs e) => { transitionFinished = true; InvokeTransitionFinished(); transitionSet.Dispose(); currentTopPage.Opacity = 1.0f; }; if (!pushTransition || newTopPage is DialogPage == false) { if (currentTopPage.DisappearingTransition != null) { TransitionItemBase disappearingTransition = currentTopPage.DisappearingTransition.CreateTransition(currentTopPage, false); disappearingTransition.TransitionWithChild = true; newTransitionSet.AddTransition(disappearingTransition); } else { currentTopPage.SetVisible(false); } } if (pushTransition || currentTopPage is DialogPage == false) { if (newTopPage.AppearingTransition != null) { TransitionItemBase appearingTransition = newTopPage.AppearingTransition.CreateTransition(newTopPage, true); appearingTransition.TransitionWithChild = true; newTransitionSet.AddTransition(appearingTransition); } } newTransitionSet.Play(); return(newTransitionSet); }