Loading core/java/android/view/View.java +19 −19 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import android.util.PoolableManager; import android.util.Pools; import android.util.SparseArray; import android.view.ContextMenu.ContextMenuInfo; import android.view.View.MeasureSpec; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEventSource; import android.view.accessibility.AccessibilityManager; Loading Loading @@ -1771,13 +1772,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility */ public static final int STATUS_BAR_DISABLE_CLOCK = 0x00800000; /** * @hide */ public static final int PUBLIC_STATUS_BAR_VISIBILITY_MASK = STATUS_BAR_HIDDEN; /** * Controls the over-scroll mode for this view. * See {@link #overScrollBy(int, int, int, int, int, int, int, int, boolean)}, Loading Loading @@ -3185,8 +3184,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * gives it focus no matter what. It should only be called internally by framework * code that knows what it is doing, namely {@link #requestFocus(int, Rect)}. * * @param direction values are View.FOCUS_UP, View.FOCUS_DOWN, * View.FOCUS_LEFT or View.FOCUS_RIGHT. This is the direction which * @param direction values are {@link View#FOCUS_UP}, {@link View#FOCUS_DOWN}, * {@link View#FOCUS_LEFT} or {@link View#FOCUS_RIGHT}. This is the direction which * focus moved when requestFocus() is called. It may not always * apply, in which case use the default View.FOCUS_DOWN. * @param previouslyFocusedRect The rectangle of the view that had focus Loading Loading @@ -4337,9 +4336,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * Call this to try to give focus to a specific view or to one of its * descendants. * * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns false), * or if it is focusable and it is not focusable in touch mode ({@link #isFocusableInTouchMode}) * while the device is in touch mode. * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns * false), or if it is focusable and it is not focusable in touch mode * ({@link #isFocusableInTouchMode}) while the device is in touch mode. * * See also {@link #focusSearch}, which is what you call to say that you * have focus, and you want your parent to look for the next one. Loading @@ -4358,9 +4357,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * Call this to try to give focus to a specific view or to one of its * descendants and give it a hint about what direction focus is heading. * * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns false), * or if it is focusable and it is not focusable in touch mode ({@link #isFocusableInTouchMode}) * while the device is in touch mode. * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns * false), or if it is focusable and it is not focusable in touch mode * ({@link #isFocusableInTouchMode}) while the device is in touch mode. * * See also {@link #focusSearch}, which is what you call to say that you * have focus, and you want your parent to look for the next one. Loading @@ -4382,14 +4381,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * about where focus is coming from, and therefore, where to show selection, or * forward focus change internally. * * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns false), * or if it is focusable and it is not focusable in touch mode ({@link #isFocusableInTouchMode}) * while the device is in touch mode. * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns * false), or if it is focusable and it is not focusable in touch mode * ({@link #isFocusableInTouchMode}) while the device is in touch mode. * * A View will not take focus if it is not visible. * * A View will not take focus if one of its parents has {@link android.view.ViewGroup#getDescendantFocusability()} * equal to {@link ViewGroup#FOCUS_BLOCK_DESCENDANTS}. * A View will not take focus if one of its parents has * {@link android.view.ViewGroup#getDescendantFocusability()} equal to * {@link ViewGroup#FOCUS_BLOCK_DESCENDANTS}. * * See also {@link #focusSearch}, which is what you call to say that you * have focus, and you want your parent to look for the next one. Loading core/java/android/widget/HorizontalScrollView.java +20 −32 Original line number Diff line number Diff line Loading @@ -16,25 +16,25 @@ package android.widget; import android.view.ViewDebug; import com.android.internal.R; import android.util.AttributeSet; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.view.View; import android.util.AttributeSet; import android.view.FocusFinder; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; import android.view.ViewConfiguration; import android.view.ViewDebug; import android.view.ViewGroup; import android.view.KeyEvent; import android.view.FocusFinder; import android.view.MotionEvent; import android.view.ViewParent; import android.view.animation.AnimationUtils; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import java.util.List; Loading Loading @@ -75,13 +75,6 @@ public class HorizontalScrollView extends FrameLayout { private EdgeGlow mEdgeGlowLeft; private EdgeGlow mEdgeGlowRight; /** * Flag to indicate that we are moving focus ourselves. This is so the * code that watches for focus changes initiated outside this ScrollView * knows that it does not have to do anything. */ private boolean mScrollViewMovedFocus; /** * Position of the last motion event. */ Loading Loading @@ -885,10 +878,7 @@ public class HorizontalScrollView extends FrameLayout { doScrollX(delta); } if (newFocused != findFocus() && newFocused.requestFocus(direction)) { mScrollViewMovedFocus = true; mScrollViewMovedFocus = false; } if (newFocused != findFocus()) newFocused.requestFocus(direction); return handled; } Loading Loading @@ -1239,14 +1229,12 @@ public class HorizontalScrollView extends FrameLayout { @Override public void requestChildFocus(View child, View focused) { if (!mScrollViewMovedFocus) { if (!mIsLayoutDirty) { scrollToChild(focused); } else { // The child may not be laid out yet, we can't compute the scroll yet mChildToScrollTo = focused; } } super.requestChildFocus(child, focused); } Loading Loading @@ -1363,17 +1351,16 @@ public class HorizontalScrollView extends FrameLayout { final boolean movingRight = velocityX > 0; View currentFocused = findFocus(); View newFocused = findFocusableViewInMyBounds(movingRight, mScroller.getFinalX(), findFocus()); mScroller.getFinalX(), currentFocused); if (newFocused == null) { newFocused = this; } if (newFocused != findFocus() && newFocused.requestFocus(movingRight ? View.FOCUS_RIGHT : View.FOCUS_LEFT)) { mScrollViewMovedFocus = true; mScrollViewMovedFocus = false; if (newFocused != currentFocused) { newFocused.requestFocus(movingRight ? View.FOCUS_RIGHT : View.FOCUS_LEFT); } invalidate(); Loading @@ -1385,6 +1372,7 @@ public class HorizontalScrollView extends FrameLayout { * * <p>This version also clamps the scrolling to the bounds of our child. */ @Override public void scrollTo(int x, int y) { // we rely on the fact the View.scrollBy calls scrollTo. if (getChildCount() > 0) { Loading core/java/android/widget/ScrollView.java +16 −32 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.widget; import android.view.ViewDebug; import com.android.internal.R; import android.content.Context; Loading @@ -33,6 +32,7 @@ import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; import android.view.ViewConfiguration; import android.view.ViewDebug; import android.view.ViewGroup; import android.view.ViewParent; import android.view.animation.AnimationUtils; Loading Loading @@ -70,13 +70,6 @@ public class ScrollView extends FrameLayout { private EdgeGlow mEdgeGlowTop; private EdgeGlow mEdgeGlowBottom; /** * Flag to indicate that we are moving focus ourselves. This is so the * code that watches for focus changes initiated outside this ScrollView * knows that it does not have to do anything. */ private boolean mScrollViewMovedFocus; /** * Position of the last motion event. */ Loading Loading @@ -671,15 +664,13 @@ public class ScrollView extends FrameLayout { * the parameter top. * </p> * * @param topFocus look for a candidate is the one at the top of the bounds * if topFocus is true, or at the bottom of the bounds if topFocus is * false * @param topFocus look for a candidate at the top of the bounds if topFocus is true, * or at the bottom of the bounds if topFocus is false * @param top the top offset of the bounds in which a focusable must be * found (the fading edge is assumed to start at this position) * @param preferredFocusable the View that has highest priority and will be * returned if it is within my bounds (null is valid) * @return the next focusable component in the bounds or null if none can be * found * @return the next focusable component in the bounds or null if none can be found */ private View findFocusableViewInMyBounds(final boolean topFocus, final int top, View preferredFocusable) { Loading Loading @@ -856,11 +847,10 @@ public class ScrollView extends FrameLayout { * <p>Scrolls the view to make the area defined by <code>top</code> and * <code>bottom</code> visible. This method attempts to give the focus * to a component visible in this area. If no component can be focused in * the new visible area, the focus is reclaimed by this scrollview.</p> * the new visible area, the focus is reclaimed by this ScrollView.</p> * * @param direction the scroll direction: {@link android.view.View#FOCUS_UP} * to go upward * {@link android.view.View#FOCUS_DOWN} to downward * to go upward, {@link android.view.View#FOCUS_DOWN} to downward * @param top the top offset of the new area to be made visible * @param bottom the bottom offset of the new area to be made visible * @return true if the key event is consumed by this method, false otherwise Loading @@ -885,10 +875,7 @@ public class ScrollView extends FrameLayout { doScrollY(delta); } if (newFocused != findFocus() && newFocused.requestFocus(direction)) { mScrollViewMovedFocus = true; mScrollViewMovedFocus = false; } if (newFocused != findFocus()) newFocused.requestFocus(direction); return handled; } Loading Loading @@ -1249,14 +1236,12 @@ public class ScrollView extends FrameLayout { @Override public void requestChildFocus(View child, View focused) { if (!mScrollViewMovedFocus) { if (!mIsLayoutDirty) { scrollToChild(focused); } else { // The child may not be laid out yet, we can't compute the scroll yet mChildToScrollTo = focused; } } super.requestChildFocus(child, focused); } Loading Loading @@ -1388,16 +1373,15 @@ public class ScrollView extends FrameLayout { final boolean movingDown = velocityY > 0; View currentFocused = findFocus(); View newFocused = findFocusableViewInMyBounds(movingDown, mScroller.getFinalY(), findFocus()); findFocusableViewInMyBounds(movingDown, mScroller.getFinalY(), currentFocused); if (newFocused == null) { newFocused = this; } if (newFocused != findFocus() && newFocused.requestFocus(movingDown ? View.FOCUS_DOWN : View.FOCUS_UP)) { mScrollViewMovedFocus = true; mScrollViewMovedFocus = false; if (newFocused != currentFocused) { newFocused.requestFocus(movingDown ? View.FOCUS_DOWN : View.FOCUS_UP); } if (mFlingStrictSpan == null) { Loading Loading
core/java/android/view/View.java +19 −19 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import android.util.PoolableManager; import android.util.Pools; import android.util.SparseArray; import android.view.ContextMenu.ContextMenuInfo; import android.view.View.MeasureSpec; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEventSource; import android.view.accessibility.AccessibilityManager; Loading Loading @@ -1771,13 +1772,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility */ public static final int STATUS_BAR_DISABLE_CLOCK = 0x00800000; /** * @hide */ public static final int PUBLIC_STATUS_BAR_VISIBILITY_MASK = STATUS_BAR_HIDDEN; /** * Controls the over-scroll mode for this view. * See {@link #overScrollBy(int, int, int, int, int, int, int, int, boolean)}, Loading Loading @@ -3185,8 +3184,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * gives it focus no matter what. It should only be called internally by framework * code that knows what it is doing, namely {@link #requestFocus(int, Rect)}. * * @param direction values are View.FOCUS_UP, View.FOCUS_DOWN, * View.FOCUS_LEFT or View.FOCUS_RIGHT. This is the direction which * @param direction values are {@link View#FOCUS_UP}, {@link View#FOCUS_DOWN}, * {@link View#FOCUS_LEFT} or {@link View#FOCUS_RIGHT}. This is the direction which * focus moved when requestFocus() is called. It may not always * apply, in which case use the default View.FOCUS_DOWN. * @param previouslyFocusedRect The rectangle of the view that had focus Loading Loading @@ -4337,9 +4336,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * Call this to try to give focus to a specific view or to one of its * descendants. * * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns false), * or if it is focusable and it is not focusable in touch mode ({@link #isFocusableInTouchMode}) * while the device is in touch mode. * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns * false), or if it is focusable and it is not focusable in touch mode * ({@link #isFocusableInTouchMode}) while the device is in touch mode. * * See also {@link #focusSearch}, which is what you call to say that you * have focus, and you want your parent to look for the next one. Loading @@ -4358,9 +4357,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * Call this to try to give focus to a specific view or to one of its * descendants and give it a hint about what direction focus is heading. * * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns false), * or if it is focusable and it is not focusable in touch mode ({@link #isFocusableInTouchMode}) * while the device is in touch mode. * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns * false), or if it is focusable and it is not focusable in touch mode * ({@link #isFocusableInTouchMode}) while the device is in touch mode. * * See also {@link #focusSearch}, which is what you call to say that you * have focus, and you want your parent to look for the next one. Loading @@ -4382,14 +4381,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * about where focus is coming from, and therefore, where to show selection, or * forward focus change internally. * * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns false), * or if it is focusable and it is not focusable in touch mode ({@link #isFocusableInTouchMode}) * while the device is in touch mode. * A view will not actually take focus if it is not focusable ({@link #isFocusable} returns * false), or if it is focusable and it is not focusable in touch mode * ({@link #isFocusableInTouchMode}) while the device is in touch mode. * * A View will not take focus if it is not visible. * * A View will not take focus if one of its parents has {@link android.view.ViewGroup#getDescendantFocusability()} * equal to {@link ViewGroup#FOCUS_BLOCK_DESCENDANTS}. * A View will not take focus if one of its parents has * {@link android.view.ViewGroup#getDescendantFocusability()} equal to * {@link ViewGroup#FOCUS_BLOCK_DESCENDANTS}. * * See also {@link #focusSearch}, which is what you call to say that you * have focus, and you want your parent to look for the next one. Loading
core/java/android/widget/HorizontalScrollView.java +20 −32 Original line number Diff line number Diff line Loading @@ -16,25 +16,25 @@ package android.widget; import android.view.ViewDebug; import com.android.internal.R; import android.util.AttributeSet; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.view.View; import android.util.AttributeSet; import android.view.FocusFinder; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; import android.view.ViewConfiguration; import android.view.ViewDebug; import android.view.ViewGroup; import android.view.KeyEvent; import android.view.FocusFinder; import android.view.MotionEvent; import android.view.ViewParent; import android.view.animation.AnimationUtils; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import java.util.List; Loading Loading @@ -75,13 +75,6 @@ public class HorizontalScrollView extends FrameLayout { private EdgeGlow mEdgeGlowLeft; private EdgeGlow mEdgeGlowRight; /** * Flag to indicate that we are moving focus ourselves. This is so the * code that watches for focus changes initiated outside this ScrollView * knows that it does not have to do anything. */ private boolean mScrollViewMovedFocus; /** * Position of the last motion event. */ Loading Loading @@ -885,10 +878,7 @@ public class HorizontalScrollView extends FrameLayout { doScrollX(delta); } if (newFocused != findFocus() && newFocused.requestFocus(direction)) { mScrollViewMovedFocus = true; mScrollViewMovedFocus = false; } if (newFocused != findFocus()) newFocused.requestFocus(direction); return handled; } Loading Loading @@ -1239,14 +1229,12 @@ public class HorizontalScrollView extends FrameLayout { @Override public void requestChildFocus(View child, View focused) { if (!mScrollViewMovedFocus) { if (!mIsLayoutDirty) { scrollToChild(focused); } else { // The child may not be laid out yet, we can't compute the scroll yet mChildToScrollTo = focused; } } super.requestChildFocus(child, focused); } Loading Loading @@ -1363,17 +1351,16 @@ public class HorizontalScrollView extends FrameLayout { final boolean movingRight = velocityX > 0; View currentFocused = findFocus(); View newFocused = findFocusableViewInMyBounds(movingRight, mScroller.getFinalX(), findFocus()); mScroller.getFinalX(), currentFocused); if (newFocused == null) { newFocused = this; } if (newFocused != findFocus() && newFocused.requestFocus(movingRight ? View.FOCUS_RIGHT : View.FOCUS_LEFT)) { mScrollViewMovedFocus = true; mScrollViewMovedFocus = false; if (newFocused != currentFocused) { newFocused.requestFocus(movingRight ? View.FOCUS_RIGHT : View.FOCUS_LEFT); } invalidate(); Loading @@ -1385,6 +1372,7 @@ public class HorizontalScrollView extends FrameLayout { * * <p>This version also clamps the scrolling to the bounds of our child. */ @Override public void scrollTo(int x, int y) { // we rely on the fact the View.scrollBy calls scrollTo. if (getChildCount() > 0) { Loading
core/java/android/widget/ScrollView.java +16 −32 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.widget; import android.view.ViewDebug; import com.android.internal.R; import android.content.Context; Loading @@ -33,6 +32,7 @@ import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; import android.view.ViewConfiguration; import android.view.ViewDebug; import android.view.ViewGroup; import android.view.ViewParent; import android.view.animation.AnimationUtils; Loading Loading @@ -70,13 +70,6 @@ public class ScrollView extends FrameLayout { private EdgeGlow mEdgeGlowTop; private EdgeGlow mEdgeGlowBottom; /** * Flag to indicate that we are moving focus ourselves. This is so the * code that watches for focus changes initiated outside this ScrollView * knows that it does not have to do anything. */ private boolean mScrollViewMovedFocus; /** * Position of the last motion event. */ Loading Loading @@ -671,15 +664,13 @@ public class ScrollView extends FrameLayout { * the parameter top. * </p> * * @param topFocus look for a candidate is the one at the top of the bounds * if topFocus is true, or at the bottom of the bounds if topFocus is * false * @param topFocus look for a candidate at the top of the bounds if topFocus is true, * or at the bottom of the bounds if topFocus is false * @param top the top offset of the bounds in which a focusable must be * found (the fading edge is assumed to start at this position) * @param preferredFocusable the View that has highest priority and will be * returned if it is within my bounds (null is valid) * @return the next focusable component in the bounds or null if none can be * found * @return the next focusable component in the bounds or null if none can be found */ private View findFocusableViewInMyBounds(final boolean topFocus, final int top, View preferredFocusable) { Loading Loading @@ -856,11 +847,10 @@ public class ScrollView extends FrameLayout { * <p>Scrolls the view to make the area defined by <code>top</code> and * <code>bottom</code> visible. This method attempts to give the focus * to a component visible in this area. If no component can be focused in * the new visible area, the focus is reclaimed by this scrollview.</p> * the new visible area, the focus is reclaimed by this ScrollView.</p> * * @param direction the scroll direction: {@link android.view.View#FOCUS_UP} * to go upward * {@link android.view.View#FOCUS_DOWN} to downward * to go upward, {@link android.view.View#FOCUS_DOWN} to downward * @param top the top offset of the new area to be made visible * @param bottom the bottom offset of the new area to be made visible * @return true if the key event is consumed by this method, false otherwise Loading @@ -885,10 +875,7 @@ public class ScrollView extends FrameLayout { doScrollY(delta); } if (newFocused != findFocus() && newFocused.requestFocus(direction)) { mScrollViewMovedFocus = true; mScrollViewMovedFocus = false; } if (newFocused != findFocus()) newFocused.requestFocus(direction); return handled; } Loading Loading @@ -1249,14 +1236,12 @@ public class ScrollView extends FrameLayout { @Override public void requestChildFocus(View child, View focused) { if (!mScrollViewMovedFocus) { if (!mIsLayoutDirty) { scrollToChild(focused); } else { // The child may not be laid out yet, we can't compute the scroll yet mChildToScrollTo = focused; } } super.requestChildFocus(child, focused); } Loading Loading @@ -1388,16 +1373,15 @@ public class ScrollView extends FrameLayout { final boolean movingDown = velocityY > 0; View currentFocused = findFocus(); View newFocused = findFocusableViewInMyBounds(movingDown, mScroller.getFinalY(), findFocus()); findFocusableViewInMyBounds(movingDown, mScroller.getFinalY(), currentFocused); if (newFocused == null) { newFocused = this; } if (newFocused != findFocus() && newFocused.requestFocus(movingDown ? View.FOCUS_DOWN : View.FOCUS_UP)) { mScrollViewMovedFocus = true; mScrollViewMovedFocus = false; if (newFocused != currentFocused) { newFocused.requestFocus(movingDown ? View.FOCUS_DOWN : View.FOCUS_UP); } if (mFlingStrictSpan == null) { Loading