Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8e618e54 authored by Romain Guy's avatar Romain Guy
Browse files

Report scroll events from ScrollView and HorizontalScrollView.

Bug #2342763

Also fix typos in TextView.

Change-Id: I58ab906b9bebe562c1a913977e2d6970bfcf3788
parent 529b2854
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -318,11 +318,7 @@ public class HorizontalScrollView extends FrameLayout {
    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        // Let the focused view and/or our descendants get the key first
        boolean handled = super.dispatchKeyEvent(event);
        if (handled) {
            return true;
        }
        return executeKeyEvent(event);
        return super.dispatchKeyEvent(event) || executeKeyEvent(event);
    }

    /**
@@ -509,8 +505,11 @@ public class HorizontalScrollView extends FrameLayout {
                    final int deltaX = (int) (mLastMotionX - x);
                    mLastMotionX = x;

                    final int oldX = mScrollX;
                    final int oldY = mScrollY;                    
                    overscrollBy(deltaX, 0, mScrollX, 0, getScrollRange(), 0,
                            getOverscrollMax(), 0);
                    onScrollChanged(mScrollX, mScrollY, oldX, oldY);
                }
                break;
            case MotionEvent.ACTION_UP:
@@ -524,7 +523,7 @@ public class HorizontalScrollView extends FrameLayout {
                            fling(-initialVelocity);
                        } else {
                            final int right = getScrollRange();
                            if (mScroller.springback(mScrollX, mScrollY, 0, 0, right, 0)) {
                            if (mScroller.springback(mScrollX, mScrollY, 0, right, 0, 0)) {
                                invalidate();
                            }
                        }
+4 −8
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.Log;
import android.view.FocusFinder;
import android.view.KeyEvent;
import android.view.MotionEvent;
@@ -52,8 +51,6 @@ import java.util.List;
 * <p>ScrollView only supports vertical scrolling.
 */
public class ScrollView extends FrameLayout {
    private static final String TAG = "ScrollView";

    static final int ANIMATED_SCROLL_GAP = 250;

    static final float MAX_SCROLL_FACTOR = 0.5f;
@@ -318,11 +315,7 @@ public class ScrollView extends FrameLayout {
    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        // Let the focused view and/or our descendants get the key first
        boolean handled = super.dispatchKeyEvent(event);
        if (handled) {
            return true;
        }
        return executeKeyEvent(event);
        return super.dispatchKeyEvent(event) || executeKeyEvent(event);
    }

    /**
@@ -510,8 +503,11 @@ public class ScrollView extends FrameLayout {
                    final int deltaY = (int) (mLastMotionY - y);
                    mLastMotionY = y;

                    final int oldX = mScrollX;
                    final int oldY = mScrollY;
                    overscrollBy(0, deltaY, 0, mScrollY, 0, getScrollRange(),
                            0, getOverscrollMax());
                    onScrollChanged(mScrollX, mScrollY, oldX, oldY);
                }
                break;
            case MotionEvent.ACTION_UP: 
+6 −3
Original line number Diff line number Diff line
@@ -1376,15 +1376,18 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                dr.mDrawableLeft.setCallback(null);
            }
            dr.mDrawableLeft = left;
            if (dr.mDrawableTop != left && dr.mDrawableTop != null) {

            if (dr.mDrawableTop != top && dr.mDrawableTop != null) {
                dr.mDrawableTop.setCallback(null);
            }
            dr.mDrawableTop = top;
            if (dr.mDrawableRight != left && dr.mDrawableRight != null) {

            if (dr.mDrawableRight != right && dr.mDrawableRight != null) {
                dr.mDrawableRight.setCallback(null);
            }
            dr.mDrawableRight = right;
            if (dr.mDrawableBottom != left && dr.mDrawableBottom != null) {

            if (dr.mDrawableBottom != bottom && dr.mDrawableBottom != null) {
                dr.mDrawableBottom.setCallback(null);
            }
            dr.mDrawableBottom = bottom;