summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/com/android/internal/widget/multiwaveview/GlowPadView.java30
-rw-r--r--core/java/com/android/internal/widget/multiwaveview/PointCloud.java6
2 files changed, 28 insertions, 8 deletions
diff --git a/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java b/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
index 837b7b8..adea586 100644
--- a/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
+++ b/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
@@ -76,7 +76,7 @@ public class GlowPadView extends View {
}
// Tuneable parameters for animation
- private static final int WAVE_ANIMATION_DURATION = 1200;
+ private static final int WAVE_ANIMATION_DURATION = 1350;
private static final int RETURN_TO_HOME_DELAY = 1200;
private static final int RETURN_TO_HOME_DURATION = 200;
private static final int HIDE_ANIMATION_DELAY = 200;
@@ -361,6 +361,7 @@ public class GlowPadView extends View {
mHandleDrawable.setAlpha(0.0f);
deactivateTargets();
showTargets(true);
+ ping();
startBackgroundAnimation(INITIAL_SHOW_HANDLE_DURATION, 1.0f);
setGrabbedState(OnTriggerListener.CENTER_HANDLE);
if (AccessibilityManager.getInstance(mContext).isEnabled()) {
@@ -484,7 +485,12 @@ public class GlowPadView extends View {
final int duration = animate ? HIDE_ANIMATION_DURATION : 0;
final int delay = animate ? HIDE_ANIMATION_DELAY : 0;
- final float targetScale = expanded ? TARGET_SCALE_EXPANDED : TARGET_SCALE_COLLAPSED;
+ // TODO: add an attribute for this. For now we'll show the expand for navbar, but not
+ // keyguard.
+ final boolean expandDisabled = !mAlwaysTrackFinger;
+
+ final float targetScale = (expanded || expandDisabled) ?
+ TARGET_SCALE_EXPANDED : TARGET_SCALE_COLLAPSED;
final int length = mTargetDrawables.size();
final TimeInterpolator interpolator = Ease.Cubic.easeOut;
for (int i = 0; i < length; i++) {
@@ -499,7 +505,8 @@ public class GlowPadView extends View {
"onUpdate", mUpdateListener));
}
- final float ringScaleTarget = expanded ? RING_SCALE_EXPANDED : RING_SCALE_COLLAPSED;
+ final float ringScaleTarget = (expanded || expandDisabled) ?
+ RING_SCALE_EXPANDED : RING_SCALE_COLLAPSED;
mTargetAnimations.add(Tweener.to(mOuterRing, duration,
"ease", interpolator,
"alpha", 0.0f,
@@ -663,7 +670,20 @@ public class GlowPadView extends View {
*/
public void ping() {
if (mFeedbackCount > 0) {
- startWaveAnimation();
+ boolean doWaveAnimation = true;
+ final AnimationBundle waveAnimations = mWaveAnimations;
+
+ // Don't do a wave if there's already one in progress
+ if (waveAnimations.size() > 0 && waveAnimations.get(0).animator.isRunning()) {
+ long t = waveAnimations.get(0).animator.getCurrentPlayTime();
+ if (t < WAVE_ANIMATION_DURATION/2) {
+ doWaveAnimation = false;
+ }
+ }
+
+ if (doWaveAnimation) {
+ startWaveAnimation();
+ }
}
}
@@ -677,7 +697,7 @@ public class GlowPadView extends View {
mPointCloud.waveManager.setAlpha(1.0f);
mPointCloud.waveManager.setRadius(mHandleDrawable.getWidth()/2.0f);
mWaveAnimations.add(Tweener.to(mPointCloud.waveManager, WAVE_ANIMATION_DURATION,
- "ease", Ease.Linear.easeNone,
+ "ease", Ease.Quad.easeOut,
"delay", 0,
"radius", 2.0f * mOuterRadius,
"onUpdate", mUpdateListener,
diff --git a/core/java/com/android/internal/widget/multiwaveview/PointCloud.java b/core/java/com/android/internal/widget/multiwaveview/PointCloud.java
index 1beac16..1a5a9a2 100644
--- a/core/java/com/android/internal/widget/multiwaveview/PointCloud.java
+++ b/core/java/com/android/internal/widget/multiwaveview/PointCloud.java
@@ -186,10 +186,10 @@ public class PointCloud {
// Compute contribution from Wave
float radius = hypot(point.x, point.y);
- float distanceToWaveRing = Math.abs(radius - waveManager.radius);
+ float distanceToWaveRing = (radius - waveManager.radius);
float waveAlpha = 0.0f;
- if (distanceToWaveRing < waveManager.width * 0.5f) {
- float cosf = FloatMath.cos(PI * 0.5f * distanceToWaveRing / waveManager.width);
+ if (distanceToWaveRing < waveManager.width * 0.5f && distanceToWaveRing < 0.0f) {
+ float cosf = FloatMath.cos(PI * 0.25f * distanceToWaveRing / waveManager.width);
waveAlpha = waveManager.alpha * max(0.0f, (float) Math.pow(cosf, 20.0f));
}