public void onPull(float deltaDistance) {final long now = AnimationUtils.currentAnimationTimeMillis();if (mState == STATE_PULL_DECAY && now - mStartTime < mDuration) {return;}if (mState != STATE_PULL) {mGlowScaleY = PULL_GLOW_BEGIN;}mState = STATE_PULL;mStartTime = now;mDuration = PULL_TIME;mPullDistance += deltaDistance;float distance = Math.abs(mPullDistance);mEdgeAlpha = mEdgeAlphaStart = Math.max(PULL_EDGE_BEGIN, Math.min(distance, MAX_ALPHA));mEdgeScaleY = mEdgeScaleYStart = Math.max(HELD_EDGE_SCALE_Y, Math.min(distance * PULL_DISTANCE_EDGE_FACTOR, 1.f));mGlowAlpha = mGlowAlphaStart = Math.min(MAX_ALPHA,mGlowAlpha +(Math.abs(deltaDistance) * PULL_DISTANCE_ALPHA_GLOW_FACTOR));float glowChange = Math.abs(deltaDistance);if (deltaDistance > 0 && mPullDistance < 0) {glowChange = -glowChange;}if (mPullDistance == 0) {mGlowScaleY = 0;}mGlowScaleY = mGlowScaleYStart = Math.min(MAX_GLOW_HEIGHT, Math.max(0, mGlowScaleY + glowChange * PULL_DISTANCE_GLOW_FACTOR));mEdgeAlphaFinish = mEdgeAlpha;mEdgeScaleYFinish = mEdgeScaleY;mGlowAlphaFinish = mGlowAlpha;mGlowScaleYFinish = mGlowScaleY;}

public virtual void onPull(float deltaDistance){long now = android.view.animation.AnimationUtils.currentAnimationTimeMillis();if (mState == STATE_PULL_DECAY && now - mStartTime < mDuration){return;}if (mState != STATE_PULL){mGlowScaleY = PULL_GLOW_BEGIN;}mState = STATE_PULL;mStartTime = now;mDuration = PULL_TIME;mPullDistance += deltaDistance;float distance = System.Math.Abs(mPullDistance);mEdgeAlpha = mEdgeAlphaStart = System.Math.Max(PULL_EDGE_BEGIN, System.Math.Min(distance, MAX_ALPHA));mEdgeScaleY = mEdgeScaleYStart = System.Math.Max(HELD_EDGE_SCALE_Y, System.Math.Min(distance * PULL_DISTANCE_EDGE_FACTOR, 1.0f));mGlowAlpha = mGlowAlphaStart = System.Math.Min(MAX_ALPHA, mGlowAlpha + (System.Math.Abs(deltaDistance) * PULL_DISTANCE_ALPHA_GLOW_FACTOR));float glowChange = System.Math.Abs(deltaDistance);if (deltaDistance > 0 && mPullDistance < 0){glowChange = -glowChange;}if (mPullDistance == 0){mGlowScaleY = 0;}mGlowScaleY = mGlowScaleYStart = System.Math.Min(MAX_GLOW_HEIGHT, System.Math.Max(0, mGlowScaleY + glowChange * PULL_DISTANCE_GLOW_FACTOR));mEdgeAlphaFinish = mEdgeAlpha;mEdgeScaleYFinish = mEdgeScaleY;mGlowAlphaFinish = mGlowAlpha;mGlowScaleYFinish = mGlowScaleY;}
