diff options
6 files changed, 32 insertions, 12 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)); } diff --git a/packages/SystemUI/res/layout-land/status_bar_search_panel.xml b/packages/SystemUI/res/layout-land/status_bar_search_panel.xml index c8a120d..f91e5d6 100644 --- a/packages/SystemUI/res/layout-land/status_bar_search_panel.xml +++ b/packages/SystemUI/res/layout-land/status_bar_search_panel.xml @@ -54,7 +54,7 @@ prvandroid:outerRadius="@dimen/navbar_search_outerring_radius" prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius" prvandroid:snapMargin="@dimen/navbar_search_snap_margin" - prvandroid:feedbackCount="0" + prvandroid:feedbackCount="1" prvandroid:vibrationDuration="@integer/config_vibration_duration" prvandroid:alwaysTrackFinger="true" prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius" diff --git a/packages/SystemUI/res/layout-port/status_bar_search_panel.xml b/packages/SystemUI/res/layout-port/status_bar_search_panel.xml index 1e4bb57..2556aca 100644 --- a/packages/SystemUI/res/layout-port/status_bar_search_panel.xml +++ b/packages/SystemUI/res/layout-port/status_bar_search_panel.xml @@ -54,7 +54,7 @@ prvandroid:outerRadius="@dimen/navbar_search_outerring_radius" prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius" prvandroid:snapMargin="@dimen/navbar_search_snap_margin" - prvandroid:feedbackCount="0" + prvandroid:feedbackCount="1" prvandroid:vibrationDuration="@integer/config_vibration_duration" prvandroid:alwaysTrackFinger="true" prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius" diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar_search_panel.xml b/packages/SystemUI/res/layout-sw600dp/status_bar_search_panel.xml index 3b6c52e..459fac9 100644 --- a/packages/SystemUI/res/layout-sw600dp/status_bar_search_panel.xml +++ b/packages/SystemUI/res/layout-sw600dp/status_bar_search_panel.xml @@ -40,7 +40,7 @@ prvandroid:outerRadius="@dimen/navbar_search_outerring_radius" prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius" prvandroid:snapMargin="@dimen/navbar_search_snap_margin" - prvandroid:feedbackCount="0" + prvandroid:feedbackCount="1" prvandroid:vibrationDuration="@integer/config_vibration_duration" prvandroid:alwaysTrackFinger="true" prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius" diff --git a/packages/SystemUI/res/layout-sw720dp/status_bar_search_panel.xml b/packages/SystemUI/res/layout-sw720dp/status_bar_search_panel.xml index 8c2360e..d2e26db 100644 --- a/packages/SystemUI/res/layout-sw720dp/status_bar_search_panel.xml +++ b/packages/SystemUI/res/layout-sw720dp/status_bar_search_panel.xml @@ -41,7 +41,7 @@ prvandroid:outerRadius="@dimen/navbar_search_outerring_radius" prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius" prvandroid:snapMargin="@dimen/navbar_search_snap_margin" - prvandroid:feedbackCount="0" + prvandroid:feedbackCount="1" prvandroid:vibrationDuration="@integer/config_vibration_duration" prvandroid:alwaysTrackFinger="true" prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius" |