Status Update
Comments
ma...@wnco.com <ma...@wnco.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
ma...@wnco.com <ma...@wnco.com> #3
Workaround: put this code inside the sheet's content block
val view = LocalView.current
(view.parent as? DialogWindowProvider)?.window?.let { window ->
SideEffect {
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = false
}
}
re...@gmail.com <re...@gmail.com> #4
Workaround: put this code inside the sheet's content block
Had a similar issue and a slightly different work-around which worked before Material3 1.3.0. Now my work-around doesn't work anymore, but thankfully yours does. It's quite frustrating that every new version of Compose APIs seems to break our code. Some functions/properties/parameters are completely getting removed and replaced with incompatible ones which are still marked "experimental" even in stable versions. Then, next time, these APIs get changed again and, again, we have to update our code.
do...@gmail.com <do...@gmail.com> #5
I can't agree more. There should definitely be a parameter to control this (also for the nav bar icons). It was already requested two months ago here:
Why would the device theme dictate which status/nav bar icon color to use? It doesn't make sense. Please, add an easy way to control this.
se...@google.com <se...@google.com>
se...@google.com <se...@google.com>
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-main
Author: Jose Figueroa <
Link:
[M3][BottomSheet] Provide bottomsheet properties for users to manually adjust status and navigation bar colors.
Expand for full commit details
[M3][BottomSheet] Provide bottomsheet properties for users to manually adjust status and navigation bar colors.
Bug: 362539765
Test: Manual
RelNote: "Additional ModalBottomSheetProperties allow for customization of status and navigation bar colors. By default, these update based on content color instead of system dark theme status."
Change-Id: Ib874e2b06477ef077534e5af31c1c7be97a4e134
Files:
- M
compose/material3/material3/api/current.txt
- M
compose/material3/material3/api/restricted_current.txt
- M
compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/ModalBottomSheet.android.kt
- M
compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ModalBottomSheet.kt
- M
compose/material3/material3/src/commonStubsMain/kotlin/androidx/compose/material3/ModalBottomSheet.commonStubs.kt
Hash: c4cab4797ba69f7c2f6426518fa9992124fab38a
Date: Wed Oct 02 14:04:43 2024
se...@google.com <se...@google.com> #7
The dialog now updates icons based on content color luminance. Additionally, bottomsheet properties let you customize this value yourself.
pr...@google.com <pr...@google.com> #8
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.material3:material3:1.4.0-alpha03
androidx.compose.material3:material3-android:1.4.0-alpha03
androidx.compose.material3:material3-jvmstubs:1.4.0-alpha03
androidx.compose.material3:material3-linuxx64stubs:1.4.0-alpha03
do...@gmail.com <do...@gmail.com> #9
The new options to adjust the status/navigation icons color don't work properly for me.
ModalBottomSheetProperties(
isAppearanceLightStatusBars = false,
isAppearanceLightNavigationBars = true,
)
The settings above make both status and navigation icons black.
On the other hand, the settings below make both icons white.
ModalBottomSheetProperties(
isAppearanceLightStatusBars = true,
isAppearanceLightNavigationBars = false,
)
The color of the status and navigation bar icons should be different in both cases.
Could you please take a look at it?
se...@google.com <se...@google.com>
ap...@google.com <ap...@google.com> #10
Project: platform/frameworks/support
Branch: androidx-main
Author: Jose Figueroa <
Link:
[M3][BottomSheets] Fix status bar typo assigning flag incorrectly
Expand for full commit details
[M3][BottomSheets] Fix status bar typo assigning flag incorrectly
Bug: 362539765
Test: Manual
RelNote: "Correctly route status and navigation bar flags for windows properties"
Change-Id: Ie674d4f080aafa8a41aeb3732797916169a07198
Files:
- M
compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/ModalBottomSheet.android.kt
Hash: b33d952af7bf32544535b9404fc9865322b87f75
Date: Fri Nov 08 14:05:04 2024
se...@google.com <se...@google.com> #11
Thank you for catching this bug, the flags were incorrectly assigned in the constructor.
Description
Jetpack Compose version: 2024.08.00 BOM
Material Library Version: "androidx.compose.material3:material3:1.3.0-rc01
Material Compose component used: ModalBottomSheet
Android Studio Build: 2024.1.1 Patch 2
Kotlin version: 1.9.0
Steps to Reproduce or Code Sample to Reproduce:
Expected behavior:
ModalBottomSheet should not change status bar icon color unless it is expanded into the status bar. Or there should be an option to override it.