mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Evaluate lazily android specific global values
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
import transition = require("ui/transition");
|
||||
import platform = require("platform");
|
||||
import lazy from "utils/lazy";
|
||||
|
||||
var screenWidth = platform.screen.mainScreen.widthPixels;
|
||||
var screenHeight = platform.screen.mainScreen.heightPixels;
|
||||
var screenWidth = lazy(() => platform.screen.mainScreen.widthPixels);
|
||||
var screenHeight = lazy(() => platform.screen.mainScreen.heightPixels);
|
||||
|
||||
export class SlideTransition extends transition.Transition {
|
||||
private _direction: string;
|
||||
@@ -18,80 +19,80 @@ export class SlideTransition extends transition.Transition {
|
||||
case "left":
|
||||
switch (transitionType) {
|
||||
case transition.AndroidTransitionType.enter:
|
||||
translationValues[0] = screenWidth;
|
||||
translationValues[0] = screenWidth();
|
||||
translationValues[1] = 0;
|
||||
break;
|
||||
case transition.AndroidTransitionType.exit:
|
||||
translationValues[0] = 0;
|
||||
translationValues[1] = -screenWidth;
|
||||
translationValues[1] = -screenWidth();
|
||||
break;
|
||||
case transition.AndroidTransitionType.popEnter:
|
||||
translationValues[0] = -screenWidth;
|
||||
translationValues[0] = -screenWidth();
|
||||
translationValues[1] = 0;
|
||||
break;
|
||||
case transition.AndroidTransitionType.popExit:
|
||||
translationValues[0] = 0;
|
||||
translationValues[1] = screenWidth;
|
||||
translationValues[1] = screenWidth();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "right":
|
||||
switch (transitionType) {
|
||||
case transition.AndroidTransitionType.enter:
|
||||
translationValues[0] = -screenWidth;
|
||||
translationValues[0] = -screenWidth();
|
||||
translationValues[1] = 0;
|
||||
break;
|
||||
case transition.AndroidTransitionType.exit:
|
||||
translationValues[0] = 0;
|
||||
translationValues[1] = screenWidth;
|
||||
translationValues[1] = screenWidth();
|
||||
break;
|
||||
case transition.AndroidTransitionType.popEnter:
|
||||
translationValues[0] = screenWidth;
|
||||
translationValues[0] = screenWidth();
|
||||
translationValues[1] = 0;
|
||||
break;
|
||||
case transition.AndroidTransitionType.popExit:
|
||||
translationValues[0] = 0;
|
||||
translationValues[1] = -screenWidth;
|
||||
translationValues[1] = -screenWidth();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "top":
|
||||
switch (transitionType) {
|
||||
case transition.AndroidTransitionType.enter:
|
||||
translationValues[0] = screenHeight;
|
||||
translationValues[0] = screenHeight();
|
||||
translationValues[1] = 0;
|
||||
break;
|
||||
case transition.AndroidTransitionType.exit:
|
||||
translationValues[0] = 0;
|
||||
translationValues[1] = -screenHeight;
|
||||
translationValues[1] = -screenHeight();
|
||||
break;
|
||||
case transition.AndroidTransitionType.popEnter:
|
||||
translationValues[0] = -screenHeight;
|
||||
translationValues[0] = -screenHeight();
|
||||
translationValues[1] = 0;
|
||||
break;
|
||||
case transition.AndroidTransitionType.popExit:
|
||||
translationValues[0] = 0;
|
||||
translationValues[1] = screenHeight;
|
||||
translationValues[1] = screenHeight();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "bottom":
|
||||
switch (transitionType) {
|
||||
case transition.AndroidTransitionType.enter:
|
||||
translationValues[0] = -screenHeight;
|
||||
translationValues[0] = -screenHeight();
|
||||
translationValues[1] = 0;
|
||||
break;
|
||||
case transition.AndroidTransitionType.exit:
|
||||
translationValues[0] = 0;
|
||||
translationValues[1] = screenHeight;
|
||||
translationValues[1] = screenHeight();
|
||||
break;
|
||||
case transition.AndroidTransitionType.popEnter:
|
||||
translationValues[0] = screenHeight;
|
||||
translationValues[0] = screenHeight();
|
||||
translationValues[1] = 0;
|
||||
break;
|
||||
case transition.AndroidTransitionType.popExit:
|
||||
translationValues[0] = 0;
|
||||
translationValues[1] = -screenHeight;
|
||||
translationValues[1] = -screenHeight();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -5,9 +5,10 @@ import pageModule = require("ui/page");
|
||||
import * as animationModule from "ui/animation";
|
||||
import types = require("utils/types");
|
||||
import trace = require("trace");
|
||||
import lazy from "utils/lazy";
|
||||
|
||||
var _sdkVersion = parseInt(platform.device.sdkVersion);
|
||||
var _defaultInterpolator = new android.view.animation.AccelerateDecelerateInterpolator();
|
||||
var _sdkVersion = lazy(() => parseInt(platform.device.sdkVersion));
|
||||
var _defaultInterpolator = lazy(() => new android.view.animation.AccelerateDecelerateInterpolator());
|
||||
|
||||
var ENTER_POPEXIT_TRANSITION = "ENTER_POPEXIT_TRANSITION";
|
||||
var EXIT_POPENTER_TRANSITION = "EXIT_POPENTER_TRANSITION";
|
||||
@@ -31,7 +32,7 @@ export function _clearForwardTransitions(fragment: any): void {
|
||||
fragment[EXIT_POPENTER_TRANSITION] = undefined;
|
||||
}
|
||||
|
||||
if (_sdkVersion >= 21) {
|
||||
if (_sdkVersion() >= 21) {
|
||||
var exitTransition = (<any>fragment).getExitTransition();
|
||||
if (exitTransition) {
|
||||
trace.write(`Cleared Exit ${exitTransition.getClass().getSimpleName()} transition for ${fragment.getTag()}`, trace.categories.Transition);
|
||||
@@ -51,7 +52,7 @@ export function _setAndroidFragmentTransitions(navigationTransition: frameModule
|
||||
name = navigationTransition.name.toLowerCase();
|
||||
}
|
||||
|
||||
var useLollipopTransition = name && (name.indexOf("slide") === 0 || name === "fade" || name === "explode") && _sdkVersion >= 21;
|
||||
var useLollipopTransition = name && (name.indexOf("slide") === 0 || name === "fade" || name === "explode") && _sdkVersion() >= 21;
|
||||
if (useLollipopTransition) {
|
||||
// setEnterTransition: Enter
|
||||
// setExitTransition: Exit
|
||||
@@ -197,7 +198,7 @@ function _setUpNativeTransition(navigationTransition: frameModule.NavigationTran
|
||||
nativeTransition.setInterpolator(interpolator);
|
||||
}
|
||||
else {
|
||||
nativeTransition.setInterpolator(_defaultInterpolator);
|
||||
nativeTransition.setInterpolator(_defaultInterpolator());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,7 +209,7 @@ export function _onFragmentShown(fragment: android.app.Fragment, isBack: boolean
|
||||
trace.write(`${fragment.getTag()} has been shown when going ${isBack ? "back" : "forward"}, but there is ${transitionType} ${fragment[relevantTransition]}. Will complete page addition when transition ends.`, trace.categories.Transition);
|
||||
fragment[COMPLETE_PAGE_ADDITION_WHEN_TRANSITION_ENDS] = { isBack: isBack };
|
||||
}
|
||||
else if (_sdkVersion >= 21) {
|
||||
else if (_sdkVersion() >= 21) {
|
||||
var nativeTransition = isBack ? (<any>fragment).getReenterTransition() : (<any>fragment).getEnterTransition();
|
||||
if (nativeTransition) {
|
||||
trace.write(`${fragment.getTag() } has been shown when going ${isBack ? "back" : "forward"}, but there is ${transitionType} ${nativeTransition.getClass().getSimpleName()} transition. Will complete page addition when transition ends.`, trace.categories.Transition);
|
||||
@@ -228,7 +229,7 @@ export function _onFragmentHidden(fragment: android.app.Fragment, isBack: boolea
|
||||
trace.write(`${fragment.getTag()} has been hidden when going ${isBack ? "back" : "forward"}, but there is ${transitionType} ${fragment[relevantTransition]}. Will complete page removal when transition ends.`, trace.categories.Transition);
|
||||
fragment[COMPLETE_PAGE_REMOVAL_WHEN_TRANSITION_ENDS] = true;
|
||||
}
|
||||
else if (_sdkVersion >= 21) {
|
||||
else if (_sdkVersion() >= 21) {
|
||||
var nativeTransition = isBack ? (<any>fragment).getReturnTransition() : (<any>fragment).getExitTransition();
|
||||
if (nativeTransition) {
|
||||
trace.write(`${fragment.getTag()} has been hidden when going ${isBack ? "back" : "forward"}, but there is ${transitionType} ${nativeTransition.getClass().getSimpleName()} transition. Will complete page removal when transition ends.`, trace.categories.Transition);
|
||||
@@ -373,7 +374,7 @@ export class Transition implements definition.Transition {
|
||||
this._interpolator = animation._resolveAnimationCurve(curve);
|
||||
}
|
||||
else {
|
||||
this._interpolator = _defaultInterpolator;
|
||||
this._interpolator = _defaultInterpolator();
|
||||
}
|
||||
this._id = transitionId++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user