Merge "Finding focus for from rectangle now working." into jb-dev

This commit is contained in:
Svetoslav Ganov
2012-05-04 15:49:44 -07:00
committed by Android (Google) Code Review

View File

@ -62,7 +62,7 @@ public class FocusFinder {
* @return The next focusable view, or null if none exists. * @return The next focusable view, or null if none exists.
*/ */
public final View findNextFocus(ViewGroup root, View focused, int direction) { public final View findNextFocus(ViewGroup root, View focused, int direction) {
return findNextFocus(root, focused, mFocusedRect, direction); return findNextFocus(root, focused, null, direction);
} }
/** /**
@ -122,10 +122,15 @@ public class FocusFinder {
int direction, ArrayList<View> focusables) { int direction, ArrayList<View> focusables) {
final int directionMasked = (direction & ~View.FOCUS_ACCESSIBILITY); final int directionMasked = (direction & ~View.FOCUS_ACCESSIBILITY);
if (focused != null) { if (focused != null) {
if (focusedRect == null) {
focusedRect = mFocusedRect;
}
// fill in interesting rect from focused // fill in interesting rect from focused
focused.getFocusedRect(focusedRect); focused.getFocusedRect(focusedRect);
root.offsetDescendantRectToMyCoords(focused, focusedRect); root.offsetDescendantRectToMyCoords(focused, focusedRect);
} else { } else {
if (focusedRect == null) {
focusedRect = mFocusedRect;
// make up a rect at top left or bottom right of root // make up a rect at top left or bottom right of root
switch (directionMasked) { switch (directionMasked) {
case View.FOCUS_RIGHT: case View.FOCUS_RIGHT:
@ -153,6 +158,7 @@ public class FocusFinder {
} }
} }
} }
}
switch (directionMasked) { switch (directionMasked) {
case View.FOCUS_FORWARD: case View.FOCUS_FORWARD: