diff --git a/CrossPlatformModules.csproj b/CrossPlatformModules.csproj index 9688da4ba..7b6e29e65 100644 --- a/CrossPlatformModules.csproj +++ b/CrossPlatformModules.csproj @@ -216,9 +216,6 @@ - - - @@ -805,7 +802,6 @@ - @@ -838,13 +834,6 @@ background-test.xml - - Designer - - - Designer - - @@ -1880,7 +1869,7 @@ False - + \ No newline at end of file diff --git a/ui/animation/animation.android.ts b/ui/animation/animation.android.ts index 023810cb1..f6245f811 100644 --- a/ui/animation/animation.android.ts +++ b/ui/animation/animation.android.ts @@ -9,15 +9,14 @@ import types = require("utils/types"); declare var exports; require("utils/module-merge").merge(common, exports); -var intType = java.lang.Integer.class.getField("TYPE").get(null); var floatType = java.lang.Float.class.getField("TYPE").get(null); -var argbEvaluator: android.animation.ArgbEvaluator = new android.animation.ArgbEvaluator(); +var argbEvaluator = new android.animation.ArgbEvaluator(); export class Animation extends common.Animation implements definition.Animation { private _animatorListener: android.animation.Animator.AnimatorListener; private _nativeAnimatorsArray: any; private _animatorSet: android.animation.AnimatorSet; - private _animators: Array; + private _animators: Array; private _propertyUpdateCallbacks: Array; private _propertyResetCallbacks: Array; @@ -27,7 +26,7 @@ export class Animation extends common.Animation implements definition.Animation var i: number; var length: number; - this._animators = new Array(); + this._animators = new Array(); this._propertyUpdateCallbacks = new Array(); this._propertyResetCallbacks = new Array(); @@ -43,7 +42,7 @@ export class Animation extends common.Animation implements definition.Animation return this; } - this._nativeAnimatorsArray = java.lang.reflect.Array.newInstance(android.animation.ObjectAnimator.class, this._animators.length); + this._nativeAnimatorsArray = java.lang.reflect.Array.newInstance(android.animation.Animator.class, this._animators.length); i = 0; length = this._animators.length; for (; i < length; i++) { @@ -141,10 +140,10 @@ export class Animation extends common.Animation implements definition.Animation var nativeArray; var nativeView: android.view.View = (propertyAnimation.target._nativeView); - var animators = new Array(); + var animators = new Array(); var propertyUpdateCallbacks = new Array(); var propertyResetCallbacks = new Array(); - var animator: android.animation.ObjectAnimator; + var animator: android.animation.ValueAnimator; var originalValue; var density = utils.layout.getDisplayDensity(); switch (propertyAnimation.property) { @@ -163,12 +162,17 @@ export class Animation extends common.Animation implements definition.Animation case common.Properties.backgroundColor: originalValue = nativeView.getBackground(); if (!color.Color.equals(propertyAnimation.value, propertyAnimation.target.backgroundColor)) { - nativeArray = java.lang.reflect.Array.newInstance(intType, 1); - nativeArray[0] = (propertyAnimation.value).argb; - //https://github.com/NativeScript/android-runtime/issues/168 - //animator = android.animation.ObjectAnimator.ofObject(nativeView, "backgroundColor", argbEvaluator, nativeArray); - animator = android.animation.ObjectAnimator.ofInt(nativeView, "backgroundColor", nativeArray); - animator.setEvaluator(argbEvaluator); + nativeArray = java.lang.reflect.Array.newInstance(java.lang.Object.class, 2); + nativeArray[0] = propertyAnimation.target.backgroundColor ? java.lang.Integer.valueOf((propertyAnimation.target.backgroundColor).argb) : java.lang.Integer.valueOf(-1); + nativeArray[1] = java.lang.Integer.valueOf((propertyAnimation.value).argb); + animator = android.animation.ValueAnimator.ofObject(argbEvaluator, nativeArray); + animator.addUpdateListener(new android.animation.ValueAnimator.AnimatorUpdateListener({ + onAnimationUpdate(animator: android.animation.ValueAnimator) { + var argb = (animator.getAnimatedValue()).intValue(); + propertyAnimation.target.backgroundColor = new color.Color(argb); + } + })); + animators.push(animator); propertyUpdateCallbacks.push(() => { propertyAnimation.target.backgroundColor = propertyAnimation.value; }); propertyResetCallbacks.push(() => { nativeView.setBackground(originalValue); });