Fixed
Status Update
Comments
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #2
We also need documentation with a few examples for it.
an...@google.com <an...@google.com> #4
Changelists related to this issue will be linked once they are submitted.
il...@google.com <il...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-master-dev
commit dc23f5c30d0394593e16a594c1502059f7e11140
Author: Ben Weiss <benweiss@google.com>
Date: Mon Mar 09 13:08:13 2020
Kotlin DSL for navigation-dynamic-features-*
Test: check & connectedCheck of affected modules
Bug: 148969800
Change-Id: Icd0cb16fbe7035aca6638c5fb984f27b6eb1ee0c
M navigation/navigation-dynamic-features-fragment/api/2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-fragment/api/current.txt
M navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_current.txt
M navigation/navigation-dynamic-features-fragment/api/restricted_2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-fragment/api/restricted_current.txt
M navigation/navigation-dynamic-features-fragment/src/androidTest/AndroidManifest.xml
A navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilderTest.kt
A navigation/navigation-dynamic-features-fragment/src/main/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilder.kt
M navigation/navigation-dynamic-features-runtime/api/2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-runtime/api/current.txt
M navigation/navigation-dynamic-features-runtime/api/public_plus_experimental_2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-runtime/api/public_plus_experimental_current.txt
M navigation/navigation-dynamic-features-runtime/api/restricted_2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-runtime/api/restricted_current.txt
A navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorDestinationBuilderTest.kt
M navigation/navigation-dynamic-features-runtime/src/main/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigator.kt
A navigation/navigation-dynamic-features-runtime/src/main/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorDestinationBuilder.kt
https://android-review.googlesource.com/1253672
Branch: androidx-master-dev
commit dc23f5c30d0394593e16a594c1502059f7e11140
Author: Ben Weiss <benweiss@google.com>
Date: Mon Mar 09 13:08:13 2020
Kotlin DSL for navigation-dynamic-features-*
Test: check & connectedCheck of affected modules
Bug: 148969800
Change-Id: Icd0cb16fbe7035aca6638c5fb984f27b6eb1ee0c
M navigation/navigation-dynamic-features-fragment/api/2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-fragment/api/current.txt
M navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_current.txt
M navigation/navigation-dynamic-features-fragment/api/restricted_2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-fragment/api/restricted_current.txt
M navigation/navigation-dynamic-features-fragment/src/androidTest/AndroidManifest.xml
A navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilderTest.kt
A navigation/navigation-dynamic-features-fragment/src/main/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilder.kt
M navigation/navigation-dynamic-features-runtime/api/2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-runtime/api/current.txt
M navigation/navigation-dynamic-features-runtime/api/public_plus_experimental_2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-runtime/api/public_plus_experimental_current.txt
M navigation/navigation-dynamic-features-runtime/api/restricted_2.3.0-alpha04.txt
M navigation/navigation-dynamic-features-runtime/api/restricted_current.txt
A navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorDestinationBuilderTest.kt
M navigation/navigation-dynamic-features-runtime/src/main/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigator.kt
A navigation/navigation-dynamic-features-runtime/src/main/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorDestinationBuilder.kt
Description
Component used: Navigation Version used:2.3.0-alpha05
Devices/Android versions reproduced on: Emulator, Android 11 DP3
I'm trying out returning results from dialogFragments with the SavedStateHandle you provide in this latest versions. it works well, taking into account the "Additional Considerations" section advice, of observing the NavBackStackEntry lifecycle, so the weird stuff that happens of having the fragment and the dialog being resumed at the same time doesn't affect when we receive the result.
But, process death is problematic, first I encountered https://issuetracker.google.com/154405007
It's easy to fix once you know what's happening. But now the problem I'm seeing is that the lifecycle events do not work in the same way when process death has occurred and backstack state is restored.
Normally, what I see is this, on the currentBackStackEntry: onCreate -> onStart -> onResume -> (we open the dialog) -> onPause ... and then onResume again when we come back from the dialog. Everything is cool here.
But after process death, this happens: onCreate -> onStart -> onResume We never hit onPause, and so we never "come back" to onResume after dismissing the dialog. We will never receiver the ON_RESUME event again to get the result.
I'm not sure if this is a bug, or just a consequence of how the state restoration is done on the backstack, but it pretty much means that thishttps://developer.android.com/guide/navigation/navigation-programmatic#additional_considerations , won't always work.
I attach a minimal repo to reproduce this, just click on the dialog button, and on receiving a result on the first fragment a toast will appear. Now, if you go to dialog once again, leave the app, and trigger process death and return to the app, it won't work.https://github.com/MrMPN/NavEntryLifecycleMinRepo
It's not a common case I think, but given the info on the documentation, it was unexpected to see it fail like this.