diff options
Diffstat (limited to 'core/java/android/widget')
| -rw-r--r-- | core/java/android/widget/OverScroller.java | 5 | ||||
| -rw-r--r-- | core/java/android/widget/Scroller.java | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/widget/OverScroller.java b/core/java/android/widget/OverScroller.java index 50569d7..9130d9a 100644 --- a/core/java/android/widget/OverScroller.java +++ b/core/java/android/widget/OverScroller.java @@ -18,6 +18,7 @@ package android.widget; import android.content.Context; import android.hardware.SensorManager; +import android.os.PowerManager; import android.util.Log; import android.view.ViewConfiguration; import android.view.animation.AnimationUtils; @@ -599,6 +600,8 @@ public class OverScroller { private static final int CUBIC = 1; private static final int BALLISTIC = 2; + private final PowerManager mPm; + static { float x_min = 0.0f; float y_min = 0.0f; @@ -643,6 +646,7 @@ public class OverScroller { * 39.37f // inch/meter * ppi * 0.84f; // look and feel tuning + mPm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); } void updateScroll(float q) { @@ -760,6 +764,7 @@ public class OverScroller { if (velocity != 0) { mDuration = mSplineDuration = getSplineFlingDuration(velocity); totalDistance = getSplineFlingDistance(velocity); + mPm.cpuBoost(mDuration * 1000); } mSplineDistance = (int) (totalDistance * Math.signum(velocity)); diff --git a/core/java/android/widget/Scroller.java b/core/java/android/widget/Scroller.java index 357c9c3..a968eae 100644 --- a/core/java/android/widget/Scroller.java +++ b/core/java/android/widget/Scroller.java @@ -19,6 +19,7 @@ package android.widget; import android.content.Context; import android.hardware.SensorManager; import android.os.Build; +import android.os.PowerManager; import android.view.ViewConfiguration; import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; @@ -108,6 +109,8 @@ public class Scroller { private float mDeceleration; private final float mPpi; + private final PowerManager mPm; + // A context-specific coefficient adjusted to physical values. private float mPhysicalCoeff; @@ -178,6 +181,8 @@ public class Scroller { mFlywheel = flywheel; mPhysicalCoeff = computeDeceleration(0.84f); // look and feel tuning + + mPm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); } /** @@ -395,6 +400,8 @@ public class Scroller { mDeltaX = dx; mDeltaY = dy; mDurationReciprocal = 1.0f / (float) mDuration; + + mPm.cpuBoost(duration * 1000); } /** |
