Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 1dc8469381c79612a3d8f7ec138866c732506950
Author: Jeremy Woods <jbwoods@google.com>
Date: Tue Jun 16 16:00:41 2020
Add ActivityResult lint to update Fragment dependency
When using the ActivityResult APIs, you should update the
fragment dependency to at least 1.3.0-alpha06 to ensure that
FragmentActivity is compatible.
This change adds a lint check to notify the user that their dependency
should be updated. This is only a warning, the user must fix the
dependency manually. The quick fix will be in a later CL.
Test: added ActivityResultFragmentVersionDetectorTest
Bug: 152554847
Change-Id: Ie59c1e2d428ce473f4e57939a69616b9052936c5
A activity/activity-lint/src/main/java/androidx/activity/lint/ActivityIssueRegistry.kt
A activity/activity-lint/src/main/java/androidx/activity/lint/ActivityResultFragmentVersionDetector.kt
A activity/activity-lint/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry
A activity/activity-lint/src/test/java/androidx/activity/lint/ActivityResultFragmentVersionDetectorTest.kt
A activity/activity-lint/src/test/java/androidx/activity/lint/ApiLintVersionsTest.kt
A activity/activity-lint/src/test/java/androidx/activity/lint/stubs/Stubs.kt
https://android-review.googlesource.com/1332135
Branch: androidx-master-dev
commit 1dc8469381c79612a3d8f7ec138866c732506950
Author: Jeremy Woods <jbwoods@google.com>
Date: Tue Jun 16 16:00:41 2020
Add ActivityResult lint to update Fragment dependency
When using the ActivityResult APIs, you should update the
fragment dependency to at least 1.3.0-alpha06 to ensure that
FragmentActivity is compatible.
This change adds a lint check to notify the user that their dependency
should be updated. This is only a warning, the user must fix the
dependency manually. The quick fix will be in a later CL.
Test: added ActivityResultFragmentVersionDetectorTest
Bug: 152554847
Change-Id: Ie59c1e2d428ce473f4e57939a69616b9052936c5
A activity/activity-lint/src/main/java/androidx/activity/lint/ActivityIssueRegistry.kt
A activity/activity-lint/src/main/java/androidx/activity/lint/ActivityResultFragmentVersionDetector.kt
A activity/activity-lint/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry
A activity/activity-lint/src/test/java/androidx/activity/lint/ActivityResultFragmentVersionDetectorTest.kt
A activity/activity-lint/src/test/java/androidx/activity/lint/ApiLintVersionsTest.kt
A activity/activity-lint/src/test/java/androidx/activity/lint/stubs/Stubs.kt
ch...@gmail.com <ch...@gmail.com> #3
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 88b606aa168d0131d366a790183453d52ed97d26
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jun 11 11:27:35 2020
Create activity-lint module
Created module for custom activity lint checks.
Test: ./gradlew bOS
Bug: 152554847
Change-Id: Ice5a9794fcc769a82f1831cc10337d9b82fbbb71
A activity/activity-lint/build.gradle
M buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
M settings.gradle
https://android-review.googlesource.com/1332134
Branch: androidx-master-dev
commit 88b606aa168d0131d366a790183453d52ed97d26
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jun 11 11:27:35 2020
Create activity-lint module
Created module for custom activity lint checks.
Test: ./gradlew bOS
Bug: 152554847
Change-Id: Ice5a9794fcc769a82f1831cc10337d9b82fbbb71
A activity/activity-lint/build.gradle
M buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
M settings.gradle
il...@google.com <il...@google.com> #4
This has been fixed internally and will be available in the Activity 1.2.0-alpha07 release.
ch...@gmail.com <ch...@gmail.com> #5
Project: platform/frameworks/support
Branch: androidx-master-dev
commit a17089efb14fcfb5e3938680f0d3b3103245092c
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Jul 01 17:59:41 2020
Publish the activity lint rule
We should actually publish the lint rule.
Also ignoring any project dependencies since they would be using the
most recent version of fragments anyway.
Test: ./gradlew bOS
Bug: 152554847
Change-Id: Ica57230490024b6aff32fcc3ec83d1c6f800f05f
M activity/activity-ktx/build.gradle
M activity/activity-lint/src/main/java/androidx/activity/lint/ActivityResultFragmentVersionDetector.kt
M activity/activity-lint/src/test/java/androidx/activity/lint/ActivityResultFragmentVersionDetectorTest.kt
M activity/activity/build.gradle
M activity/integration-tests/testapp/build.gradle
https://android-review.googlesource.com/1354243
Branch: androidx-master-dev
commit a17089efb14fcfb5e3938680f0d3b3103245092c
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Jul 01 17:59:41 2020
Publish the activity lint rule
We should actually publish the lint rule.
Also ignoring any project dependencies since they would be using the
most recent version of fragments anyway.
Test: ./gradlew bOS
Bug: 152554847
Change-Id: Ica57230490024b6aff32fcc3ec83d1c6f800f05f
M activity/activity-ktx/build.gradle
M activity/activity-lint/src/main/java/androidx/activity/lint/ActivityResultFragmentVersionDetector.kt
M activity/activity-lint/src/test/java/androidx/activity/lint/ActivityResultFragmentVersionDetectorTest.kt
M activity/activity/build.gradle
M activity/integration-tests/testapp/build.gradle
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-master-dev
commit be64fe99f1e6800d2df7bc1a0a5ca4ffc38a2f6a
Author: Jeremy Woods <jbwoods@google.com>
Date: Tue Jul 07 15:09:23 2020
Make ActivityResult lint look for transitive dependencies
Instead of only looking for explicit fragment dependencies, the
ActivityResultFragmentVersionDetector should also take into
consideration transitive dependencies. This ensures we can catch older
versions in apps that use libraries like appcompat and navigation.
Test: ./gradlew bOS all exisiting tests pass
Bug: 152554847
Change-Id: Id0a3b6c69a685cc46b71f1977a348189780b385a
M activity/activity-ktx/build.gradle
M activity/activity-lint/src/main/java/androidx/activity/lint/ActivityResultFragmentVersionDetector.kt
M activity/integration-tests/testapp/build.gradle
https://android-review.googlesource.com/1356393
Branch: androidx-master-dev
commit be64fe99f1e6800d2df7bc1a0a5ca4ffc38a2f6a
Author: Jeremy Woods <jbwoods@google.com>
Date: Tue Jul 07 15:09:23 2020
Make ActivityResult lint look for transitive dependencies
Instead of only looking for explicit fragment dependencies, the
ActivityResultFragmentVersionDetector should also take into
consideration transitive dependencies. This ensures we can catch older
versions in apps that use libraries like appcompat and navigation.
Test: ./gradlew bOS all exisiting tests pass
Bug: 152554847
Change-Id: Id0a3b6c69a685cc46b71f1977a348189780b385a
M activity/activity-ktx/build.gradle
M activity/activity-lint/src/main/java/androidx/activity/lint/ActivityResultFragmentVersionDetector.kt
M activity/integration-tests/testapp/build.gradle
il...@google.com <il...@google.com> #7
The new lint check can now detect the fragment library as a transitive dependency.
Description
I have two Activities, MainActivity and SecondActivity. Using Navigation architecture in MainActivity, which has two fragments, such as HomeFragment and DetailFragment, the Navigation diagram is declared as follows:
Generate ViewModels in the DetailFragment onCreate with "by navGraphViewModels".
There is a button in DetailFragment, clicking it will jump to SecondActivity, when "Do not keep background Activity" is enabled, pressing the back button in SecondActivity will trigger the program crash:
If I put the vm creation declaration in the onViewCreated lifecycle or later, there will be no crashes.
Does "by navGraphViewModels" necessarily require the user to use it this way?
In my opinion, as long as the NavBackStackEntry viewModelStore corresponding to "R.id.navigation_home_flow" is in the CREATED state, it's OK, not the DetailFragment.
The Navigation version I use is 2.4.0-alpha06.
Thanks in advance if you can address my issue.