Status Update
Comments
gr...@google.com <gr...@google.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
bp...@atimi.com <bp...@atimi.com> #3
bp...@atimi.com <bp...@atimi.com> #4
gr...@google.com <gr...@google.com> #5
I'm unsure if these are related, will treat them separately for now.
gr...@google.com <gr...@google.com> #6
Reporter, can you share what compose versions you are using?
The missing method from the stack trace was introduced in version 1.5.0-alpha01
(before in 1.6.0
(stable)1.6.0-alpha01
(, so it never hit a stable release.
en...@gmail.com <en...@gmail.com> #7
kindly note that i tried to reproduce with minimal code as mentioned but didn't work in my project however it worked when I tried in a new project
I have included my android app and my shared gradle files
gr...@google.com <gr...@google.com> #8
Are you using these same deps in both the new project and your other project? If not, what does the "new project" deps look like? If you mean the default compose new project, it would still help if you shared those dependencies so that android studio differences don't have an effect on reproduction.
en...@gmail.com <en...@gmail.com> #9
I tried to share the same versions but no changes
gr...@google.com <gr...@google.com> #10
After toying around with the deps a bit, it seems that androidx.compose.material3:material3:1.1.2
uses the 1.4.1
version of compose. Upping this to 1.2.0-rc01
seems to fix the issue by bringing the underlying compose version up to match the 1.6.0-rc01
. Alternatively, dropping compose versions to 1.5.4 may help as well.
Still looking for the culprit.
gr...@google.com <gr...@google.com> #12
reproducible with the following when the accessibility menu shortcut is enabled:
dependencies:
configurations.all {
resolutionStrategy {
force("androidx.compose.ui:ui:1.6.0")
}
}
dependencies {
implementation("androidx.activity:activity-compose:1.8.2")
implementation("androidx.compose.foundation:foundation:1.5.4")
}
code:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.text.input.TextFieldValue
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
var tfv by remember { mutableStateOf(TextFieldValue("Hello!")) }
BasicTextField(
value = tfv,
onValueChange = { tfv = it },
)
}
}
}
gr...@google.com <gr...@google.com> #13
This seems to be an escaped binary incompatibility. It seems like the latter change should have landed into one of the 1.5 betas, but it ended up not being included.
gr...@google.com <gr...@google.com> #14
- CL introducing members:
aosp/2441240 - CL adding a parameter to member:
aosp/2580451 - CL renaming members:
aosp/2599070
1 was introduced in 1.5.0-alpha01
, 2 and 3 were supposed to be in any of the 1.5 betas, but ended up landing in 1.6.0-alpha01
. I created
ap...@google.com <ap...@google.com> #15
Branch: androidx-main
commit 7c556d51a1ff4b14d50b7c7dddc496032da133fb
Author: Grant Toepfer <grantapher@google.com>
Date: Wed Jan 31 14:05:30 2024
Fix binary compatibility for PerformImeAction
Some semantics members that were supposed to be removed in 1.5 betas escaped into 1.5, and then were instead removed in 1.6. This change re-adds deprecated hidden members to maintain binary compatibility with 1.5.
Relnote: Fixed a binary compatibility issue with `SemanticsPropertyReceiver.performImeAction`.
Test: N/A
Fixes:
Change-Id: I658657d6a697e6c5e09cb95500410bd73f237c1b
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsProperties.kt
kl...@google.com <kl...@google.com> #16
gr...@google.com <gr...@google.com> #17
Leaving in progress until cherry-pick complete.
gr...@google.com <gr...@google.com> #18
Cherry-pick request submitted.
gr...@google.com <gr...@google.com> #19
Needed to change deprecation level, so reverted the above CL and submitting another
ap...@google.com <ap...@google.com> #20
Branch: androidx-main
commit 53478385c1311bec3d3bdf86c8c3162ba667081c
Author: Grant Toepfer <grantapher@google.com>
Date: Wed Jan 31 14:05:30 2024
Fix backwards compatibility for PerformImeAction
Some semantics members that were supposed to be removed in 1.5 betas escaped into 1.5, and then were instead removed in 1.6. This change re-adds the members as deprecated to maintain compatibility with 1.5.
Relnote: Fixed a backwards compatibility issue with `SemanticsPropertyReceiver.performImeAction` and `SemanticsActions.PerformImeAction`.
Test: N/A
Bug:
Change-Id: Id0528d5c5115ce4a6f703547be943a9740c22860
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsProperties.kt
gr...@google.com <gr...@google.com> #21
Targeting 1.6.1
(the next release).
gr...@google.com <gr...@google.com> #22
Released in 1.6.1
.
Reporter, can you verify the fix? Marking it as fixed for now. Feel free to re-open if you still have the same issue.
en...@gmail.com <en...@gmail.com> #23
gr...@google.com <gr...@google.com>
pr...@google.com <pr...@google.com> #24
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.ui:ui:1.7.0-alpha03
androidx.compose.ui:ui-android:1.7.0-alpha03
androidx.compose.ui:ui-desktop:1.7.0-alpha03
Description
Jetpack Compose version: All
Jetpack Compose component(s) used: TextField
Android Studio Build: All
Kotlin version: 1.9.20
Steps to Reproduce or Code Sample to Reproduce: Steps to Reproduce
TextField Crashes if any accessibility service is enabled
Stack trace