diff --git a/src/api-impl/android/view/View.java b/src/api-impl/android/view/View.java index 5758d652..2079f9eb 100644 --- a/src/api-impl/android/view/View.java +++ b/src/api-impl/android/view/View.java @@ -1291,6 +1291,7 @@ public class View extends Object { } public void addOnLayoutChangeListener(OnLayoutChangeListener listener) {} + public void removeOnLayoutChangeListener(OnLayoutChangeListener listener) {} public boolean isSelected() {return false;} @@ -1560,4 +1561,12 @@ public class View extends Object { protected int computeHorizontalScrollExtent() { return getWidth(); } + + protected int computeVerticalScrollRange() { + return getHeight(); + } + + protected int computeVerticalScrollExtent() { + return getHeight(); + } } diff --git a/src/api-impl/android/view/ViewGroup.java b/src/api-impl/android/view/ViewGroup.java index 9080658f..0a61ae8b 100644 --- a/src/api-impl/android/view/ViewGroup.java +++ b/src/api-impl/android/view/ViewGroup.java @@ -315,6 +315,16 @@ public class ViewGroup extends View implements ViewParent, ViewManager { return false; } + @Override + public boolean onNestedPreFling(View target, float velocityX, float velocityY) { + return false; + } + + @Override + public boolean onNestedFling(View target, float velocityX, float velocityY, boolean consumed) { + return false; + } + public static class LayoutParams { public static final int FILL_PARENT = -1; public static final int MATCH_PARENT = -1; diff --git a/src/api-impl/android/view/ViewParent.java b/src/api-impl/android/view/ViewParent.java index f9b54ebd..5b6f17fb 100644 --- a/src/api-impl/android/view/ViewParent.java +++ b/src/api-impl/android/view/ViewParent.java @@ -8,4 +8,8 @@ public interface ViewParent { public void requestDisallowInterceptTouchEvent(boolean disallowIntercept); public abstract boolean onStartNestedScroll(View child, View target, int nestedScrollAxes); + + public boolean onNestedPreFling(View target, float velocityX, float velocityY); + + public boolean onNestedFling(View target, float velocityX, float velocityY, boolean consumed); } diff --git a/src/api-impl/android/view/animation/DecelerateInterpolator.java b/src/api-impl/android/view/animation/DecelerateInterpolator.java index 6eb1e364..e185f577 100644 --- a/src/api-impl/android/view/animation/DecelerateInterpolator.java +++ b/src/api-impl/android/view/animation/DecelerateInterpolator.java @@ -2,12 +2,21 @@ package android.view.animation; public class DecelerateInterpolator implements Interpolator{ - public DecelerateInterpolator(float value) {} + private float factor = 1.0f; + + public DecelerateInterpolator(float value) { + factor = value; + } @Override public float getInterpolation(float input) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'getInterpolation'"); + float result; + if (factor == 1.0f) { + result = 1.0f - (1.0f - input) * (1.0f - input); + } else { + result = 1.0f - (float)Math.pow((1.0f - input), 2 * factor); + } + return result; } }