Merge "scroll capture: Recover gracefully when anchor view is lost" into udc-dev am: 4d859e7bc3

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23058626

Change-Id: I71cafde32460fb280104496154e54f6abaf3b79b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-05-09 09:55:39 +00:00
committed by Automerger Merge Worker

View File

@@ -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;