Status Update
Comments
gb...@manubank.com <gb...@manubank.com> #2
Branch: androidx-master-dev
commit c60f33e229e31ab328ef6b59dab63b264954831c
Author: Alexandre Elias <aelias@google.com>
Date: Fri Jul 10 16:23:09 2020
Semantics no-op cleanups
Partly in response to lmr's broad code review, I did a pass of
superficial API/implementation cleanup. The main changes are:
- I changed each Boolean SemanticsProperty where false is equivalent to
not being present to take "Unit" instead. This is conceptually
clearer: it avoids questions like "can I cancel out a semantics from a
merged child by setting it to false?" Because "property = Unit" looks
weird, I also changed the style of these to "property()".
- I moved the Semantics id generator closer to where it's used, in
SemanticsModifierCore. I made it internal and an AtomicInt.
(Note that integer ids are heavily used in the Android
AccessibilityNodeInfo APIs so I can't simply remove them entirely.)
- I deleted dead code. Some examples include SemanticsHintOverrides,
a public API not connected to anything, and SemanticsPropertyKey
merge() open method which is never called. (In both cases I have
a different plan in mind for accessibility.)
Fixes: 145951226
Fixes: 145955412
Test: existing tests
Relnote: "Single-value semantics properties now use a calling style.
For example, 'semantics { hidden = true }' is now written as:
'semantics { hidden() }'."
Change-Id: Ic1afd12ea22c926babc9662f1804d80b33aa0cfc
M ui/integration-tests/benchmark/src/androidTest/java/androidx/ui/benchmark/test/LayoutNodeModifierBenchmark.kt
M ui/ui-core/api/0.1.0-dev15.txt
M ui/ui-core/api/current.txt
M ui/ui-core/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-core/api/public_plus_experimental_current.txt
M ui/ui-core/api/restricted_0.1.0-dev15.txt
M ui/ui-core/api/restricted_current.txt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/graphics/vector/VectorTest.kt
M ui/ui-core/src/androidAndroidTest/kotlin/androidx/ui/semantics/SemanticsTests.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidActuals.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeView.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidComposeViewAccessibilityDelegateCompat.kt
M ui/ui-core/src/androidMain/kotlin/androidx/ui/core/AndroidPopup.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/Expect.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsConfiguration.kt
D ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsHintOverrides.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsModifier.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsNode.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsOwner.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/core/semantics/SemanticsWrapper.kt
M ui/ui-core/src/commonMain/kotlin/androidx/ui/semantics/SemanticsProperties.kt
M ui/ui-foundation/api/0.1.0-dev15.txt
M ui/ui-foundation/api/current.txt
M ui/ui-foundation/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-foundation/api/public_plus_experimental_current.txt
M ui/ui-foundation/api/restricted_0.1.0-dev15.txt
M ui/ui-foundation/api/restricted_current.txt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Clickable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Dialog.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/Scroller.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Selectable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/selection/Toggleable.kt
M ui/ui-foundation/src/main/java/androidx/ui/foundation/semantics/FoundationSemanticsProperties.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ButtonTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CardTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/CheckboxScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/RadioButtonScreenshotTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ScaffoldTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SnackbarTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/SurfaceTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/ripple/RippleIndicationTest.kt
M ui/ui-material/src/androidTest/java/androidx/ui/material/textfield/TextFieldScreenshotTest.kt
M ui/ui-material/src/main/java/androidx/ui/material/AppBar.kt
M ui/ui-material/src/main/java/androidx/ui/material/TextFieldImpl.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/AssertsTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/CallSemanticsActionTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ErrorMessagesTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/FindersTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/PrintToStringTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/ScrollToTest.kt
M ui/ui-test/src/androidTest/java/androidx/ui/test/TextActionsTest.kt
M ui/ui-test/src/main/java/androidx/ui/test/Actions.kt
M ui/ui-test/src/main/java/androidx/ui/test/Filters.kt
M ui/ui-text/api/0.1.0-dev15.txt
M ui/ui-text/api/current.txt
M ui/ui-text/api/public_plus_experimental_0.1.0-dev15.txt
M ui/ui-text/api/public_plus_experimental_current.txt
M ui/ui-text/api/restricted_0.1.0-dev15.txt
M ui/ui-text/api/restricted_current.txt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/CoreTextField.kt
M ui/ui-text/src/commonMain/kotlin/androidx/ui/text/TextSemanticsProperties.kt
pr...@gmail.com <pr...@gmail.com> #3
any update about this issue ? :)
an...@google.com <an...@google.com> #4
we...@sky.uk <we...@sky.uk> #5
Like us, I think this will be the last issue preventing people from fully migrating from M2 -> M3. Until this is resolved we can't fully remove the material dependency from our build files as per the migration guidelines.
al...@google.com <al...@google.com>
se...@google.com <se...@google.com>
se...@google.com <se...@google.com> #6
The latest update here:
There are some critical design concerns with pullrefresh in M2 that we would like to address before we ultimately decide to provide an M3 implementation of this component. Once this M2 work is prioritized we will be able to provide a more concrete timeline on an M3 implementation.
se...@google.com <se...@google.com>
co...@google.com <co...@google.com>
se...@google.com <se...@google.com>
re...@gmail.com <re...@gmail.com> #7
And for now, how can we use the pull to refresh features?
se...@google.com <se...@google.com> #8
PullRefresh is a known migration gap from M2 and is in active development. I dont have a strong estimate for its timeline yet but this bug will be updated as different components of this behavior are implemented.
The best way to use PullRefresh with M3 currently is to fork the M2 logic in the meantime.
st...@gmail.com <st...@gmail.com> #9
4s...@gmail.com <4s...@gmail.com> #10
je...@gmail.com <je...@gmail.com> #11
What a strange decision ! Almost every app uses pull to refresh. If you think you can improve the component, then do it, but implement the standard pull to refresh first.
ja...@gmail.com <ja...@gmail.com> #12
ja...@gmail.com <ja...@gmail.com> #13
This is a blocking issue for upgrading to M3 for us as well.
ap...@google.com <ap...@google.com> #14
Branch: androidx-main
commit 13a9759288d8af0548e08d428cb431ae30b14e51
Author: José Figueroa Santos <serniebanders@google.com>
Date: Wed Aug 16 19:42:27 2023
[Material3][PullRefresh] Add pullRefresh screenshot assets
Bug: 261760718
Change-Id: Ia0f6a6cf85e9acf5195b1b0a9e029d342e8bc5f0
A compose/material3/material3/pullRefreshIndicator_darkTheme_progress_emulator.png
A compose/material3/material3/pullRefreshIndicator_darkTheme_refreshing_emulator.png
A compose/material3/material3/pullRefreshIndicator_darkTheme_scale_emulator.png
A compose/material3/material3/pullRefreshIndicator_lightTheme_progress_emulator.png
A compose/material3/material3/pullRefreshIndicator_lightTheme_refreshing_emulator.png
A compose/material3/material3/pullRefreshIndicator_lightTheme_scale_emulator.png
ap...@google.com <ap...@google.com> #15
Branch: androidx-main
commit b82bdf308cc6144b693839eef9938e10b050e1ea
Author: Jose Figueroa <serniebanders@google.com>
Date: Wed Jul 19 17:33:30 2023
[Material3][PullRefresh] Fork M2 Implementation of PullRefreshIndicator
Test: N/A
Bug: 261760718
Change-Id: I8319a37d15fb7e10dbcfa399012bd528d8263d7e
A compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/pullrefresh/PullRefreshIndicatorTest.kt
A compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/pullrefresh/PullRefreshIndicator.kt
ap...@google.com <ap...@google.com> #16
Branch: androidx-main
commit 63b87bff724635e0086c37ae0977a5de537fc4cc
Author: Jose Figueroa <serniebanders@google.com>
Date: Wed Jul 19 18:14:02 2023
[Material3][PullRefresh] Update PullRefreshIndicator to M3
* API has been updated to be agnostic to PullRefreshState
* TonalElevation behavior has not been ported to M3
* PullRefreshIndicatorTransformation logic has been moved here
* Note: PullRefreshIndicator and PullRefreshIndicatorDefaults will be marked as public alongside the introduction of PullRefresh behavior.
Bug: 261760718
Test: Unit Tests and Screenshot tests for custom non-surface behaviors (progress, offset and refreshing).
Change-Id: I79f7a9d5bf9c08cd50b6f14133417f9c14af8bc3
D compose/material3/material3/src/androidAndroidTest/kotlin/androidx/compose/material3/pullrefresh/PullRefreshIndicatorTest.kt
A compose/material3/material3/src/androidInstrumentedTest/kotlin/androidx/compose/material3/pullrefresh/PullRefreshIndicatorScreenshotTest.kt
A compose/material3/material3/src/androidInstrumentedTest/kotlin/androidx/compose/material3/pullrefresh/PullRefreshIndicatorTest.kt
A compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/pullrefresh/PullRefresh.kt
D compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/pullrefresh/PullRefreshIndicator.kt
ja...@gmail.com <ja...@gmail.com> #17
It's merged or? When will this be available?
vo...@gmail.com <vo...@gmail.com> #18
Hello Guys, how far are we on the PullRefreshIndicator
? I am a bit hesitant to add an entire MD2 Lib in the name of an indicator.
ma...@gmail.com <ma...@gmail.com> #19
Please expose the shadow colors in the M3 version of the indicator. I did not find a way to override the shadow colors since the modifier is applied after any modifiers supplied.
.shadow(if (showElevation) Elevation else 0.dp, SpinnerShape, clip = true)
->
.shadow(if (showElevation) Elevation else 0.dp, SpinnerShape, clip = true, ambientColor = ambientColor, spotColor = spotColor)
ap...@google.com <ap...@google.com> #20
Branch: androidx-main
commit d6595618337308b4a133162833c92fb6ebf4a2fb
Author: Jose Figueroa <serniebanders@google.com>
Date: Wed Sep 27 13:54:40 2023
[Material3][PullToRefresh] Implement custom state behavior for Pull-to-Refresh
Bug: 261760718
RelNote: "Implements PullToRefreshContainer and PullToRefreshState, which together provide a pull to refresh implementation in Material3."
Test: Unit and Screenshot tests provided for PullToRefreshContainer and PullToRefreshState
Change-Id: I1645695db83e706b2f20e25b82bb937885d95abf
M compose/material3/material3/api/current.txt
M compose/material3/material3/api/restricted_current.txt
M compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/model/Components.kt
M compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/model/Examples.kt
A compose/material3/material3/samples/src/main/java/androidx/compose/material3/samples/PullToRefreshSamples.kt
M compose/material3/material3/src/androidInstrumentedTest/kotlin/androidx/compose/material3/pulltorefresh/PullToRefreshIndicatorScreenshotTest.kt
M compose/material3/material3/src/androidInstrumentedTest/kotlin/androidx/compose/material3/pulltorefresh/PullToRefreshIndicatorTest.kt
A compose/material3/material3/src/androidInstrumentedTest/kotlin/androidx/compose/material3/pulltorefresh/PullToRefreshStateImplTest.kt
D compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/pullrefresh/PullRefresh.kt
A compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/pulltorefresh/PullToRefresh.kt
se...@google.com <se...@google.com> #21
This has been landed as an Experimental component. The plan is to have this extensively tested and reviewed for API and behavior, as well as future design plans within Material 3. Please open separate bugs and feature requests as this component becomes available in future releases. And thank you for the continued patience on this one.
Description