Fixed
Status Update
Comments
ss...@google.com <ss...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 6ebe664e0db444d2602f67a75a4deada37d0a72f
Author: stevebower <stevebower@google.com>
Date: Wed Oct 13 15:26:27 2021
Update transition handling in SwipeDismissableNavHost.
Transitions should reach Lifecycle.State.RESUMED
when animations are complete.
Test: androidx.wear.compose.navigation.
Bug: 202863359
Relnote: "Update transition handling in
SwipeDismissableNavHost"
Change-Id: I1cbe09cd902f785dcb68f11f098b340e4da1e55a
M wear/compose/compose-navigation/build.gradle
M wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt
M wear/compose/compose-navigation/src/androidTest/kotlin/androidx/wear/compose/navigation/SwipeDismissableNavHostTest.kt
M wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/WearNavigator.kt
https://android-review.googlesource.com/1857639
Branch: androidx-main
commit 6ebe664e0db444d2602f67a75a4deada37d0a72f
Author: stevebower <stevebower@google.com>
Date: Wed Oct 13 15:26:27 2021
Update transition handling in SwipeDismissableNavHost.
Transitions should reach Lifecycle.State.RESUMED
when animations are complete.
Test: androidx.wear.compose.navigation.
Bug: 202863359
Relnote: "Update transition handling in
SwipeDismissableNavHost"
Change-Id: I1cbe09cd902f785dcb68f11f098b340e4da1e55a
M wear/compose/compose-navigation/build.gradle
M wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt
M wear/compose/compose-navigation/src/androidTest/kotlin/androidx/wear/compose/navigation/SwipeDismissableNavHostTest.kt
M wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/WearNavigator.kt
as...@google.com <as...@google.com>
na...@google.com <na...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit d65ce67f974132fad4f26a3f72de6a3b3be2ec0d
Author: stevebower <stevebower@google.com>
Date: Fri Oct 15 09:48:16 2021
Wrap transition handling in SideEffect.
State outside this composable should be
updated in one of the Effect APIs
(as per late comments in aosp/1857639).
Test: androidx.wear.compose.navigation.
Bug: 202863359
Relnote: "Update transition handling in
SwipeDismissableNavHost in a SideEffect"
Change-Id: I04994074e7d024dcf857c156c8c265b57e3769f8
M wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt
https://android-review.googlesource.com/1859213
Branch: androidx-main
commit d65ce67f974132fad4f26a3f72de6a3b3be2ec0d
Author: stevebower <stevebower@google.com>
Date: Fri Oct 15 09:48:16 2021
Wrap transition handling in SideEffect.
State outside this composable should be
updated in one of the Effect APIs
(as per late comments in aosp/1857639).
Test: androidx.wear.compose.navigation.
Bug: 202863359
Relnote: "Update transition handling in
SwipeDismissableNavHost in a SideEffect"
Change-Id: I04994074e7d024dcf857c156c8c265b57e3769f8
M wear/compose/compose-navigation/src/main/java/androidx/wear/compose/navigation/SwipeDismissableNavHost.kt
Description
Version used: 1.0.1
I don't have a full explanation, but it seems that top level elements in Scaffold interfere with talkback. PositionIndicator, TimeText, full screen composables, but I'm guessing as I'm not sure what is going on. It makes it hard to reconcile the results from a11y testing with composeTestRule with actual manual testing.
It seems that A11y treats them as a single item because the bounds are all the same (full screen). But I'm not sure.
One example changing
```
val volumeState = volume()
Stepper(
value = volumeState.current.toFloat(),
onValueChange = { if (it > volumeState.current) increaseVolume() else decreaseVolume() },
steps = volumeState.max - 1,
valueRange = (0f..volumeState.max.toFloat()),
increaseIcon = {
increaseIcon()
},
decreaseIcon = {
decreaseIcon()
}
) {
DeviceChip(
modifier = Modifier.padding(horizontal = 18.dp),
volumeState = volumeState,
audioOutput = audioOutput,
onAudioOutputClick = onAudioOutputClick
)
}
if (showVolumeIndicator) {
VolumePositionIndicator(
modifier = Modifier.semantics {
contentDescription = "Volume ${volumeState.current}"
},
volumeState = volume,
autoHide = false
)
}
}
```