am b3b4f837: am 8c9283f4: Merge "Fix NullPointerException in ListView"

* commit 'b3b4f83702ca878854529acfdc389d15db5ca6f3':
  Fix NullPointerException in ListView
This commit is contained in:
Adam Powell
2014-12-05 19:39:25 +00:00
committed by Android Git Automerger

View File

@@ -2420,10 +2420,15 @@ public class ListView extends AbsListView {
(ViewGroup) selectedView, currentFocus, direction); (ViewGroup) selectedView, currentFocus, direction);
if (nextFocus != null) { if (nextFocus != null) {
// do the math to get interesting rect in next focus' coordinates // do the math to get interesting rect in next focus' coordinates
currentFocus.getFocusedRect(mTempRect); Rect focusedRect = mTempRect;
offsetDescendantRectToMyCoords(currentFocus, mTempRect); if (currentFocus != null) {
offsetRectIntoDescendantCoords(nextFocus, mTempRect); currentFocus.getFocusedRect(focusedRect);
if (nextFocus.requestFocus(direction, mTempRect)) { offsetDescendantRectToMyCoords(currentFocus, focusedRect);
offsetRectIntoDescendantCoords(nextFocus, focusedRect);
} else {
focusedRect = null;
}
if (nextFocus.requestFocus(direction, focusedRect)) {
return true; return true;
} }
} }
@@ -2556,8 +2561,10 @@ public class ListView extends AbsListView {
if (mItemsCanFocus && (focusResult == null) if (mItemsCanFocus && (focusResult == null)
&& selectedView != null && selectedView.hasFocus()) { && selectedView != null && selectedView.hasFocus()) {
final View focused = selectedView.findFocus(); final View focused = selectedView.findFocus();
if (!isViewAncestorOf(focused, this) || distanceToView(focused) > 0) { if (focused != null) {
focused.clearFocus(); if (!isViewAncestorOf(focused, this) || distanceToView(focused) > 0) {
focused.clearFocus();
}
} }
} }