Fixed
Status Update
Comments
ap...@google.com <ap...@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
jb...@google.com <jb...@google.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
pe...@gmail.com <pe...@gmail.com> #4
This has been fixed internally and will be available in the Activity 1.2.0-alpha07 release.
jb...@google.com <jb...@google.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
ba...@gmail.com <ba...@gmail.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
ba...@gmail.com <ba...@gmail.com> #7
The new lint check can now detect the fragment library as a transitive dependency.
il...@google.com <il...@google.com> #8
This change seems to crash lint with NoSuchMethodError on Android Studio 4.1.0-beta04.
/home/circleci/code/mobile: Error: Unexpected failure during lint analysis (this is a bug in lint or one of the libraries it depends on)
Message: com.android.tools.lint.detector.api.Project.getCurrentVariant()Lcom/android/builder/model/Variant;
The crash seems to involve the detector androidx.activity.lint.ActivityResultFragmentVersionDetector.
You can try disabling it with something like this:
android {
lintOptions {
disable "InvalidFragmentVersionForActivityResult"
}
}
Stack: NoSuchMethodError:ActivityResultFragmentVersionDetector.checkDslPropertyAssignment(ActivityResultFragmentVersionDetector.kt:97)←Detector.checkDslPropertyAssignment(Detector.kt:418)←UastGradleVisitor.handleMethodCall(UastGradleVisitor.kt:190)←UastGradleVisitor.access$handleMethodCall(UastGradleVisitor.kt:34)←UastGradleVisitor$visitBuildScript$1.visitCallExpression(UastGradleVisitor.kt:40)←KotlinUFunctionCallExpression.accept(KotlinUFunctionCallExpression.kt:205)←ImplementationUtilsKt.acceptList(implementationUtils.kt:23)←UBlockExpression$DefaultImpls.accept(UBlockExpression.kt:21)
You can set environment variable LINT_PRINT_STACKTRACE=true to dump a full stacktrace to stdout. [LintError]
am...@gmail.com <am...@gmail.com> #9
Re #8 - please file a new bug with a sample project.
wa...@gmail.com <wa...@gmail.com> #10
My phone is hacked ..what should I do will I start to pay a fresh
ku...@gmail.com <ku...@gmail.com> #12
Comment has been deleted.
ow...@gmail.com <ow...@gmail.com> #13
So this update completely broke our ability to launch a file picker on button click as the function to invoke the file picker is in an entirely different class and by the time it's invoked is going to just kill the app. Not really sure what the actual logic was here.
Description
Much like was done for Fragments in b/162255449 , When using the ActivityResultRegistry with a
LifecycleOwner
, the latest possible time thatregister()
should be called is while the lifecycle is CREATED. This ensures that any registered callbacks are always registered in the same exact order.If there is an attempt to register after the
LifecycleOwner
is STARTED, we should throw.This is different from b/162255449 because fragments don't move their Lifecycle until after their lifecycle callbacks (another joy of the multiple fragment lifecycles). Once b/127528777 is fixed, this will go for fragments as well.