Fixed
Status Update
Comments
ra...@google.com <ra...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit c549cdd2f497de74100cad7e8ab6ac4438ffa992
Author: Ralston Da Silva <ralu@google.com>
Date: Thu Dec 17 14:27:19 2020
Add API to specify a custom focus traversal order
This Cl adds a Modifier.onKeyEvent to the FocusModifier so that it can receive hardware key events.
Then in response to these events, it attempts to move focus left/right/up/down or next/previous.
Focus moving is not supported yet, This CL adds API to specify a custom focus traversal order, and only moves focus if a custom focus traversal is set.
Bug: 175899543
Bug: 170155556
Bug: 170155429
Test: ./gradlew compose:ui:ui:connectedCheck -P android.testInstrumentationRunnerArguments.class=androidx.compose.ui.focus.CustomFocusTraversalTest
Relnote: Added Modifier.focusOrder() that can be used to specify a custom focus traversal order
Change-Id: I90cf58d6b1f19341d6cdbc7846fd95934938e9f4
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/public_plus_experimental_current.txt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/UiDemos.kt
A compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/focus/CustomFocusOrderDemo.kt
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/focus/CustomFocusTraversalTest.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/focus/FocusRequesterTest.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/key/AndroidProcessKeyInputTest.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusModifier.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusOrderModifier.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusRequester.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusTraversal.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNodeWrapper.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/ModifiedFocusNode.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/ModifiedFocusOrderNode.kt
https://android-review.googlesource.com/1533638
Branch: androidx-main
commit c549cdd2f497de74100cad7e8ab6ac4438ffa992
Author: Ralston Da Silva <ralu@google.com>
Date: Thu Dec 17 14:27:19 2020
Add API to specify a custom focus traversal order
This Cl adds a Modifier.onKeyEvent to the FocusModifier so that it can receive hardware key events.
Then in response to these events, it attempts to move focus left/right/up/down or next/previous.
Focus moving is not supported yet, This CL adds API to specify a custom focus traversal order, and only moves focus if a custom focus traversal is set.
Bug: 175899543
Bug: 170155556
Bug: 170155429
Test: ./gradlew compose:ui:ui:connectedCheck -P android.testInstrumentationRunnerArguments.class=androidx.compose.ui.focus.CustomFocusTraversalTest
Relnote: Added Modifier.focusOrder() that can be used to specify a custom focus traversal order
Change-Id: I90cf58d6b1f19341d6cdbc7846fd95934938e9f4
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/public_plus_experimental_current.txt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/UiDemos.kt
A compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/focus/CustomFocusOrderDemo.kt
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/focus/CustomFocusTraversalTest.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/focus/FocusRequesterTest.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/key/AndroidProcessKeyInputTest.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusModifier.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusOrderModifier.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusRequester.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusTraversal.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNodeWrapper.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/ModifiedFocusNode.kt
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/ModifiedFocusOrderNode.kt
Description
Add KeyInput modifiers to capture tab/shift+tab key presses Add KeyInput modifiers to capture arrow key presses