Fixed
Status Update
Comments
jo...@google.com <jo...@google.com>
al...@google.com <al...@google.com> #2
Hi Ed, Thank you so much for these suggestions. I've been reviewing them and merging them in. Hopefully it should be live. I've included a thank you note too in the article.
ch...@google.com <ch...@google.com> #3
Great! Thanks a lot, I'll look for the live updates soon!
sk...@gmail.com <sk...@gmail.com> #4
Comment has been deleted.
hr...@gmail.com <hr...@gmail.com> #5
This issue also affects Material theming changes because they use staticCompositionLocalOf
under the hood. And those cannot be changed by a work-around.
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-main
Author: Chuck Jazdzewski <
Link:
Fixed providesDefault
for a single provide
Expand for full commit details
Fixed `providesDefault` for a single provide
If `providesDefault` is used as the sole provided value
of a `CompostionLocalProvider` then the content of the
provider may not update if a parent changes the value
of a static composition local. Providing more than
one value does not have this issue.
Fixes: 374263387
Test: new test, ./gradlew :compose:r:r:test
Change-Id: Iabd4fbba6191abad4073ab5f302d252750683258
Files:
- M
compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composer.kt
- M
compose/runtime/runtime/src/nonEmulatorCommonTest/kotlin/androidx/compose/runtime/CompositionLocalTests.kt
Hash: b70a4268ba4985d4a5baf9c14edd81290d2ded1d
Date: Thu Oct 24 17:16:39 2024
na...@google.com <na...@google.com> #7
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.runtime:runtime:1.8.0-alpha06
androidx.compose.runtime:runtime-android:1.8.0-alpha06
androidx.compose.runtime:runtime-jvmstubs:1.8.0-alpha06
androidx.compose.runtime:runtime-linuxx64stubs:1.8.0-alpha06
Description
Jetpack Compose version: 1.7.1
Jetpack Compose component(s) used: ProvidableCompositionLocal and providesDefault
Android Studio Build: Jellyfish 2023.3.1 Patch 2
Kotlin version: 2.0.21
Steps to Reproduce or Code Sample to Reproduce:
Nesting multiple
providesDefault
for aProvidableCompositionLocal
blocks any changes from other wrapperProvidableCompositionLocals
from being propagated from the root block to the second nested block.Example:
In this example "Second block other value changed" should get printed twice because
LocalOtherValue
is expected to change and trigger theLaunchedEffect
inside the second block but it does not. It only changes inside the "Root block other value changed" and "First block other value changed" blocks.As per my understanding
providesDefault
should only affectLocalValue
.