text: 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;}