summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/ViewGroup.java2
-rw-r--r--core/java/android/view/ViewRootImpl.java8
2 files changed, 7 insertions, 3 deletions
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 726fa28..db1c00a 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -3912,7 +3912,6 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
* @see #removeDetachedView(View, boolean)
*/
protected void detachViewFromParent(View child) {
- child.clearAccessibilityFocus();
removeFromArray(indexOfChild(child));
}
@@ -3934,7 +3933,6 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
* @see #removeDetachedView(View, boolean)
*/
protected void detachViewFromParent(int index) {
- getChildAt(index).clearAccessibilityFocus();
removeFromArray(index);
}
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index a5b6a30..df4bb99 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -2324,7 +2324,13 @@ public final class ViewRootImpl implements ViewParent,
mAccessibilityFocusedHost.getDrawingRect(bounds);
if (mView instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) mView;
- viewGroup.offsetDescendantRectToMyCoords(mAccessibilityFocusedHost, bounds);
+ try {
+ viewGroup.offsetDescendantRectToMyCoords(mAccessibilityFocusedHost, bounds);
+ } catch (IllegalArgumentException iae) {
+ Log.e(TAG, "Temporary detached view that was neither removed not reattached: "
+ + mAccessibilityFocusedHost);
+ return;
+ }
}
} else {
if (mAccessibilityFocusedVirtualView == null) {