Array.create used instead reflection

This commit is contained in:
Vladimir Enchev
2016-02-01 10:55:01 +02:00
parent 64ef9be626
commit fb3b7bc6c4
3 changed files with 12 additions and 21 deletions

View File

@ -201,7 +201,7 @@ export class FileSystemAccess {
try { try {
var javaFile = new java.io.File(path); var javaFile = new java.io.File(path);
var stream = new java.io.FileInputStream(javaFile); var stream = new java.io.FileInputStream(javaFile);
var bytes = java.lang.reflect.Array.newInstance(java.lang.Byte.class.getField("TYPE").get(null), javaFile.length()); var bytes = (<any>Array).create("byte", javaFile.length());
var dataInputStream = new java.io.DataInputStream(stream); var dataInputStream = new java.io.DataInputStream(stream);
dataInputStream.readFully(bytes); dataInputStream.readFully(bytes);
return bytes; return bytes;

View File

@ -8,13 +8,6 @@ import enums = require("ui/enums");
global.moduleMerge(common, exports); global.moduleMerge(common, exports);
var floatType;
function ensureFloatType() {
if (!floatType) {
floatType = java.lang.Float.class.getField("TYPE").get(null);
}
}
var argbEvaluator: android.animation.ArgbEvaluator; var argbEvaluator: android.animation.ArgbEvaluator;
function ensureArgbEvaluator() { function ensureArgbEvaluator() {
if (!argbEvaluator) { if (!argbEvaluator) {
@ -54,7 +47,7 @@ export class Animation extends common.Animation implements definition.Animation
this._createAnimators(this._propertyAnimations[i]); this._createAnimators(this._propertyAnimations[i]);
} }
this._nativeAnimatorsArray = java.lang.reflect.Array.newInstance(android.animation.Animator.class, this._animators.length); this._nativeAnimatorsArray = (<any>Array).create(android.animation.Animator, this._animators.length);
i = 0; i = 0;
length = this._animators.length; length = this._animators.length;
for (; i < length; i++) { for (; i < length; i++) {
@ -165,14 +158,12 @@ export class Animation extends common.Animation implements definition.Animation
} }
} }
} }
ensureFloatType();
switch (propertyAnimation.property) { switch (propertyAnimation.property) {
case common.Properties.opacity: case common.Properties.opacity:
originalValue1 = nativeView.getAlpha(); originalValue1 = nativeView.getAlpha();
nativeArray = java.lang.reflect.Array.newInstance(floatType, 1); nativeArray = (<any>Array).create("float", 1);
nativeArray[0] = propertyAnimation.value; nativeArray[0] = propertyAnimation.value;
propertyUpdateCallbacks.push(checkAnimation(() => { propertyAnimation.target.opacity = propertyAnimation.value })); propertyUpdateCallbacks.push(checkAnimation(() => { propertyAnimation.target.opacity = propertyAnimation.value }));
propertyResetCallbacks.push(checkAnimation(() => { nativeView.setAlpha(originalValue1); })); propertyResetCallbacks.push(checkAnimation(() => { nativeView.setAlpha(originalValue1); }));
@ -182,7 +173,7 @@ export class Animation extends common.Animation implements definition.Animation
case common.Properties.backgroundColor: case common.Properties.backgroundColor:
ensureArgbEvaluator(); ensureArgbEvaluator();
originalValue1 = nativeView.getBackground(); originalValue1 = nativeView.getBackground();
nativeArray = java.lang.reflect.Array.newInstance(java.lang.Object.class, 2); nativeArray = (<any>Array).create(java.lang.Object, 2);
nativeArray[0] = propertyAnimation.target.backgroundColor ? java.lang.Integer.valueOf((<color.Color>propertyAnimation.target.backgroundColor).argb) : java.lang.Integer.valueOf(-1); nativeArray[0] = propertyAnimation.target.backgroundColor ? java.lang.Integer.valueOf((<color.Color>propertyAnimation.target.backgroundColor).argb) : java.lang.Integer.valueOf(-1);
nativeArray[1] = java.lang.Integer.valueOf((<color.Color>propertyAnimation.value).argb); nativeArray[1] = java.lang.Integer.valueOf((<color.Color>propertyAnimation.value).argb);
var animator = android.animation.ValueAnimator.ofObject(argbEvaluator, nativeArray); var animator = android.animation.ValueAnimator.ofObject(argbEvaluator, nativeArray);
@ -199,14 +190,14 @@ export class Animation extends common.Animation implements definition.Animation
break; break;
case common.Properties.translate: case common.Properties.translate:
xyObjectAnimators = java.lang.reflect.Array.newInstance(android.animation.Animator.class, 2); xyObjectAnimators = (<any>Array).create(android.animation.Animator, 2);
nativeArray = java.lang.reflect.Array.newInstance(floatType, 1); nativeArray = (<any>Array).create("float", 1);
nativeArray[0] = propertyAnimation.value.x * density; nativeArray[0] = propertyAnimation.value.x * density;
xyObjectAnimators[0] = android.animation.ObjectAnimator.ofFloat(nativeView, "translationX", nativeArray); xyObjectAnimators[0] = android.animation.ObjectAnimator.ofFloat(nativeView, "translationX", nativeArray);
xyObjectAnimators[0].setRepeatCount(Animation._getAndroidRepeatCount(propertyAnimation.iterations)); xyObjectAnimators[0].setRepeatCount(Animation._getAndroidRepeatCount(propertyAnimation.iterations));
nativeArray = java.lang.reflect.Array.newInstance(floatType, 1); nativeArray = (<any>Array).create("float", 1);
nativeArray[0] = propertyAnimation.value.y * density; nativeArray[0] = propertyAnimation.value.y * density;
xyObjectAnimators[1] = android.animation.ObjectAnimator.ofFloat(nativeView, "translationY", nativeArray); xyObjectAnimators[1] = android.animation.ObjectAnimator.ofFloat(nativeView, "translationY", nativeArray);
xyObjectAnimators[1].setRepeatCount(Animation._getAndroidRepeatCount(propertyAnimation.iterations)); xyObjectAnimators[1].setRepeatCount(Animation._getAndroidRepeatCount(propertyAnimation.iterations));
@ -231,14 +222,14 @@ export class Animation extends common.Animation implements definition.Animation
break; break;
case common.Properties.scale: case common.Properties.scale:
xyObjectAnimators = java.lang.reflect.Array.newInstance(android.animation.Animator.class, 2); xyObjectAnimators = (<any>Array).create(android.animation.Animator, 2);
nativeArray = java.lang.reflect.Array.newInstance(floatType, 1); nativeArray = (<any>Array).create("float", 1);
nativeArray[0] = propertyAnimation.value.x; nativeArray[0] = propertyAnimation.value.x;
xyObjectAnimators[0] = android.animation.ObjectAnimator.ofFloat(nativeView, "scaleX", nativeArray); xyObjectAnimators[0] = android.animation.ObjectAnimator.ofFloat(nativeView, "scaleX", nativeArray);
xyObjectAnimators[0].setRepeatCount(Animation._getAndroidRepeatCount(propertyAnimation.iterations)); xyObjectAnimators[0].setRepeatCount(Animation._getAndroidRepeatCount(propertyAnimation.iterations));
nativeArray = java.lang.reflect.Array.newInstance(floatType, 1); nativeArray = (<any>Array).create("float", 1);
nativeArray[0] = propertyAnimation.value.y; nativeArray[0] = propertyAnimation.value.y;
xyObjectAnimators[1] = android.animation.ObjectAnimator.ofFloat(nativeView, "scaleY", nativeArray); xyObjectAnimators[1] = android.animation.ObjectAnimator.ofFloat(nativeView, "scaleY", nativeArray);
xyObjectAnimators[1].setRepeatCount(Animation._getAndroidRepeatCount(propertyAnimation.iterations)); xyObjectAnimators[1].setRepeatCount(Animation._getAndroidRepeatCount(propertyAnimation.iterations));
@ -264,7 +255,7 @@ export class Animation extends common.Animation implements definition.Animation
case common.Properties.rotate: case common.Properties.rotate:
originalValue1 = nativeView.getRotation(); originalValue1 = nativeView.getRotation();
nativeArray = java.lang.reflect.Array.newInstance(floatType, 1); nativeArray = (<any>Array).create("float", 1);
nativeArray[0] = propertyAnimation.value; nativeArray[0] = propertyAnimation.value;
propertyUpdateCallbacks.push(checkAnimation(() => { propertyAnimation.target.rotate = propertyAnimation.value; })); propertyUpdateCallbacks.push(checkAnimation(() => { propertyAnimation.target.rotate = propertyAnimation.value; }));
propertyResetCallbacks.push(checkAnimation(() => { nativeView.setRotation(originalValue1); })); propertyResetCallbacks.push(checkAnimation(() => { nativeView.setRotation(originalValue1); }));

View File

@ -86,7 +86,7 @@ function onItemsPropertyChanged(data: dependencyObservable.PropertyChangeData) {
var stateDrawable = new android.graphics.drawable.StateListDrawable(); var stateDrawable = new android.graphics.drawable.StateListDrawable();
var arr = java.lang.reflect.Array.newInstance(java.lang.Integer.class.getField("TYPE").get(null), 1); var arr = (<any>Array).create("int", 1);
arr[0] = R_ATTR_STATE_SELECTED; arr[0] = R_ATTR_STATE_SELECTED;
var colorDrawable: android.graphics.drawable.ColorDrawable = new SegmentedBarColorDrawableClass(view.selectedBackgroundColor.android) var colorDrawable: android.graphics.drawable.ColorDrawable = new SegmentedBarColorDrawableClass(view.selectedBackgroundColor.android)
stateDrawable.addState(arr, colorDrawable); stateDrawable.addState(arr, colorDrawable);