summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2023-05-08 19:53:28 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-05-08 19:53:28 +0000
commit4d859e7bc3a72716608c0a33c70e873df7f4d671 (patch)
tree2519ca3e7558f0ad80f239964fad95080903b6d7
parent4bd98b45b6f4b0c8b52218a88df5604ee3f01a72 (diff)
parent73f0b2af197ed925ea76efd0b2f009843189ba19 (diff)
Merge "scroll capture: Recover gracefully when anchor view is lost" into udc-dev
-rw-r--r--core/java/com/android/internal/view/RecyclerViewCaptureHelper.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/core/java/com/android/internal/view/RecyclerViewCaptureHelper.java b/core/java/com/android/internal/view/RecyclerViewCaptureHelper.java
index 8192ffd10230..f4e9e3064f3d 100644
--- a/core/java/com/android/internal/view/RecyclerViewCaptureHelper.java
+++ b/core/java/com/android/internal/view/RecyclerViewCaptureHelper.java
@@ -105,6 +105,13 @@ public class RecyclerViewCaptureHelper implements ScrollCaptureViewHelper<ViewGr
}
if (recyclerView.requestChildRectangleOnScreen(anchor, input, true)) {
+ if (anchor.getParent() == null) {
+ // BUG(b/239050369): Check if the tracked anchor view is still attached.
+ Log.w(TAG, "Bug: anchor view " + anchor + " is detached after scrolling");
+ resultConsumer.accept(result); // empty result
+ return;
+ }
+
int scrolled = prevAnchorTop - anchor.getTop(); // inverse of movement
mScrollDelta += scrolled; // view.top-- is equivalent to parent.scrollY++
result.scrollDelta = mScrollDelta;