diff --git a/tns-core-modules/ui/frame/frame.android.ts b/tns-core-modules/ui/frame/frame.android.ts index 054851fe3..048a9cc3d 100644 --- a/tns-core-modules/ui/frame/frame.android.ts +++ b/tns-core-modules/ui/frame/frame.android.ts @@ -192,7 +192,7 @@ export class Frame extends frameCommon.Frame { // We need to reverse the transitions because Android will ask the current fragment // to create its POP EXIT animator due to popping the back stack, but in reality // we need to create the EXIT animator because we are actually going forward and not back. - transitionModule._reverseTransitionsDirection(currentFragment); + transitionModule._prepareCurrentFragmentForClearHistory(currentFragment); } let firstEntryName = manager.getBackStackEntryAt(0).getName(); if (trace.enabled) { diff --git a/tns-core-modules/ui/transition/transition.android.ts b/tns-core-modules/ui/transition/transition.android.ts index 59ceaac63..f69406da2 100644 --- a/tns-core-modules/ui/transition/transition.android.ts +++ b/tns-core-modules/ui/transition/transition.android.ts @@ -45,7 +45,6 @@ interface ExpandedFragment { completePageAdditionWhenTransitionEnds: CompleteOptions; completePageRemovalWhenTransitionEnds: CompleteOptions; isDestroyed: boolean; - reverseNextAnimDirection: boolean; } let enterFakeResourceId = -10; @@ -457,14 +456,12 @@ function _addNativeTransitionListener(fragment: any, nativeTransition: any/*andr export function _onFragmentCreateAnimator(fragment: any, nextAnim: number): android.animation.Animator { let expandedFragment = fragment; - let noReverse = !expandedFragment.reverseNextAnimDirection; - delete expandedFragment.reverseNextAnimDirection; let transitionType; switch (nextAnim) { - case enterFakeResourceId: transitionType = noReverse ? AndroidTransitionType.enter : AndroidTransitionType.popEnter; break; - case exitFakeResourceId: transitionType = noReverse ? AndroidTransitionType.exit : AndroidTransitionType.popExit; break; - case popEnterFakeResourceId: transitionType = noReverse ? AndroidTransitionType.popEnter : AndroidTransitionType.enter; break; - case popExitFakeResourceId: transitionType = noReverse ? AndroidTransitionType.popExit : AndroidTransitionType.exit; break; + case enterFakeResourceId: transitionType = AndroidTransitionType.enter; break; + case exitFakeResourceId: transitionType = AndroidTransitionType.exit; break; + case popEnterFakeResourceId: transitionType = AndroidTransitionType.popEnter; break; + case popExitFakeResourceId: transitionType = AndroidTransitionType.popExit; break; } let transition; @@ -527,19 +524,13 @@ export function _onFragmentCreateAnimator(fragment: any, nextAnim: number): andr return animator; } -export function _reverseTransitionsDirection(fragment: any): void { - trace.write(`Swapping ${fragment} transitions...`, trace.categories.Transition); +export function _prepareCurrentFragmentForClearHistory(fragment: any): void { + trace.write(`Preparing ${fragment} transitions fro clear history...`, trace.categories.Transition); let expandedFragment = fragment; - expandedFragment.reverseNextAnimDirection = true; + expandedFragment.enterPopExitTransition = expandedFragment.exitPopEnterTransition; if (_sdkVersion() >= 21) { - let enterTransition = fragment.getEnterTransition(); let exitTransition = fragment.getExitTransition(); - let reenterTransition = fragment.getReenterTransition(); - let returnTransition = fragment.getReturnTransition(); - fragment.setEnterTransition(exitTransition); - fragment.setExitTransition(enterTransition); - fragment.setReenterTransition(returnTransition); - fragment.setReturnTransition(reenterTransition); + fragment.setReturnTransition(exitTransition); } _printTransitions(fragment); } diff --git a/tns-core-modules/ui/transition/transition.d.ts b/tns-core-modules/ui/transition/transition.d.ts index c999058f4..29cd04bca 100644 --- a/tns-core-modules/ui/transition/transition.d.ts +++ b/tns-core-modules/ui/transition/transition.d.ts @@ -26,7 +26,7 @@ export function _onFragmentShown(fragment: any, isBack: boolean): void; export function _onFragmentHidden(fragment: any, isBack: boolean, destroyed: boolean): void; export function _removePageNativeViewFromAndroidParent(page: Page): void; - export function _reverseTransitionsDirection(fragment: any): void; + export function _prepareCurrentFragmentForClearHistory(fragment: any): void; export function _createIOSAnimatedTransitioning(navigationTransition: NavigationTransition, nativeCurve: any, operation: number, fromVC: any, toVC: any): any; //@endprivate