Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Hi. Thanks for reporting this. Fixed in alpha-04
na...@google.com <na...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit e782987543a9f8ccd485e970ddc74564b24378db
Author: Vighnesh Raut <vighnesh.raut13@gmail.com>
Date: Mon Jan 02 15:27:40 2023
fix: tab row crashes when only 1 tab is added
Bug: b/264018028
Test: Added unit test
Change-Id: I6381dbac304fc1d69d3708c6655f8b595668e93f
M tv/tv-material/src/androidTest/java/androidx/tv/material/TabRowTest.kt
M tv/tv-material/src/main/java/androidx/tv/material/TabRow.kt
https://android-review.googlesource.com/2373449
Branch: androidx-main
commit e782987543a9f8ccd485e970ddc74564b24378db
Author: Vighnesh Raut <vighnesh.raut13@gmail.com>
Date: Mon Jan 02 15:27:40 2023
fix: tab row crashes when only 1 tab is added
Bug:
Test: Added unit test
Change-Id: I6381dbac304fc1d69d3708c6655f8b595668e93f
M tv/tv-material/src/androidTest/java/androidx/tv/material/TabRowTest.kt
M tv/tv-material/src/main/java/androidx/tv/material/TabRow.kt
Description
forEachGesture
is an extension ofPointerInputScope
and has a lambda also onPointerInputScope
. It repeats the lambda, which must callawaitPointerEventScope
inside it to find gestures. On each loop, it must enter and exitAwaitPointerEventScope
and each time it exits, there is a chance that events get lost between gestures.We need a new method that loops wholly within
AwaitPointerEventScope
so that events aren't lost.forEachGesture
can't be deprecated because there are use cases where suspend functions or acoroutineScope
belongs within the lambda block. But most gesture detectors don't need that.