Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 4945dfa31180f343697de5810b99ec80a48dc386
Author: Andrei Shikov <ashikov@google.com>
Date: Mon Jun 20 16:09:06 2022
Prevent removing derived state from composition when it is read in other scopes
Derived state observations were previously unconditionally removed from the recompose scope and composition together, which broke other scopes which might be still observing derived state.
This change only removes derived state instances if it is no longer observed by other scopes.
Fixes: 236618362
Test: CompositionAndDerivedStateTests#observingDerivedStateInMultipleScopes
Change-Id: I92e7c8702efecb33bea3ea3effe9ec47e2a6ae5b
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composition.kt
M compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/CompositionAndDerivedStateTests.kt
https://android-review.googlesource.com/2131915
Branch: androidx-main
commit 4945dfa31180f343697de5810b99ec80a48dc386
Author: Andrei Shikov <ashikov@google.com>
Date: Mon Jun 20 16:09:06 2022
Prevent removing derived state from composition when it is read in other scopes
Derived state observations were previously unconditionally removed from the recompose scope and composition together, which broke other scopes which might be still observing derived state.
This change only removes derived state instances if it is no longer observed by other scopes.
Fixes: 236618362
Test: CompositionAndDerivedStateTests#observingDerivedStateInMultipleScopes
Change-Id: I92e7c8702efecb33bea3ea3effe9ec47e2a6ae5b
M compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/Composition.kt
M compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/CompositionAndDerivedStateTests.kt
kr...@gmail.com <kr...@gmail.com> #3
The following release(s) address this bug:
androidx.compose.runtime:runtime:1.3.0
il...@google.com <il...@google.com> #4
Yep, we'll fix it.
il...@google.com <il...@google.com>
il...@google.com <il...@google.com> #5
This has been fixed internally in https://android-review.googlesource.com/870978 and will be available in Navigation 1.0.0-alpha10.
Navigation now biases selecting deep links based on the number of matching arguments (more matching arguments are considered better matches).
Navigation now biases selecting deep links based on the number of matching arguments (more matching arguments are considered better matches).
Description
Version used: 1.0.0-alpha06
Devices/Android versions reproduced on: Android 8.1.0, Samsung Galaxy J5 (I don't think it's device related)
Navigation library doesn't handle deep links properly when there are 2 deep links registered and the second one is an "extension" of the previous one. Let me give a simplified example to make it more clear:
<fragment android:name="com.example.EventFragment">
<argument
android:name="eventId"
app:argType="string" />
<action
android:id="@+id/exhibitorDetails"
app:destination="@id/exhibitorDetails" />
<deepLink app:uri="example://events/{eventId}" />
</fragment>
<activity android:id="@+id/exhibitorDetails"
android:name="com.example.ExhibitorsActivity">
<!-- I know, not a single Activity app. But that's the case. -->
<argument
android:name="exhibitorId"
app:argType="string" />
<deepLink app:uri="example://events/{eventId}/exhibitors/{exhibitorId}" />
</activity>
When I use a link: example://events/event123/exhibitors/exhibitor123 I expect navigation library to navigate to an ExhibitorsActivity. Instead, it navigates to EventFragment. Furthermore, an eventId passed to a fragment is invalid, in this case, it's: "event123/exhibitors/exhibitor123".
I believe it's a bug of regex: in my example, passed link matches both regexes: example://events/{eventId} and example://events/{eventId}/exhibitors/{exhibitorId}.