From 13494e3adf4b0f3d8ab4c95aec1a5ff5d6333d12 Mon Sep 17 00:00:00 2001 From: atanasovg Date: Wed, 2 Mar 2016 18:38:57 +0200 Subject: [PATCH] Replace reflection calls for native Java arrays with the new implementation from the Runtime. --- CrossPlatformModules.csproj | 4 +-- apps/perf-tests/custom-transition.android.ts | 6 ++-- .../navigation/custom-transition.android.ts | 6 ++-- declarations.android.d.ts | 4 +++ ui/transition/fade-transition.android.ts | 4 +-- ui/transition/flip-transition.android.ts | 30 +++++++++---------- ui/transition/slide-transition.android.ts | 3 +- 7 files changed, 25 insertions(+), 32 deletions(-) diff --git a/CrossPlatformModules.csproj b/CrossPlatformModules.csproj index 42f6374cc..16f5e7368 100644 --- a/CrossPlatformModules.csproj +++ b/CrossPlatformModules.csproj @@ -774,7 +774,6 @@ - @@ -1018,7 +1017,6 @@ text-field.d.ts - utils.d.ts @@ -2207,7 +2205,7 @@ False - + \ No newline at end of file diff --git a/apps/perf-tests/custom-transition.android.ts b/apps/perf-tests/custom-transition.android.ts index 459d50ff0..458326c5d 100644 --- a/apps/perf-tests/custom-transition.android.ts +++ b/apps/perf-tests/custom-transition.android.ts @@ -1,10 +1,8 @@ import transition = require("ui/transition"); -var floatType = java.lang.Float.class.getField("TYPE").get(null); - export class CustomTransition extends transition.Transition { public createAndroidAnimator(transitionType: string): android.animation.Animator { - var scaleValues = java.lang.reflect.Array.newInstance(floatType, 2); + var scaleValues = Array.create("float", 2); switch (transitionType) { case transition.AndroidTransitionType.enter: case transition.AndroidTransitionType.popEnter: @@ -17,7 +15,7 @@ export class CustomTransition extends transition.Transition { scaleValues[1] = 0; break; } - var objectAnimators = java.lang.reflect.Array.newInstance(android.animation.Animator.class, 2); + var objectAnimators = Array.create(android.animation.Animator, 2); objectAnimators[0] = android.animation.ObjectAnimator.ofFloat(null, "scaleX", scaleValues); objectAnimators[1] = android.animation.ObjectAnimator.ofFloat(null, "scaleY", scaleValues); var animatorSet = new android.animation.AnimatorSet(); diff --git a/apps/tests/navigation/custom-transition.android.ts b/apps/tests/navigation/custom-transition.android.ts index 426b49f93..b9eefe90e 100644 --- a/apps/tests/navigation/custom-transition.android.ts +++ b/apps/tests/navigation/custom-transition.android.ts @@ -1,14 +1,12 @@ import transition = require("ui/transition"); -var floatType = java.lang.Float.class.getField("TYPE").get(null); - export class CustomTransition extends transition.Transition { constructor(duration: number, curve: any) { super(duration, curve); } public createAndroidAnimator(transitionType: string): android.animation.Animator { - var scaleValues = java.lang.reflect.Array.newInstance(floatType, 2); + var scaleValues = Array.create("float", 2); switch (transitionType) { case transition.AndroidTransitionType.enter: case transition.AndroidTransitionType.popEnter: @@ -21,7 +19,7 @@ export class CustomTransition extends transition.Transition { scaleValues[1] = 0; break; } - var objectAnimators = java.lang.reflect.Array.newInstance(android.animation.Animator.class, 2); + var objectAnimators = Array.create(android.animation.Animator, 2); objectAnimators[0] = android.animation.ObjectAnimator.ofFloat(null, "scaleX", scaleValues); objectAnimators[1] = android.animation.ObjectAnimator.ofFloat(null, "scaleY", scaleValues); var animatorSet = new android.animation.AnimatorSet(); diff --git a/declarations.android.d.ts b/declarations.android.d.ts index 563f18cc5..ea3432518 100644 --- a/declarations.android.d.ts +++ b/declarations.android.d.ts @@ -4,6 +4,10 @@ declare var app; declare var telerik; declare var gc: () => void; +interface ArrayConstructor { + create(type: any, count: number): any; +} + declare module android { module support { module v4 { diff --git a/ui/transition/fade-transition.android.ts b/ui/transition/fade-transition.android.ts index 82cdb5710..ab46b8cd6 100644 --- a/ui/transition/fade-transition.android.ts +++ b/ui/transition/fade-transition.android.ts @@ -1,10 +1,8 @@ import {Transition, AndroidTransitionType} from "ui/transition"; -var floatType = java.lang.Float.class.getField("TYPE").get(null); - export class FadeTransition extends Transition { public createAndroidAnimator(transitionType: string): android.animation.Animator { - var alphaValues = java.lang.reflect.Array.newInstance(floatType, 2); + var alphaValues = Array.create("float", 2); switch (transitionType) { case AndroidTransitionType.enter: case AndroidTransitionType.popEnter: diff --git a/ui/transition/flip-transition.android.ts b/ui/transition/flip-transition.android.ts index b0faf31c8..4f593c717 100644 --- a/ui/transition/flip-transition.android.ts +++ b/ui/transition/flip-transition.android.ts @@ -1,7 +1,5 @@ import {Transition, AndroidTransitionType} from "ui/transition"; -var floatType = java.lang.Float.class.getField("TYPE").get(null); - //http://developer.android.com/training/animation/cardflip.html export class FlipTransition extends Transition { private _direction: string; @@ -22,16 +20,16 @@ export class FlipTransition extends Transition { switch (transitionType) { case AndroidTransitionType.enter: // card_flip_right_in - objectAnimators = java.lang.reflect.Array.newInstance(android.animation.Animator.class, 3); + objectAnimators = Array.create(android.animation.Animator, 3); - values = java.lang.reflect.Array.newInstance(floatType, 2); + values = Array.create("float", 2); values[0] = 1.0; values[1] = 0.0; animator = android.animation.ObjectAnimator.ofFloat(null, "alpha", values); animator.setDuration(0); objectAnimators[0] = animator; - values = java.lang.reflect.Array.newInstance(floatType, 2); + values = Array.create("float", 2); values[0] = rotationY; values[1] = 0.0; animator = android.animation.ObjectAnimator.ofFloat(null, "rotationY", values); @@ -39,7 +37,7 @@ export class FlipTransition extends Transition { animator.setDuration(fullDuration); objectAnimators[1] = animator; - values = java.lang.reflect.Array.newInstance(floatType, 2); + values = Array.create("float", 2); values[0] = 0.0; values[1] = 1.0; animator = android.animation.ObjectAnimator.ofFloat(null, "alpha", values); @@ -48,9 +46,9 @@ export class FlipTransition extends Transition { objectAnimators[2] = animator; break; case AndroidTransitionType.exit: // card_flip_right_out - objectAnimators = java.lang.reflect.Array.newInstance(android.animation.Animator.class, 2); + objectAnimators = Array.create(android.animation.Animator, 2); - values = java.lang.reflect.Array.newInstance(floatType, 2); + values = Array.create("float", 2); values[0] = 0.0; values[1] = -rotationY; animator = android.animation.ObjectAnimator.ofFloat(null, "rotationY", values); @@ -58,7 +56,7 @@ export class FlipTransition extends Transition { animator.setDuration(fullDuration); objectAnimators[0] = animator; - values = java.lang.reflect.Array.newInstance(floatType, 2); + values = Array.create("float", 2); values[0] = 1.0; values[1] = 0.0; animator = android.animation.ObjectAnimator.ofFloat(null, "alpha", values); @@ -67,16 +65,16 @@ export class FlipTransition extends Transition { objectAnimators[1] = animator; break; case AndroidTransitionType.popEnter: // card_flip_left_in - objectAnimators = java.lang.reflect.Array.newInstance(android.animation.Animator.class, 3); + objectAnimators = Array.create(android.animation.Animator, 3); - values = java.lang.reflect.Array.newInstance(floatType, 2); + values = Array.create("float", 2); values[0] = 1.0; values[1] = 0.0; animator = android.animation.ObjectAnimator.ofFloat(null, "alpha", values); animator.setDuration(0); objectAnimators[0] = animator; - values = java.lang.reflect.Array.newInstance(floatType, 2); + values = Array.create("float", 2); values[0] = -rotationY; values[1] = 0.0; animator = android.animation.ObjectAnimator.ofFloat(null, "rotationY", values); @@ -84,7 +82,7 @@ export class FlipTransition extends Transition { animator.setDuration(fullDuration); objectAnimators[1] = animator; - values = java.lang.reflect.Array.newInstance(floatType, 2); + values = Array.create("float", 2); values[0] = 0.0; values[1] = 1.0; animator = android.animation.ObjectAnimator.ofFloat(null, "alpha", values); @@ -93,9 +91,9 @@ export class FlipTransition extends Transition { objectAnimators[2] = animator; break; case AndroidTransitionType.popExit: // card_flip_left_out - objectAnimators = java.lang.reflect.Array.newInstance(android.animation.Animator.class, 2); + objectAnimators = Array.create(android.animation.Animator, 2); - values = java.lang.reflect.Array.newInstance(floatType, 2); + values = Array.create("float", 2); values[0] = 0.0; values[1] = rotationY; animator = android.animation.ObjectAnimator.ofFloat(null, "rotationY", values); @@ -103,7 +101,7 @@ export class FlipTransition extends Transition { animator.setDuration(fullDuration); objectAnimators[0] = animator; - values = java.lang.reflect.Array.newInstance(floatType, 2); + values = Array.create("float", 2); values[0] = 1.0; values[1] = 0.0; animator = android.animation.ObjectAnimator.ofFloat(null, "alpha", values); diff --git a/ui/transition/slide-transition.android.ts b/ui/transition/slide-transition.android.ts index c054317b2..7b67f0d7c 100644 --- a/ui/transition/slide-transition.android.ts +++ b/ui/transition/slide-transition.android.ts @@ -1,7 +1,6 @@ import transition = require("ui/transition"); import platform = require("platform"); -var floatType = java.lang.Float.class.getField("TYPE").get(null); var screenWidth = platform.screen.mainScreen.widthPixels; var screenHeight = platform.screen.mainScreen.heightPixels; @@ -14,7 +13,7 @@ export class SlideTransition extends transition.Transition { } public createAndroidAnimator(transitionType: string): android.animation.Animator { - var translationValues = java.lang.reflect.Array.newInstance(floatType, 2); + var translationValues = Array.create("float", 2); switch (this._direction) { case "left": switch (transitionType) {