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 {
var javaFile = new java.io.File(path);
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);
dataInputStream.readFully(bytes);
return bytes;

View File

@ -8,13 +8,6 @@ import enums = require("ui/enums");
global.moduleMerge(common, exports);
var floatType;
function ensureFloatType() {
if (!floatType) {
floatType = java.lang.Float.class.getField("TYPE").get(null);
}
}
var argbEvaluator: android.animation.ArgbEvaluator;
function ensureArgbEvaluator() {
if (!argbEvaluator) {
@ -54,7 +47,7 @@ export class Animation extends common.Animation implements definition.Animation
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;
length = this._animators.length;
for (; i < length; i++) {
@ -166,13 +159,11 @@ export class Animation extends common.Animation implements definition.Animation
}
}
ensureFloatType();
switch (propertyAnimation.property) {
case common.Properties.opacity:
originalValue1 = nativeView.getAlpha();
nativeArray = java.lang.reflect.Array.newInstance(floatType, 1);
nativeArray = (<any>Array).create("float", 1);
nativeArray[0] = propertyAnimation.value;
propertyUpdateCallbacks.push(checkAnimation(() => { propertyAnimation.target.opacity = propertyAnimation.value }));
propertyResetCallbacks.push(checkAnimation(() => { nativeView.setAlpha(originalValue1); }));
@ -182,7 +173,7 @@ export class Animation extends common.Animation implements definition.Animation
case common.Properties.backgroundColor:
ensureArgbEvaluator();
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[1] = java.lang.Integer.valueOf((<color.Color>propertyAnimation.value).argb);
var animator = android.animation.ValueAnimator.ofObject(argbEvaluator, nativeArray);
@ -199,14 +190,14 @@ export class Animation extends common.Animation implements definition.Animation
break;
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;
xyObjectAnimators[0] = android.animation.ObjectAnimator.ofFloat(nativeView, "translationX", nativeArray);
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;
xyObjectAnimators[1] = android.animation.ObjectAnimator.ofFloat(nativeView, "translationY", nativeArray);
xyObjectAnimators[1].setRepeatCount(Animation._getAndroidRepeatCount(propertyAnimation.iterations));
@ -231,14 +222,14 @@ export class Animation extends common.Animation implements definition.Animation
break;
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;
xyObjectAnimators[0] = android.animation.ObjectAnimator.ofFloat(nativeView, "scaleX", nativeArray);
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;
xyObjectAnimators[1] = android.animation.ObjectAnimator.ofFloat(nativeView, "scaleY", nativeArray);
xyObjectAnimators[1].setRepeatCount(Animation._getAndroidRepeatCount(propertyAnimation.iterations));
@ -264,7 +255,7 @@ export class Animation extends common.Animation implements definition.Animation
case common.Properties.rotate:
originalValue1 = nativeView.getRotation();
nativeArray = java.lang.reflect.Array.newInstance(floatType, 1);
nativeArray = (<any>Array).create("float", 1);
nativeArray[0] = propertyAnimation.value;
propertyUpdateCallbacks.push(checkAnimation(() => { propertyAnimation.target.rotate = propertyAnimation.value; }));
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 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;
var colorDrawable: android.graphics.drawable.ColorDrawable = new SegmentedBarColorDrawableClass(view.selectedBackgroundColor.android)
stateDrawable.addState(arr, colorDrawable);