From ac7f041deada46bfe3bbd8359c02e9224155efd8 Mon Sep 17 00:00:00 2001 From: Nathan Walker Date: Sat, 27 Feb 2021 13:16:39 -0800 Subject: [PATCH] fix(core): AndroidTransitionType symbol export handling (#9252) BREAKING CHANGE: AndroidTransitionType is now a static member of the Transition class. BEFORE: ``` import { AndroidTransitionType } from '@nativescript/core/ui/transition'; ``` AFTER: ``` import { Transition } from '@nativescript/core'; Transition.AndroidTransitionType.enter; // etc. ``` --- .../navigation/custom-transition.android.ts | 12 +++---- .../ui/frame/fragment.transitions.android.ts | 34 +++++++++--------- packages/core/ui/index.ts | 2 +- .../ui/transition/fade-transition.android.ts | 10 +++--- .../ui/transition/flip-transition.android.ts | 10 +++--- packages/core/ui/transition/index.android.ts | 13 ++++--- packages/core/ui/transition/index.d.ts | 10 ++---- packages/core/ui/transition/index.ios.ts | 1 + .../ui/transition/slide-transition.android.ts | 36 +++++++++---------- 9 files changed, 61 insertions(+), 67 deletions(-) diff --git a/apps/automated/src/navigation/custom-transition.android.ts b/apps/automated/src/navigation/custom-transition.android.ts index a7abf2dfa..f5e6ab91b 100644 --- a/apps/automated/src/navigation/custom-transition.android.ts +++ b/apps/automated/src/navigation/custom-transition.android.ts @@ -1,6 +1,6 @@ -import * as transition from '@nativescript/core/ui/transition'; +import { Transition } from '@nativescript/core'; -export class CustomTransition extends transition.Transition { +export class CustomTransition extends Transition { constructor(duration: number, curve: any) { super(duration, curve); } @@ -8,13 +8,13 @@ export class CustomTransition extends transition.Transition { public createAndroidAnimator(transitionType: string): android.animation.Animator { var scaleValues = Array.create('float', 2); switch (transitionType) { - case transition.AndroidTransitionType.enter: - case transition.AndroidTransitionType.popEnter: + case Transition.AndroidTransitionType.enter: + case Transition.AndroidTransitionType.popEnter: scaleValues[0] = 0; scaleValues[1] = 1; break; - case transition.AndroidTransitionType.exit: - case transition.AndroidTransitionType.popExit: + case Transition.AndroidTransitionType.exit: + case Transition.AndroidTransitionType.popExit: scaleValues[0] = 1; scaleValues[1] = 0; break; diff --git a/packages/core/ui/frame/fragment.transitions.android.ts b/packages/core/ui/frame/fragment.transitions.android.ts index c58142993..6fdc9bb13 100644 --- a/packages/core/ui/frame/fragment.transitions.android.ts +++ b/packages/core/ui/frame/fragment.transitions.android.ts @@ -3,7 +3,7 @@ import { NavigationType } from './frame-common'; import { NavigationTransition, BackstackEntry } from '.'; // Types. -import { Transition, AndroidTransitionType } from '../transition'; +import { Transition } from '../transition'; import { FlipTransition } from '../transition/flip-transition'; import { _resolveAnimationCurve } from '../animation'; import lazy from '../../utils/lazy'; @@ -177,14 +177,14 @@ function setupAllAnimation(entry: ExpandedEntry, transition: Transition): void { // setupAllAnimation is called only for new fragments so we don't // need to clearAnimationListener for enter & popExit animators. - const enterAnimator = transition.createAndroidAnimator(AndroidTransitionType.enter); - enterAnimator.transitionType = AndroidTransitionType.enter; + const enterAnimator = transition.createAndroidAnimator(Transition.AndroidTransitionType.enter); + enterAnimator.transitionType = Transition.AndroidTransitionType.enter; enterAnimator.entry = entry; enterAnimator.addListener(listener); entry.enterAnimator = enterAnimator; - const popExitAnimator = transition.createAndroidAnimator(AndroidTransitionType.popExit); - popExitAnimator.transitionType = AndroidTransitionType.popExit; + const popExitAnimator = transition.createAndroidAnimator(Transition.AndroidTransitionType.popExit); + popExitAnimator.transitionType = Transition.AndroidTransitionType.popExit; popExitAnimator.entry = entry; popExitAnimator.addListener(listener); entry.popExitAnimator = popExitAnimator; @@ -197,14 +197,14 @@ function setupExitAndPopEnterAnimation(entry: ExpandedEntry, transition: Transit clearAnimationListener(entry.exitAnimator, listener); clearAnimationListener(entry.popEnterAnimator, listener); - const exitAnimator = transition.createAndroidAnimator(AndroidTransitionType.exit); - exitAnimator.transitionType = AndroidTransitionType.exit; + const exitAnimator = transition.createAndroidAnimator(Transition.AndroidTransitionType.exit); + exitAnimator.transitionType = Transition.AndroidTransitionType.exit; exitAnimator.entry = entry; exitAnimator.addListener(listener); entry.exitAnimator = exitAnimator; - const popEnterAnimator = transition.createAndroidAnimator(AndroidTransitionType.popEnter); - popEnterAnimator.transitionType = AndroidTransitionType.popEnter; + const popEnterAnimator = transition.createAndroidAnimator(Transition.AndroidTransitionType.popEnter); + popEnterAnimator.transitionType = Transition.AndroidTransitionType.popEnter; popEnterAnimator.entry = entry; popEnterAnimator.addListener(listener); entry.popEnterAnimator = popEnterAnimator; @@ -579,13 +579,13 @@ function setupCurrentFragmentSlideTransition(navTransition: NavigationTransition } function setupCurrentFragmentCustomTransition(navTransition: NavigationTransition, entry: ExpandedEntry, transition: Transition): void { - const exitAnimator = transition.createAndroidAnimator(AndroidTransitionType.exit); - const exitTransition = new org.nativescript.widgets.CustomTransition(exitAnimator, transition.constructor.name + AndroidTransitionType.exit.toString()); + const exitAnimator = transition.createAndroidAnimator(Transition.AndroidTransitionType.exit); + const exitTransition = new org.nativescript.widgets.CustomTransition(exitAnimator, transition.constructor.name + Transition.AndroidTransitionType.exit.toString()); setExitTransition(navTransition, entry, exitTransition); - const reenterAnimator = transition.createAndroidAnimator(AndroidTransitionType.popEnter); - const reenterTransition = new org.nativescript.widgets.CustomTransition(reenterAnimator, transition.constructor.name + AndroidTransitionType.popEnter.toString()); + const reenterAnimator = transition.createAndroidAnimator(Transition.AndroidTransitionType.popEnter); + const reenterTransition = new org.nativescript.widgets.CustomTransition(reenterAnimator, transition.constructor.name + Transition.AndroidTransitionType.popEnter.toString()); setReenterTransition(navTransition, entry, reenterTransition); } @@ -593,12 +593,12 @@ function setupCurrentFragmentCustomTransition(navTransition: NavigationTransitio function setupNewFragmentCustomTransition(navTransition: NavigationTransition, entry: ExpandedEntry, transition: Transition): void { setupCurrentFragmentCustomTransition(navTransition, entry, transition); - const enterAnimator = transition.createAndroidAnimator(AndroidTransitionType.enter); - const enterTransition = new org.nativescript.widgets.CustomTransition(enterAnimator, transition.constructor.name + AndroidTransitionType.enter.toString()); + const enterAnimator = transition.createAndroidAnimator(Transition.AndroidTransitionType.enter); + const enterTransition = new org.nativescript.widgets.CustomTransition(enterAnimator, transition.constructor.name + Transition.AndroidTransitionType.enter.toString()); setEnterTransition(navTransition, entry, enterTransition); - const returnAnimator = transition.createAndroidAnimator(AndroidTransitionType.popExit); - const returnTransition = new org.nativescript.widgets.CustomTransition(returnAnimator, transition.constructor.name + AndroidTransitionType.popExit.toString()); + const returnAnimator = transition.createAndroidAnimator(Transition.AndroidTransitionType.popExit); + const returnTransition = new org.nativescript.widgets.CustomTransition(returnAnimator, transition.constructor.name + Transition.AndroidTransitionType.popExit.toString()); setReturnTransition(navTransition, entry, returnTransition); } diff --git a/packages/core/ui/index.ts b/packages/core/ui/index.ts index 71ce4f0fd..52d8b2900 100644 --- a/packages/core/ui/index.ts +++ b/packages/core/ui/index.ts @@ -83,6 +83,6 @@ export { Span } from './text-base/span'; export { TextField } from './text-field'; export { TextView } from './text-view'; export { TimePicker } from './time-picker'; -export { Transition, AndroidTransitionType } from './transition'; +export { Transition } from './transition'; export { WebView } from './web-view'; export type { LoadEventData, WebViewNavigationType } from './web-view'; diff --git a/packages/core/ui/transition/fade-transition.android.ts b/packages/core/ui/transition/fade-transition.android.ts index ac5281c1e..a895566fe 100644 --- a/packages/core/ui/transition/fade-transition.android.ts +++ b/packages/core/ui/transition/fade-transition.android.ts @@ -1,17 +1,17 @@ -import { Transition, AndroidTransitionType } from '.'; +import { Transition } from '.'; export class FadeTransition extends Transition { public createAndroidAnimator(transitionType: string): android.animation.AnimatorSet { const animatorSet = new android.animation.AnimatorSet(); const alphaValues = Array.create('float', 2); switch (transitionType) { - case AndroidTransitionType.enter: - case AndroidTransitionType.popEnter: + case Transition.AndroidTransitionType.enter: + case Transition.AndroidTransitionType.popEnter: alphaValues[0] = 0; alphaValues[1] = 1; break; - case AndroidTransitionType.exit: - case AndroidTransitionType.popExit: + case Transition.AndroidTransitionType.exit: + case Transition.AndroidTransitionType.popExit: alphaValues[0] = 1; alphaValues[1] = 0; break; diff --git a/packages/core/ui/transition/flip-transition.android.ts b/packages/core/ui/transition/flip-transition.android.ts index 76441dc4d..cb106248b 100644 --- a/packages/core/ui/transition/flip-transition.android.ts +++ b/packages/core/ui/transition/flip-transition.android.ts @@ -1,4 +1,4 @@ -import { Transition, AndroidTransitionType } from '.'; +import { Transition } from '.'; //http://developer.android.com/training/animation/cardflip.html export class FlipTransition extends Transition { @@ -19,7 +19,7 @@ export class FlipTransition extends Transition { const rotationY = this._direction === 'right' ? 180 : -180; switch (transitionType) { - case AndroidTransitionType.enter: // card_flip_right_in + case Transition.AndroidTransitionType.enter: // card_flip_right_in objectAnimators = Array.create(android.animation.Animator, 2); values = Array.create('float', 2); @@ -38,7 +38,7 @@ export class FlipTransition extends Transition { animator.setDuration(fullDuration / 2); objectAnimators[1] = animator; break; - case AndroidTransitionType.exit: // card_flip_right_out + case Transition.AndroidTransitionType.exit: // card_flip_right_out objectAnimators = Array.create(android.animation.Animator, 2); values = Array.create('float', 2); @@ -57,7 +57,7 @@ export class FlipTransition extends Transition { animator.setDuration(fullDuration / 2); objectAnimators[1] = animator; break; - case AndroidTransitionType.popEnter: // card_flip_left_in + case Transition.AndroidTransitionType.popEnter: // card_flip_left_in objectAnimators = Array.create(android.animation.Animator, 2); values = Array.create('float', 2); @@ -76,7 +76,7 @@ export class FlipTransition extends Transition { animator.setDuration(fullDuration / 2); objectAnimators[1] = animator; break; - case AndroidTransitionType.popExit: // card_flip_left_out + case Transition.AndroidTransitionType.popExit: // card_flip_left_out objectAnimators = Array.create(android.animation.Animator, 2); values = Array.create('float', 2); diff --git a/packages/core/ui/transition/index.android.ts b/packages/core/ui/transition/index.android.ts index b9cf078af..541322c42 100644 --- a/packages/core/ui/transition/index.android.ts +++ b/packages/core/ui/transition/index.android.ts @@ -4,15 +4,14 @@ import lazy from '../../utils/lazy'; const _defaultInterpolator = lazy(() => new android.view.animation.AccelerateDecelerateInterpolator()); -export namespace AndroidTransitionType { - export const enter = 'enter'; - export const exit = 'exit'; - export const popEnter = 'popEnter'; - export const popExit = 'popExit'; -} - let transitionId = 0; export class Transition { + static AndroidTransitionType = { + enter: 'enter', + exit: 'exit', + popEnter: 'popEnter', + popExit: 'popExit', + }; private _duration: number; private _interpolator: android.view.animation.Interpolator; private _id: number; diff --git a/packages/core/ui/transition/index.d.ts b/packages/core/ui/transition/index.d.ts index f13ef53db..571e62552 100644 --- a/packages/core/ui/transition/index.d.ts +++ b/packages/core/ui/transition/index.d.ts @@ -1,11 +1,5 @@ -export namespace AndroidTransitionType { - export const enter: string; - export const exit: string; - export const popEnter: string; - export const popExit: string; -} - -export class Transition { +export class Transition { + static AndroidTransitionType: { enter: string; exit: string; popEnter: string; popExit: string }; constructor(duration: number, nativeCurve: any); public getDuration(): number; public getCurve(): any; diff --git a/packages/core/ui/transition/index.ios.ts b/packages/core/ui/transition/index.ios.ts index b50ccb754..aa8b777ee 100644 --- a/packages/core/ui/transition/index.ios.ts +++ b/packages/core/ui/transition/index.ios.ts @@ -1,5 +1,6 @@ let transitionId = 0; export class Transition { + static AndroidTransitionType = {}; private _duration: number; private _curve: UIViewAnimationCurve; private _id: number; diff --git a/packages/core/ui/transition/slide-transition.android.ts b/packages/core/ui/transition/slide-transition.android.ts index 73321ac56..6425c134a 100644 --- a/packages/core/ui/transition/slide-transition.android.ts +++ b/packages/core/ui/transition/slide-transition.android.ts @@ -1,11 +1,11 @@ -import * as transition from '.'; +import { Transition } from '.'; import { Screen } from '../../platform'; import lazy from '../../utils/lazy'; const screenWidth = lazy(() => Screen.mainScreen.widthPixels); const screenHeight = lazy(() => Screen.mainScreen.heightPixels); -export class SlideTransition extends transition.Transition { +export class SlideTransition extends Transition { private _direction: string; constructor(direction: string, duration: number, curve: any) { @@ -18,19 +18,19 @@ export class SlideTransition extends transition.Transition { switch (this._direction) { case 'left': switch (transitionType) { - case transition.AndroidTransitionType.enter: + case Transition.AndroidTransitionType.enter: translationValues[0] = screenWidth(); translationValues[1] = 0; break; - case transition.AndroidTransitionType.exit: + case Transition.AndroidTransitionType.exit: translationValues[0] = 0; translationValues[1] = -screenWidth(); break; - case transition.AndroidTransitionType.popEnter: + case Transition.AndroidTransitionType.popEnter: translationValues[0] = -screenWidth(); translationValues[1] = 0; break; - case transition.AndroidTransitionType.popExit: + case Transition.AndroidTransitionType.popExit: translationValues[0] = 0; translationValues[1] = screenWidth(); break; @@ -38,19 +38,19 @@ export class SlideTransition extends transition.Transition { break; case 'right': switch (transitionType) { - case transition.AndroidTransitionType.enter: + case Transition.AndroidTransitionType.enter: translationValues[0] = -screenWidth(); translationValues[1] = 0; break; - case transition.AndroidTransitionType.exit: + case Transition.AndroidTransitionType.exit: translationValues[0] = 0; translationValues[1] = screenWidth(); break; - case transition.AndroidTransitionType.popEnter: + case Transition.AndroidTransitionType.popEnter: translationValues[0] = screenWidth(); translationValues[1] = 0; break; - case transition.AndroidTransitionType.popExit: + case Transition.AndroidTransitionType.popExit: translationValues[0] = 0; translationValues[1] = -screenWidth(); break; @@ -58,19 +58,19 @@ export class SlideTransition extends transition.Transition { break; case 'top': switch (transitionType) { - case transition.AndroidTransitionType.enter: + case Transition.AndroidTransitionType.enter: translationValues[0] = screenHeight(); translationValues[1] = 0; break; - case transition.AndroidTransitionType.exit: + case Transition.AndroidTransitionType.exit: translationValues[0] = 0; translationValues[1] = -screenHeight(); break; - case transition.AndroidTransitionType.popEnter: + case Transition.AndroidTransitionType.popEnter: translationValues[0] = -screenHeight(); translationValues[1] = 0; break; - case transition.AndroidTransitionType.popExit: + case Transition.AndroidTransitionType.popExit: translationValues[0] = 0; translationValues[1] = screenHeight(); break; @@ -78,19 +78,19 @@ export class SlideTransition extends transition.Transition { break; case 'bottom': switch (transitionType) { - case transition.AndroidTransitionType.enter: + case Transition.AndroidTransitionType.enter: translationValues[0] = -screenHeight(); translationValues[1] = 0; break; - case transition.AndroidTransitionType.exit: + case Transition.AndroidTransitionType.exit: translationValues[0] = 0; translationValues[1] = screenHeight(); break; - case transition.AndroidTransitionType.popEnter: + case Transition.AndroidTransitionType.popEnter: translationValues[0] = screenHeight(); translationValues[1] = 0; break; - case transition.AndroidTransitionType.popExit: + case Transition.AndroidTransitionType.popExit: translationValues[0] = 0; translationValues[1] = -screenHeight(); break;