Status Update
Comments
ap...@google.com <ap...@google.com> #2
First of all thanks for this detailed issue.
This issue had been investigated thoroughly when it was first reported internally. The surprising detail in this report is that the issue is not reproducible before 1.7
. I will look into this.
The main problem with POBox is the fact that it is deprecated. Since 2021 Sony has been shipping new Xperia devices with Gboard pre-installed. Although we are aware that there is still a considerable amount of users still using POBox, the described behavior is caused by POBox's noncompliant behavior with InputConnection
and InputMethodManager
documentation. However, this is understandable since TextView
implementation was also not respecting the behavior that is expected from Editors.
Ultimately we have decided to enforce the documented behavior with specifically regards to when editors should call InputMethodManager.updateSelection
. Also, although unconfirmed, there were traces of possible custom code being included in Sony OEM images that changed how InputMethodManager was notified from TextView. If POBox also depended on something like this, it would be impossible for Compose code to replicate the same unknown behavior.
ap...@google.com <ap...@google.com> #3
Or is that option not available?
Even if the root cause is POBox, from the perspective of the app's customers, it looks like an app bug, so this issue is a blocker against updating Jetpack Compose.
ap...@google.com <ap...@google.com> #4
Just to be sure, it is dangerous to replace Compose TextField with Android View EditText as a workaround for this issue.
Compose 1.7 has a bug that causes ANR when the focus is on EditText.
Another View-related bug in Compose 1.7 is that an Android View is focused by calling FocusManager.clearFocus().
Perhaps there is a lack of testing of Compose 1.7 in combination with Android View. There is also a possibility that there are other fatal bugs related to View.
In other words, the only options for apps targeting the Japanese market that require POBox support are to continue using Compose 1.6 or to use EditText in combination with various workarounds.
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
Author: Halil Ozercan <
Link:
Fix POBox keyboard issue
Expand for full commit details
Fix POBox keyboard issue
Fix: 373743376
Fix: 329209241
Test: NullableInputConnectionWrapperTest
Change-Id: I94e0e598274fb88b255f977f9fbd50dfbbb1ecb1
Files:
- M
compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/text/input/NullableInputConnectionWrapperTest.kt
- M
compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/text/input/NullableInputConnectionWrapper.android.kt
Hash: 57f58c4b80d5d8470b2aca325dfdcd55f235231e
Date: Thu Oct 24 01:25:20 2024
ap...@google.com <ap...@google.com> #6
Many thanks again for this report. Especially for giving us a huge clue in terms of what could be going wrong. The fix is now merged and I will ask for a cherry-pick into a stable release.
ap...@google.com <ap...@google.com> #7
Do you have any concrete plan to cherry-pick the fix into current stable version (1.7.x)? We are currently waiting it.
ap...@google.com <ap...@google.com> #8
Yes, this fix is planned to be included in a future 1.7.x
release.
ap...@google.com <ap...@google.com> #9
Thanks for the fix. Sorry to follow up on this. is it possible for you to share specific release version/date for the stable version? We are waiting on this to decide on our direction.
ap...@google.com <ap...@google.com> #10
Branch: androidx-main
commit 7899f7ffd9246f6f35bdbe3a2f9dcd9eaee1e56d
Author: Matvei Malkov <malkov@google.com>
Date: Thu Feb 04 17:08:26 2021
Refine draggable API to allow for suspend motion intergration.
In order to use draggable in swipeable and scrollable, draggable need to provide suspend drag capabilities.
This CL refined draggable API to allow to suspend while processing onDragStart / onDragEnd to launch fling and other processed async, while also introducing dragScope for suspend drag support.
All that makes it possible for scrollable, swipeable and any other drag + animation component to be based on draggable
Change-Id: Ica70f33e73b6691375c9bdf07d008bae7546d48a
Relnote: "Modifier.draggable now accepts DraggableState instead of a simple lambda. you can create state via rememberDraggableState { delta -> } to get the same behaviour as before"
Test: should pass
Bug: 175294473
M compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/FancyScrollingDemo.kt
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/DraggableSamples.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/InteractionStateSample.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/DraggableTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Draggable.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Slider.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
ap...@google.com <ap...@google.com> #11
Branch: androidx-main
commit 9a2619b3be01cd4c49b30517a41e48e96597bee1
Author: Matvei Malkov <malkov@google.com>
Date: Mon Feb 01 19:21:25 2021
Rework Modifier.scrollable to simplify the API and migrate to suspend motion.
Migrated Modifier.scrollable to suspend motion fully, adjusted nested scroll APIs to acommodate this.
This CL also simplifies scrollable API by the removal of ScrollableController and leaving only the interface with default implementation.
Change-Id: I4f5a5189b90cdff631ffb7166ce2e847b92db205
Relnote: "Modifier.scrollable has been reworked. Now it uses Scrollable interface instead of ScrollableController class"
Relnote: "Modifier.nestedScroll APIs has been adjusted to accommodate for suspend animations and fling"
Relnote: "isAnimationRunning and stopAnimation methods on ScrollState and LazyScrollState were removed. Use isScrollInProgress and stopScroll() instead"
Relnote: "ScrollableColumn and ScrollableRow were deleted. Use regular Column and Row with Modifier.verticalScroll() and Modifier.horizontalScroll()"
Fixes: 174485541
Bug: 175294473
Fixes: 178494033
Test: adjusted accordingly, all pass except one @Ignored for now. Also extensively tested in demos
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/integration-tests/foundation-demos/src/main/java/androidx/compose/foundation/demos/ListDemos.kt
M compose/foundation/foundation/integration-tests/foundation-demos/src/main/java/androidx/compose/foundation/demos/NestedScrollDemos.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/ScrollableSamples.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/ScrollerSamples.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ScrollTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ScrollableTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyColumnTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyNestedScrollingTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/textfield/TextFieldScrollTest.kt
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/gestures/AndroidScrollable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/animation/FlingConfig.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/animation/Scrolling.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Scrollable.kt
D compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/ScrollableInterface.kt
A compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/ScrollableState.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyList.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListState.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextFieldScroll.kt
M compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/gestures/DesktopScrollable.kt
M compose/foundation/foundation/src/desktopTest/kotlin/androidx/compose/foundation/gestures/DesktopScrollableTest.kt
M compose/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/NestedScrollerBenchmark.kt
M compose/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/ScrollerBenchmark.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SwipeableTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
M compose/ui/ui-test/src/androidAndroidTest/kotlin/androidx/compose/ui/test/gesturescope/SendSwipeTest.kt
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
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/gestures/HorizontalScrollersInVerticalScrollerDemo.kt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/gestures/NestedScrollingDemo.kt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/gestures/ScrollGestureFilterDemo.kt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/gestures/VerticalScrollerInDrawerLayoutDemo.kt
M compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/NestedScrollSamples.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/gesture/nestedscroll/NestedScrollModifierTest.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/gesture/nestedscroll/NestedScrollDelegatingWrapper.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/gesture/nestedscroll/NestedScrollModifier.kt
ap...@google.com <ap...@google.com> #12
Branch: androidx-main
commit 3e445ba49456250526a726de4dbdbfd330ba37d5
Author: Matvei Malkov <malkov@google.com>
Date: Thu Feb 04 19:27:05 2021
Migrate Modifier.swipeable and all its users to suspend motion.
Following after draggable rework, it's possible right now to make idiaomatic swipeable modifier with whole suspend motion support.
This CL migrates swipeable and updates the API of all the users accordingly, so now all non suspend callback-y functions are suspending until the animation is done.
Change-Id: I16f608d016fa82a59e3e68b96cb4931dcebb57a6
Relnote: drawerState.open() and drawerState.close() are now suspending functions. Use rememberCoroutineScope() to get the scope of the composition to call them
Relnote: BottomSheet, Backdrop, BottomDrawer APIs that are related to opening, revealing, closing, expanding etc are now suspend
Test: all broken, waiting for Jelle's CL
Bug: 175294473
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Draggable.kt
M compose/material/material/api/current.txt
M compose/material/material/api/public_plus_experimental_current.txt
M compose/material/material/api/restricted_current.txt
M compose/material/material/samples/src/main/java/androidx/compose/material/samples/BackdropScaffoldSamples.kt
M compose/material/material/samples/src/main/java/androidx/compose/material/samples/BottomSheetScaffoldSamples.kt
M compose/material/material/samples/src/main/java/androidx/compose/material/samples/DrawerSamples.kt
M compose/material/material/samples/src/main/java/androidx/compose/material/samples/ModalBottomSheetSamples.kt
M compose/material/material/samples/src/main/java/androidx/compose/material/samples/ScaffoldSamples.kt
M compose/material/material/samples/src/main/java/androidx/compose/material/samples/SwipeableSamples.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/BackdropScaffoldTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/BottomSheetScaffoldTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/DrawerTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/ModalBottomSheetTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/ScaffoldTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SwipeToDismissTest.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SwipeableTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BackdropScaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Drawer.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/ModalBottomSheet.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/SwipeToDismiss.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
ap...@google.com <ap...@google.com> #13
Branch: androidx-main
commit 693e3ccfea4b69cf46676bd85dc4d314d8e62282
Author: Matvei Malkov <malkov@google.com>
Date: Fri Feb 05 19:18:12 2021
Delete all unnecessary ui.gesture API expect 4 gesture filters. Also move some API to where it belongs.
I've moved Orientation to foundation since we don't use it in ui anymore, I moved nested scrol land velocity tracker under ui.input and deleted all that is not needed expect for 4 gesture filter files.
Bug: 175294473
Change-Id: Iff4a887648735c4850dca0d8d95fd99d782d04bb
Relnote: Orientation has been moved to foundation package. VelocirtTracker moved from ui.gesture to ui.input.pointer.
Test: tested demos, tests should pass
M compose/animation/animation-core/samples/src/main/java/androidx/compose/animation/core/samples/AnimatableSamples.kt
M compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/FancyScrollingDemo.kt
M compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/FlingGame.kt
M compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/SpringBackScrollingDemo.kt
M compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/SwipeToDismissDemo.kt
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/DraggableSamples.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/InteractionStateSample.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/ScrollableSamples.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/DraggableTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ScrollableTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyNestedScrollingTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyScrollTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/textfield/TextFieldScrollTest.kt
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/gestures/AndroidScrollable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Draggable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Orientation.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Scrollable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyList.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreTextField.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextFieldScroll.kt
M compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/gestures/DesktopScrollable.kt
M compose/foundation/foundation/src/desktopTest/kotlin/androidx/compose/foundation/ScrollbarTest.kt
M compose/foundation/foundation/src/desktopTest/kotlin/androidx/compose/foundation/gestures/DesktopScrollableTest.kt
M compose/material/material/api/current.txt
M compose/material/material/api/public_plus_experimental_current.txt
M compose/material/material/api/restricted_current.txt
M compose/material/material/samples/src/main/java/androidx/compose/material/samples/SwipeableSamples.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SwipeableTest.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BackdropScaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Drawer.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/ModalBottomSheet.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Slider.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/SwipeToDismiss.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Switch.kt
M compose/ui/ui-test/src/androidAndroidTest/kotlin/androidx/compose/ui/test/util/PointerInputs.kt
M compose/ui/ui/api/api_lint.ignore
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/gestures/HorizontalScrollersInVerticalScrollerDemo.kt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/gestures/NestedScrollingDemo.kt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/gestures/ScrollGestureFilterDemo.kt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/gestures/VerticalScrollerInDrawerLayoutDemo.kt
M compose/ui/ui/samples/src/main/java/androidx/compose/ui/samples/NestedScrollSamples.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/nestedscroll/NestedScrollModifierTest.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/gesture/DragGestureFilter.kt
D compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/gesture/ScrollGestureFilter.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/nestedscroll/NestedScrollDelegatingWrapper.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/nestedscroll/NestedScrollModifier.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/input/pointer/util/VelocityTracker.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/InnerPlaceable.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/desktopMain/kotlin/androidx/compose/desktop/ComposeLayer.kt
M compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/input/mouse/MouseScrollFilter.kt
M compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/input/mouse/MouseScrollFilterTest.kt
M compose/ui/ui/src/desktopTest/kotlin/androidx/compose/ui/platform/DesktopOwnerTest.kt
M compose/ui/ui/src/test/kotlin/androidx/compose/ui/gesture/scrollorientationlocking/PolyFitLeastSquaresTest.kt
M compose/ui/ui/src/test/kotlin/androidx/compose/ui/input/pointer/util/VelocityTrackerTest.kt
ap...@google.com <ap...@google.com> #14
Branch: androidx-main
commit 0506aa7959e71a4a898dc3a2251fee6a6b456c0f
Author: Matvei Malkov <malkov@google.com>
Date: Sun Feb 07 17:02:32 2021
Remove last lecagy gesture filter APIs from ui.gesture and delete this package.
Final CL to remove/hide gesture filters API. All usages have been either converted or nailed down to internal copy-pasted version of the same api to remove later.
Change-Id: I266ed741ca484924409a4a3a7d5afbbfffbd66d3
Relnote: Modifier.tapGestureFilter has been removed. Use Modifier.pointerInput { detectTapGestures(...) } instead.
Relnote: Modifier.dragGestureDetector has been removed. Use Modifier.draggable or Modifier.pointerInput { detectDragGestures(...) } instead.
Relnote: Modifier.pressIndicationGestureFilter has been removed. Use Modifier.indication to show just indication or use Modifier.pointerInput { detectTapGestures(onPress = {... }) } instead.
Bug: 175294473
Test: removed, the rest should pass
M compose/desktop/desktop/build.gradle
M compose/desktop/desktop/src/jvmMain/kotlin/androidx/compose/ui/window/DragGestureFilter.kt
M compose/desktop/desktop/src/jvmMain/kotlin/androidx/compose/ui/window/WindowDraggableArea.kt
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/legacygestures/DragGestureFilter.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/legacygestures/PressIndicatorGestureFilter.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/legacygestures/TapGestureFilter.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/selection/Toggleable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreText.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextFieldGestureModifiers.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextFieldPressGestureFilter.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SelectionContainer.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SelectionManager.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/TextFieldSelectionManager.kt
M compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/Scrollbar.kt
M compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/text/selection/DesktopSelection.kt
M compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/text/selection/DesktopSelectionManager.kt
M compose/foundation/foundation/src/test/kotlin/androidx/compose/foundation/text/TextSelectionLongPressDragTest.kt
M compose/integration-tests/benchmark/src/androidTest/java/androidx/ui/pointerinput/ComposeTapIntegrationBenchmark.kt
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
D compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/gesture/LongPressDragGestureFilterTest.kt
D compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/gesture/LongPressGestureFilterComposeTest.kt
D compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/gesture/PressIndicatorGestureFilterComposeTest.kt
D compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/gesture/RawPressStartGestureFilterComposeTest.kt
D compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/gesture/TouchSlopDragGestureFilterTest.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusManager.kt
D compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/gesture/LongPressDragGestureFilter.kt
M compose/ui/ui/src/desktopMain/kotlin/androidx/compose/ui/window/DesktopPopup.kt
ap...@google.com <ap...@google.com> #15
Branch: androidx-main
commit b1670cdbfffb9d60a6d79eb06a3f80a7d1745322
Author: Matvei Malkov <malkov@google.com>
Date: Sat Feb 06 17:28:29 2021
Remove animation package from foundation and trasfer default spline based curves to aniamtion module.
Change-Id: I3f7c18be72b1b4e8d7958194b10d63d749f7d948
Relnote: smoothScrollBy and scrollBy methods' packages changed to androidx.compose.foundation.gestures.*
Relnote: android spline based decay curve moved from foundation to animation module
Test: pass + demos
Bug: 175294473
M compose/animation/animation-core/samples/src/main/java/androidx/compose/animation/core/samples/AnimatableSamples.kt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/Animatable.kt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/SuspendAnimation.kt
M compose/animation/animation/api/current.txt
M compose/animation/animation/api/public_plus_experimental_current.txt
M compose/animation/animation/api/restricted_current.txt
M compose/animation/animation/build.gradle
M compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/SwipeToDismissDemo.kt
M compose/animation/animation/src/androidMain/kotlin/androidx/compose/animation/AndroidActualDefaultDecayAnimationSpec.android.kt
M compose/animation/animation/src/androidMain/kotlin/androidx/compose/animation/AndroidFlingCalculator.android.kt
M compose/animation/animation/src/androidMain/kotlin/androidx/compose/animation/AndroidFlingSpline.android.kt
M compose/animation/animation/src/androidMain/kotlin/androidx/compose/animation/SplineBasedFloatDecayAnimationSpec.android.kt
A compose/animation/animation/src/commonMain/kotlin/androidx/compose/animation/DefaultDecayAnimationSpec.kt
M compose/animation/animation/src/desktopMain/kotlin/androidx/compose/animation/AndroidFlingCalculator.desktop.kt
M compose/animation/animation/src/desktopMain/kotlin/androidx/compose/animation/AndroidFlingSpline.desktop.kt
M compose/animation/animation/src/desktopMain/kotlin/androidx/compose/animation/DesktopActualDefaultDecayAnimationSpec.desktop.kt
M compose/animation/animation/src/desktopMain/kotlin/androidx/compose/animation/DesktopDefaultDecayAnimationSpec.desktop.kt
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/integration-tests/foundation-demos/src/main/java/androidx/compose/foundation/demos/ListDemos.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/ScrollerSamples.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ScrollTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ScrollableTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyColumnTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyListsContentPaddingTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyRowTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyScrollTest.kt
D compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/animation/AndroidFlingConfig.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/FlingBehavior.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/ScrollExtensions.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Scrollable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/ScrollableState.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyList.kt
M compose/material/material/src/androidAndroidTest/kotlin/androidx/compose/material/SwipeableTest.kt
ap...@google.com <ap...@google.com> #16
Branch: androidx-main
commit a414d089eadff2812d68146969008e006295e965
Author: Matvei Malkov <malkov@google.com>
Date: Fri Feb 05 14:47:28 2021
Make FlingBehavior to be a suspend based function as opposed to animation oriented concept.
This CL remakes FlingConfig into FlingBehavior to me an idiomatic customization fling + removed all the usages of the old FlingConfig and TargetAnimation
Test: ScrollableTest, LazyScrollTest, ScrollTest, SliderTest + new demo
Bug: 175294473
Change-Id: I02b8639c646d24fd19ef7ac504ef6660b8906d54
Relnote: FlingConfig has been renamed to FlingBehavior now allows for customization of suspend animation rather than predefined Decays.
Relnote: LazyColumn/Row now accept FlingBehavior to allow for fling curve granular customizations
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/integration-tests/foundation-demos/src/main/java/androidx/compose/foundation/demos/ListDemos.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ScrollTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ScrollableTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyColumnTest.kt
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/animation/AndroidFlingConfig.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt
A compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/animation/FlingBehavior.kt
D compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/animation/FlingConfig.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Scrollable.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyDsl.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyList.kt
M compose/foundation/foundation/src/desktopMain/kotlin/androidx/compose/foundation/animation/DesktopFlingConfig.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/Slider.kt
M compose/ui/ui-test/src/androidAndroidTest/kotlin/androidx/compose/ui/test/gesturescope/SendSwipeTest.kt
ap...@google.com <ap...@google.com> #17
Branch: androidx-main
commit 687e953d4f41088db7f0ea02a066be81f73817a0
Author: Matvei Malkov <malkov@google.com>
Date: Mon Feb 08 15:33:41 2021
Convert zoomable to suspend motion and add missing functionality.
Similar to Draggable and Scrollable, zoomable now works via priority-based suspend motion. While there, I migrated zoomable to transformable to handle pan and rotation as well because those 3 go hand by hand most of the time.
Change-Id: Ifc32b264ce6a99e17f38ac339bde498fe5b2337a
Relnote: Modifier.zoomable has been replaced my Modifier.transformable. smoothPanBy, smoothRotationBy have been added as a functionality.
Test: Added for new functionality
Bug: 175294473
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/integration-tests/foundation-demos/src/main/java/androidx/compose/foundation/demos/HighLevelGesturesDemo.kt
M compose/foundation/foundation/samples/src/main/java/androidx/compose/foundation/samples/TransformableSample.kt
A compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/TransformableTest.kt
D compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ZoomableTest.kt
A compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Transformable.kt
A compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/TransformableState.kt
D compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Zoomable.kt
M development/build_log_simplifier/messages.ignore
ap...@google.com <ap...@google.com> #18
Branch: androidx-main
commit 6f03bb3277c8328d0dd5670824ae7b0307cb10c8
Author: Matvei Malkov <malkov@google.com>
Date: Tue Feb 09 20:29:34 2021
Fix documentation issues in foundational gestures
Bug: 175294473
Test: n/a
Change-Id: Ia586fdffd4bd9e8bbed3e663363e0909789914ca
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/Orientation.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/gestures/TransformGestureDetector.kt
cl...@google.com <cl...@google.com> #19
Done?
ma...@google.com <ma...@google.com> #20
Yes. Fully migrated to the idiomatic suspend animation and input, deprecated and removed all the legacy gesture filters.
What's left is the internal implementation of the old filters internal to foundation, used in:
- text/ textfield selection (bug:
)b/179988949 - clickable due to alpha11 bug (bug:
andb/179988949 )b/179239764 - focus in ui uses it's own implementation of the old filter (bug:
)b/179602539
Description
We need to migrate what we have in foundation (clickable, toggleable, draggable, scrollable, etc) to suspend input.