diff options
| author | 2023-05-08 19:53:28 +0000 | |
|---|---|---|
| committer | 2023-05-08 19:53:28 +0000 | |
| commit | 4d859e7bc3a72716608c0a33c70e873df7f4d671 (patch) | |
| tree | 2519ca3e7558f0ad80f239964fad95080903b6d7 | |
| parent | 4bd98b45b6f4b0c8b52218a88df5604ee3f01a72 (diff) | |
| parent | 73f0b2af197ed925ea76efd0b2f009843189ba19 (diff) | |
Merge "scroll capture: Recover gracefully when anchor view is lost" into udc-dev
| -rw-r--r-- | core/java/com/android/internal/view/RecyclerViewCaptureHelper.java | 7 |
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; |