From 03ed7ab9933d7e2e78523bd15e6d20d6eac70e97 Mon Sep 17 00:00:00 2001 From: Tor Norbye Date: Wed, 7 May 2025 09:58:28 -0700 Subject: [PATCH] Update issue documentation to latest versions --- docs/checks/Aligned16KB.md.html | 57 +- .../checks/AndroidGradlePluginVersion.md.html | 2 +- docs/checks/AppBundleLocaleChanges.md.html | 2 +- ...AppLinkUriRelativeFilterGroupError.md.html | 2 +- docs/checks/ArcAnimationSpecTypeIssue.md.html | 12 +- .../ArgInFormattedQuantityStringRes.md.html | 8 +- docs/checks/AutoboxingStateCreation.md.html | 16 +- .../AutoboxingStateValueProperty.md.html | 14 +- docs/checks/AvoidUsingNotNullOperator.md.html | 8 +- docs/checks/BadConfigurationProvider.md.html | 8 +- .../BadPeriodicWorkRequestEnqueue.md.html | 8 +- docs/checks/BindingReceiverParameter.md.html | 8 +- docs/checks/BindingReturnType.md.html | 8 +- docs/checks/BindsMustBeAbstract.md.html | 8 +- docs/checks/BindsTypeMismatch.md.html | 8 +- docs/checks/BindsWrongParameterCount.md.html | 8 +- .../CastingViewContextToActivity.md.html | 8 +- ...omposableDestinationInComposeScope.md.html | 8 +- .../ComposableLambdaParameterNaming.md.html | 14 +- .../ComposableLambdaParameterPosition.md.html | 14 +- docs/checks/ComposableNaming.md.html | 14 +- .../ComposableNavGraphInComposeScope.md.html | 8 +- docs/checks/CompositionLocalNaming.md.html | 14 +- .../ConfigurationScreenWidthHeight.md.html | 243 ++++++++ docs/checks/ConflictingOnColor.md.html | 10 +- ...ConstantContentStateKeyInItemsCall.md.html | 12 +- docs/checks/ContextCastToActivity.md.html | 12 +- docs/checks/CoreLibDesugaringV1.md.html | 119 ++++ ...CoroutineCreationDuringComposition.md.html | 14 +- .../CredentialManagerSignInWithGoogle.md.html | 10 +- .../DeepLinkInActivityDestination.md.html | 8 +- ...DefaultUncaughtExceptionDelegation.md.html | 111 ++++ docs/checks/DenyListedApi.md.html | 8 +- docs/checks/DenyListedBlockingApi.md.html | 8 +- docs/checks/DeprecatedCall.md.html | 8 +- docs/checks/DeprecatedSqlUsage.md.html | 8 +- .../DetachAndAttachSameFragment.md.html | 8 +- docs/checks/DevModeObsolete.md.html | 6 +- .../DialogFragmentCallbacksDetector.md.html | 8 +- docs/checks/DoNotCallProviders.md.html | 8 +- docs/checks/DoNotCallViewToString.md.html | 8 +- ...DoNotExposeEitherNetInRepositories.md.html | 8 +- docs/checks/DoNotMock.md.html | 12 +- docs/checks/DoNotMockAnything.md.html | 12 +- docs/checks/DoNotMockAutoValue.md.html | 12 +- docs/checks/DoNotMockDataClass.md.html | 12 +- docs/checks/DoNotMockObjectClass.md.html | 12 +- docs/checks/DoNotMockPlatformTypes.md.html | 12 +- docs/checks/DoNotMockRecordClass.md.html | 12 +- docs/checks/DoNotMockSealedClass.md.html | 12 +- docs/checks/EagerGradleConfiguration.md.html | 8 +- docs/checks/EmptyNavDeepLink.md.html | 8 +- docs/checks/ErrorProneDoNotMockUsage.md.html | 8 +- docs/checks/ExceptionMessage.md.html | 10 +- .../ExperimentalAnnotationRetention.md.html | 12 +- docs/checks/ExpiredTargetSdkVersion.md.html | 39 +- docs/checks/ExpiringTargetSdkVersion.md.html | 2 +- ...eldSiteTargetOnQualifierAnnotation.md.html | 10 +- docs/checks/FilePropertyDetector.md.html | 8 +- .../FlowOperatorInvokedInComposition.md.html | 14 +- docs/checks/FragmentAddMenuProvider.md.html | 8 +- .../FragmentBackPressedCallback.md.html | 8 +- .../FragmentConstructorInjection.md.html | 8 +- docs/checks/FragmentFieldInjection.md.html | 8 +- .../FragmentGradleConfiguration-2.md.html | 8 +- .../FragmentGradleConfiguration.md.html | 8 +- docs/checks/FragmentLiveDataObserve.md.html | 8 +- docs/checks/FragmentTagUsage.md.html | 8 +- ...entlyChangedStateReadInComposition.md.html | 225 +------- docs/checks/FrequentlyChangingValue.md.html | 508 +++++++++++++++++ docs/checks/FullyQualifiedResource.md.html | 8 +- docs/checks/GestureBackNavigation.md.html | 42 +- docs/checks/GradleCompatible.md.html | 2 +- docs/checks/GradleDependency.md.html | 4 +- docs/checks/GradleDeprecated.md.html | 2 +- docs/checks/GradleDynamicVersion.md.html | 2 +- docs/checks/GradleLikelyBug.md.html | 145 +++++ docs/checks/GradleProjectIsolation.md.html | 8 +- docs/checks/GuavaChecksUsed.md.html | 8 +- .../GuavaPreconditionsUsedInKotlin.md.html | 8 +- .../IdleBatteryChargingConstraints.md.html | 8 +- docs/checks/InclusiveNaming.md.html | 12 +- .../checks/IncorrectChainMarginsUsage.md.html | 8 +- docs/checks/IncorrectMatchParentUsage.md.html | 8 +- .../IncorrectReferencesDeclaration.md.html | 8 +- docs/checks/InflationInItemDecoration.md.html | 8 +- docs/checks/InjectInJava.md.html | 8 +- docs/checks/InstantApps.md.html | 176 +----- docs/checks/IntentReset.md.html | 5 +- docs/checks/InternalAgpApiUsage.md.html | 8 +- docs/checks/InternalGradleApiUsage.md.html | 8 +- docs/checks/InvalidColorHexValue.md.html | 10 +- ...idFragmentVersionForActivityResult.md.html | 10 +- .../InvalidLanguageTagDelimiter.md.html | 12 +- ...InvalidPeriodicWorkRequestInterval.md.html | 8 +- docs/checks/InvalidSetHasFixedSize.md.html | 8 +- docs/checks/InvalidSingleLineComment.md.html | 2 +- docs/checks/InvalidUseOfOnBackPressed.md.html | 10 +- docs/checks/JavaOnlyDetector.md.html | 8 +- .../JvmStaticProvidesInObjectDetector.md.html | 10 +- docs/checks/KotlinPairNotCreated.md.html | 8 +- docs/checks/KtxExtensionAvailable.md.html | 2 +- docs/checks/LaunchDuringComposition.md.html | 10 +- ...LifecycleCurrentStateInComposition.md.html | 249 ++++++++ .../LocalContextConfigurationRead.md.html | 194 +++++++ docs/checks/LocalContextResourcesRead.md.html | 193 +++++++ docs/checks/MainScopeUsage.md.html | 8 +- docs/checks/MemberExtensionConflict.md.html | 175 ++++++ docs/checks/MinSdkTooLow.md.html | 67 ++- docs/checks/MissingColorAlphaChannel.md.html | 10 +- docs/checks/MissingKeepAnnotation-2.md.html | 36 +- docs/checks/MissingKeepAnnotation-3.md.html | 32 +- docs/checks/MissingKeepAnnotation.md.html | 36 +- .../checks/MissingResourceImportAlias.md.html | 8 +- .../checks/MissingResourcesProperties.md.html | 2 +- .../MissingSerializableAnnotation-2.md.html | 36 +- .../MissingSerializableAnnotation-3.md.html | 32 +- .../MissingSerializableAnnotation.md.html | 36 +- .../ModifierFactoryExtensionFunction.md.html | 14 +- docs/checks/ModifierFactoryReturnType.md.html | 14 +- ...odifierFactoryUnreferencedReceiver.md.html | 14 +- .../ModifierNodeInspectableProperties.md.html | 16 +- docs/checks/ModifierParameter.md.html | 14 +- docs/checks/ModuleCompanionObjects.md.html | 10 +- ...eCompanionObjectsNotInModuleParent.md.html | 10 +- ...MoshiUsageAdaptedByRequiresAdapter.md.html | 8 +- .../MoshiUsageAdaptedByRequiresKeep.md.html | 8 +- docs/checks/MoshiUsageArray.md.html | 8 +- docs/checks/MoshiUsageBlankGenerator.md.html | 8 +- docs/checks/MoshiUsageBlankJsonName.md.html | 8 +- docs/checks/MoshiUsageBlankTypeLabel.md.html | 8 +- docs/checks/MoshiUsageClassVisibility.md.html | 8 +- .../MoshiUsageDoubleClassAnnotation.md.html | 8 +- docs/checks/MoshiUsageDoubleTypeLabel.md.html | 8 +- .../MoshiUsageDuplicateJsonName.md.html | 8 +- .../MoshiUsageEnumAnnotatedUnknown.md.html | 8 +- docs/checks/MoshiUsageEnumCasing.md.html | 8 +- .../MoshiUsageEnumJsonClassGenerated.md.html | 8 +- .../MoshiUsageEnumMissingJsonClass.md.html | 8 +- .../MoshiUsageEnumMissingUnknown.md.html | 8 +- ...MoshiUsageEnumPropertyCouldBeMoshi.md.html | 8 +- ...shiUsageEnumPropertyDefaultUnknown.md.html | 8 +- ...hiUsageGenerateAdapterShouldBeTrue.md.html | 8 +- .../MoshiUsageGenericSealedSubtype.md.html | 8 +- .../MoshiUsageInappropriateTypeLabel.md.html | 8 +- docs/checks/MoshiUsageMissingPrimary.md.html | 8 +- .../checks/MoshiUsageMissingTypeLabel.md.html | 8 +- .../MoshiUsageMutableCollections.md.html | 8 +- .../MoshiUsageNonMoshiClassCollection.md.html | 10 +- .../MoshiUsageNonMoshiClassExternal.md.html | 8 +- .../MoshiUsageNonMoshiClassInternal.md.html | 10 +- .../checks/MoshiUsageNonMoshiClassMap.md.html | 10 +- .../MoshiUsageNonMoshiClassPlatform.md.html | 8 +- docs/checks/MoshiUsageObject.md.html | 8 +- docs/checks/MoshiUsageParamNeedsInit.md.html | 8 +- .../MoshiUsagePrivateConstructor.md.html | 8 +- ...shiUsagePrivateConstructorProperty.md.html | 8 +- .../MoshiUsageQualifierRetention.md.html | 8 +- docs/checks/MoshiUsageQualifierTarget.md.html | 8 +- .../MoshiUsageRedundantJsonName.md.html | 8 +- .../MoshiUsageRedundantSiteTarget.md.html | 8 +- .../MoshiUsageSealedMustBeSealed.md.html | 8 +- docs/checks/MoshiUsageSerializedName.md.html | 8 +- docs/checks/MoshiUsageSnakeCase.md.html | 8 +- .../MoshiUsageTransientNeedsInit.md.html | 8 +- docs/checks/MoshiUsageUnsupportedType.md.html | 8 +- docs/checks/MoshiUsageUseData.md.html | 8 +- docs/checks/MoshiUsageVarProperty.md.html | 8 +- .../MultipleAwaitPointerEventScopes.md.html | 14 +- docs/checks/MustBeInModule.md.html | 8 +- docs/checks/MustUseNamedParams.md.html | 8 +- .../MutableCollectionMutableState.md.html | 14 +- docs/checks/NewerVersionAvailable.md.html | 7 +- docs/checks/NioDesugaring.md.html | 2 +- docs/checks/NoCollectCallFound.md.html | 10 +- docs/checks/NullSafeMutableLiveData-2.md.html | 2 +- docs/checks/NullSafeMutableLiveData.md.html | 14 +- docs/checks/NullableConcurrentHashMap.md.html | 180 ++++++ docs/checks/OldTargetApi.md.html | 78 +-- docs/checks/OpaqueUnitKey.md.html | 14 +- docs/checks/ParcelizeFunctionProperty.md.html | 8 +- docs/checks/PlaySdkIndexDeprecated.md.html | 2 +- docs/checks/PrivacySandboxBlockedCall.md.html | 2 +- .../ProduceStateDoesNotAssignValue.md.html | 14 +- ...oLayoutEdgeContentLayoutResponsive.md.html | 14 +- docs/checks/ProtoLayoutMinSchema.md.html | 14 +- ...ProtoLayoutPrimaryLayoutResponsive.md.html | 14 +- docs/checks/ProvidesMustNotBeAbstract.md.html | 8 +- docs/checks/RawDispatchersUse.md.html | 8 +- docs/checks/RedactedInJavaUsage.md.html | 8 +- docs/checks/RedundantBinds.md.html | 8 +- docs/checks/RememberInComposition.md.html | 535 ++++++++++++++++++ docs/checks/RememberReturnType.md.html | 14 +- .../RememberSaveableSaverParameter.md.html | 10 +- .../RemoveWorkManagerInitializer.md.html | 8 +- .../RepeatOnLifecycleWrongUsage-2.md.html | 2 +- .../RepeatOnLifecycleWrongUsage.md.html | 10 +- docs/checks/ReportShortcutUsage.md.html | 2 +- docs/checks/RequiresWindowSdk.md.html | 147 +++++ docs/checks/RestrictCallsTo.md.html | 8 +- docs/checks/RetrofitUsage.md.html | 8 +- .../ReturnFromAwaitPointerEventScope.md.html | 14 +- docs/checks/SerializableUsage.md.html | 8 +- docs/checks/SimilarGradleDependency.md.html | 2 +- docs/checks/SpanMarkPointMissingMask.md.html | 8 +- .../SpecifyForegroundServiceType.md.html | 8 +- .../checks/SpecifyJobSchedulerIdRange.md.html | 8 +- .../StateFlowValueCalledInComposition.md.html | 14 +- docs/checks/SubscribeOnMain.md.html | 8 +- ...iciousCompositionLocalModifierRead.md.html | 14 +- docs/checks/SuspiciousModifierThen.md.html | 14 +- .../TestLifecycleOwnerInCoroutine.md.html | 8 +- .../TestManifestGradleConfiguration.md.html | 10 +- docs/checks/TestParameterSiteTarget.md.html | 172 ++++++ docs/checks/TrimLambda.md.html | 6 +- docs/checks/UElementAsPsi.md.html | 264 +++++++++ docs/checks/UnnecessaryArrayInit.md.html | 6 +- .../UnnecessaryComposedModifier.md.html | 14 +- docs/checks/UnrememberedAnimatable.md.html | 348 +----------- .../UnrememberedGetBackStackEntry.md.html | 8 +- ...rememberedMutableInteractionSource.md.html | 259 +-------- docs/checks/UnrememberedMutableState.md.html | 14 +- .../checks/UnsafeLifecycleWhenUsage-2.md.html | 2 +- docs/checks/UnsafeLifecycleWhenUsage.md.html | 10 +- docs/checks/UnsafeOptInUsageError.md.html | 12 +- docs/checks/UnsafeOptInUsageWarning.md.html | 12 +- .../UnsafeRepeatOnLifecycleDetector.md.html | 8 +- .../UnusedBoxWithConstraintsScope.md.html | 12 +- ...dContentLambdaTargetStateParameter.md.html | 10 +- ...nusedCrossfadeTargetStateParameter.md.html | 10 +- ...dMaterial3ScaffoldPaddingParameter.md.html | 10 +- ...edMaterialScaffoldPaddingParameter.md.html | 10 +- docs/checks/UnusedResources.md.html | 23 + ...dSharedTransitionModifierParameter.md.html | 12 +- ...nusedTargetStateInContentKeyLambda.md.html | 12 +- ...usedTransitionTargetStateParameter.md.html | 10 +- docs/checks/UseGetLayoutInflater.md.html | 8 +- docs/checks/UseKtx.md.html | 2 +- .../UseOfNonLambdaOffsetOverload.md.html | 12 +- docs/checks/UseRequireInsteadOfGet.md.html | 8 +- docs/checks/UseRequiresApi.md.html | 2 +- docs/checks/UseRxSetProgress2.md.html | 8 +- docs/checks/UseSdkSuppress.md.html | 7 +- ...UsingMaterialAndMaterial3Libraries.md.html | 10 +- .../ViewModelConstructorInComposable.md.html | 8 +- .../WatchFaceFormatDeclaresHasNoCode.md.html | 84 +++ .../WatchFaceFormatMissingVersion.md.html | 103 ++++ docs/checks/WithPluginClasspathUsage.md.html | 10 +- .../WithTypeWithoutConfigureEach.md.html | 8 +- docs/checks/WorkerHasAPublicModifier.md.html | 8 +- docs/checks/WrongGradleMethod.md.html | 167 ++++++ docs/checks/WrongNavigateRouteType.md.html | 8 +- docs/checks/WrongRequiresOptIn.md.html | 12 +- docs/checks/WrongResourceImportAlias.md.html | 8 +- docs/checks/WrongSdkInt.md.html | 2 +- .../WrongStartDestinationType-2.md.html | 166 ++++-- .../WrongStartDestinationType-3.md.html | 158 ++++-- docs/checks/WrongStartDestinationType.md.html | 166 ++++-- ...androidx_activity_activity-compose.md.html | 25 +- .../checks/androidx_activity_activity.md.html | 23 +- ...annotation_annotation-experimental.md.html | 16 +- ...ompose_animation_animation-android.md.html | 25 +- ...e_animation_animation-core-android.md.html | 25 +- ...pose_foundation_foundation-android.md.html | 37 +- ...ompose_material3_material3-android.md.html | 21 +- ..._compose_material_material-android.md.html | 23 +- ...dx_compose_runtime_runtime-android.md.html | 99 ++-- ...e_runtime_runtime-saveable-android.md.html | 23 +- .../androidx_compose_ui_ui-android.md.html | 50 +- ...idx_compose_ui_ui-graphics-android.md.html | 23 +- ...droidx_compose_ui_ui-test-manifest.md.html | 23 +- ...ndroidx_compose_ui_ui-text-android.md.html | 25 +- ...intlayout_constraintlayout-compose.md.html | 23 +- ...fragment_fragment-testing-manifest.md.html | 11 +- ...androidx_fragment_fragment-testing.md.html | 11 +- .../checks/androidx_fragment_fragment.md.html | 11 +- ..._lifecycle_lifecycle-livedata-core.md.html | 58 +- ...ifecycle_lifecycle-runtime-android.md.html | 17 +- ..._lifecycle-runtime-compose-android.md.html | 79 +++ ...ifecycle_lifecycle-runtime-testing.md.html | 17 +- ...ifecycle-viewmodel-compose-android.md.html | 17 +- docs/checks/androidx_lint_lint-gradle.md.html | 13 +- ...roidx_navigation_navigation-common.md.html | 29 +- ...oidx_navigation_navigation-compose.md.html | 21 +- ...oidx_navigation_navigation-runtime.md.html | 23 +- ...androidx_recyclerview_recyclerview.md.html | 15 +- ...roidx_wear_protolayout_protolayout.md.html | 22 +- .../checks/androidx_work_work-runtime.md.html | 11 +- docs/checks/categories.md.html | 55 +- .../com_google_dagger_dagger-lint.md.html | 15 +- .../com_slack_lint_slack-lint-checks.md.html | 14 +- docs/checks/index.md.html | 69 ++- docs/checks/libraries.md.html | 15 +- docs/checks/severity.md.html | 57 +- docs/checks/vendors.md.html | 85 +-- docs/checks/year.md.html | 77 ++- 296 files changed, 5920 insertions(+), 2829 deletions(-) create mode 100644 docs/checks/ConfigurationScreenWidthHeight.md.html create mode 100644 docs/checks/CoreLibDesugaringV1.md.html create mode 100644 docs/checks/DefaultUncaughtExceptionDelegation.md.html create mode 100644 docs/checks/FrequentlyChangingValue.md.html create mode 100644 docs/checks/GradleLikelyBug.md.html create mode 100644 docs/checks/LifecycleCurrentStateInComposition.md.html create mode 100644 docs/checks/LocalContextConfigurationRead.md.html create mode 100644 docs/checks/LocalContextResourcesRead.md.html create mode 100644 docs/checks/MemberExtensionConflict.md.html create mode 100644 docs/checks/NullableConcurrentHashMap.md.html create mode 100644 docs/checks/RememberInComposition.md.html create mode 100644 docs/checks/RequiresWindowSdk.md.html create mode 100644 docs/checks/TestParameterSiteTarget.md.html create mode 100644 docs/checks/UElementAsPsi.md.html create mode 100644 docs/checks/WatchFaceFormatDeclaresHasNoCode.md.html create mode 100644 docs/checks/WatchFaceFormatMissingVersion.md.html create mode 100644 docs/checks/WrongGradleMethod.md.html create mode 100644 docs/checks/androidx_lifecycle_lifecycle-runtime-compose-android.md.html diff --git a/docs/checks/Aligned16KB.md.html b/docs/checks/Aligned16KB.md.html index 647c8d9f..cfc35294 100644 --- a/docs/checks/Aligned16KB.md.html +++ b/docs/checks/Aligned16KB.md.html @@ -18,45 +18,42 @@ : Android Open Source Project Feedback : https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.10.0 (May 2025) Affects : Gradle build files and TOML files Editing -: This check can *not* run live in the IDE editor +: This check runs on the fly in the IDE editor See : https://developer.android.com/guide/practices/page-sizes Implementation : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/PageAlignmentDetector.kt) Tests : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/PageAlignmentDetectorTest.kt) -Copyright Year -: 2025 - -Historically, Android has aligned memory using 4 KB memory page sizes, -which optimized system memory performance for the average amount of -total memory that Android devices have typically had. - -To support devices that only support 16 KB aligned libraries in the -future, the Google Play Store will soon require all apps to be compiled -with 16 KB aligned libraries. - -An app compiled with 4 KB aligned libraries will not work correctly on -these devices. To ensure compatibility with these devices and to -future-proof your app, the Play Store will require native libraries to -be aligned to 16 KB boundaries. - -If your app uses any NDK libraries, either directly or indirectly -through an SDK, you'll need to rebuild your app to meet this new -requirement. This means ensuring that all native libraries within your -app, including those from any dependencies, are built with 16 KB page -alignment. - -This lint check helps identify potential issues by inspecting all -transitive libraries your app depends on. If any nested native libraries -are found to be aligned only to 4 KB, you'll need to take action. - -If lint flags a library, try updating to a newer version that supports -16 KB alignment. If no updated version is available, reach out to the -library vendor for assistance. + +Android has traditionally used 4 KB memory page sizes. However, to +support future devices that only work with 16 KB aligned libraries apps +containing native libraries need to be built with 16 KB alignment. + +Apps with 4 KB aligned native libraries may not work correctly on +devices requiring 16 KB alignment. To ensure compatibility and +future-proof your app, it is strongly recommended that your native +libraries are aligned to 16 KB boundaries. + +If your app uses any NDK libraries, directly or indirectly through an +SDK, you should rebuild your app to meet this recommendation. Make sure +all native libraries within your application, including those from +dependencies, are built with 16 KB page alignment. + +This lint check looks at all native libraries that your app depends on. +If any are found to be aligned to 4 KB instead of 16 KB, you will need +to address this. + +When a library is flagged, first try to update to a newer version that +supports 16 KB alignment. If an updated version is not available, +contact the library vendor to ask about their plans for 16 KB support +and request a compatible version. Updating your libraries proactively +will help ensure your app works properly on a wider range of devices. (##) Example diff --git a/docs/checks/AndroidGradlePluginVersion.md.html b/docs/checks/AndroidGradlePluginVersion.md.html index 5ca97e24..d1e2c93b 100644 --- a/docs/checks/AndroidGradlePluginVersion.md.html +++ b/docs/checks/AndroidGradlePluginVersion.md.html @@ -21,7 +21,7 @@ Since : Initial Affects -: Gradle build files and TOML files +: Gradle build files, TOML files and property files Editing : This check runs on the fly in the IDE editor Implementation diff --git a/docs/checks/AppBundleLocaleChanges.md.html b/docs/checks/AppBundleLocaleChanges.md.html index eea9ef8c..57f3728a 100644 --- a/docs/checks/AppBundleLocaleChanges.md.html +++ b/docs/checks/AppBundleLocaleChanges.md.html @@ -23,7 +23,7 @@ Affects : Gradle build files and Kotlin and Java files Editing -: This check can *not* run live in the IDE editor +: This check runs on the fly in the IDE editor See : https://developer.android.com/guide/app-bundle/configure-base#handling_language_changes Implementation diff --git a/docs/checks/AppLinkUriRelativeFilterGroupError.md.html b/docs/checks/AppLinkUriRelativeFilterGroupError.md.html index f50d401f..8f988d95 100644 --- a/docs/checks/AppLinkUriRelativeFilterGroupError.md.html +++ b/docs/checks/AppLinkUriRelativeFilterGroupError.md.html @@ -19,7 +19,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=192708 Since -: 8.9.0-alpha05 (December 2024) +: 8.9.0 (March 2025) Affects : Manifest files Editing diff --git a/docs/checks/ArcAnimationSpecTypeIssue.md.html b/docs/checks/ArcAnimationSpecTypeIssue.md.html index e6123c13..a5179501 100644 --- a/docs/checks/ArcAnimationSpecTypeIssue.md.html +++ b/docs/checks/ArcAnimationSpecTypeIssue.md.html @@ -2,7 +2,7 @@ (#) ArcAnimationSpec is designed for 2D values. Particularly, for positional values such as Offset. !!! Tip: ArcAnimationSpec is designed for 2D values. Particularly, for positional values such as Offset. - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `ArcAnimationSpecTypeIssue` @@ -100,17 +100,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.animation:animation-core-android:1.8.0-alpha07") +implementation("androidx.compose.animation:animation-core-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.animation:animation-core-android:1.8.0-alpha07' +implementation 'androidx.compose.animation:animation-core-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.animation.core.android) # libs.versions.toml [versions] -animation-core-android = "1.8.0-alpha07" +animation-core-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -122,11 +122,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.animation:animation-core-lint:1.8.0-alpha07`. +You can also use `androidx.compose.animation:animation-core-lint:1.9.0-alpha01`. [Additional details about androidx.compose.animation:animation-core-android](androidx_compose_animation_animation-core-android.md.html). diff --git a/docs/checks/ArgInFormattedQuantityStringRes.md.html b/docs/checks/ArgInFormattedQuantityStringRes.md.html index 15d88e31..ccb50c3d 100644 --- a/docs/checks/ArgInFormattedQuantityStringRes.md.html +++ b/docs/checks/ArgInFormattedQuantityStringRes.md.html @@ -92,17 +92,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -114,7 +114,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/AutoboxingStateCreation.md.html b/docs/checks/AutoboxingStateCreation.md.html index 97d7151f..2095efc3 100644 --- a/docs/checks/AutoboxingStateCreation.md.html +++ b/docs/checks/AutoboxingStateCreation.md.html @@ -2,7 +2,7 @@ (#) `State` will autobox values assigned to this state. Use a specialized state type instead. !!! Tip: `State` will autobox values assigned to this state. Use a specialized state type instead. - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `AutoboxingStateCreation` @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -95,17 +95,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -117,11 +117,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/AutoboxingStateValueProperty.md.html b/docs/checks/AutoboxingStateValueProperty.md.html index b1b512f5..530d2ce0 100644 --- a/docs/checks/AutoboxingStateValueProperty.md.html +++ b/docs/checks/AutoboxingStateValueProperty.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -90,17 +90,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -112,11 +112,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/AvoidUsingNotNullOperator.md.html b/docs/checks/AvoidUsingNotNullOperator.md.html index bfb7c934..ab6d0af1 100644 --- a/docs/checks/AvoidUsingNotNullOperator.md.html +++ b/docs/checks/AvoidUsingNotNullOperator.md.html @@ -86,17 +86,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -108,7 +108,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/BadConfigurationProvider.md.html b/docs/checks/BadConfigurationProvider.md.html index 3582cc53..0cce2370 100644 --- a/docs/checks/BadConfigurationProvider.md.html +++ b/docs/checks/BadConfigurationProvider.md.html @@ -97,17 +97,17 @@ ``` // build.gradle.kts -implementation("androidx.work:work-runtime:2.10.0") +implementation("androidx.work:work-runtime:2.10.1") // build.gradle -implementation 'androidx.work:work-runtime:2.10.0' +implementation 'androidx.work:work-runtime:2.10.1' // build.gradle.kts with version catalogs: implementation(libs.work.runtime) # libs.versions.toml [versions] -work-runtime = "2.10.0" +work-runtime = "2.10.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -119,7 +119,7 @@ } ``` -2.10.0 is the version this documentation was generated from; +2.10.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.work:work-runtime](androidx_work_work-runtime.md.html). diff --git a/docs/checks/BadPeriodicWorkRequestEnqueue.md.html b/docs/checks/BadPeriodicWorkRequestEnqueue.md.html index 223438cc..6d8740b0 100644 --- a/docs/checks/BadPeriodicWorkRequestEnqueue.md.html +++ b/docs/checks/BadPeriodicWorkRequestEnqueue.md.html @@ -53,17 +53,17 @@ ``` // build.gradle.kts -implementation("androidx.work:work-runtime:2.10.0") +implementation("androidx.work:work-runtime:2.10.1") // build.gradle -implementation 'androidx.work:work-runtime:2.10.0' +implementation 'androidx.work:work-runtime:2.10.1' // build.gradle.kts with version catalogs: implementation(libs.work.runtime) # libs.versions.toml [versions] -work-runtime = "2.10.0" +work-runtime = "2.10.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -75,7 +75,7 @@ } ``` -2.10.0 is the version this documentation was generated from; +2.10.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.work:work-runtime](androidx_work_work-runtime.md.html). diff --git a/docs/checks/BindingReceiverParameter.md.html b/docs/checks/BindingReceiverParameter.md.html index 41f68665..3afe4d93 100644 --- a/docs/checks/BindingReceiverParameter.md.html +++ b/docs/checks/BindingReceiverParameter.md.html @@ -145,17 +145,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -167,7 +167,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/BindingReturnType.md.html b/docs/checks/BindingReturnType.md.html index 84b20a2b..46b6b524 100644 --- a/docs/checks/BindingReturnType.md.html +++ b/docs/checks/BindingReturnType.md.html @@ -102,17 +102,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -124,7 +124,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/BindsMustBeAbstract.md.html b/docs/checks/BindsMustBeAbstract.md.html index de3754b6..7570d5df 100644 --- a/docs/checks/BindsMustBeAbstract.md.html +++ b/docs/checks/BindsMustBeAbstract.md.html @@ -101,17 +101,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -123,7 +123,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/BindsTypeMismatch.md.html b/docs/checks/BindsTypeMismatch.md.html index 8cf6b799..99f27e88 100644 --- a/docs/checks/BindsTypeMismatch.md.html +++ b/docs/checks/BindsTypeMismatch.md.html @@ -110,17 +110,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -132,7 +132,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/BindsWrongParameterCount.md.html b/docs/checks/BindsWrongParameterCount.md.html index fd78ad2a..37973a76 100644 --- a/docs/checks/BindsWrongParameterCount.md.html +++ b/docs/checks/BindsWrongParameterCount.md.html @@ -91,17 +91,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -113,7 +113,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/CastingViewContextToActivity.md.html b/docs/checks/CastingViewContextToActivity.md.html index 73abed15..3d4c6bee 100644 --- a/docs/checks/CastingViewContextToActivity.md.html +++ b/docs/checks/CastingViewContextToActivity.md.html @@ -55,17 +55,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -77,7 +77,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/ComposableDestinationInComposeScope.md.html b/docs/checks/ComposableDestinationInComposeScope.md.html index 49654d32..66433fc6 100644 --- a/docs/checks/ComposableDestinationInComposeScope.md.html +++ b/docs/checks/ComposableDestinationInComposeScope.md.html @@ -89,17 +89,17 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-compose:2.9.0-alpha04") +implementation("androidx.navigation:navigation-compose:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-compose:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-compose:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.navigation.compose) # libs.versions.toml [versions] -navigation-compose = "2.9.0-alpha04" +navigation-compose = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -111,7 +111,7 @@ } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html). diff --git a/docs/checks/ComposableLambdaParameterNaming.md.html b/docs/checks/ComposableLambdaParameterNaming.md.html index f6c44706..7c9466f2 100644 --- a/docs/checks/ComposableLambdaParameterNaming.md.html +++ b/docs/checks/ComposableLambdaParameterNaming.md.html @@ -23,9 +23,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -88,17 +88,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -110,11 +110,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/ComposableLambdaParameterPosition.md.html b/docs/checks/ComposableLambdaParameterPosition.md.html index b49746ca..67dda703 100644 --- a/docs/checks/ComposableLambdaParameterPosition.md.html +++ b/docs/checks/ComposableLambdaParameterPosition.md.html @@ -23,9 +23,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -87,17 +87,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -109,11 +109,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/ComposableNaming.md.html b/docs/checks/ComposableNaming.md.html index e53d7a5f..be81428a 100644 --- a/docs/checks/ComposableNaming.md.html +++ b/docs/checks/ComposableNaming.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -87,17 +87,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -109,11 +109,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/ComposableNavGraphInComposeScope.md.html b/docs/checks/ComposableNavGraphInComposeScope.md.html index 75404d87..4e405014 100644 --- a/docs/checks/ComposableNavGraphInComposeScope.md.html +++ b/docs/checks/ComposableNavGraphInComposeScope.md.html @@ -89,17 +89,17 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-compose:2.9.0-alpha04") +implementation("androidx.navigation:navigation-compose:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-compose:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-compose:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.navigation.compose) # libs.versions.toml [versions] -navigation-compose = "2.9.0-alpha04" +navigation-compose = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -111,7 +111,7 @@ } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html). diff --git a/docs/checks/CompositionLocalNaming.md.html b/docs/checks/CompositionLocalNaming.md.html index fa908813..d2b3eb17 100644 --- a/docs/checks/CompositionLocalNaming.md.html +++ b/docs/checks/CompositionLocalNaming.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -104,17 +104,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -126,11 +126,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/ConfigurationScreenWidthHeight.md.html b/docs/checks/ConfigurationScreenWidthHeight.md.html new file mode 100644 index 00000000..d7a81a0c --- /dev/null +++ b/docs/checks/ConfigurationScreenWidthHeight.md.html @@ -0,0 +1,243 @@ + +(#) Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize + +!!! WARNING: Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize + This is a warning. + +Id +: `ConfigurationScreenWidthHeight` +Summary +: Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize +Severity +: Warning +Category +: Correctness +Platform +: Any +Vendor +: Jetpack Compose +Identifier +: androidx.compose.ui +Feedback +: https://issuetracker.google.com/issues/new?component=612128 +Min +: Lint 8.7+ +Compiled +: Lint 8.7+ +Artifact +: [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) +Since +: 1.8.0 +Affects +: Kotlin and Java files and test sources +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/ConfigurationScreenWidthHeightDetector.kt) +Tests +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/ConfigurationScreenWidthHeightDetectorTest.kt) +Copyright Year +: 2025 + +Configuration.screenWidthDp and Configuration.screenHeightDp have +different insets behaviour depending on target SDK version, and are +rounded to the nearest Dp. This means that using these values in +composition to size a layout can result in issues, as these values do +not accurately represent the actual available window size. Instead it is +recommended to use WindowInfo.containerSize which accurately represents +the window size. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/test/test.kt:11:Warning: Using Configuration.screenWidthDp instead +of LocalWindowInfo.current.containerSize +[ConfigurationScreenWidthHeight] + LocalConfiguration.current.screenWidthDp + ---------------------------------------- +src/test/test.kt:12:Warning: Using Configuration.screenHeightDp instead +of LocalWindowInfo.current.containerSize +[ConfigurationScreenWidthHeight] + LocalConfiguration.current.screenHeightDp + ----------------------------------------- +src/test/test.kt:15:Warning: Using Configuration.screenWidthDp instead +of LocalWindowInfo.current.containerSize +[ConfigurationScreenWidthHeight] + val width = configuration.screenWidthDp.dp + --------------------------- +src/test/test.kt:16:Warning: Using Configuration.screenHeightDp instead +of LocalWindowInfo.current.containerSize +[ConfigurationScreenWidthHeight] + val height = configuration.screenHeightDp.dp + ---------------------------- +src/test/test.kt:21:Warning: Using Configuration.screenWidthDp instead +of LocalWindowInfo.current.containerSize +[ConfigurationScreenWidthHeight] + configuration.screenWidthDp + --------------------------- +src/test/test.kt:22:Warning: Using Configuration.screenHeightDp instead +of LocalWindowInfo.current.containerSize +[ConfigurationScreenWidthHeight] + configuration.screenHeightDp + ---------------------------- +src/test/test.kt:28:Warning: Using Configuration.screenWidthDp instead +of LocalWindowInfo.current.containerSize +[ConfigurationScreenWidthHeight] + val width = configuration.screenWidthDp.dp + --------------------------- +src/test/test.kt:29:Warning: Using Configuration.screenHeightDp instead +of LocalWindowInfo.current.containerSize +[ConfigurationScreenWidthHeight] + val height = configuration.screenHeightDp.dp + ---------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`src/test/test.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +package test + +import android.content.res.Configuration +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalConfiguration +import androidx.compose.ui.unit.dp + +@Composable +fun Test() { + LocalConfiguration.current.screenWidthDp + LocalConfiguration.current.screenHeightDp + + val configuration = LocalConfiguration.current + val width = configuration.screenWidthDp.dp + val height = configuration.screenHeightDp.dp + + val someLambda = { + // Capture configuration value from composition, and use outside of + // composition + configuration.screenWidthDp + configuration.screenHeightDp + } +} + +@Composable +fun Test2(configuration: Configuration) { + val width = configuration.screenWidthDp.dp + val height = configuration.screenHeightDp.dp +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/ConfigurationScreenWidthHeightDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +The above example was automatically extracted from the first unit test +found for this lint check, `ConfigurationScreenWidthHeightDetector.error`. +To report a problem with this extracted sample, visit +https://issuetracker.google.com/issues/new?component=612128. + +(##) Including + +!!! + This is not a built-in check. To include it, add the below dependency + to your project. + +``` +// build.gradle.kts +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") + +// build.gradle +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' + +// build.gradle.kts with version catalogs: +implementation(libs.ui.android) + +# libs.versions.toml +[versions] +ui-android = "1.9.0-alpha01" +[libraries] +# For clarity and text wrapping purposes the following declaration is +# shown split up across lines, but in TOML it needs to be on a single +# line (see https://github.com/toml-lang/toml/issues/516) so adjust +# when pasting into libs.versions.toml: +ui-android = { + module = "androidx.compose.ui:ui-android", + version.ref = "ui-android" +} +``` + +1.9.0-alpha01 is the version this documentation was generated from; +there may be newer versions available. + +NOTE: These lint checks are **also** made available separate from the main library. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. + + +[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("ConfigurationScreenWidthHeight") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("ConfigurationScreenWidthHeight") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection ConfigurationScreenWidthHeight + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="ConfigurationScreenWidthHeight" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'ConfigurationScreenWidthHeight' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore ConfigurationScreenWidthHeight ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/ConflictingOnColor.md.html b/docs/checks/ConflictingOnColor.md.html index b7eb3828..ebd284c1 100644 --- a/docs/checks/ConflictingOnColor.md.html +++ b/docs/checks/ConflictingOnColor.md.html @@ -181,17 +181,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.material:material-android:1.8.0-alpha07") +implementation("androidx.compose.material:material-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.material:material-android:1.8.0-alpha07' +implementation 'androidx.compose.material:material-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.material.android) # libs.versions.toml [versions] -material-android = "1.8.0-alpha07" +material-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -203,11 +203,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.material:material-lint:1.8.0-alpha07`. +You can also use `androidx.compose.material:material-lint:1.9.0-alpha01`. [Additional details about androidx.compose.material:material-android](androidx_compose_material_material-android.md.html). diff --git a/docs/checks/ConstantContentStateKeyInItemsCall.md.html b/docs/checks/ConstantContentStateKeyInItemsCall.md.html index 8f1b2d80..146ebb73 100644 --- a/docs/checks/ConstantContentStateKeyInItemsCall.md.html +++ b/docs/checks/ConstantContentStateKeyInItemsCall.md.html @@ -27,7 +27,7 @@ Artifact : [androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html) Since -: 1.8.0-alpha01 +: 1.8.0 Affects : Kotlin and Java files and test sources Editing @@ -222,17 +222,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.animation:animation-android:1.8.0-alpha07") +implementation("androidx.compose.animation:animation-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.animation:animation-android:1.8.0-alpha07' +implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.animation.android) # libs.versions.toml [versions] -animation-android = "1.8.0-alpha07" +animation-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -244,11 +244,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.animation:animation-lint:1.8.0-alpha07`. +You can also use `androidx.compose.animation:animation-lint:1.9.0-alpha01`. [Additional details about androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html). diff --git a/docs/checks/ContextCastToActivity.md.html b/docs/checks/ContextCastToActivity.md.html index f03feded..523d3bdd 100644 --- a/docs/checks/ContextCastToActivity.md.html +++ b/docs/checks/ContextCastToActivity.md.html @@ -23,11 +23,11 @@ Min : Lint 8.0 and 8.1 Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.activity:activity-compose](androidx_activity_activity-compose.md.html) Since -: 1.10.0-alpha03 +: 1.10.0 Affects : Kotlin and Java files and test sources Editing @@ -97,17 +97,17 @@ ``` // build.gradle.kts -implementation("androidx.activity:activity-compose:1.10.0-rc01") +implementation("androidx.activity:activity-compose:1.11.0-rc01") // build.gradle -implementation 'androidx.activity:activity-compose:1.10.0-rc01' +implementation 'androidx.activity:activity-compose:1.11.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.activity.compose) # libs.versions.toml [versions] -activity-compose = "1.10.0-rc01" +activity-compose = "1.11.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -119,7 +119,7 @@ } ``` -1.10.0-rc01 is the version this documentation was generated from; +1.11.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.activity:activity-compose](androidx_activity_activity-compose.md.html). diff --git a/docs/checks/CoreLibDesugaringV1.md.html b/docs/checks/CoreLibDesugaringV1.md.html new file mode 100644 index 00000000..36d97929 --- /dev/null +++ b/docs/checks/CoreLibDesugaringV1.md.html @@ -0,0 +1,119 @@ + +(#) Android 15 requires `desugar_jdk_libs` 2.+ + +!!! ERROR: Android 15 requires `desugar_jdk_libs` 2.+ + This is an error. + +Id +: `CoreLibDesugaringV1` +Summary +: Android 15 requires `desugar_jdk_libs` 2.+ +Severity +: Error +Category +: Correctness +Platform +: Android +Vendor +: Android Open Source Project +Feedback +: https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.10.0 (May 2025) +Affects +: Gradle build files and TOML files +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/GradleDetector.kt) +Tests +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/GradleDetectorTest.kt) + +Core library desugaring with `compileSdk` 35 or later (Android 15) +requires using version 2.+ of the core library desugaring libraries. The +code may compile successfully, but can crash at runtime. + +!!! Tip + This lint check has an associated quickfix available in the IDE. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +build.gradle.kts:9:Error: Core library desugaring runtime library +version 1.2.3 does not support compileSdk=35 or later; please upgrade to +version 2.1.4 [CoreLibDesugaringV1] + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.2.3") // ERROR + ------------------------------------------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`build.gradle.kts`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +android { + compileSdk = 35 + compileOptions { + isCoreLibraryDesugaringEnabled = true + } +} +dependencies { + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") // OK + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.2.3") // ERROR +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/GradleDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +The above example was automatically extracted from the first unit test +found for this lint check, `GradleDetector.testCoreLibV1`. +To report a problem with this extracted sample, visit +https://issuetracker.google.com/issues/new?component=192708. + +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection CoreLibDesugaringV1 + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="CoreLibDesugaringV1" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'CoreLibDesugaringV1' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore CoreLibDesugaringV1 ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/CoroutineCreationDuringComposition.md.html b/docs/checks/CoroutineCreationDuringComposition.md.html index f18b732e..79349e41 100644 --- a/docs/checks/CoroutineCreationDuringComposition.md.html +++ b/docs/checks/CoroutineCreationDuringComposition.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -237,17 +237,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -259,11 +259,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/CredentialManagerSignInWithGoogle.md.html b/docs/checks/CredentialManagerSignInWithGoogle.md.html index 62998c28..3fd01180 100644 --- a/docs/checks/CredentialManagerSignInWithGoogle.md.html +++ b/docs/checks/CredentialManagerSignInWithGoogle.md.html @@ -32,19 +32,19 @@ : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/CredentialManagerSignInWithGoogleDetectorTest.kt) When using `:googleid` classes like `GetGoogleIdOption` and -`GetSignInWithGoogleOption`, you typically must handle the response -using `GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL` or -`GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_SIWG_CREDENTIAL`. +`GetSignInWithGoogleOption`, you must handle the response using +`GoogleIdTokenCredential.createFrom`. This check reports all uses of these `:googleid` classes if there are no -references to `GoogleIdTokenCredential`. +references to `GoogleIdTokenCredential[.Companion].createFrom`. (##) Example Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text src/com/example/app/Foo.kt:9:Warning: Use of :googleid classes without -use of GoogleIdTokenCredential [CredentialManagerSignInWithGoogle] +use of GoogleIdTokenCredential.createFrom +[CredentialManagerSignInWithGoogle] val googleIdOption = GetGoogleIdOption.Builder().build() ----------------- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/checks/DeepLinkInActivityDestination.md.html b/docs/checks/DeepLinkInActivityDestination.md.html index 59731ea0..dd797ed4 100644 --- a/docs/checks/DeepLinkInActivityDestination.md.html +++ b/docs/checks/DeepLinkInActivityDestination.md.html @@ -102,17 +102,17 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-runtime:2.9.0-alpha04") +implementation("androidx.navigation:navigation-runtime:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-runtime:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.navigation.runtime) # libs.versions.toml [versions] -navigation-runtime = "2.9.0-alpha04" +navigation-runtime = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -124,7 +124,7 @@ } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html). diff --git a/docs/checks/DefaultUncaughtExceptionDelegation.md.html b/docs/checks/DefaultUncaughtExceptionDelegation.md.html new file mode 100644 index 00000000..00846ee0 --- /dev/null +++ b/docs/checks/DefaultUncaughtExceptionDelegation.md.html @@ -0,0 +1,111 @@ + +(#) Missing default uncaught exception handler delegation + +!!! WARNING: Missing default uncaught exception handler delegation + This is a warning. + +Id +: `DefaultUncaughtExceptionDelegation` +Summary +: Missing default uncaught exception handler delegation +Severity +: Warning +Category +: Correctness +Platform +: Android +Vendor +: Android Open Source Project +Feedback +: https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.11.0-alpha07 (April 2025) +Affects +: Kotlin and Java files +Editing +: This check can *not* run live in the IDE editor +Implementation +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/UncaughtExceptionHandlerDetector.kt) +Tests +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/UncaughtExceptionHandlerDetectorTest.kt) + +A default uncaught exception handler should usually call the existing +(previously set) default uncaught exception handler. This is especially +true on Android, which uses a default uncaught exception handler to +handle crashes. This lint check reports calls to +`setDefaultUncaughtExceptionHandler` unless we can also see a call to +`getDefaultUncaughtExceptionHandler` (to get the existing handler) in +the same module. Make sure you also call +`existingHandler.uncaughtException(thread, throwable)` from your new +handler. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/com/example/app/test.kt:7:Warning: Must call +getDefaultUncaughtExceptionHandler() to get the existing handler, and +call existingHandler.uncaughtException(thread, throwable) from your new +handler [DefaultUncaughtExceptionDelegation] + setDefaultUncaughtExceptionHandler { thread, throwable -> + ^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`src/com/example/app/test.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +package com.example.app + +import android.util.Log +import java.lang.Thread.setDefaultUncaughtExceptionHandler + +fun foo() { + setDefaultUncaughtExceptionHandler { thread, throwable -> + Log.e("foo", "Uncaught exception") + } +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/UncaughtExceptionHandlerDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="DefaultUncaughtExceptionDelegation" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'DefaultUncaughtExceptionDelegation' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore DefaultUncaughtExceptionDelegation ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/DenyListedApi.md.html b/docs/checks/DenyListedApi.md.html index 0b2cef03..4e4406e8 100644 --- a/docs/checks/DenyListedApi.md.html +++ b/docs/checks/DenyListedApi.md.html @@ -89,17 +89,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -111,7 +111,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DenyListedBlockingApi.md.html b/docs/checks/DenyListedBlockingApi.md.html index 917dafed..8be1224f 100644 --- a/docs/checks/DenyListedBlockingApi.md.html +++ b/docs/checks/DenyListedBlockingApi.md.html @@ -88,17 +88,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -110,7 +110,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DeprecatedCall.md.html b/docs/checks/DeprecatedCall.md.html index 1cd16a34..060e135a 100644 --- a/docs/checks/DeprecatedCall.md.html +++ b/docs/checks/DeprecatedCall.md.html @@ -98,17 +98,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -120,7 +120,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DeprecatedSqlUsage.md.html b/docs/checks/DeprecatedSqlUsage.md.html index 718bedcd..460a4236 100644 --- a/docs/checks/DeprecatedSqlUsage.md.html +++ b/docs/checks/DeprecatedSqlUsage.md.html @@ -86,17 +86,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -108,7 +108,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DetachAndAttachSameFragment.md.html b/docs/checks/DetachAndAttachSameFragment.md.html index 3da68995..dc9a0348 100644 --- a/docs/checks/DetachAndAttachSameFragment.md.html +++ b/docs/checks/DetachAndAttachSameFragment.md.html @@ -56,17 +56,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment:1.8.5") +implementation("androidx.fragment:fragment:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment:1.8.5' +implementation 'androidx.fragment:fragment:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment) # libs.versions.toml [versions] -fragment = "1.8.5" +fragment = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -78,7 +78,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment](androidx_fragment_fragment.md.html). diff --git a/docs/checks/DevModeObsolete.md.html b/docs/checks/DevModeObsolete.md.html index 8b568d92..d2df2794 100644 --- a/docs/checks/DevModeObsolete.md.html +++ b/docs/checks/DevModeObsolete.md.html @@ -55,8 +55,8 @@ build.gradle:10:Warning: You no longer need a dev mode to enable multi-dexing during development, and this can break API version checks [DevModeObsolete] - minSdk 21 - --------- + minSdk = 21 + ----------- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Here is the source file referenced above: @@ -72,7 +72,7 @@ dev { // To avoid using legacy multidex, set minSdkVersion to 21 or higher. minSdkVersion 21 - minSdk 21 + minSdk = 21 versionNameSuffix "-dev" applicationIdSuffix '.dev' } diff --git a/docs/checks/DialogFragmentCallbacksDetector.md.html b/docs/checks/DialogFragmentCallbacksDetector.md.html index 68eb4741..c7499c4c 100644 --- a/docs/checks/DialogFragmentCallbacksDetector.md.html +++ b/docs/checks/DialogFragmentCallbacksDetector.md.html @@ -94,17 +94,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment:1.8.5") +implementation("androidx.fragment:fragment:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment:1.8.5' +implementation 'androidx.fragment:fragment:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment) # libs.versions.toml [versions] -fragment = "1.8.5" +fragment = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -116,7 +116,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment](androidx_fragment_fragment.md.html). diff --git a/docs/checks/DoNotCallProviders.md.html b/docs/checks/DoNotCallProviders.md.html index 3b3a8d92..5f5a0bc3 100644 --- a/docs/checks/DoNotCallProviders.md.html +++ b/docs/checks/DoNotCallProviders.md.html @@ -133,17 +133,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -155,7 +155,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DoNotCallViewToString.md.html b/docs/checks/DoNotCallViewToString.md.html index e9bffafb..b07fc067 100644 --- a/docs/checks/DoNotCallViewToString.md.html +++ b/docs/checks/DoNotCallViewToString.md.html @@ -52,17 +52,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -74,7 +74,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DoNotExposeEitherNetInRepositories.md.html b/docs/checks/DoNotExposeEitherNetInRepositories.md.html index 52f5bd04..b56515df 100644 --- a/docs/checks/DoNotExposeEitherNetInRepositories.md.html +++ b/docs/checks/DoNotExposeEitherNetInRepositories.md.html @@ -122,17 +122,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -144,7 +144,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DoNotMock.md.html b/docs/checks/DoNotMock.md.html index e75e327c..4278f74d 100644 --- a/docs/checks/DoNotMock.md.html +++ b/docs/checks/DoNotMock.md.html @@ -72,14 +72,14 @@ A comma-separated list of mock factories (org.mockito.Mockito#methodName).. A comma-separated list of mock factories (org.mockito.Mockito#methodName). Set this for all issues using this option. -Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock". +Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy". Example `lint.xml`: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers <lint> <issue id="DoNotMock"> - <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock"" /> + <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy"" /> </issue> </lint> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -182,17 +182,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -204,7 +204,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DoNotMockAnything.md.html b/docs/checks/DoNotMockAnything.md.html index 91750600..17e0d171 100644 --- a/docs/checks/DoNotMockAnything.md.html +++ b/docs/checks/DoNotMockAnything.md.html @@ -74,14 +74,14 @@ A comma-separated list of mock factories (org.mockito.Mockito#methodName).. A comma-separated list of mock factories (org.mockito.Mockito#methodName). Set this for all issues using this option. -Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock". +Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy". Example `lint.xml`: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers <lint> <issue id="DoNotMockAnything"> - <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock"" /> + <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy"" /> </issue> </lint> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -112,17 +112,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -134,7 +134,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DoNotMockAutoValue.md.html b/docs/checks/DoNotMockAutoValue.md.html index 9b1c5bf8..31e97a83 100644 --- a/docs/checks/DoNotMockAutoValue.md.html +++ b/docs/checks/DoNotMockAutoValue.md.html @@ -70,14 +70,14 @@ A comma-separated list of mock factories (org.mockito.Mockito#methodName).. A comma-separated list of mock factories (org.mockito.Mockito#methodName). Set this for all issues using this option. -Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock". +Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy". Example `lint.xml`: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers <lint> <issue id="DoNotMockAutoValue"> - <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock"" /> + <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy"" /> </issue> </lint> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -108,17 +108,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -130,7 +130,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DoNotMockDataClass.md.html b/docs/checks/DoNotMockDataClass.md.html index 34c2be9f..61017640 100644 --- a/docs/checks/DoNotMockDataClass.md.html +++ b/docs/checks/DoNotMockDataClass.md.html @@ -70,14 +70,14 @@ A comma-separated list of mock factories (org.mockito.Mockito#methodName).. A comma-separated list of mock factories (org.mockito.Mockito#methodName). Set this for all issues using this option. -Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock". +Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy". Example `lint.xml`: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers <lint> <issue id="DoNotMockDataClass"> - <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock"" /> + <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy"" /> </issue> </lint> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -108,17 +108,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -130,7 +130,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DoNotMockObjectClass.md.html b/docs/checks/DoNotMockObjectClass.md.html index e4728d2c..2bac1692 100644 --- a/docs/checks/DoNotMockObjectClass.md.html +++ b/docs/checks/DoNotMockObjectClass.md.html @@ -70,14 +70,14 @@ A comma-separated list of mock factories (org.mockito.Mockito#methodName).. A comma-separated list of mock factories (org.mockito.Mockito#methodName). Set this for all issues using this option. -Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock". +Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy". Example `lint.xml`: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers <lint> <issue id="DoNotMockObjectClass"> - <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock"" /> + <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy"" /> </issue> </lint> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -108,17 +108,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -130,7 +130,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DoNotMockPlatformTypes.md.html b/docs/checks/DoNotMockPlatformTypes.md.html index ca1bb2ad..8120480b 100644 --- a/docs/checks/DoNotMockPlatformTypes.md.html +++ b/docs/checks/DoNotMockPlatformTypes.md.html @@ -74,14 +74,14 @@ A comma-separated list of mock factories (org.mockito.Mockito#methodName).. A comma-separated list of mock factories (org.mockito.Mockito#methodName). Set this for all issues using this option. -Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock". +Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy". Example `lint.xml`: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers <lint> <issue id="DoNotMockPlatformTypes"> - <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock"" /> + <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy"" /> </issue> </lint> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -112,17 +112,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -134,7 +134,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DoNotMockRecordClass.md.html b/docs/checks/DoNotMockRecordClass.md.html index ff7008db..dd681f34 100644 --- a/docs/checks/DoNotMockRecordClass.md.html +++ b/docs/checks/DoNotMockRecordClass.md.html @@ -70,14 +70,14 @@ A comma-separated list of mock factories (org.mockito.Mockito#methodName).. A comma-separated list of mock factories (org.mockito.Mockito#methodName). Set this for all issues using this option. -Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock". +Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy". Example `lint.xml`: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers <lint> <issue id="DoNotMockRecordClass"> - <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock"" /> + <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy"" /> </issue> </lint> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -108,17 +108,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -130,7 +130,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/DoNotMockSealedClass.md.html b/docs/checks/DoNotMockSealedClass.md.html index 0bb0947c..606113c4 100644 --- a/docs/checks/DoNotMockSealedClass.md.html +++ b/docs/checks/DoNotMockSealedClass.md.html @@ -71,14 +71,14 @@ A comma-separated list of mock factories (org.mockito.Mockito#methodName).. A comma-separated list of mock factories (org.mockito.Mockito#methodName). Set this for all issues using this option. -Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock". +Default is "org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy". Example `lint.xml`: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers <lint> <issue id="DoNotMockSealedClass"> - <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock"" /> + <option name="mock-factories" value=""org.mockito.Mockito#mock,org.mockito.Mockito#spy,slack.test.mockito.MockitoHelpers#mock,slack.test.mockito.MockitoHelpersKt#mock,org.mockito.kotlin.MockingKt#mock,org.mockito.kotlin.SpyingKt#spy"" /> </issue> </lint> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -109,17 +109,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -131,7 +131,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/EagerGradleConfiguration.md.html b/docs/checks/EagerGradleConfiguration.md.html index 2eb8f333..da544e11 100644 --- a/docs/checks/EagerGradleConfiguration.md.html +++ b/docs/checks/EagerGradleConfiguration.md.html @@ -53,17 +53,17 @@ ``` // build.gradle.kts -implementation("androidx.lint:lint-gradle:1.0.0-alpha03") +implementation("androidx.lint:lint-gradle:1.0.0-alpha04") // build.gradle -implementation 'androidx.lint:lint-gradle:1.0.0-alpha03' +implementation 'androidx.lint:lint-gradle:1.0.0-alpha04' // build.gradle.kts with version catalogs: implementation(libs.lint.gradle) # libs.versions.toml [versions] -lint-gradle = "1.0.0-alpha03" +lint-gradle = "1.0.0-alpha04" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -75,7 +75,7 @@ } ``` -1.0.0-alpha03 is the version this documentation was generated from; +1.0.0-alpha04 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html). diff --git a/docs/checks/EmptyNavDeepLink.md.html b/docs/checks/EmptyNavDeepLink.md.html index 240193d1..542850ce 100644 --- a/docs/checks/EmptyNavDeepLink.md.html +++ b/docs/checks/EmptyNavDeepLink.md.html @@ -90,17 +90,17 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-common:2.9.0-alpha04") +implementation("androidx.navigation:navigation-common:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-common:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-common:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.navigation.common) # libs.versions.toml [versions] -navigation-common = "2.9.0-alpha04" +navigation-common = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -112,7 +112,7 @@ } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html). diff --git a/docs/checks/ErrorProneDoNotMockUsage.md.html b/docs/checks/ErrorProneDoNotMockUsage.md.html index a31e259c..37772d7c 100644 --- a/docs/checks/ErrorProneDoNotMockUsage.md.html +++ b/docs/checks/ErrorProneDoNotMockUsage.md.html @@ -109,17 +109,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -131,7 +131,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/ExceptionMessage.md.html b/docs/checks/ExceptionMessage.md.html index 22dbef70..57435080 100644 --- a/docs/checks/ExceptionMessage.md.html +++ b/docs/checks/ExceptionMessage.md.html @@ -31,7 +31,7 @@ Since : 0.6.0 Affects -: Kotlin and Java files and test sources +: Kotlin and Java files Editing : This check runs on the fly in the IDE editor Implementation @@ -90,17 +90,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -112,7 +112,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/ExperimentalAnnotationRetention.md.html b/docs/checks/ExperimentalAnnotationRetention.md.html index 547734ae..c3b2097e 100644 --- a/docs/checks/ExperimentalAnnotationRetention.md.html +++ b/docs/checks/ExperimentalAnnotationRetention.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=459778 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.annotation:annotation-experimental](androidx_annotation_annotation-experimental.md.html) Since @@ -51,17 +51,17 @@ ``` // build.gradle.kts -implementation("androidx.annotation:annotation-experimental:1.5.0-alpha01") +implementation("androidx.annotation:annotation-experimental:1.5.0-rc01") // build.gradle -implementation 'androidx.annotation:annotation-experimental:1.5.0-alpha01' +implementation 'androidx.annotation:annotation-experimental:1.5.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.annotation.experimental) # libs.versions.toml [versions] -annotation-experimental = "1.5.0-alpha01" +annotation-experimental = "1.5.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -73,7 +73,7 @@ } ``` -1.5.0-alpha01 is the version this documentation was generated from; +1.5.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.annotation:annotation-experimental](androidx_annotation_annotation-experimental.md.html). diff --git a/docs/checks/ExpiredTargetSdkVersion.md.html b/docs/checks/ExpiredTargetSdkVersion.md.html index 6f35cf60..9d37833d 100644 --- a/docs/checks/ExpiredTargetSdkVersion.md.html +++ b/docs/checks/ExpiredTargetSdkVersion.md.html @@ -23,7 +23,7 @@ Since : 3.2.0 (September 2018) Affects -: Gradle build files and manifest files +: Gradle build files, TOML files and manifest files Editing : This check runs on the fly in the IDE editor See @@ -51,36 +51,37 @@ Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -build.gradle:5:Error: Google Play requires that apps target API level 31 -or higher. [ExpiredTargetSdkVersion] - targetSdkVersion 17 - ------------------- -build.gradle:6:Error: Google Play requires that apps target API level 31 -or higher. [ExpiredTargetSdkVersion] - targetSdk 17 - ------------ +../gradle/libs.versions.toml:2:Error: Google Play requires that apps +target API level 33 or higher. [ExpiredTargetSdkVersion] +targetSdk = "30" # ERROR 1 + ---- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Here is the source file referenced above: - -`build.gradle`: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers -apply plugin: 'com.android.application' +Here are the relevant source files: +`settings.gradle.kts`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers android { - defaultConfig { - targetSdkVersion 17 - targetSdk 17 - } } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +`../gradle/libs.versions.toml`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~toml linenumbers +[versions] +targetSdk = "30" # ERROR 1 + +#noinspection ExpiredTargetSdkVersion +targetSdkVersion = "30" # OK 1 +#noinspection ExpiringTargetSdkVersion +target_sdk_version = "30" # OK 2 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + You can also visit the [source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/GradleDetectorTest.kt) for the unit tests for this check to see additional scenarios. The above example was automatically extracted from the first unit test -found for this lint check, `GradleDetector.testExpiring1`. +found for this lint check, `GradleDetector.testTargetExpiringViaToml`. To report a problem with this extracted sample, visit https://issuetracker.google.com/issues/new?component=192708. diff --git a/docs/checks/ExpiringTargetSdkVersion.md.html b/docs/checks/ExpiringTargetSdkVersion.md.html index 1dd507d3..74bbbe9d 100644 --- a/docs/checks/ExpiringTargetSdkVersion.md.html +++ b/docs/checks/ExpiringTargetSdkVersion.md.html @@ -21,7 +21,7 @@ Since : 3.2.0 (September 2018) Affects -: Gradle build files and manifest files +: Gradle build files, TOML files and manifest files Editing : This check runs on the fly in the IDE editor See diff --git a/docs/checks/FieldSiteTargetOnQualifierAnnotation.md.html b/docs/checks/FieldSiteTargetOnQualifierAnnotation.md.html index 2d9b5f93..8fc95bda 100644 --- a/docs/checks/FieldSiteTargetOnQualifierAnnotation.md.html +++ b/docs/checks/FieldSiteTargetOnQualifierAnnotation.md.html @@ -23,7 +23,7 @@ Feedback : https://github.com/google/dagger/issues Min -: Lint 7.1 +: Lint 7.3 and 7.4 Compiled : Lint 7.1 Artifact @@ -185,17 +185,17 @@ ``` // build.gradle.kts -implementation("com.google.dagger:dagger-lint:2.55") +implementation("com.google.dagger:dagger-lint:2.56.2") // build.gradle -implementation 'com.google.dagger:dagger-lint:2.55' +implementation 'com.google.dagger:dagger-lint:2.56.2' // build.gradle.kts with version catalogs: implementation(libs.dagger.lint) # libs.versions.toml [versions] -dagger-lint = "2.55" +dagger-lint = "2.56.2" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -207,7 +207,7 @@ } ``` -2.55 is the version this documentation was generated from; +2.56.2 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.google.dagger:dagger-lint](com_google_dagger_dagger-lint.md.html). diff --git a/docs/checks/FilePropertyDetector.md.html b/docs/checks/FilePropertyDetector.md.html index ec8bb4df..ddcbeeac 100644 --- a/docs/checks/FilePropertyDetector.md.html +++ b/docs/checks/FilePropertyDetector.md.html @@ -50,17 +50,17 @@ ``` // build.gradle.kts -implementation("androidx.lint:lint-gradle:1.0.0-alpha03") +implementation("androidx.lint:lint-gradle:1.0.0-alpha04") // build.gradle -implementation 'androidx.lint:lint-gradle:1.0.0-alpha03' +implementation 'androidx.lint:lint-gradle:1.0.0-alpha04' // build.gradle.kts with version catalogs: implementation(libs.lint.gradle) # libs.versions.toml [versions] -lint-gradle = "1.0.0-alpha03" +lint-gradle = "1.0.0-alpha04" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -72,7 +72,7 @@ } ``` -1.0.0-alpha03 is the version this documentation was generated from; +1.0.0-alpha04 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html). diff --git a/docs/checks/FlowOperatorInvokedInComposition.md.html b/docs/checks/FlowOperatorInvokedInComposition.md.html index e2514fca..330e385e 100644 --- a/docs/checks/FlowOperatorInvokedInComposition.md.html +++ b/docs/checks/FlowOperatorInvokedInComposition.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -239,17 +239,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -261,11 +261,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/FragmentAddMenuProvider.md.html b/docs/checks/FragmentAddMenuProvider.md.html index ea5a8d14..835a0cd0 100644 --- a/docs/checks/FragmentAddMenuProvider.md.html +++ b/docs/checks/FragmentAddMenuProvider.md.html @@ -56,17 +56,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment:1.8.5") +implementation("androidx.fragment:fragment:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment:1.8.5' +implementation 'androidx.fragment:fragment:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment) # libs.versions.toml [versions] -fragment = "1.8.5" +fragment = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -78,7 +78,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment](androidx_fragment_fragment.md.html). diff --git a/docs/checks/FragmentBackPressedCallback.md.html b/docs/checks/FragmentBackPressedCallback.md.html index 66d5a601..3360c695 100644 --- a/docs/checks/FragmentBackPressedCallback.md.html +++ b/docs/checks/FragmentBackPressedCallback.md.html @@ -56,17 +56,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment:1.8.5") +implementation("androidx.fragment:fragment:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment:1.8.5' +implementation 'androidx.fragment:fragment:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment) # libs.versions.toml [versions] -fragment = "1.8.5" +fragment = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -78,7 +78,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment](androidx_fragment_fragment.md.html). diff --git a/docs/checks/FragmentConstructorInjection.md.html b/docs/checks/FragmentConstructorInjection.md.html index b84d23cb..fa7c557d 100644 --- a/docs/checks/FragmentConstructorInjection.md.html +++ b/docs/checks/FragmentConstructorInjection.md.html @@ -130,17 +130,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -152,7 +152,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/FragmentFieldInjection.md.html b/docs/checks/FragmentFieldInjection.md.html index 3bd37e2c..20dedecf 100644 --- a/docs/checks/FragmentFieldInjection.md.html +++ b/docs/checks/FragmentFieldInjection.md.html @@ -107,17 +107,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -129,7 +129,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/FragmentGradleConfiguration-2.md.html b/docs/checks/FragmentGradleConfiguration-2.md.html index 32051b0e..d48efc07 100644 --- a/docs/checks/FragmentGradleConfiguration-2.md.html +++ b/docs/checks/FragmentGradleConfiguration-2.md.html @@ -82,17 +82,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment-testing-manifest:1.8.5") +implementation("androidx.fragment:fragment-testing-manifest:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment-testing-manifest:1.8.5' +implementation 'androidx.fragment:fragment-testing-manifest:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment.testing.manifest) # libs.versions.toml [versions] -fragment-testing-manifest = "1.8.5" +fragment-testing-manifest = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -104,7 +104,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment-testing-manifest](androidx_fragment_fragment-testing-manifest.md.html). diff --git a/docs/checks/FragmentGradleConfiguration.md.html b/docs/checks/FragmentGradleConfiguration.md.html index 57f951c0..8f95f0f3 100644 --- a/docs/checks/FragmentGradleConfiguration.md.html +++ b/docs/checks/FragmentGradleConfiguration.md.html @@ -83,17 +83,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment-testing:1.8.5") +implementation("androidx.fragment:fragment-testing:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment-testing:1.8.5' +implementation 'androidx.fragment:fragment-testing:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment.testing) # libs.versions.toml [versions] -fragment-testing = "1.8.5" +fragment-testing = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -105,7 +105,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment-testing](androidx_fragment_fragment-testing.md.html). diff --git a/docs/checks/FragmentLiveDataObserve.md.html b/docs/checks/FragmentLiveDataObserve.md.html index e213025e..f7fa7979 100644 --- a/docs/checks/FragmentLiveDataObserve.md.html +++ b/docs/checks/FragmentLiveDataObserve.md.html @@ -56,17 +56,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment:1.8.5") +implementation("androidx.fragment:fragment:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment:1.8.5' +implementation 'androidx.fragment:fragment:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment) # libs.versions.toml [versions] -fragment = "1.8.5" +fragment = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -78,7 +78,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment](androidx_fragment_fragment.md.html). diff --git a/docs/checks/FragmentTagUsage.md.html b/docs/checks/FragmentTagUsage.md.html index c6e06c71..16e9a4c7 100644 --- a/docs/checks/FragmentTagUsage.md.html +++ b/docs/checks/FragmentTagUsage.md.html @@ -90,17 +90,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment:1.8.5") +implementation("androidx.fragment:fragment:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment:1.8.5' +implementation 'androidx.fragment:fragment:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment) # libs.versions.toml [versions] -fragment = "1.8.5" +fragment = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -112,7 +112,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment](androidx_fragment_fragment.md.html). diff --git a/docs/checks/FrequentlyChangedStateReadInComposition.md.html b/docs/checks/FrequentlyChangedStateReadInComposition.md.html index 5bd430f6..6fc6a490 100644 --- a/docs/checks/FrequentlyChangedStateReadInComposition.md.html +++ b/docs/checks/FrequentlyChangedStateReadInComposition.md.html @@ -1,225 +1,8 @@ -(#) Frequently changing state should not be directly read in composable function +(#) FrequentlyChangedStateReadInComposition -!!! WARNING: Frequently changing state should not be directly read in composable function - This is a warning. - -Id -: `FrequentlyChangedStateReadInComposition` -Summary -: Frequently changing state should not be directly read in composable function -Severity -: Warning -Category -: Performance -Platform -: Any -Vendor -: Jetpack Compose -Identifier -: androidx.compose.foundation -Feedback -: https://issuetracker.google.com/issues/new?component=612128 -Min -: Lint 8.0 and 8.1 -Compiled -: Lint 8.7+ -Artifact -: [androidx.compose.foundation:foundation-android](androidx_compose_foundation_foundation-android.md.html) -Since -: 1.5.0 -Affects -: Kotlin and Java files and test sources -Editing -: This check runs on the fly in the IDE editor -Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/foundation/foundation-lint/src/main/java/androidx/compose/foundation/lint/LazyLayoutStateReadInCompositionDetector.kt) -Tests -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/foundation/foundation-lint/src/test/java/androidx/compose/foundation/lint/LazyLayoutStateReadInCompositionDetectorTest.kt) -Copyright Year -: 2022 - -This property is observable and is updated after every scroll or -remeasure. If you use it in the composable function directly, it will be -recomposed on every change, causing potential performance issues -including infinity recomposition loops. Prefer wrapping it with -derivedStateOf to use calculation based on this property in composition -or collect changes inside LaunchedEffect instead. - -!!! Tip - This lint check has an associated quickfix available in the IDE. - -(##) Example - -Here is an example of lint warnings produced by this check: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -src/androidx/compose/foundation/foo/test.kt:10:Warning: Frequently -changing state should not be directly read in composable function -[FrequentlyChangedStateReadInComposition] - val index = state.firstVisibleItemIndex - --------------------------- -src/androidx/compose/foundation/foo/test.kt:11:Warning: Frequently -changing state should not be directly read in composable function -[FrequentlyChangedStateReadInComposition] - val offset = state.firstVisibleItemScrollOffset - ---------------------------------- -src/androidx/compose/foundation/foo/test.kt:12:Warning: Frequently -changing state should not be directly read in composable function -[FrequentlyChangedStateReadInComposition] - val layoutInfo = state.layoutInfo - ---------------- -src/androidx/compose/foundation/foo/test.kt:17:Warning: Frequently -changing state should not be directly read in composable function -[FrequentlyChangedStateReadInComposition] - val index = state.firstVisibleItemIndex - --------------------------- -src/androidx/compose/foundation/foo/test.kt:18:Warning: Frequently -changing state should not be directly read in composable function -[FrequentlyChangedStateReadInComposition] - val offset = state.firstVisibleItemScrollOffset - ---------------------------------- -src/androidx/compose/foundation/foo/test.kt:19:Warning: Frequently -changing state should not be directly read in composable function -[FrequentlyChangedStateReadInComposition] - val layoutInfo = state.layoutInfo - ---------------- -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Here is the source file referenced above: - -`src/androidx/compose/foundation/foo/test.kt`: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers -package androidx.compose.foundation.foo - -import androidx.compose.runtime.Composable -import androidx.compose.foundation.lazy.grid.LazyGridState -import androidx.compose.foundation.lazy.LazyListState - -@Composable -fun TestGrid(state: LazyGridState) { - val index = state.firstVisibleItemIndex - val offset = state.firstVisibleItemScrollOffset - val layoutInfo = state.layoutInfo -} - -@Composable -fun TestList(state: LazyListState) { - val index = state.firstVisibleItemIndex - val offset = state.firstVisibleItemScrollOffset - val layoutInfo = state.layoutInfo -} -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You can also visit the -[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/foundation/foundation-lint/src/test/java/androidx/compose/foundation/lint/LazyLayoutStateReadInCompositionDetectorTest.kt) -for the unit tests for this check to see additional scenarios. - -The above example was automatically extracted from the first unit test -found for this lint check, `LazyLayoutStateReadInCompositionDetector.observablePropertiesUsedInComposableFunction`. -To report a problem with this extracted sample, visit -https://issuetracker.google.com/issues/new?component=612128. - -(##) Including - -!!! - This is not a built-in check. To include it, add the below dependency - to your project. - -``` -// build.gradle.kts -implementation("androidx.compose.foundation:foundation-android:1.8.0-alpha07") - -// build.gradle -implementation 'androidx.compose.foundation:foundation-android:1.8.0-alpha07' - -// build.gradle.kts with version catalogs: -implementation(libs.foundation.android) - -# libs.versions.toml -[versions] -foundation-android = "1.8.0-alpha07" -[libraries] -# For clarity and text wrapping purposes the following declaration is -# shown split up across lines, but in TOML it needs to be on a single -# line (see https://github.com/toml-lang/toml/issues/516) so adjust -# when pasting into libs.versions.toml: -foundation-android = { - module = "androidx.compose.foundation:foundation-android", - version.ref = "foundation-android" -} -``` - -1.8.0-alpha07 is the version this documentation was generated from; -there may be newer versions available. - -NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.foundation:foundation-lint:1.8.0-alpha07`. - - -[Additional details about androidx.compose.foundation:foundation-android](androidx_compose_foundation_foundation-android.md.html). -(##) Suppressing - -You can suppress false positives using one of the following mechanisms: - -* Using a suppression annotation like this on the enclosing - element: - - ```kt - // Kotlin - @Suppress("FrequentlyChangedStateReadInComposition") - fun method() { - problematicStatement() - } - ``` - - or - - ```java - // Java - @SuppressWarnings("FrequentlyChangedStateReadInComposition") - void method() { - problematicStatement(); - } - ``` - -* Using a suppression comment like this on the line above: - - ```kt - //noinspection FrequentlyChangedStateReadInComposition - problematicStatement() - ``` - -* Using a special `lint.xml` file in the source tree which turns off - the check in that folder and any sub folder. A simple file might look - like this: - ```xml - <?xml version="1.0" encoding="UTF-8"?> - <lint> - <issue id="FrequentlyChangedStateReadInComposition" severity="ignore" /> - </lint> - ``` - Instead of `ignore` you can also change the severity here, for - example from `error` to `warning`. You can find additional - documentation on how to filter issues by path, regular expression and - so on - [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). - -* In Gradle projects, using the DSL syntax to configure lint. For - example, you can use something like - ```gradle - lintOptions { - disable 'FrequentlyChangedStateReadInComposition' - } - ``` - In Android projects this should be nested inside an `android { }` - block. - -* For manual invocations of `lint`, using the `--ignore` flag: - ``` - $ lint --ignore FrequentlyChangedStateReadInComposition ...` - ``` - -* Last, but not least, using baselines, as discussed - [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). +The issue for this id has been deleted or marked obsolete and can now be +ignored. +(Additional metadata not available.) \ No newline at end of file diff --git a/docs/checks/FrequentlyChangingValue.md.html b/docs/checks/FrequentlyChangingValue.md.html new file mode 100644 index 00000000..ed77dc9d --- /dev/null +++ b/docs/checks/FrequentlyChangingValue.md.html @@ -0,0 +1,508 @@ + +(#) Reading a value annotated with @FrequentlyChangingValue inside composition + +!!! WARNING: Reading a value annotated with @FrequentlyChangingValue inside composition + This is a warning. + +Id +: `FrequentlyChangingValue` +Summary +: Reading a value annotated with @FrequentlyChangingValue inside composition +Severity +: Warning +Category +: Performance +Platform +: Any +Vendor +: Jetpack Compose +Identifier +: androidx.compose.runtime +Feedback +: https://issuetracker.google.com/issues/new?component=612128 +Min +: Lint 8.7+ +Compiled +: Lint 8.7+ +Artifact +: [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) +Since +: 1.9.0-alpha01 +Affects +: Kotlin and Java files and test sources +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/FrequentlyChangingValueDetector.kt) +Tests +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/FrequentlyChangingValueDetectorTest.kt) +Copyright Year +: 2025 + +Reading a value annotated with @FrequentlyChangingValue inside +composition can cause performance issues due to frequent recompositions. +To avoid frequent recompositions, instead consider: + +- Using derivedStateOf to filter state changes based on a provided + calculation. For example, rather than recomposing on every scroll + position change, only recomposing if the scroll position changes + from 0 (at the top of the list) to greater than 0 (not at the top of + the list), and vice versa. +- Using snapshotFlow to create a flow of changes from a provided state. + This can then be collected inside a LaunchedEffect, and used to make + changes without needing to recompose. +- If using Compose UI, read this value inside measure / layout / draw, + depending on where it is needed. This will cause invalidation of the + corresponding phase, instead of a recomposition. See + developer.android.com for more information on Jetpack Compose + phases. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/androidx/compose/runtime/foo/{.kt:8:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:10:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:11:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:12:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:14:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:15:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:19:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:21:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:22:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:23:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:25:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:26:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:30:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:32:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:33:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:34:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:36:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:37:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:46:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:48:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:49:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:50:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:52:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:53:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:56:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:58:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:59:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:60:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:62:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:63:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:69:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:71:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:72:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:73:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:75:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:76:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:80:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:82:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:83:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:84:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:86:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:87:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:95:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:96:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:98:Warning: Reading a value +annotated with @FrequentlyChangingValue inside composition +[FrequentlyChangingValue] + val barImplValue = barImpl.value + ----- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`src/androidx/compose/runtime/foo/{.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +package androidx.compose.runtime.foo + +import androidx.compose.runtime.* + +@Composable +fun Test(bar: Bar) { + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value +} + +val lambda = @Composable { bar: Bar -> + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value +} + +val lambda2: @Composable (bar: Bar) -> Unit = { bar -> + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value +} + +@Composable +fun LambdaParameter(content: @Composable () -> Unit) {} + +@Composable +fun Test2(bar: Bar) { + LambdaParameter(content = { + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value + }) + LambdaParameter { + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value + } +} + +fun test3(bar: Bar) { + val localLambda1 = @Composable { + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value + } + + val localLambda2: @Composable () -> Unit = { + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value + } +} + +@Composable +fun Test4(bar: Bar) { + val localObject = object { + val foo = Foo() + val fooValue = foo.value + val barValue = bar.value + val barImpl = BarImpl() + val barImplValue = barImpl.value + } +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/FrequentlyChangingValueDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +The above example was automatically extracted from the first unit test +found for this lint check, `FrequentlyChangingValueDetector.errors`. +To report a problem with this extracted sample, visit +https://issuetracker.google.com/issues/new?component=612128. + +(##) Including + +!!! + This is not a built-in check. To include it, add the below dependency + to your project. + +``` +// build.gradle.kts +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") + +// build.gradle +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' + +// build.gradle.kts with version catalogs: +implementation(libs.runtime.android) + +# libs.versions.toml +[versions] +runtime-android = "1.9.0-alpha01" +[libraries] +# For clarity and text wrapping purposes the following declaration is +# shown split up across lines, but in TOML it needs to be on a single +# line (see https://github.com/toml-lang/toml/issues/516) so adjust +# when pasting into libs.versions.toml: +runtime-android = { + module = "androidx.compose.runtime:runtime-android", + version.ref = "runtime-android" +} +``` + +1.9.0-alpha01 is the version this documentation was generated from; +there may be newer versions available. + +NOTE: These lint checks are **also** made available separate from the main library. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. + + +[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("FrequentlyChangingValue") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("FrequentlyChangingValue") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection FrequentlyChangingValue + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="FrequentlyChangingValue" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'FrequentlyChangingValue' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore FrequentlyChangingValue ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/FullyQualifiedResource.md.html b/docs/checks/FullyQualifiedResource.md.html index 9fe5bd87..a5de0f0d 100644 --- a/docs/checks/FullyQualifiedResource.md.html +++ b/docs/checks/FullyQualifiedResource.md.html @@ -113,17 +113,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -135,7 +135,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/GestureBackNavigation.md.html b/docs/checks/GestureBackNavigation.md.html index 4665e66c..775d3a0d 100644 --- a/docs/checks/GestureBackNavigation.md.html +++ b/docs/checks/GestureBackNavigation.md.html @@ -25,30 +25,33 @@ Editing : This check runs on the fly in the IDE editor See -: https://developer.android.com/about/versions/13/features/predictive-back-gesture +: https://developer.android.com/guide/navigation/custom-back/predictive-back-gesture Implementation : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/GestureBackNavDetector.kt) Tests : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/GestureBackNavDetectorTest.kt) -Starting in Android 13 (API 33+), the handling of back events is moving -to an ahead-of-time callback model. Use -`OnBackInvokedDispatcher.registerOnBackInvokedCallback(...)` and -`onBackInvokedCallback` or AndroidX's `OnBackPressedDispatcher` with an -implemented `onBackPressedCallback` to handle back gestures and key -presses. +For apps targeting and running on Android 16+ (API 36+), predictive back +animations are enabled by default. A back gesture does not trigger +`{Activity,Dialog}.onBackPressed`, and does not dispatch +`KeyEvent.KEYCODE_BACK`. + +Apps should migrate to AndroidX's backward compatible +`OnBackPressedDispatcher`. + +This lint check does not consider per-activity opt-in/opt-out, so you +may need to suppress or baseline reported incidents if migrating +per-activity. (##) Example Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -src/test/pkg/KeyEventKeyCodeBackTest.java:11:Warning: If intercepting -back events, this should be handled through the registration of -callbacks on the window level; Please see -https://developer.android.com/about/versions/13/features/predictive-back-gesture -[GestureBackNavigation] - if (KeyEvent.KEYCODE_BACK == keyCode) { - --------------------- +src/test/pkg/KeyEventKeyCodeBackTest.java:17:Warning: onBackPressed is +no longer called for back gestures; migrate to AndroidX's backward +compatible OnBackPressedDispatcher [GestureBackNavigation] + public void onBackPressed() { + ------------- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Here are the relevant source files: @@ -58,7 +61,7 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="test.pkg"> - <uses-permission-sdk-33 android:name="foo.bar.BAZ" /> + <uses-sdk android:minSdkVersion="24" android:targetSdkVersion="35" /> <application android:icon="@drawable/ic_launcher" @@ -66,7 +69,8 @@ android:enableOnBackInvokedCallback="true" > <activity android:name=".KeyEventKeyCodeBackTest" - android:label="@string/app_name" > + android:label="@string/app_name" + android:exported="true" > <intent-filter> <action android:name="android.intent.action.MAIN" /> @@ -74,7 +78,6 @@ </intent-filter> </activity> </application> - </manifest> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -94,6 +97,11 @@ return true; } } + + @Override + public void onBackPressed() { + // handle back + } } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/checks/GradleCompatible.md.html b/docs/checks/GradleCompatible.md.html index ff397c4e..9cbd894d 100644 --- a/docs/checks/GradleCompatible.md.html +++ b/docs/checks/GradleCompatible.md.html @@ -61,7 +61,7 @@ apply plugin: 'android' android { - compileSdkVersion 35 + compileSdkVersion 36 buildToolsVersion "19.0.0" defaultConfig { diff --git a/docs/checks/GradleDependency.md.html b/docs/checks/GradleDependency.md.html index e4bab6ff..fd50c613 100644 --- a/docs/checks/GradleDependency.md.html +++ b/docs/checks/GradleDependency.md.html @@ -45,7 +45,7 @@ Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text build.gradle:24:Warning: A newer version of com.google.guava:guava than -11.0.2 is available: 21.0 [GradleDependency] +11.0.2 is available: 17.0 [GradleDependency] freeCompile 'com.google.guava:guava:11.0.2' ------------------------------- build.gradle:25:Warning: A newer version of @@ -76,7 +76,7 @@ apply plugin: 'android' android { - compileSdkVersion 35 + compileSdkVersion 36 buildToolsVersion "19.0.0" defaultConfig { diff --git a/docs/checks/GradleDeprecated.md.html b/docs/checks/GradleDeprecated.md.html index 4de7da7e..07964fc0 100644 --- a/docs/checks/GradleDeprecated.md.html +++ b/docs/checks/GradleDeprecated.md.html @@ -54,7 +54,7 @@ apply plugin: 'android' android { - compileSdkVersion 35 + compileSdkVersion 36 buildToolsVersion "19.0.0" defaultConfig { diff --git a/docs/checks/GradleDynamicVersion.md.html b/docs/checks/GradleDynamicVersion.md.html index b7c6b553..a590a600 100644 --- a/docs/checks/GradleDynamicVersion.md.html +++ b/docs/checks/GradleDynamicVersion.md.html @@ -59,7 +59,7 @@ apply plugin: 'android' android { - compileSdkVersion 35 + compileSdkVersion 36 buildToolsVersion "19.0.0" defaultConfig { diff --git a/docs/checks/GradleLikelyBug.md.html b/docs/checks/GradleLikelyBug.md.html new file mode 100644 index 00000000..ff33a816 --- /dev/null +++ b/docs/checks/GradleLikelyBug.md.html @@ -0,0 +1,145 @@ + +(#) Use of this API is likely a bug + +!!! ERROR: Use of this API is likely a bug + This is an error. + +Id +: `GradleLikelyBug` +Summary +: Use of this API is likely a bug +Severity +: Error +Category +: Correctness +Platform +: Any +Vendor +: Android Open Source Project +Identifier +: androidx.lint:lint-gradle +Feedback +: https://issuetracker.google.com/issues/new?component=1147525 +Min +: Lint 8.7+ +Compiled +: Lint 8.7+ +Artifact +: [androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html) +Since +: 1.0.0-alpha04 +Affects +: Kotlin and Java files +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lint/lint-gradle/src/main/java/androidx/lint/gradle/DiscouragedGradleMethodDetector.kt) +Copyright Year +: 2024 + +Calling Provider.toString() will return you a generic hash of the +instance of this provider. +You most likely want to call Provider.get() method to get the actual +value instead of the +provider. + +(##) Including + +!!! + This is not a built-in check. To include it, add the below dependency + to your project. + +``` +// build.gradle.kts +implementation("androidx.lint:lint-gradle:1.0.0-alpha04") + +// build.gradle +implementation 'androidx.lint:lint-gradle:1.0.0-alpha04' + +// build.gradle.kts with version catalogs: +implementation(libs.lint.gradle) + +# libs.versions.toml +[versions] +lint-gradle = "1.0.0-alpha04" +[libraries] +# For clarity and text wrapping purposes the following declaration is +# shown split up across lines, but in TOML it needs to be on a single +# line (see https://github.com/toml-lang/toml/issues/516) so adjust +# when pasting into libs.versions.toml: +lint-gradle = { + module = "androidx.lint:lint-gradle", + version.ref = "lint-gradle" +} +``` + +1.0.0-alpha04 is the version this documentation was generated from; +there may be newer versions available. + +[Additional details about androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html). +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("GradleLikelyBug") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("GradleLikelyBug") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection GradleLikelyBug + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="GradleLikelyBug" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'GradleLikelyBug' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore GradleLikelyBug ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/GradleProjectIsolation.md.html b/docs/checks/GradleProjectIsolation.md.html index c1c0dd5d..4f53dc67 100644 --- a/docs/checks/GradleProjectIsolation.md.html +++ b/docs/checks/GradleProjectIsolation.md.html @@ -52,17 +52,17 @@ ``` // build.gradle.kts -implementation("androidx.lint:lint-gradle:1.0.0-alpha03") +implementation("androidx.lint:lint-gradle:1.0.0-alpha04") // build.gradle -implementation 'androidx.lint:lint-gradle:1.0.0-alpha03' +implementation 'androidx.lint:lint-gradle:1.0.0-alpha04' // build.gradle.kts with version catalogs: implementation(libs.lint.gradle) # libs.versions.toml [versions] -lint-gradle = "1.0.0-alpha03" +lint-gradle = "1.0.0-alpha04" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -74,7 +74,7 @@ } ``` -1.0.0-alpha03 is the version this documentation was generated from; +1.0.0-alpha04 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html). diff --git a/docs/checks/GuavaChecksUsed.md.html b/docs/checks/GuavaChecksUsed.md.html index e45746ee..c081c084 100644 --- a/docs/checks/GuavaChecksUsed.md.html +++ b/docs/checks/GuavaChecksUsed.md.html @@ -112,17 +112,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -134,7 +134,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/GuavaPreconditionsUsedInKotlin.md.html b/docs/checks/GuavaPreconditionsUsedInKotlin.md.html index 5b068ee7..2d6b3981 100644 --- a/docs/checks/GuavaPreconditionsUsedInKotlin.md.html +++ b/docs/checks/GuavaPreconditionsUsedInKotlin.md.html @@ -113,17 +113,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -135,7 +135,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/IdleBatteryChargingConstraints.md.html b/docs/checks/IdleBatteryChargingConstraints.md.html index 13a73b1a..2551c222 100644 --- a/docs/checks/IdleBatteryChargingConstraints.md.html +++ b/docs/checks/IdleBatteryChargingConstraints.md.html @@ -86,17 +86,17 @@ ``` // build.gradle.kts -implementation("androidx.work:work-runtime:2.10.0") +implementation("androidx.work:work-runtime:2.10.1") // build.gradle -implementation 'androidx.work:work-runtime:2.10.0' +implementation 'androidx.work:work-runtime:2.10.1' // build.gradle.kts with version catalogs: implementation(libs.work.runtime) # libs.versions.toml [versions] -work-runtime = "2.10.0" +work-runtime = "2.10.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -108,7 +108,7 @@ } ``` -2.10.0 is the version this documentation was generated from; +2.10.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.work:work-runtime](androidx_work_work-runtime.md.html). diff --git a/docs/checks/InclusiveNaming.md.html b/docs/checks/InclusiveNaming.md.html index 5a1edd6a..a68e4494 100644 --- a/docs/checks/InclusiveNaming.md.html +++ b/docs/checks/InclusiveNaming.md.html @@ -69,8 +69,8 @@ id's must be unique, so you cannot combine these libraries. Also defined in: * InclusiveNaming: Use inclusive naming (this issue) -* [InclusiveNaming from com.slack.lint:slack-lint-checks:0.8.2](InclusiveNaming.md.html) -* [InclusiveNaming from com.slack.lint:slack-lint-checks:0.8.2](InclusiveNaming.md.html) +* [InclusiveNaming from com.slack.lint:slack-lint-checks:0.9.0](InclusiveNaming.md.html) +* [InclusiveNaming from com.slack.lint:slack-lint-checks:0.9.0](InclusiveNaming.md.html) (##) Including @@ -82,17 +82,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -104,7 +104,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/IncorrectChainMarginsUsage.md.html b/docs/checks/IncorrectChainMarginsUsage.md.html index 67268d17..6ca716b7 100644 --- a/docs/checks/IncorrectChainMarginsUsage.md.html +++ b/docs/checks/IncorrectChainMarginsUsage.md.html @@ -53,17 +53,17 @@ ``` // build.gradle.kts -implementation("androidx.constraintlayout:constraintlayout-compose:1.1.0") +implementation("androidx.constraintlayout:constraintlayout-compose:1.1.1") // build.gradle -implementation 'androidx.constraintlayout:constraintlayout-compose:1.1.0' +implementation 'androidx.constraintlayout:constraintlayout-compose:1.1.1' // build.gradle.kts with version catalogs: implementation(libs.constraintlayout.compose) # libs.versions.toml [versions] -constraintlayout-compose = "1.1.0" +constraintlayout-compose = "1.1.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -75,7 +75,7 @@ } ``` -1.1.0 is the version this documentation was generated from; +1.1.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.constraintlayout:constraintlayout-compose](androidx_constraintlayout_constraintlayout-compose.md.html). diff --git a/docs/checks/IncorrectMatchParentUsage.md.html b/docs/checks/IncorrectMatchParentUsage.md.html index ba6d3ec9..3991a428 100644 --- a/docs/checks/IncorrectMatchParentUsage.md.html +++ b/docs/checks/IncorrectMatchParentUsage.md.html @@ -52,17 +52,17 @@ ``` // build.gradle.kts -implementation("androidx.constraintlayout:constraintlayout-compose:1.1.0") +implementation("androidx.constraintlayout:constraintlayout-compose:1.1.1") // build.gradle -implementation 'androidx.constraintlayout:constraintlayout-compose:1.1.0' +implementation 'androidx.constraintlayout:constraintlayout-compose:1.1.1' // build.gradle.kts with version catalogs: implementation(libs.constraintlayout.compose) # libs.versions.toml [versions] -constraintlayout-compose = "1.1.0" +constraintlayout-compose = "1.1.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -74,7 +74,7 @@ } ``` -1.1.0 is the version this documentation was generated from; +1.1.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.constraintlayout:constraintlayout-compose](androidx_constraintlayout_constraintlayout-compose.md.html). diff --git a/docs/checks/IncorrectReferencesDeclaration.md.html b/docs/checks/IncorrectReferencesDeclaration.md.html index f3bf4da0..28ad1ced 100644 --- a/docs/checks/IncorrectReferencesDeclaration.md.html +++ b/docs/checks/IncorrectReferencesDeclaration.md.html @@ -115,17 +115,17 @@ ``` // build.gradle.kts -implementation("androidx.constraintlayout:constraintlayout-compose:1.1.0") +implementation("androidx.constraintlayout:constraintlayout-compose:1.1.1") // build.gradle -implementation 'androidx.constraintlayout:constraintlayout-compose:1.1.0' +implementation 'androidx.constraintlayout:constraintlayout-compose:1.1.1' // build.gradle.kts with version catalogs: implementation(libs.constraintlayout.compose) # libs.versions.toml [versions] -constraintlayout-compose = "1.1.0" +constraintlayout-compose = "1.1.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -137,7 +137,7 @@ } ``` -1.1.0 is the version this documentation was generated from; +1.1.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.constraintlayout:constraintlayout-compose](androidx_constraintlayout_constraintlayout-compose.md.html). diff --git a/docs/checks/InflationInItemDecoration.md.html b/docs/checks/InflationInItemDecoration.md.html index 44ef4163..ef12c0a8 100644 --- a/docs/checks/InflationInItemDecoration.md.html +++ b/docs/checks/InflationInItemDecoration.md.html @@ -53,17 +53,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -75,7 +75,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/InjectInJava.md.html b/docs/checks/InjectInJava.md.html index d37a8c10..3882a2ff 100644 --- a/docs/checks/InjectInJava.md.html +++ b/docs/checks/InjectInJava.md.html @@ -134,17 +134,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -156,7 +156,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/InstantApps.md.html b/docs/checks/InstantApps.md.html index 8169a2d7..c0308175 100644 --- a/docs/checks/InstantApps.md.html +++ b/docs/checks/InstantApps.md.html @@ -1,176 +1,8 @@ -(#) Instant App Issues +(#) InstantApps -!!! WARNING: Instant App Issues - This is a warning. - -Id -: `InstantApps` -Summary -: Instant App Issues -Severity -: Warning -Category -: Correctness -Platform -: Android -Vendor -: Android Open Source Project -Feedback -: https://issuetracker.google.com/issues/new?component=192708 -Since -: 3.0.0 (October 2017) -Affects -: Kotlin and Java files and manifest files -Editing -: This check runs on the fly in the IDE editor -Implementation -: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/InstantAppDetector.java) -Tests -: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/InstantAppDetectorTest.java) - -This issue flags code that will not work correctly in Instant Apps. - -(##) Example - -Here is an example of lint warnings produced by this check: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -src/main/AndroidManifest.xml:10:Warning: Instant Apps are not allowed to -export services, receivers, and providers [InstantApps] - <service android:name=".WearMessageListenerService"> - ^ -src/main/AndroidManifest.xml:15:Warning: Instant Apps are not allowed to -export services, receivers, and providers [InstantApps] - <provider android:name=".TestService" /> - ---------------------------------------- -src/main/AndroidManifest.xml:16:Warning: Instant Apps are not allowed to -export services, receivers, and providers [InstantApps] - <receiver android:name=".DeviceAdminTestReceiver" - ^ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Here is the source file referenced above: - -`src/main/AndroidManifest.xml`: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers -<?xml version="1.0" encoding="utf-8"?> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="test.pkg" > - <uses-sdk android:targetSdkVersion="23" /> - - <application - android:label="@string/app_name" - android:allowBackup="false" - android:theme="@style/AppTheme" > - <service android:name=".WearMessageListenerService"> - <intent-filter> - <action android:name="com.google.android.gms.wearable.BIND_LISTENER" /> - </intent-filter> - </service> - <provider android:name=".TestService" /> - <receiver android:name=".DeviceAdminTestReceiver" - android:label="@string/app_name" - android:description="@string/app_name" - android:permission="android.permission.BIND_DEVICE_ADMIN"> - <meta-data android:name="android.app.device_admin" - android:resource="@xml/device_admin"/> - <intent-filter> - <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/> - </intent-filter> - </receiver> - - </application> - -</manifest> -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You can also visit the -[source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/InstantAppDetectorTest.java) -for the unit tests for this check to see additional scenarios. - -The above example was automatically extracted from the first unit test -found for this lint check, `InstantAppDetector.testForbiddenManifestTags`. -To report a problem with this extracted sample, visit -https://issuetracker.google.com/issues/new?component=192708. - -(##) Suppressing - -You can suppress false positives using one of the following mechanisms: - -* Adding the suppression attribute `tools:ignore="InstantApps"` on the - problematic XML element (or one of its enclosing elements). You may - also need to add the following namespace declaration on the root - element in the XML file if it's not already there: - `xmlns:tools="http://schemas.android.com/tools"`. - - ```xml - <?xml version="1.0" encoding="UTF-8"?> - <manifest xmlns:tools="http://schemas.android.com/tools"> - ... - <provider tools:ignore="InstantApps" .../> - ... - </manifest> - ``` - -* Using a suppression annotation like this on the enclosing - element: - - ```kt - // Kotlin - @Suppress("InstantApps") - fun method() { - notify(...) - } - ``` - - or - - ```java - // Java - @SuppressWarnings("InstantApps") - void method() { - notify(...); - } - ``` - -* Using a suppression comment like this on the line above: - - ```kt - //noinspection InstantApps - problematicStatement() - ``` - -* Using a special `lint.xml` file in the source tree which turns off - the check in that folder and any sub folder. A simple file might look - like this: - ```xml - <?xml version="1.0" encoding="UTF-8"?> - <lint> - <issue id="InstantApps" severity="ignore" /> - </lint> - ``` - Instead of `ignore` you can also change the severity here, for - example from `error` to `warning`. You can find additional - documentation on how to filter issues by path, regular expression and - so on - [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). - -* In Gradle projects, using the DSL syntax to configure lint. For - example, you can use something like - ```gradle - lintOptions { - disable 'InstantApps' - } - ``` - In Android projects this should be nested inside an `android { }` - block. - -* For manual invocations of `lint`, using the `--ignore` flag: - ``` - $ lint --ignore InstantApps ...` - ``` - -* Last, but not least, using baselines, as discussed - [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). +The issue for this id has been deleted or marked obsolete and can now be +ignored. +(Additional metadata not available.) \ No newline at end of file diff --git a/docs/checks/IntentReset.md.html b/docs/checks/IntentReset.md.html index d2b67469..74c35927 100644 --- a/docs/checks/IntentReset.md.html +++ b/docs/checks/IntentReset.md.html @@ -38,11 +38,11 @@ Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -src/test/pkg/IntentTest.java:19:Warning: Calling setType after calling +src/test/pkg/IntentTest.java:18:Warning: Calling setType after calling setData will clear the data: Call setDataAndType instead? [IntentReset] intent.setType(type); // ERROR 1.1 ------------- -src/test/pkg/IntentTest.java:26:Warning: Calling setData after calling +src/test/pkg/IntentTest.java:25:Warning: Calling setData after calling setType will clear the type: Call setDataAndType instead? [IntentReset] intent.setData(uri); // ERROR 2.1 ------------ @@ -57,7 +57,6 @@ import android.content.Intent; import android.net.Uri; -@SuppressWarnings({"ClassNameDiffersFromFileName", "MethodMayBeStatic"}) public class IntentTest { public void test1() { // OK: Nulls are allowed diff --git a/docs/checks/InternalAgpApiUsage.md.html b/docs/checks/InternalAgpApiUsage.md.html index c24b5035..edb0f919 100644 --- a/docs/checks/InternalAgpApiUsage.md.html +++ b/docs/checks/InternalAgpApiUsage.md.html @@ -79,17 +79,17 @@ ``` // build.gradle.kts -implementation("androidx.lint:lint-gradle:1.0.0-alpha03") +implementation("androidx.lint:lint-gradle:1.0.0-alpha04") // build.gradle -implementation 'androidx.lint:lint-gradle:1.0.0-alpha03' +implementation 'androidx.lint:lint-gradle:1.0.0-alpha04' // build.gradle.kts with version catalogs: implementation(libs.lint.gradle) # libs.versions.toml [versions] -lint-gradle = "1.0.0-alpha03" +lint-gradle = "1.0.0-alpha04" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -101,7 +101,7 @@ } ``` -1.0.0-alpha03 is the version this documentation was generated from; +1.0.0-alpha04 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html). diff --git a/docs/checks/InternalGradleApiUsage.md.html b/docs/checks/InternalGradleApiUsage.md.html index 4e986f16..e5bf7e01 100644 --- a/docs/checks/InternalGradleApiUsage.md.html +++ b/docs/checks/InternalGradleApiUsage.md.html @@ -88,17 +88,17 @@ ``` // build.gradle.kts -implementation("androidx.lint:lint-gradle:1.0.0-alpha03") +implementation("androidx.lint:lint-gradle:1.0.0-alpha04") // build.gradle -implementation 'androidx.lint:lint-gradle:1.0.0-alpha03' +implementation 'androidx.lint:lint-gradle:1.0.0-alpha04' // build.gradle.kts with version catalogs: implementation(libs.lint.gradle) # libs.versions.toml [versions] -lint-gradle = "1.0.0-alpha03" +lint-gradle = "1.0.0-alpha04" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -110,7 +110,7 @@ } ``` -1.0.0-alpha03 is the version this documentation was generated from; +1.0.0-alpha04 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html). diff --git a/docs/checks/InvalidColorHexValue.md.html b/docs/checks/InvalidColorHexValue.md.html index 1c3be1dd..966632d9 100644 --- a/docs/checks/InvalidColorHexValue.md.html +++ b/docs/checks/InvalidColorHexValue.md.html @@ -94,17 +94,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-graphics-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-graphics-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-graphics-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-graphics-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.graphics.android) # libs.versions.toml [versions] -ui-graphics-android = "1.8.0-alpha07" +ui-graphics-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -116,11 +116,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-graphics-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-graphics-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-graphics-android](androidx_compose_ui_ui-graphics-android.md.html). diff --git a/docs/checks/InvalidFragmentVersionForActivityResult.md.html b/docs/checks/InvalidFragmentVersionForActivityResult.md.html index 2773d802..ee40536f 100644 --- a/docs/checks/InvalidFragmentVersionForActivityResult.md.html +++ b/docs/checks/InvalidFragmentVersionForActivityResult.md.html @@ -25,7 +25,7 @@ Min : Lint 8.0 and 8.1 Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.activity:activity](androidx_activity_activity.md.html) Since @@ -94,17 +94,17 @@ ``` // build.gradle.kts -implementation("androidx.activity:activity:1.10.0-rc01") +implementation("androidx.activity:activity:1.11.0-rc01") // build.gradle -implementation 'androidx.activity:activity:1.10.0-rc01' +implementation 'androidx.activity:activity:1.11.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.activity) # libs.versions.toml [versions] -activity = "1.10.0-rc01" +activity = "1.11.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -116,7 +116,7 @@ } ``` -1.10.0-rc01 is the version this documentation was generated from; +1.11.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.activity:activity](androidx_activity_activity.md.html). diff --git a/docs/checks/InvalidLanguageTagDelimiter.md.html b/docs/checks/InvalidLanguageTagDelimiter.md.html index f3131a8e..dd1461f8 100644 --- a/docs/checks/InvalidLanguageTagDelimiter.md.html +++ b/docs/checks/InvalidLanguageTagDelimiter.md.html @@ -21,7 +21,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=779818 Min -: Lint 8.7+ +: Lint 8.0 and 8.1 Compiled : Lint 8.7+ Artifact @@ -84,17 +84,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-text-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-text-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-text-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-text-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.text.android) # libs.versions.toml [versions] -ui-text-android = "1.8.0-alpha07" +ui-text-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -106,11 +106,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-text-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-text-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-text-android](androidx_compose_ui_ui-text-android.md.html). diff --git a/docs/checks/InvalidPeriodicWorkRequestInterval.md.html b/docs/checks/InvalidPeriodicWorkRequestInterval.md.html index 15909e1d..986cda09 100644 --- a/docs/checks/InvalidPeriodicWorkRequestInterval.md.html +++ b/docs/checks/InvalidPeriodicWorkRequestInterval.md.html @@ -98,17 +98,17 @@ ``` // build.gradle.kts -implementation("androidx.work:work-runtime:2.10.0") +implementation("androidx.work:work-runtime:2.10.1") // build.gradle -implementation 'androidx.work:work-runtime:2.10.0' +implementation 'androidx.work:work-runtime:2.10.1' // build.gradle.kts with version catalogs: implementation(libs.work.runtime) # libs.versions.toml [versions] -work-runtime = "2.10.0" +work-runtime = "2.10.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -120,7 +120,7 @@ } ``` -2.10.0 is the version this documentation was generated from; +2.10.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.work:work-runtime](androidx_work_work-runtime.md.html). diff --git a/docs/checks/InvalidSetHasFixedSize.md.html b/docs/checks/InvalidSetHasFixedSize.md.html index 901ca94e..61d7b0eb 100644 --- a/docs/checks/InvalidSetHasFixedSize.md.html +++ b/docs/checks/InvalidSetHasFixedSize.md.html @@ -111,17 +111,17 @@ ``` // build.gradle.kts -implementation("androidx.recyclerview:recyclerview:1.4.0-rc01") +implementation("androidx.recyclerview:recyclerview:1.4.0") // build.gradle -implementation 'androidx.recyclerview:recyclerview:1.4.0-rc01' +implementation 'androidx.recyclerview:recyclerview:1.4.0' // build.gradle.kts with version catalogs: implementation(libs.recyclerview) # libs.versions.toml [versions] -recyclerview = "1.4.0-rc01" +recyclerview = "1.4.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -133,7 +133,7 @@ } ``` -1.4.0-rc01 is the version this documentation was generated from; +1.4.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.recyclerview:recyclerview](androidx_recyclerview_recyclerview.md.html). diff --git a/docs/checks/InvalidSingleLineComment.md.html b/docs/checks/InvalidSingleLineComment.md.html index 93ff5d78..b0959813 100644 --- a/docs/checks/InvalidSingleLineComment.md.html +++ b/docs/checks/InvalidSingleLineComment.md.html @@ -29,7 +29,7 @@ Affects : Gradle build files and Kotlin and Java files Editing -: This check can *not* run live in the IDE editor +: This check runs on the fly in the IDE editor Implementation : [Source Code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/main/kotlin/com/vanniktech/lintrules/android/InvalidSingleLineCommentDetector.kt) Tests diff --git a/docs/checks/InvalidUseOfOnBackPressed.md.html b/docs/checks/InvalidUseOfOnBackPressed.md.html index 4625da27..01998e86 100644 --- a/docs/checks/InvalidUseOfOnBackPressed.md.html +++ b/docs/checks/InvalidUseOfOnBackPressed.md.html @@ -23,7 +23,7 @@ Min : Lint 8.0 and 8.1 Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.activity:activity](androidx_activity_activity.md.html) Since @@ -100,17 +100,17 @@ ``` // build.gradle.kts -implementation("androidx.activity:activity:1.10.0-rc01") +implementation("androidx.activity:activity:1.11.0-rc01") // build.gradle -implementation 'androidx.activity:activity:1.10.0-rc01' +implementation 'androidx.activity:activity:1.11.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.activity) # libs.versions.toml [versions] -activity = "1.10.0-rc01" +activity = "1.11.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -122,7 +122,7 @@ } ``` -1.10.0-rc01 is the version this documentation was generated from; +1.11.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.activity:activity](androidx_activity_activity.md.html). diff --git a/docs/checks/JavaOnlyDetector.md.html b/docs/checks/JavaOnlyDetector.md.html index 93aae845..48f8a0ea 100644 --- a/docs/checks/JavaOnlyDetector.md.html +++ b/docs/checks/JavaOnlyDetector.md.html @@ -99,17 +99,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -121,7 +121,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/JvmStaticProvidesInObjectDetector.md.html b/docs/checks/JvmStaticProvidesInObjectDetector.md.html index 577850ca..dbfcb5ec 100644 --- a/docs/checks/JvmStaticProvidesInObjectDetector.md.html +++ b/docs/checks/JvmStaticProvidesInObjectDetector.md.html @@ -23,7 +23,7 @@ Feedback : https://github.com/google/dagger/issues Min -: Lint 7.1 +: Lint 7.3 and 7.4 Compiled : Lint 7.1 Artifact @@ -194,17 +194,17 @@ ``` // build.gradle.kts -implementation("com.google.dagger:dagger-lint:2.55") +implementation("com.google.dagger:dagger-lint:2.56.2") // build.gradle -implementation 'com.google.dagger:dagger-lint:2.55' +implementation 'com.google.dagger:dagger-lint:2.56.2' // build.gradle.kts with version catalogs: implementation(libs.dagger.lint) # libs.versions.toml [versions] -dagger-lint = "2.55" +dagger-lint = "2.56.2" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -216,7 +216,7 @@ } ``` -2.55 is the version this documentation was generated from; +2.56.2 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.google.dagger:dagger-lint](com_google_dagger_dagger-lint.md.html). diff --git a/docs/checks/KotlinPairNotCreated.md.html b/docs/checks/KotlinPairNotCreated.md.html index c46de02e..df07a83b 100644 --- a/docs/checks/KotlinPairNotCreated.md.html +++ b/docs/checks/KotlinPairNotCreated.md.html @@ -94,17 +94,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -116,7 +116,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/KtxExtensionAvailable.md.html b/docs/checks/KtxExtensionAvailable.md.html index fb04edc9..38fd7336 100644 --- a/docs/checks/KtxExtensionAvailable.md.html +++ b/docs/checks/KtxExtensionAvailable.md.html @@ -2,7 +2,7 @@ (#) KTX Extension Available !!! Tip: KTX Extension Available - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `KtxExtensionAvailable` diff --git a/docs/checks/LaunchDuringComposition.md.html b/docs/checks/LaunchDuringComposition.md.html index 003095cf..35a257a5 100644 --- a/docs/checks/LaunchDuringComposition.md.html +++ b/docs/checks/LaunchDuringComposition.md.html @@ -23,7 +23,7 @@ Min : Lint 8.0 and 8.1 Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.activity:activity-compose](androidx_activity_activity-compose.md.html) Since @@ -148,17 +148,17 @@ ``` // build.gradle.kts -implementation("androidx.activity:activity-compose:1.10.0-rc01") +implementation("androidx.activity:activity-compose:1.11.0-rc01") // build.gradle -implementation 'androidx.activity:activity-compose:1.10.0-rc01' +implementation 'androidx.activity:activity-compose:1.11.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.activity.compose) # libs.versions.toml [versions] -activity-compose = "1.10.0-rc01" +activity-compose = "1.11.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -170,7 +170,7 @@ } ``` -1.10.0-rc01 is the version this documentation was generated from; +1.11.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.activity:activity-compose](androidx_activity_activity-compose.md.html). diff --git a/docs/checks/LifecycleCurrentStateInComposition.md.html b/docs/checks/LifecycleCurrentStateInComposition.md.html new file mode 100644 index 00000000..c603d657 --- /dev/null +++ b/docs/checks/LifecycleCurrentStateInComposition.md.html @@ -0,0 +1,249 @@ + +(#) Lifecycle.currentState should not be called within composition + +!!! ERROR: Lifecycle.currentState should not be called within composition + This is an error. + +Id +: `LifecycleCurrentStateInComposition` +Summary +: Lifecycle.currentState should not be called within composition +Severity +: Error +Category +: Correctness +Platform +: Any +Vendor +: Android Open Source Project +Identifier +: androidx.lifecycle +Feedback +: https://issuetracker.google.com/issues/new?component=413132 +Min +: Lint 8.0 and 8.1 +Compiled +: Lint 8.7+ +Artifact +: [androidx.lifecycle:lifecycle-runtime-compose-android](androidx_lifecycle_lifecycle-runtime-compose-android.md.html) +Since +: 2.9.0-alpha10 +Affects +: Kotlin and Java files and test sources +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-runtime-compose-lint/src/main/java/androidx/lifecycle/runtime/compose/lint/ComposableLifecycleCurrentStateDetector.kt) +Tests +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-runtime-compose-lint/src/test/java/androidx/lifecycle/runtime/compose/lint/ComposableLifecycleCurrentStateDetectorTest.kt) +Copyright Year +: 2025 + +Calling Lifecycle.currentState within composition will not observe +changes to the Lifecycle, so changes might not be reflected within the +composition. Instead you should use lifecycle.currentStateAsState() to +observe changes to the Lifecycle, and recompose when it changes. + +!!! Tip + This lint check has an associated quickfix available in the IDE. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/androidx/lifecycle/foo/test.kt:12:Error: Lifecycle.currentState +should not be called within composition +[LifecycleCurrentStateInComposition] + lifecycle.currentState + ------------ +src/androidx/lifecycle/foo/test.kt:16:Error: Lifecycle.currentState +should not be called within composition +[LifecycleCurrentStateInComposition] + lifecycle.currentState + ------------ +src/androidx/lifecycle/foo/test.kt:20:Error: Lifecycle.currentState +should not be called within composition +[LifecycleCurrentStateInComposition] + lifecycle.currentState + ------------ +src/androidx/lifecycle/foo/test.kt:29:Error: Lifecycle.currentState +should not be called within composition +[LifecycleCurrentStateInComposition] + lifecycle.currentState + ------------ +src/androidx/lifecycle/foo/test.kt:32:Error: Lifecycle.currentState +should not be called within composition +[LifecycleCurrentStateInComposition] + lifecycle.currentState + ------------ +src/androidx/lifecycle/foo/test.kt:38:Error: Lifecycle.currentState +should not be called within composition +[LifecycleCurrentStateInComposition] + lifecycle.currentState + ------------ +src/androidx/lifecycle/foo/test.kt:42:Error: Lifecycle.currentState +should not be called within composition +[LifecycleCurrentStateInComposition] + lifecycle.currentState + ------------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`src/androidx/lifecycle/foo/test.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +package androidx.lifecycle.foo + +import androidx.compose.runtime.Composable +import androidx.lifecycle.Lifecycle + +val lifecycle: Lifecycle = object : Lifecycle() { + override val currentState get() = Lifecycle.State.CREATED +} + +@Composable +fun Test() { + lifecycle.currentState +} + +val lambda = @Composable { + lifecycle.currentState +} + +val lambda2: @Composable () -> Unit = { + lifecycle.currentState +} + +@Composable +fun LambdaParameter(content: @Composable () -> Unit) {} + +@Composable +fun Test2() { + LambdaParameter(content = { + lifecycle.currentState + }) + LambdaParameter { + lifecycle.currentState + } +} + +fun test3() { + val localLambda1 = @Composable { + lifecycle.currentState + } + + val localLambda2: @Composable () -> Unit = { + lifecycle.currentState + } +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-runtime-compose-lint/src/test/java/androidx/lifecycle/runtime/compose/lint/ComposableLifecycleCurrentStateDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +The above example was automatically extracted from the first unit test +found for this lint check, `ComposableLifecycleCurrentStateDetector.errors`. +To report a problem with this extracted sample, visit +https://issuetracker.google.com/issues/new?component=413132. + +(##) Including + +!!! + This is not a built-in check. To include it, add the below dependency + to your project. + +``` +// build.gradle.kts +implementation("androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-rc01") + +// build.gradle +implementation 'androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-rc01' + +// build.gradle.kts with version catalogs: +implementation(libs.lifecycle.runtime.compose.android) + +# libs.versions.toml +[versions] +lifecycle-runtime-compose-android = "2.9.0-rc01" +[libraries] +# For clarity and text wrapping purposes the following declaration is +# shown split up across lines, but in TOML it needs to be on a single +# line (see https://github.com/toml-lang/toml/issues/516) so adjust +# when pasting into libs.versions.toml: +lifecycle-runtime-compose-android = { + module = "androidx.lifecycle:lifecycle-runtime-compose-android", + version.ref = "lifecycle-runtime-compose-android" +} +``` + +2.9.0-rc01 is the version this documentation was generated from; +there may be newer versions available. + +[Additional details about androidx.lifecycle:lifecycle-runtime-compose-android](androidx_lifecycle_lifecycle-runtime-compose-android.md.html). +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("LifecycleCurrentStateInComposition") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("LifecycleCurrentStateInComposition") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection LifecycleCurrentStateInComposition + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="LifecycleCurrentStateInComposition" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'LifecycleCurrentStateInComposition' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore LifecycleCurrentStateInComposition ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/LocalContextConfigurationRead.md.html b/docs/checks/LocalContextConfigurationRead.md.html new file mode 100644 index 00000000..a468bf2e --- /dev/null +++ b/docs/checks/LocalContextConfigurationRead.md.html @@ -0,0 +1,194 @@ + +(#) Reading Configuration using LocalContext.current.resources.configuration + +!!! ERROR: Reading Configuration using LocalContext.current.resources.configuration + This is an error. + +Id +: `LocalContextConfigurationRead` +Summary +: Reading Configuration using LocalContext.current.resources.configuration +Severity +: Error +Category +: Correctness +Platform +: Any +Vendor +: Jetpack Compose +Identifier +: androidx.compose.ui +Feedback +: https://issuetracker.google.com/issues/new?component=612128 +Min +: Lint 8.7+ +Compiled +: Lint 8.7+ +Artifact +: [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) +Since +: 1.8.0 +Affects +: Kotlin and Java files and test sources +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/LocalContextResourcesConfigurationReadDetector.kt) +Tests +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/LocalContextResourcesConfigurationReadDetectorTest.kt) +Copyright Year +: 2024 + +Changes to the Configuration object will not cause LocalContext reads to +be invalidated, so you may end up with stale values when the +Configuration changes. Instead, use LocalConfiguration.current to +retrieve the Configuration - this will recompose callers when the +Configuration object changes. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/test/test.kt:11:Error: Reading Configuration using +LocalContext.current.resources.configuration +[LocalContextConfigurationRead] + LocalContext.current.resources.configuration + -------------------------------------------- +src/test/test.kt:12:Error: Reading Configuration using +LocalContext.current.resources.configuration +[LocalContextConfigurationRead] + LocalContext.current.getResources().getConfiguration() + ------------------------------------------------------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`src/test/test.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +package test + +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext + +@Composable +fun Test() { + LocalContext.current.resources + LocalContext.current.getResources() + LocalContext.current.resources.configuration + LocalContext.current.getResources().getConfiguration() +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/LocalContextResourcesConfigurationReadDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +The above example was automatically extracted from the first unit test +found for this lint check, `LocalContextResourcesConfigurationReadDetector.error`. +To report a problem with this extracted sample, visit +https://issuetracker.google.com/issues/new?component=612128. + +(##) Including + +!!! + This is not a built-in check. To include it, add the below dependency + to your project. + +``` +// build.gradle.kts +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") + +// build.gradle +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' + +// build.gradle.kts with version catalogs: +implementation(libs.ui.android) + +# libs.versions.toml +[versions] +ui-android = "1.9.0-alpha01" +[libraries] +# For clarity and text wrapping purposes the following declaration is +# shown split up across lines, but in TOML it needs to be on a single +# line (see https://github.com/toml-lang/toml/issues/516) so adjust +# when pasting into libs.versions.toml: +ui-android = { + module = "androidx.compose.ui:ui-android", + version.ref = "ui-android" +} +``` + +1.9.0-alpha01 is the version this documentation was generated from; +there may be newer versions available. + +NOTE: These lint checks are **also** made available separate from the main library. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. + + +[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("LocalContextConfigurationRead") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("LocalContextConfigurationRead") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection LocalContextConfigurationRead + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="LocalContextConfigurationRead" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'LocalContextConfigurationRead' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore LocalContextConfigurationRead ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/LocalContextResourcesRead.md.html b/docs/checks/LocalContextResourcesRead.md.html new file mode 100644 index 00000000..50fd1fe5 --- /dev/null +++ b/docs/checks/LocalContextResourcesRead.md.html @@ -0,0 +1,193 @@ + +(#) Reading Resources using LocalContext.current.resources + +!!! WARNING: Reading Resources using LocalContext.current.resources + This is a warning. + +Id +: `LocalContextResourcesRead` +Summary +: Reading Resources using LocalContext.current.resources +Severity +: Warning +Category +: Correctness +Platform +: Any +Vendor +: Jetpack Compose +Identifier +: androidx.compose.ui +Feedback +: https://issuetracker.google.com/issues/new?component=612128 +Min +: Lint 8.7+ +Compiled +: Lint 8.7+ +Artifact +: [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) +Since +: 1.9.0-alpha01 +Affects +: Kotlin and Java files and test sources +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/LocalContextResourcesConfigurationReadDetector.kt) +Tests +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/LocalContextResourcesConfigurationReadDetectorTest.kt) +Copyright Year +: 2024 + +Changes to the Configuration object will not cause +LocalContext.current.resources reads to be invalidated, so calls to APIs +suchas Resources.getString() will not be updated when the Configuration +changes. Instead, use LocalResources.current to retrieve the Resources - +this will invalidate callers when the Configuration changes, to ensure +that these calls reflect the latest values. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/test/test.kt:9:Warning: Reading Resources using +LocalContext.current.resources [LocalContextResourcesRead] + LocalContext.current.resources + ------------------------------ +src/test/test.kt:10:Warning: Reading Resources using +LocalContext.current.resources [LocalContextResourcesRead] + LocalContext.current.getResources() + ----------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`src/test/test.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +package test + +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext + +@Composable +fun Test() { + LocalContext.current.resources + LocalContext.current.getResources() + LocalContext.current.resources.configuration + LocalContext.current.getResources().getConfiguration() +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/LocalContextResourcesConfigurationReadDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +The above example was automatically extracted from the first unit test +found for this lint check, `LocalContextResourcesConfigurationReadDetector.error`. +To report a problem with this extracted sample, visit +https://issuetracker.google.com/issues/new?component=612128. + +(##) Including + +!!! + This is not a built-in check. To include it, add the below dependency + to your project. + +``` +// build.gradle.kts +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") + +// build.gradle +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' + +// build.gradle.kts with version catalogs: +implementation(libs.ui.android) + +# libs.versions.toml +[versions] +ui-android = "1.9.0-alpha01" +[libraries] +# For clarity and text wrapping purposes the following declaration is +# shown split up across lines, but in TOML it needs to be on a single +# line (see https://github.com/toml-lang/toml/issues/516) so adjust +# when pasting into libs.versions.toml: +ui-android = { + module = "androidx.compose.ui:ui-android", + version.ref = "ui-android" +} +``` + +1.9.0-alpha01 is the version this documentation was generated from; +there may be newer versions available. + +NOTE: These lint checks are **also** made available separate from the main library. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. + + +[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("LocalContextResourcesRead") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("LocalContextResourcesRead") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection LocalContextResourcesRead + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="LocalContextResourcesRead" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'LocalContextResourcesRead' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore LocalContextResourcesRead ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/MainScopeUsage.md.html b/docs/checks/MainScopeUsage.md.html index a83f64f1..8b04087c 100644 --- a/docs/checks/MainScopeUsage.md.html +++ b/docs/checks/MainScopeUsage.md.html @@ -88,17 +88,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -110,7 +110,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MemberExtensionConflict.md.html b/docs/checks/MemberExtensionConflict.md.html new file mode 100644 index 00000000..d140606c --- /dev/null +++ b/docs/checks/MemberExtensionConflict.md.html @@ -0,0 +1,175 @@ + +(#) Conflict applicable candidates of member and extension + +!!! WARNING: Conflict applicable candidates of member and extension + This is a warning. + +Id +: `MemberExtensionConflict` +Summary +: Conflict applicable candidates of member and extension +Note +: **This issue is disabled by default**; use `--enable MemberExtensionConflict` +Severity +: Warning +Category +: Correctness +Platform +: Any +Vendor +: Android Open Source Project +Feedback +: https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.11.0-alpha03 (March 2025) +Affects +: Kotlin and Java files +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/MemberExtensionConflictDetector.kt) +Tests +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/MemberExtensionConflictDetectorTest.kt) + +When both member and extension declarations are applicable, the +resolution takes the member. This also implies that, if an extension +existed first, but then a member is added later, the same call-site may +end up with different call resolutions depending on target environment. +This results in a potential runtime exception if the generated binary +(library or app) targets earlier environment (i.e., without the new +member, but only extension). More concrete example is found at: +https://issuetracker.google.com/issues/350432371 + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/ListWrapper.kt:10:Warning: `magicCount` is defined both as a member +in class `ListWrapper` and an extension in package `users.own`. The +defined behavior for this is to use the member, but since the extension +is explicitly imported into this file, there's a chance that this was +not expected. (One common way this happens is for members to be added to +a class after code was already written to use an extension). +[MemberExtensionConflict] + val x = l.magicCount // WARNING 1 + ---------- +src/ListWrapper.kt:11:Warning: `removeMiddle` is defined both as a +member in class `ListWrapper` and an extension in package `users.own`. +The defined behavior for this is to use the member, but since the +extension is explicitly imported into this file, there's a chance that +this was not expected. (One common way this happens is for members to be +added to a class after code was already written to use an extension). +[MemberExtensionConflict] + l.removeMiddle() // WARNING 2 + ---------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here are the relevant source files: + +`src/my/cool/lib/MyList.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +package my.cool.lib +interface MyList { + val magicCount: Int + fun removeMiddle() +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`src/users/own/test.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +package users.own + +import my.cool.lib.MyList + +val MyList.magicCount: Int + get() = 42 + +fun MyList.removeMiddle() {} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`src/ListWrapper.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +import my.cool.lib.MyList +import users.own.magicCount +import users.own.removeMiddle + +class ListWrapper( + private val base: MyList +) : MyList by base + +fun test(l : ListWrapper) { + val x = l.magicCount // WARNING 1 + l.removeMiddle() // WARNING 2 +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/MemberExtensionConflictDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("MemberExtensionConflict") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("MemberExtensionConflict") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection MemberExtensionConflict + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="MemberExtensionConflict" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'MemberExtensionConflict' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore MemberExtensionConflict ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/MinSdkTooLow.md.html b/docs/checks/MinSdkTooLow.md.html index 2de3737a..b2934a13 100644 --- a/docs/checks/MinSdkTooLow.md.html +++ b/docs/checks/MinSdkTooLow.md.html @@ -23,7 +23,7 @@ Since : 3.0.0 (October 2017) Affects -: Gradle build files +: Gradle build files and TOML files Editing : This check runs on the fly in the IDE editor Implementation @@ -42,44 +42,61 @@ Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -build.gradle:8:Warning: The value of minSdkVersion is too low. It can be -incremented without noticeably reducing the number of supported devices. -[MinSdkTooLow] - minSdkVersion 7 - --------------- -build.gradle:9:Warning: The value of minSdkVersion is too low. It can be -incremented without noticeably reducing the number of supported devices. -[MinSdkTooLow] - minSdk 7 - -------- +build.gradle.kts:5:Warning: The value of minSdkVersion (15) is too low. +It can be incremented without noticeably reducing the number of +supported devices. [MinSdkTooLow] + minSdk = libs.versions.keys.msv.get().toInt() // ERROR 14 + --------------------------------------------- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Here is the source file referenced above: - -`build.gradle`: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers -apply plugin: 'com.android.application' +Here are the relevant source files: +`build.gradle.kts`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers android { - compileSdkVersion 19 - buildToolsVersion "19.0.0" - + compileSdk = libs.versions.compile.sdk.version.get().toInt() // ERROR 12 + compileSdk = libs.versions.keys.csv.get().toInt() // ERROR 13 defaultConfig { - minSdkVersion 7 - minSdk 7 - targetSdkVersion 19 - versionCode 1 - versionName "1.0" + minSdk = libs.versions.keys.msv.get().toInt() // ERROR 14 + targetSdk = libs.versions.keys.tsv.get().toInt() // ERROR 15 } } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +`../gradle/libs.versions.toml`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~toml linenumbers +[versions] +compile_sdk_version = "34" # ERROR 1 +min_sdk_version = "15" # ERROR 2 +target_sdk_version = "34" # ERROR 3 + +compileSdkVersion = "34" # ERROR 4 +minSdkVersion = "15" # ERROR 5 +targetSdkVersion = "34" # ERROR 6 + +compileSdk = "34" # ERROR 7 +minSdk = "15" # ERROR 8 +targetSdk = "34" # ERROR 9 + +# https://github.com/Kotlin/multiplatform-library-template/blob/main/gradle/libs.versions.toml +android-minSdk = "15" # ERROR 10 +android-compileSdk = "34" # ERROR 11 + +# Unusual keys, referenced via KTS +keys-csv = "34" # ERROR 12 +keys-msv = "15" # ERROR 13 +keys-tsv = "34" # ERROR 14 + +javaCompileSdk = "17" # OK 1 +other-compileSdk = "15" # OK 2 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + You can also visit the [source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/GradleDetectorTest.kt) for the unit tests for this check to see additional scenarios. The above example was automatically extracted from the first unit test -found for this lint check, `GradleDetector.testMinSdkVersion`. +found for this lint check, `GradleDetector.testCompileSdkViaVersionCatalog`. To report a problem with this extracted sample, visit https://issuetracker.google.com/issues/new?component=192708. diff --git a/docs/checks/MissingColorAlphaChannel.md.html b/docs/checks/MissingColorAlphaChannel.md.html index cf83811b..42671e8d 100644 --- a/docs/checks/MissingColorAlphaChannel.md.html +++ b/docs/checks/MissingColorAlphaChannel.md.html @@ -110,17 +110,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-graphics-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-graphics-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-graphics-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-graphics-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.graphics.android) # libs.versions.toml [versions] -ui-graphics-android = "1.8.0-alpha07" +ui-graphics-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -132,11 +132,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-graphics-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-graphics-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-graphics-android](androidx_compose_ui_ui-graphics-android.md.html). diff --git a/docs/checks/MissingKeepAnnotation-2.md.html b/docs/checks/MissingKeepAnnotation-2.md.html index 3d4ead5d..098b3403 100644 --- a/docs/checks/MissingKeepAnnotation-2.md.html +++ b/docs/checks/MissingKeepAnnotation-2.md.html @@ -15,17 +15,15 @@ Platform : Any Vendor -: Android Open Source Project +: Jetpack Navigation Compose Identifier -: androidx.navigation.runtime -Feedback -: https://issuetracker.google.com/issues/new?component=409828 +: androidx.navigation.compose Min : Lint 8.0 and 8.1 Compiled : Lint 8.7+ Artifact -: [androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html) +: [androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html) Since : 2.8.3 Affects @@ -33,7 +31,7 @@ Editing : This check runs on the fly in the IDE editor Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/TypeSafeDestinationMissingAnnotationDetector.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt) Copyright Year : 2024 @@ -46,8 +44,8 @@ id's must be unique, so you cannot combine these libraries. Also defined in: * MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep (this issue) -* [MissingKeepAnnotation from androidx.navigation:navigation-compose:2.9.0-alpha04](MissingKeepAnnotation.md.html) -* [MissingKeepAnnotation from androidx.navigation:navigation-common:2.9.0-alpha04](MissingKeepAnnotation-3.md.html) +* [MissingKeepAnnotation from androidx.navigation:navigation-common:2.9.0-rc01](MissingKeepAnnotation.md.html) +* [MissingKeepAnnotation from androidx.navigation:navigation-runtime:2.9.0-rc01](MissingKeepAnnotation-3.md.html) (##) Including @@ -58,32 +56,32 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-runtime:2.9.0-alpha04") +implementation("androidx.navigation:navigation-compose:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-runtime:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-compose:2.9.0-rc01' // build.gradle.kts with version catalogs: -implementation(libs.navigation.runtime) +implementation(libs.navigation.compose) # libs.versions.toml [versions] -navigation-runtime = "2.9.0-alpha04" +navigation-compose = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single # line (see https://github.com/toml-lang/toml/issues/516) so adjust # when pasting into libs.versions.toml: -navigation-runtime = { - module = "androidx.navigation:navigation-runtime", - version.ref = "navigation-runtime" +navigation-compose = { + module = "androidx.navigation:navigation-compose", + version.ref = "navigation-compose" } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. -[Additional details about androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html). +[Additional details about androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html). (##) Suppressing You can suppress false positives using one of the following mechanisms: @@ -95,7 +93,7 @@ // Kotlin @Suppress("MissingKeepAnnotation") fun method() { - activity(...) + composable(...) } ``` @@ -105,7 +103,7 @@ // Java @SuppressWarnings("MissingKeepAnnotation") void method() { - activity(...); + composable(...); } ``` diff --git a/docs/checks/MissingKeepAnnotation-3.md.html b/docs/checks/MissingKeepAnnotation-3.md.html index b2b10209..7d3ae75f 100644 --- a/docs/checks/MissingKeepAnnotation-3.md.html +++ b/docs/checks/MissingKeepAnnotation-3.md.html @@ -17,7 +17,7 @@ Vendor : Android Open Source Project Identifier -: androidx.navigation.common +: androidx.navigation.runtime Feedback : https://issuetracker.google.com/issues/new?component=409828 Min @@ -25,7 +25,7 @@ Compiled : Lint 8.7+ Artifact -: [androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html) +: [androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html) Since : 2.8.3 Affects @@ -33,7 +33,7 @@ Editing : This check runs on the fly in the IDE editor Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/TypeSafeDestinationMissingAnnotationDetector.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt) Copyright Year : 2024 @@ -46,8 +46,8 @@ id's must be unique, so you cannot combine these libraries. Also defined in: * MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep (this issue) -* [MissingKeepAnnotation from androidx.navigation:navigation-compose:2.9.0-alpha04](MissingKeepAnnotation.md.html) -* [MissingKeepAnnotation from androidx.navigation:navigation-runtime:2.9.0-alpha04](MissingKeepAnnotation-2.md.html) +* [MissingKeepAnnotation from androidx.navigation:navigation-common:2.9.0-rc01](MissingKeepAnnotation.md.html) +* [MissingKeepAnnotation from androidx.navigation:navigation-compose:2.9.0-rc01](MissingKeepAnnotation-2.md.html) (##) Including @@ -58,32 +58,32 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-common:2.9.0-alpha04") +implementation("androidx.navigation:navigation-runtime:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-common:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01' // build.gradle.kts with version catalogs: -implementation(libs.navigation.common) +implementation(libs.navigation.runtime) # libs.versions.toml [versions] -navigation-common = "2.9.0-alpha04" +navigation-runtime = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single # line (see https://github.com/toml-lang/toml/issues/516) so adjust # when pasting into libs.versions.toml: -navigation-common = { - module = "androidx.navigation:navigation-common", - version.ref = "navigation-common" +navigation-runtime = { + module = "androidx.navigation:navigation-runtime", + version.ref = "navigation-runtime" } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. -[Additional details about androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html). +[Additional details about androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html). (##) Suppressing You can suppress false positives using one of the following mechanisms: @@ -95,7 +95,7 @@ // Kotlin @Suppress("MissingKeepAnnotation") fun method() { - navigation(...) + activity(...) } ``` @@ -105,7 +105,7 @@ // Java @SuppressWarnings("MissingKeepAnnotation") void method() { - navigation(...); + activity(...); } ``` diff --git a/docs/checks/MissingKeepAnnotation.md.html b/docs/checks/MissingKeepAnnotation.md.html index ba0d4e5a..051629bf 100644 --- a/docs/checks/MissingKeepAnnotation.md.html +++ b/docs/checks/MissingKeepAnnotation.md.html @@ -15,15 +15,17 @@ Platform : Any Vendor -: Jetpack Navigation Compose +: Android Open Source Project Identifier -: androidx.navigation.compose +: androidx.navigation.common +Feedback +: https://issuetracker.google.com/issues/new?component=409828 Min : Lint 8.0 and 8.1 Compiled : Lint 8.7+ Artifact -: [androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html) +: [androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html) Since : 2.8.3 Affects @@ -31,7 +33,7 @@ Editing : This check runs on the fly in the IDE editor Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/TypeSafeDestinationMissingAnnotationDetector.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt) Copyright Year : 2024 @@ -44,8 +46,8 @@ id's must be unique, so you cannot combine these libraries. Also defined in: * MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep (this issue) -* [MissingKeepAnnotation from androidx.navigation:navigation-runtime:2.9.0-alpha04](MissingKeepAnnotation-2.md.html) -* [MissingKeepAnnotation from androidx.navigation:navigation-common:2.9.0-alpha04](MissingKeepAnnotation-3.md.html) +* [MissingKeepAnnotation from androidx.navigation:navigation-compose:2.9.0-rc01](MissingKeepAnnotation-2.md.html) +* [MissingKeepAnnotation from androidx.navigation:navigation-runtime:2.9.0-rc01](MissingKeepAnnotation-3.md.html) (##) Including @@ -56,32 +58,32 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-compose:2.9.0-alpha04") +implementation("androidx.navigation:navigation-common:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-compose:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-common:2.9.0-rc01' // build.gradle.kts with version catalogs: -implementation(libs.navigation.compose) +implementation(libs.navigation.common) # libs.versions.toml [versions] -navigation-compose = "2.9.0-alpha04" +navigation-common = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single # line (see https://github.com/toml-lang/toml/issues/516) so adjust # when pasting into libs.versions.toml: -navigation-compose = { - module = "androidx.navigation:navigation-compose", - version.ref = "navigation-compose" +navigation-common = { + module = "androidx.navigation:navigation-common", + version.ref = "navigation-common" } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. -[Additional details about androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html). +[Additional details about androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html). (##) Suppressing You can suppress false positives using one of the following mechanisms: @@ -93,7 +95,7 @@ // Kotlin @Suppress("MissingKeepAnnotation") fun method() { - composable(...) + navigation(...) } ``` @@ -103,7 +105,7 @@ // Java @SuppressWarnings("MissingKeepAnnotation") void method() { - composable(...); + navigation(...); } ``` diff --git a/docs/checks/MissingResourceImportAlias.md.html b/docs/checks/MissingResourceImportAlias.md.html index 29f9693f..8bf67c9e 100644 --- a/docs/checks/MissingResourceImportAlias.md.html +++ b/docs/checks/MissingResourceImportAlias.md.html @@ -107,17 +107,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -129,7 +129,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MissingResourcesProperties.md.html b/docs/checks/MissingResourcesProperties.md.html index d0740b42..2108e532 100644 --- a/docs/checks/MissingResourcesProperties.md.html +++ b/docs/checks/MissingResourcesProperties.md.html @@ -19,7 +19,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=192708 Since -: 8.9.0-alpha06 (December 2024) +: 8.9.0 (March 2025) Affects : Gradle build files Editing diff --git a/docs/checks/MissingSerializableAnnotation-2.md.html b/docs/checks/MissingSerializableAnnotation-2.md.html index 3c5cf66c..ad5ad41a 100644 --- a/docs/checks/MissingSerializableAnnotation-2.md.html +++ b/docs/checks/MissingSerializableAnnotation-2.md.html @@ -15,17 +15,15 @@ Platform : Any Vendor -: Android Open Source Project +: Jetpack Navigation Compose Identifier -: androidx.navigation.runtime -Feedback -: https://issuetracker.google.com/issues/new?component=409828 +: androidx.navigation.compose Min : Lint 8.0 and 8.1 Compiled : Lint 8.7+ Artifact -: [androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html) +: [androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html) Since : 2.8.3 Affects @@ -33,7 +31,7 @@ Editing : This check runs on the fly in the IDE editor Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/TypeSafeDestinationMissingAnnotationDetector.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt) Copyright Year : 2024 @@ -47,8 +45,8 @@ id's must be unique, so you cannot combine these libraries. Also defined in: * MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable (this issue) -* [MissingSerializableAnnotation from androidx.navigation:navigation-compose:2.9.0-alpha04](MissingSerializableAnnotation.md.html) -* [MissingSerializableAnnotation from androidx.navigation:navigation-common:2.9.0-alpha04](MissingSerializableAnnotation-3.md.html) +* [MissingSerializableAnnotation from androidx.navigation:navigation-common:2.9.0-rc01](MissingSerializableAnnotation.md.html) +* [MissingSerializableAnnotation from androidx.navigation:navigation-runtime:2.9.0-rc01](MissingSerializableAnnotation-3.md.html) (##) Including @@ -59,32 +57,32 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-runtime:2.9.0-alpha04") +implementation("androidx.navigation:navigation-compose:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-runtime:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-compose:2.9.0-rc01' // build.gradle.kts with version catalogs: -implementation(libs.navigation.runtime) +implementation(libs.navigation.compose) # libs.versions.toml [versions] -navigation-runtime = "2.9.0-alpha04" +navigation-compose = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single # line (see https://github.com/toml-lang/toml/issues/516) so adjust # when pasting into libs.versions.toml: -navigation-runtime = { - module = "androidx.navigation:navigation-runtime", - version.ref = "navigation-runtime" +navigation-compose = { + module = "androidx.navigation:navigation-compose", + version.ref = "navigation-compose" } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. -[Additional details about androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html). +[Additional details about androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html). (##) Suppressing You can suppress false positives using one of the following mechanisms: @@ -96,7 +94,7 @@ // Kotlin @Suppress("MissingSerializableAnnotation") fun method() { - activity(...) + composable(...) } ``` @@ -106,7 +104,7 @@ // Java @SuppressWarnings("MissingSerializableAnnotation") void method() { - activity(...); + composable(...); } ``` diff --git a/docs/checks/MissingSerializableAnnotation-3.md.html b/docs/checks/MissingSerializableAnnotation-3.md.html index 2795af37..1d0e458c 100644 --- a/docs/checks/MissingSerializableAnnotation-3.md.html +++ b/docs/checks/MissingSerializableAnnotation-3.md.html @@ -17,7 +17,7 @@ Vendor : Android Open Source Project Identifier -: androidx.navigation.common +: androidx.navigation.runtime Feedback : https://issuetracker.google.com/issues/new?component=409828 Min @@ -25,7 +25,7 @@ Compiled : Lint 8.7+ Artifact -: [androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html) +: [androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html) Since : 2.8.3 Affects @@ -33,7 +33,7 @@ Editing : This check runs on the fly in the IDE editor Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/TypeSafeDestinationMissingAnnotationDetector.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt) Copyright Year : 2024 @@ -47,8 +47,8 @@ id's must be unique, so you cannot combine these libraries. Also defined in: * MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable (this issue) -* [MissingSerializableAnnotation from androidx.navigation:navigation-compose:2.9.0-alpha04](MissingSerializableAnnotation.md.html) -* [MissingSerializableAnnotation from androidx.navigation:navigation-runtime:2.9.0-alpha04](MissingSerializableAnnotation-2.md.html) +* [MissingSerializableAnnotation from androidx.navigation:navigation-common:2.9.0-rc01](MissingSerializableAnnotation.md.html) +* [MissingSerializableAnnotation from androidx.navigation:navigation-compose:2.9.0-rc01](MissingSerializableAnnotation-2.md.html) (##) Including @@ -59,32 +59,32 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-common:2.9.0-alpha04") +implementation("androidx.navigation:navigation-runtime:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-common:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01' // build.gradle.kts with version catalogs: -implementation(libs.navigation.common) +implementation(libs.navigation.runtime) # libs.versions.toml [versions] -navigation-common = "2.9.0-alpha04" +navigation-runtime = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single # line (see https://github.com/toml-lang/toml/issues/516) so adjust # when pasting into libs.versions.toml: -navigation-common = { - module = "androidx.navigation:navigation-common", - version.ref = "navigation-common" +navigation-runtime = { + module = "androidx.navigation:navigation-runtime", + version.ref = "navigation-runtime" } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. -[Additional details about androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html). +[Additional details about androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html). (##) Suppressing You can suppress false positives using one of the following mechanisms: @@ -96,7 +96,7 @@ // Kotlin @Suppress("MissingSerializableAnnotation") fun method() { - navigation(...) + activity(...) } ``` @@ -106,7 +106,7 @@ // Java @SuppressWarnings("MissingSerializableAnnotation") void method() { - navigation(...); + activity(...); } ``` diff --git a/docs/checks/MissingSerializableAnnotation.md.html b/docs/checks/MissingSerializableAnnotation.md.html index 8bd73628..41946204 100644 --- a/docs/checks/MissingSerializableAnnotation.md.html +++ b/docs/checks/MissingSerializableAnnotation.md.html @@ -15,15 +15,17 @@ Platform : Any Vendor -: Jetpack Navigation Compose +: Android Open Source Project Identifier -: androidx.navigation.compose +: androidx.navigation.common +Feedback +: https://issuetracker.google.com/issues/new?component=409828 Min : Lint 8.0 and 8.1 Compiled : Lint 8.7+ Artifact -: [androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html) +: [androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html) Since : 2.8.3 Affects @@ -31,7 +33,7 @@ Editing : This check runs on the fly in the IDE editor Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/TypeSafeDestinationMissingAnnotationDetector.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt) Copyright Year : 2024 @@ -45,8 +47,8 @@ id's must be unique, so you cannot combine these libraries. Also defined in: * MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable (this issue) -* [MissingSerializableAnnotation from androidx.navigation:navigation-runtime:2.9.0-alpha04](MissingSerializableAnnotation-2.md.html) -* [MissingSerializableAnnotation from androidx.navigation:navigation-common:2.9.0-alpha04](MissingSerializableAnnotation-3.md.html) +* [MissingSerializableAnnotation from androidx.navigation:navigation-compose:2.9.0-rc01](MissingSerializableAnnotation-2.md.html) +* [MissingSerializableAnnotation from androidx.navigation:navigation-runtime:2.9.0-rc01](MissingSerializableAnnotation-3.md.html) (##) Including @@ -57,32 +59,32 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-compose:2.9.0-alpha04") +implementation("androidx.navigation:navigation-common:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-compose:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-common:2.9.0-rc01' // build.gradle.kts with version catalogs: -implementation(libs.navigation.compose) +implementation(libs.navigation.common) # libs.versions.toml [versions] -navigation-compose = "2.9.0-alpha04" +navigation-common = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single # line (see https://github.com/toml-lang/toml/issues/516) so adjust # when pasting into libs.versions.toml: -navigation-compose = { - module = "androidx.navigation:navigation-compose", - version.ref = "navigation-compose" +navigation-common = { + module = "androidx.navigation:navigation-common", + version.ref = "navigation-common" } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. -[Additional details about androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html). +[Additional details about androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html). (##) Suppressing You can suppress false positives using one of the following mechanisms: @@ -94,7 +96,7 @@ // Kotlin @Suppress("MissingSerializableAnnotation") fun method() { - composable(...) + navigation(...) } ``` @@ -104,7 +106,7 @@ // Java @SuppressWarnings("MissingSerializableAnnotation") void method() { - composable(...); + navigation(...); } ``` diff --git a/docs/checks/ModifierFactoryExtensionFunction.md.html b/docs/checks/ModifierFactoryExtensionFunction.md.html index 1fd29fc2..b9456d7c 100644 --- a/docs/checks/ModifierFactoryExtensionFunction.md.html +++ b/docs/checks/ModifierFactoryExtensionFunction.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) Since @@ -111,17 +111,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -133,11 +133,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). diff --git a/docs/checks/ModifierFactoryReturnType.md.html b/docs/checks/ModifierFactoryReturnType.md.html index 90944fe8..a0e9149c 100644 --- a/docs/checks/ModifierFactoryReturnType.md.html +++ b/docs/checks/ModifierFactoryReturnType.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) Since @@ -85,17 +85,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -107,11 +107,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). diff --git a/docs/checks/ModifierFactoryUnreferencedReceiver.md.html b/docs/checks/ModifierFactoryUnreferencedReceiver.md.html index 83bbe662..687cc0aa 100644 --- a/docs/checks/ModifierFactoryUnreferencedReceiver.md.html +++ b/docs/checks/ModifierFactoryUnreferencedReceiver.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) Since @@ -92,17 +92,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -114,11 +114,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). diff --git a/docs/checks/ModifierNodeInspectableProperties.md.html b/docs/checks/ModifierNodeInspectableProperties.md.html index 391d530f..2dc83874 100644 --- a/docs/checks/ModifierNodeInspectableProperties.md.html +++ b/docs/checks/ModifierNodeInspectableProperties.md.html @@ -2,7 +2,7 @@ (#) ModifierNodeElement missing inspectableProperties !!! Tip: ModifierNodeElement missing inspectableProperties - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `ModifierNodeInspectableProperties` @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) Since @@ -92,17 +92,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -114,11 +114,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). diff --git a/docs/checks/ModifierParameter.md.html b/docs/checks/ModifierParameter.md.html index 332ead0a..5960babe 100644 --- a/docs/checks/ModifierParameter.md.html +++ b/docs/checks/ModifierParameter.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) Since @@ -94,17 +94,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -116,11 +116,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). diff --git a/docs/checks/ModuleCompanionObjects.md.html b/docs/checks/ModuleCompanionObjects.md.html index 0cc3f79d..e6ed3885 100644 --- a/docs/checks/ModuleCompanionObjects.md.html +++ b/docs/checks/ModuleCompanionObjects.md.html @@ -23,7 +23,7 @@ Feedback : https://github.com/google/dagger/issues Min -: Lint 7.1 +: Lint 7.3 and 7.4 Compiled : Lint 7.1 Artifact @@ -194,17 +194,17 @@ ``` // build.gradle.kts -implementation("com.google.dagger:dagger-lint:2.55") +implementation("com.google.dagger:dagger-lint:2.56.2") // build.gradle -implementation 'com.google.dagger:dagger-lint:2.55' +implementation 'com.google.dagger:dagger-lint:2.56.2' // build.gradle.kts with version catalogs: implementation(libs.dagger.lint) # libs.versions.toml [versions] -dagger-lint = "2.55" +dagger-lint = "2.56.2" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -216,7 +216,7 @@ } ``` -2.55 is the version this documentation was generated from; +2.56.2 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.google.dagger:dagger-lint](com_google_dagger_dagger-lint.md.html). diff --git a/docs/checks/ModuleCompanionObjectsNotInModuleParent.md.html b/docs/checks/ModuleCompanionObjectsNotInModuleParent.md.html index db8e6a3f..86ed952a 100644 --- a/docs/checks/ModuleCompanionObjectsNotInModuleParent.md.html +++ b/docs/checks/ModuleCompanionObjectsNotInModuleParent.md.html @@ -23,7 +23,7 @@ Feedback : https://github.com/google/dagger/issues Min -: Lint 7.1 +: Lint 7.3 and 7.4 Compiled : Lint 7.1 Artifact @@ -57,17 +57,17 @@ ``` // build.gradle.kts -implementation("com.google.dagger:dagger-lint:2.55") +implementation("com.google.dagger:dagger-lint:2.56.2") // build.gradle -implementation 'com.google.dagger:dagger-lint:2.55' +implementation 'com.google.dagger:dagger-lint:2.56.2' // build.gradle.kts with version catalogs: implementation(libs.dagger.lint) # libs.versions.toml [versions] -dagger-lint = "2.55" +dagger-lint = "2.56.2" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -79,7 +79,7 @@ } ``` -2.55 is the version this documentation was generated from; +2.56.2 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.google.dagger:dagger-lint](com_google_dagger_dagger-lint.md.html). diff --git a/docs/checks/MoshiUsageAdaptedByRequiresAdapter.md.html b/docs/checks/MoshiUsageAdaptedByRequiresAdapter.md.html index 7c0da63b..774b5275 100644 --- a/docs/checks/MoshiUsageAdaptedByRequiresAdapter.md.html +++ b/docs/checks/MoshiUsageAdaptedByRequiresAdapter.md.html @@ -115,17 +115,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -137,7 +137,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageAdaptedByRequiresKeep.md.html b/docs/checks/MoshiUsageAdaptedByRequiresKeep.md.html index e78e66f5..c88b0d01 100644 --- a/docs/checks/MoshiUsageAdaptedByRequiresKeep.md.html +++ b/docs/checks/MoshiUsageAdaptedByRequiresKeep.md.html @@ -109,17 +109,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -131,7 +131,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageArray.md.html b/docs/checks/MoshiUsageArray.md.html index be1efe30..2d03812d 100644 --- a/docs/checks/MoshiUsageArray.md.html +++ b/docs/checks/MoshiUsageArray.md.html @@ -174,17 +174,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -196,7 +196,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageBlankGenerator.md.html b/docs/checks/MoshiUsageBlankGenerator.md.html index 5ac6d7dc..94b5a8e6 100644 --- a/docs/checks/MoshiUsageBlankGenerator.md.html +++ b/docs/checks/MoshiUsageBlankGenerator.md.html @@ -84,17 +84,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -106,7 +106,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageBlankJsonName.md.html b/docs/checks/MoshiUsageBlankJsonName.md.html index 028b1290..0c573097 100644 --- a/docs/checks/MoshiUsageBlankJsonName.md.html +++ b/docs/checks/MoshiUsageBlankJsonName.md.html @@ -86,17 +86,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -108,7 +108,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageBlankTypeLabel.md.html b/docs/checks/MoshiUsageBlankTypeLabel.md.html index ee2a7186..fab1192d 100644 --- a/docs/checks/MoshiUsageBlankTypeLabel.md.html +++ b/docs/checks/MoshiUsageBlankTypeLabel.md.html @@ -84,17 +84,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -106,7 +106,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageClassVisibility.md.html b/docs/checks/MoshiUsageClassVisibility.md.html index d1d96c0f..2bae1d28 100644 --- a/docs/checks/MoshiUsageClassVisibility.md.html +++ b/docs/checks/MoshiUsageClassVisibility.md.html @@ -98,17 +98,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -120,7 +120,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageDoubleClassAnnotation.md.html b/docs/checks/MoshiUsageDoubleClassAnnotation.md.html index 1960186c..4d53bd38 100644 --- a/docs/checks/MoshiUsageDoubleClassAnnotation.md.html +++ b/docs/checks/MoshiUsageDoubleClassAnnotation.md.html @@ -98,17 +98,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -120,7 +120,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageDoubleTypeLabel.md.html b/docs/checks/MoshiUsageDoubleTypeLabel.md.html index fd27311b..4e40cd58 100644 --- a/docs/checks/MoshiUsageDoubleTypeLabel.md.html +++ b/docs/checks/MoshiUsageDoubleTypeLabel.md.html @@ -97,17 +97,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -119,7 +119,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageDuplicateJsonName.md.html b/docs/checks/MoshiUsageDuplicateJsonName.md.html index 4cee48dc..ac8c9c94 100644 --- a/docs/checks/MoshiUsageDuplicateJsonName.md.html +++ b/docs/checks/MoshiUsageDuplicateJsonName.md.html @@ -102,17 +102,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -124,7 +124,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageEnumAnnotatedUnknown.md.html b/docs/checks/MoshiUsageEnumAnnotatedUnknown.md.html index 8bd1e908..2524acc0 100644 --- a/docs/checks/MoshiUsageEnumAnnotatedUnknown.md.html +++ b/docs/checks/MoshiUsageEnumAnnotatedUnknown.md.html @@ -54,17 +54,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -76,7 +76,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageEnumCasing.md.html b/docs/checks/MoshiUsageEnumCasing.md.html index 2069d5f8..5b4fe95a 100644 --- a/docs/checks/MoshiUsageEnumCasing.md.html +++ b/docs/checks/MoshiUsageEnumCasing.md.html @@ -54,17 +54,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -76,7 +76,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageEnumJsonClassGenerated.md.html b/docs/checks/MoshiUsageEnumJsonClassGenerated.md.html index 01541498..49c945ec 100644 --- a/docs/checks/MoshiUsageEnumJsonClassGenerated.md.html +++ b/docs/checks/MoshiUsageEnumJsonClassGenerated.md.html @@ -53,17 +53,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -75,7 +75,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageEnumMissingJsonClass.md.html b/docs/checks/MoshiUsageEnumMissingJsonClass.md.html index 643b391a..083c5165 100644 --- a/docs/checks/MoshiUsageEnumMissingJsonClass.md.html +++ b/docs/checks/MoshiUsageEnumMissingJsonClass.md.html @@ -54,17 +54,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -76,7 +76,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageEnumMissingUnknown.md.html b/docs/checks/MoshiUsageEnumMissingUnknown.md.html index 292b1e67..7bab1eff 100644 --- a/docs/checks/MoshiUsageEnumMissingUnknown.md.html +++ b/docs/checks/MoshiUsageEnumMissingUnknown.md.html @@ -54,17 +54,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -76,7 +76,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageEnumPropertyCouldBeMoshi.md.html b/docs/checks/MoshiUsageEnumPropertyCouldBeMoshi.md.html index bcb1d3a2..8dd678d0 100644 --- a/docs/checks/MoshiUsageEnumPropertyCouldBeMoshi.md.html +++ b/docs/checks/MoshiUsageEnumPropertyCouldBeMoshi.md.html @@ -90,17 +90,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -112,7 +112,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageEnumPropertyDefaultUnknown.md.html b/docs/checks/MoshiUsageEnumPropertyDefaultUnknown.md.html index 8e272b0a..73573297 100644 --- a/docs/checks/MoshiUsageEnumPropertyDefaultUnknown.md.html +++ b/docs/checks/MoshiUsageEnumPropertyDefaultUnknown.md.html @@ -109,17 +109,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -131,7 +131,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageGenerateAdapterShouldBeTrue.md.html b/docs/checks/MoshiUsageGenerateAdapterShouldBeTrue.md.html index dcd956a3..35a30bf3 100644 --- a/docs/checks/MoshiUsageGenerateAdapterShouldBeTrue.md.html +++ b/docs/checks/MoshiUsageGenerateAdapterShouldBeTrue.md.html @@ -85,17 +85,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -107,7 +107,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageGenericSealedSubtype.md.html b/docs/checks/MoshiUsageGenericSealedSubtype.md.html index c678fbde..5a56edca 100644 --- a/docs/checks/MoshiUsageGenericSealedSubtype.md.html +++ b/docs/checks/MoshiUsageGenericSealedSubtype.md.html @@ -95,17 +95,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -117,7 +117,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageInappropriateTypeLabel.md.html b/docs/checks/MoshiUsageInappropriateTypeLabel.md.html index e0d75530..9878a87f 100644 --- a/docs/checks/MoshiUsageInappropriateTypeLabel.md.html +++ b/docs/checks/MoshiUsageInappropriateTypeLabel.md.html @@ -105,17 +105,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -127,7 +127,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageMissingPrimary.md.html b/docs/checks/MoshiUsageMissingPrimary.md.html index e7a10434..a0210d83 100644 --- a/docs/checks/MoshiUsageMissingPrimary.md.html +++ b/docs/checks/MoshiUsageMissingPrimary.md.html @@ -86,17 +86,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -108,7 +108,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageMissingTypeLabel.md.html b/docs/checks/MoshiUsageMissingTypeLabel.md.html index ec9b87e9..34899556 100644 --- a/docs/checks/MoshiUsageMissingTypeLabel.md.html +++ b/docs/checks/MoshiUsageMissingTypeLabel.md.html @@ -95,17 +95,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -117,7 +117,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageMutableCollections.md.html b/docs/checks/MoshiUsageMutableCollections.md.html index d8481b77..cd57d683 100644 --- a/docs/checks/MoshiUsageMutableCollections.md.html +++ b/docs/checks/MoshiUsageMutableCollections.md.html @@ -171,17 +171,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -193,7 +193,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageNonMoshiClassCollection.md.html b/docs/checks/MoshiUsageNonMoshiClassCollection.md.html index 2db78fa4..a046009c 100644 --- a/docs/checks/MoshiUsageNonMoshiClassCollection.md.html +++ b/docs/checks/MoshiUsageNonMoshiClassCollection.md.html @@ -2,7 +2,7 @@ (#) Concrete Collection type '%HINT%' is not natively supported by Moshi !!! Tip: Concrete Collection type '%HINT%' is not natively supported by Moshi - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `MoshiUsageNonMoshiClassCollection` @@ -167,17 +167,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -189,7 +189,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageNonMoshiClassExternal.md.html b/docs/checks/MoshiUsageNonMoshiClassExternal.md.html index 41118166..f9b3bee4 100644 --- a/docs/checks/MoshiUsageNonMoshiClassExternal.md.html +++ b/docs/checks/MoshiUsageNonMoshiClassExternal.md.html @@ -175,17 +175,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -197,7 +197,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageNonMoshiClassInternal.md.html b/docs/checks/MoshiUsageNonMoshiClassInternal.md.html index c903a776..57000e93 100644 --- a/docs/checks/MoshiUsageNonMoshiClassInternal.md.html +++ b/docs/checks/MoshiUsageNonMoshiClassInternal.md.html @@ -2,7 +2,7 @@ (#) Non-Moshi internal type '%HINT%' is not natively supported by Moshi !!! Tip: Non-Moshi internal type '%HINT%' is not natively supported by Moshi - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `MoshiUsageNonMoshiClassInternal` @@ -161,17 +161,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -183,7 +183,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageNonMoshiClassMap.md.html b/docs/checks/MoshiUsageNonMoshiClassMap.md.html index 2bbcd368..674ffb5f 100644 --- a/docs/checks/MoshiUsageNonMoshiClassMap.md.html +++ b/docs/checks/MoshiUsageNonMoshiClassMap.md.html @@ -2,7 +2,7 @@ (#) Concrete Map type '%HINT%' is not natively supported by Moshi !!! Tip: Concrete Map type '%HINT%' is not natively supported by Moshi - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `MoshiUsageNonMoshiClassMap` @@ -160,17 +160,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -182,7 +182,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageNonMoshiClassPlatform.md.html b/docs/checks/MoshiUsageNonMoshiClassPlatform.md.html index 6c7dee85..7cfca1dd 100644 --- a/docs/checks/MoshiUsageNonMoshiClassPlatform.md.html +++ b/docs/checks/MoshiUsageNonMoshiClassPlatform.md.html @@ -162,17 +162,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -184,7 +184,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageObject.md.html b/docs/checks/MoshiUsageObject.md.html index 82a5df34..263daa3d 100644 --- a/docs/checks/MoshiUsageObject.md.html +++ b/docs/checks/MoshiUsageObject.md.html @@ -89,17 +89,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -111,7 +111,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageParamNeedsInit.md.html b/docs/checks/MoshiUsageParamNeedsInit.md.html index e41df21a..31f60e5f 100644 --- a/docs/checks/MoshiUsageParamNeedsInit.md.html +++ b/docs/checks/MoshiUsageParamNeedsInit.md.html @@ -86,17 +86,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -108,7 +108,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsagePrivateConstructor.md.html b/docs/checks/MoshiUsagePrivateConstructor.md.html index 9b3878c4..ddc0458b 100644 --- a/docs/checks/MoshiUsagePrivateConstructor.md.html +++ b/docs/checks/MoshiUsagePrivateConstructor.md.html @@ -94,17 +94,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -116,7 +116,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsagePrivateConstructorProperty.md.html b/docs/checks/MoshiUsagePrivateConstructorProperty.md.html index 2ddad920..63306831 100644 --- a/docs/checks/MoshiUsagePrivateConstructorProperty.md.html +++ b/docs/checks/MoshiUsagePrivateConstructorProperty.md.html @@ -87,17 +87,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -109,7 +109,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageQualifierRetention.md.html b/docs/checks/MoshiUsageQualifierRetention.md.html index 88612509..14619c07 100644 --- a/docs/checks/MoshiUsageQualifierRetention.md.html +++ b/docs/checks/MoshiUsageQualifierRetention.md.html @@ -119,17 +119,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -141,7 +141,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageQualifierTarget.md.html b/docs/checks/MoshiUsageQualifierTarget.md.html index 967f94a8..6ea5bb99 100644 --- a/docs/checks/MoshiUsageQualifierTarget.md.html +++ b/docs/checks/MoshiUsageQualifierTarget.md.html @@ -118,17 +118,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -140,7 +140,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageRedundantJsonName.md.html b/docs/checks/MoshiUsageRedundantJsonName.md.html index 7a0ae91f..a1ca2695 100644 --- a/docs/checks/MoshiUsageRedundantJsonName.md.html +++ b/docs/checks/MoshiUsageRedundantJsonName.md.html @@ -90,17 +90,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -112,7 +112,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageRedundantSiteTarget.md.html b/docs/checks/MoshiUsageRedundantSiteTarget.md.html index 14364f06..e6754c38 100644 --- a/docs/checks/MoshiUsageRedundantSiteTarget.md.html +++ b/docs/checks/MoshiUsageRedundantSiteTarget.md.html @@ -90,17 +90,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -112,7 +112,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageSealedMustBeSealed.md.html b/docs/checks/MoshiUsageSealedMustBeSealed.md.html index 221186d9..8b21cd72 100644 --- a/docs/checks/MoshiUsageSealedMustBeSealed.md.html +++ b/docs/checks/MoshiUsageSealedMustBeSealed.md.html @@ -83,17 +83,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -105,7 +105,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageSerializedName.md.html b/docs/checks/MoshiUsageSerializedName.md.html index d6312d8c..33b21834 100644 --- a/docs/checks/MoshiUsageSerializedName.md.html +++ b/docs/checks/MoshiUsageSerializedName.md.html @@ -114,17 +114,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -136,7 +136,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageSnakeCase.md.html b/docs/checks/MoshiUsageSnakeCase.md.html index b31f8780..0a9cfa3f 100644 --- a/docs/checks/MoshiUsageSnakeCase.md.html +++ b/docs/checks/MoshiUsageSnakeCase.md.html @@ -92,17 +92,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -114,7 +114,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageTransientNeedsInit.md.html b/docs/checks/MoshiUsageTransientNeedsInit.md.html index 881a6e49..0dd8cac6 100644 --- a/docs/checks/MoshiUsageTransientNeedsInit.md.html +++ b/docs/checks/MoshiUsageTransientNeedsInit.md.html @@ -86,17 +86,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -108,7 +108,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageUnsupportedType.md.html b/docs/checks/MoshiUsageUnsupportedType.md.html index c7b83392..9adb548e 100644 --- a/docs/checks/MoshiUsageUnsupportedType.md.html +++ b/docs/checks/MoshiUsageUnsupportedType.md.html @@ -111,17 +111,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -133,7 +133,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageUseData.md.html b/docs/checks/MoshiUsageUseData.md.html index a18a895b..c8531a69 100644 --- a/docs/checks/MoshiUsageUseData.md.html +++ b/docs/checks/MoshiUsageUseData.md.html @@ -88,17 +88,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -110,7 +110,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MoshiUsageVarProperty.md.html b/docs/checks/MoshiUsageVarProperty.md.html index 584731ff..0fbc2939 100644 --- a/docs/checks/MoshiUsageVarProperty.md.html +++ b/docs/checks/MoshiUsageVarProperty.md.html @@ -88,17 +88,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -110,7 +110,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MultipleAwaitPointerEventScopes.md.html b/docs/checks/MultipleAwaitPointerEventScopes.md.html index da5ad4c8..0fb1decd 100644 --- a/docs/checks/MultipleAwaitPointerEventScopes.md.html +++ b/docs/checks/MultipleAwaitPointerEventScopes.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) Since @@ -53,17 +53,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -75,11 +75,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). diff --git a/docs/checks/MustBeInModule.md.html b/docs/checks/MustBeInModule.md.html index bb237ee6..1769eba3 100644 --- a/docs/checks/MustBeInModule.md.html +++ b/docs/checks/MustBeInModule.md.html @@ -127,17 +127,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -149,7 +149,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MustUseNamedParams.md.html b/docs/checks/MustUseNamedParams.md.html index f2be46d8..600e805a 100644 --- a/docs/checks/MustUseNamedParams.md.html +++ b/docs/checks/MustUseNamedParams.md.html @@ -100,17 +100,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -122,7 +122,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/MutableCollectionMutableState.md.html b/docs/checks/MutableCollectionMutableState.md.html index afa1b055..be4fa6a4 100644 --- a/docs/checks/MutableCollectionMutableState.md.html +++ b/docs/checks/MutableCollectionMutableState.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -147,17 +147,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -169,11 +169,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/NewerVersionAvailable.md.html b/docs/checks/NewerVersionAvailable.md.html index be1d0dbf..b4c3c65e 100644 --- a/docs/checks/NewerVersionAvailable.md.html +++ b/docs/checks/NewerVersionAvailable.md.html @@ -8,8 +8,6 @@ : `NewerVersionAvailable` Summary : Newer Library Versions Available -Note -: **This issue is disabled by default**; use `--enable NewerVersionAvailable` Severity : Warning Category @@ -47,6 +45,11 @@ Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +../gradle/libs.versions.toml:2:Warning: A newer version of +com.google.guava:guava than 11.0.2 is available: 30.1-android +[NewerVersionAvailable] +guavaVersion = "11.0.2" + -------- ../gradle/libs.versions.toml:12:Warning: A newer version of com.autonomousapps.dependency-analysis than 1.0.0 is available: 1.20.0 [NewerVersionAvailable] diff --git a/docs/checks/NioDesugaring.md.html b/docs/checks/NioDesugaring.md.html index d676a525..38548e0e 100644 --- a/docs/checks/NioDesugaring.md.html +++ b/docs/checks/NioDesugaring.md.html @@ -19,7 +19,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=192708 Since -: 8.9.0-alpha05 (December 2024) +: 8.9.0 (March 2025) Affects : Kotlin and Java files Editing diff --git a/docs/checks/NoCollectCallFound.md.html b/docs/checks/NoCollectCallFound.md.html index 49e82f21..9a993b7c 100644 --- a/docs/checks/NoCollectCallFound.md.html +++ b/docs/checks/NoCollectCallFound.md.html @@ -23,7 +23,7 @@ Min : Lint 8.0 and 8.1 Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.activity:activity-compose](androidx_activity_activity-compose.md.html) Since @@ -142,17 +142,17 @@ ``` // build.gradle.kts -implementation("androidx.activity:activity-compose:1.10.0-rc01") +implementation("androidx.activity:activity-compose:1.11.0-rc01") // build.gradle -implementation 'androidx.activity:activity-compose:1.10.0-rc01' +implementation 'androidx.activity:activity-compose:1.11.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.activity.compose) # libs.versions.toml [versions] -activity-compose = "1.10.0-rc01" +activity-compose = "1.11.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -164,7 +164,7 @@ } ``` -1.10.0-rc01 is the version this documentation was generated from; +1.11.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.activity:activity-compose](androidx_activity_activity-compose.md.html). diff --git a/docs/checks/NullSafeMutableLiveData-2.md.html b/docs/checks/NullSafeMutableLiveData-2.md.html index 4aa6ec64..f4d95a27 100644 --- a/docs/checks/NullSafeMutableLiveData-2.md.html +++ b/docs/checks/NullSafeMutableLiveData-2.md.html @@ -61,7 +61,7 @@ well. Issue id's must be unique, so you cannot combine these libraries. Also defined in: * NullSafeMutableLiveData: LiveData value assignment nullability mismatch (this issue) -* [NullSafeMutableLiveData from androidx.lifecycle:lifecycle-livedata-core:2.9.0-alpha08](NullSafeMutableLiveData.md.html) +* [NullSafeMutableLiveData from androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01](NullSafeMutableLiveData.md.html) * [NullSafeMutableLiveData from androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.0-alpha01](NullSafeMutableLiveData-2.md.html) diff --git a/docs/checks/NullSafeMutableLiveData.md.html b/docs/checks/NullSafeMutableLiveData.md.html index 373abe49..129653a8 100644 --- a/docs/checks/NullSafeMutableLiveData.md.html +++ b/docs/checks/NullSafeMutableLiveData.md.html @@ -23,9 +23,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=413132 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.lifecycle:lifecycle-livedata-core](androidx_lifecycle_lifecycle-livedata-core.md.html) Since @@ -61,7 +61,7 @@ well. Issue id's must be unique, so you cannot combine these libraries. Also defined in: * NullSafeMutableLiveData: LiveData value assignment nullability mismatch (this issue) -* [NullSafeMutableLiveData from androidx.lifecycle:lifecycle-livedata-core:2.9.0-alpha08](NullSafeMutableLiveData.md.html) +* [NullSafeMutableLiveData from androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01](NullSafeMutableLiveData.md.html) * [NullSafeMutableLiveData from androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.0-alpha01](NullSafeMutableLiveData-2.md.html) @@ -73,17 +73,17 @@ ``` // build.gradle.kts -implementation("androidx.lifecycle:lifecycle-livedata-core:2.9.0-alpha08") +implementation("androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01") // build.gradle -implementation 'androidx.lifecycle:lifecycle-livedata-core:2.9.0-alpha08' +implementation 'androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.lifecycle.livedata.core) # libs.versions.toml [versions] -lifecycle-livedata-core = "2.9.0-alpha08" +lifecycle-livedata-core = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -95,7 +95,7 @@ } ``` -2.9.0-alpha08 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lifecycle:lifecycle-livedata-core](androidx_lifecycle_lifecycle-livedata-core.md.html). diff --git a/docs/checks/NullableConcurrentHashMap.md.html b/docs/checks/NullableConcurrentHashMap.md.html new file mode 100644 index 00000000..75aef5f9 --- /dev/null +++ b/docs/checks/NullableConcurrentHashMap.md.html @@ -0,0 +1,180 @@ + +(#) ConcurrentHashMap should not use nullable types + +!!! ERROR: ConcurrentHashMap should not use nullable types + This is an error. + +Id +: `NullableConcurrentHashMap` +Summary +: ConcurrentHashMap should not use nullable types +Severity +: Error +Category +: Correctness +Platform +: Any +Vendor +: slack +Identifier +: slack-lint +Contact +: https://github.com/slackhq/slack-lints +Feedback +: https://github.com/slackhq/slack-lints +Min +: Lint 8.7+ +Compiled +: Lint 8.7+ +Artifact +: [com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html) +Since +: 0.9.0 +Affects +: Kotlin and Java files and test sources +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/main/java/slack/lint/NullableConcurrentHashMapDetector.kt) +Tests +: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/NullableConcurrentHashMapDetectorTest.kt) +Copyright Year +: 2025 + +ConcurrentHashMap does not support null keys or values. Use non-nullable +types for both keys and values when creating a ConcurrentHashMap. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/test.kt:3:Error: ConcurrentHashMap should not use nullable key types +[NullableConcurrentHashMap] + val map = java.util.concurrent.ConcurrentHashMap<String?, Int>() + ------- +src/test.kt:4:Error: ConcurrentHashMap should not use nullable key types +[NullableConcurrentHashMap] + val map2: java.util.concurrent.ConcurrentHashMap<String?, Int> = java.util.concurrent.ConcurrentHashMap() + ------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`src/test.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +fun test() { + val map = java.util.concurrent.ConcurrentHashMap() + val map2: java.util.concurrent.ConcurrentHashMap = java.util.concurrent.ConcurrentHashMap() +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/NullableConcurrentHashMapDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +The above example was automatically extracted from the first unit test +found for this lint check, `NullableConcurrentHashMapDetector.concurrentHashMapWithNullableKeyType`. +To report a problem with this extracted sample, visit +https://github.com/slackhq/slack-lints. + +(##) Including + +!!! + This is not a built-in check. To include it, add the below dependency + to your project. This lint check is included in the lint documentation, + but the Android team may or may not agree with its recommendations. + +``` +// build.gradle.kts +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") + +// build.gradle +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' + +// build.gradle.kts with version catalogs: +lintChecks(libs.slack.lint.checks) + +# libs.versions.toml +[versions] +slack-lint-checks = "0.9.0" +[libraries] +# For clarity and text wrapping purposes the following declaration is +# shown split up across lines, but in TOML it needs to be on a single +# line (see https://github.com/toml-lang/toml/issues/516) so adjust +# when pasting into libs.versions.toml: +slack-lint-checks = { + module = "com.slack.lint:slack-lint-checks", + version.ref = "slack-lint-checks" +} +``` + +0.9.0 is the version this documentation was generated from; +there may be newer versions available. + +[Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("NullableConcurrentHashMap") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("NullableConcurrentHashMap") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection NullableConcurrentHashMap + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="NullableConcurrentHashMap" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'NullableConcurrentHashMap' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore NullableConcurrentHashMap ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/OldTargetApi.md.html b/docs/checks/OldTargetApi.md.html index d8680dd7..6b0615f9 100644 --- a/docs/checks/OldTargetApi.md.html +++ b/docs/checks/OldTargetApi.md.html @@ -21,7 +21,7 @@ Since : 8.2.0 (November 2023) Affects -: Gradle build files and manifest files +: Gradle build files, TOML files and manifest files Editing : This check runs on the fly in the IDE editor See @@ -55,40 +55,54 @@ Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -AndroidManifest.xml:6:Warning: Not targeting the latest versions of +build.gradle.kts:6:Warning: Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the android.os.Build.VERSION_CODES javadoc for details. [OldTargetApi] - <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="33" /> - ----------------------------- + targetSdk = libs.versions.keys.tsv.get().toInt() // ERROR 15 + ------------------------------------------------ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Here is the source file referenced above: +Here are the relevant source files: + +`build.gradle.kts`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +android { + compileSdk = libs.versions.compile.sdk.version.get().toInt() // ERROR 12 + compileSdk = libs.versions.keys.csv.get().toInt() // ERROR 13 + defaultConfig { + minSdk = libs.versions.keys.msv.get().toInt() // ERROR 14 + targetSdk = libs.versions.keys.tsv.get().toInt() // ERROR 15 + } +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`../gradle/libs.versions.toml`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~toml linenumbers +[versions] +compile_sdk_version = "34" # ERROR 1 +min_sdk_version = "15" # ERROR 2 +target_sdk_version = "34" # ERROR 3 -`AndroidManifest.xml`: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="test.bytecode" - android:versionCode="1" - android:versionName="1.0" > +compileSdkVersion = "34" # ERROR 4 +minSdkVersion = "15" # ERROR 5 +targetSdkVersion = "34" # ERROR 6 - <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="33" /> +compileSdk = "34" # ERROR 7 +minSdk = "15" # ERROR 8 +targetSdk = "34" # ERROR 9 - <application - android:icon="@drawable/ic_launcher" - android:label="@string/app_name" > - <activity - android:name=".BytecodeTestsActivity" - android:label="@string/app_name" > - <intent-filter> - <action android:name="android.intent.action.MAIN" /> +# https://github.com/Kotlin/multiplatform-library-template/blob/main/gradle/libs.versions.toml +android-minSdk = "15" # ERROR 10 +android-compileSdk = "34" # ERROR 11 - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - </application> +# Unusual keys, referenced via KTS +keys-csv = "34" # ERROR 12 +keys-msv = "15" # ERROR 13 +keys-tsv = "34" # ERROR 14 -</manifest> +javaCompileSdk = "17" # OK 1 +other-compileSdk = "15" # OK 2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can also visit the @@ -96,7 +110,7 @@ for the unit tests for this check to see additional scenarios. The above example was automatically extracted from the first unit test -found for this lint check, `GradleDetector.testNotTheNewestTargetSdk`. +found for this lint check, `GradleDetector.testCompileSdkViaVersionCatalog`. To report a problem with this extracted sample, visit https://issuetracker.google.com/issues/new?component=192708. @@ -104,12 +118,6 @@ You can suppress false positives using one of the following mechanisms: -* Adding the suppression attribute `tools:ignore="OldTargetApi"` on - the problematic XML element (or one of its enclosing elements). You - may also need to add the following namespace declaration on the root - element in the XML file if it's not already there: - `xmlns:tools="http://schemas.android.com/tools"`. - * Using a suppression comment like this on the line above: ```kt @@ -117,6 +125,12 @@ problematicStatement() ``` +* Adding the suppression attribute `tools:ignore="OldTargetApi"` on + the problematic XML element (or one of its enclosing elements). You + may also need to add the following namespace declaration on the root + element in the XML file if it's not already there: + `xmlns:tools="http://schemas.android.com/tools"`. + * Using a special `lint.xml` file in the source tree which turns off the check in that folder and any sub folder. A simple file might look like this: diff --git a/docs/checks/OpaqueUnitKey.md.html b/docs/checks/OpaqueUnitKey.md.html index 8eb3661b..80d04f78 100644 --- a/docs/checks/OpaqueUnitKey.md.html +++ b/docs/checks/OpaqueUnitKey.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -99,17 +99,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -121,11 +121,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/ParcelizeFunctionProperty.md.html b/docs/checks/ParcelizeFunctionProperty.md.html index a5a62245..8346be68 100644 --- a/docs/checks/ParcelizeFunctionProperty.md.html +++ b/docs/checks/ParcelizeFunctionProperty.md.html @@ -139,17 +139,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -161,7 +161,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/PlaySdkIndexDeprecated.md.html b/docs/checks/PlaySdkIndexDeprecated.md.html index 946c648e..c5dee555 100644 --- a/docs/checks/PlaySdkIndexDeprecated.md.html +++ b/docs/checks/PlaySdkIndexDeprecated.md.html @@ -19,7 +19,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=192708 Since -: 8.9.0-alpha05 (December 2024) +: 8.9.0 (March 2025) Affects : Gradle build files and TOML files Editing diff --git a/docs/checks/PrivacySandboxBlockedCall.md.html b/docs/checks/PrivacySandboxBlockedCall.md.html index 1da7408d..711a77df 100644 --- a/docs/checks/PrivacySandboxBlockedCall.md.html +++ b/docs/checks/PrivacySandboxBlockedCall.md.html @@ -21,7 +21,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=192708 Since -: 8.9.0-alpha03 (November 2024) +: 8.9.0 (March 2025) Affects : Kotlin and Java files Editing diff --git a/docs/checks/ProduceStateDoesNotAssignValue.md.html b/docs/checks/ProduceStateDoesNotAssignValue.md.html index 589eb2ce..a4f1ddf1 100644 --- a/docs/checks/ProduceStateDoesNotAssignValue.md.html +++ b/docs/checks/ProduceStateDoesNotAssignValue.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -122,17 +122,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -144,11 +144,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/ProtoLayoutEdgeContentLayoutResponsive.md.html b/docs/checks/ProtoLayoutEdgeContentLayoutResponsive.md.html index cfc6d871..20c9411a 100644 --- a/docs/checks/ProtoLayoutEdgeContentLayoutResponsive.md.html +++ b/docs/checks/ProtoLayoutEdgeContentLayoutResponsive.md.html @@ -57,17 +57,17 @@ ``` // build.gradle.kts -implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha05") +implementation("androidx.wear.protolayout:protolayout:1.3.0-beta01") // build.gradle -implementation 'androidx.wear.protolayout:protolayout:1.3.0-alpha05' +implementation 'androidx.wear.protolayout:protolayout:1.3.0-beta01' // build.gradle.kts with version catalogs: implementation(libs.protolayout) # libs.versions.toml [versions] -protolayout = "1.3.0-alpha05" +protolayout = "1.3.0-beta01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -79,14 +79,14 @@ } ``` -1.3.0-alpha05 is the version this documentation was generated from; +1.3.0-beta01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. Use one of the following artifacts: -* `androidx.wear.protolayout:protolayout-expression:1.3.0-alpha05` -* `androidx.wear.protolayout:protolayout-material3:1.3.0-alpha05` -* `androidx.wear.protolayout:protolayout-material:1.3.0-alpha05` +* `androidx.wear.protolayout:protolayout-expression:1.3.0-beta01` +* `androidx.wear.protolayout:protolayout-material3:1.3.0-beta01` +* `androidx.wear.protolayout:protolayout-material:1.3.0-beta01` [Additional details about androidx.wear.protolayout:protolayout](androidx_wear_protolayout_protolayout.md.html). diff --git a/docs/checks/ProtoLayoutMinSchema.md.html b/docs/checks/ProtoLayoutMinSchema.md.html index 907eb33f..9aab0208 100644 --- a/docs/checks/ProtoLayoutMinSchema.md.html +++ b/docs/checks/ProtoLayoutMinSchema.md.html @@ -139,17 +139,17 @@ ``` // build.gradle.kts -implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha05") +implementation("androidx.wear.protolayout:protolayout:1.3.0-beta01") // build.gradle -implementation 'androidx.wear.protolayout:protolayout:1.3.0-alpha05' +implementation 'androidx.wear.protolayout:protolayout:1.3.0-beta01' // build.gradle.kts with version catalogs: implementation(libs.protolayout) # libs.versions.toml [versions] -protolayout = "1.3.0-alpha05" +protolayout = "1.3.0-beta01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -161,14 +161,14 @@ } ``` -1.3.0-alpha05 is the version this documentation was generated from; +1.3.0-beta01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. Use one of the following artifacts: -* `androidx.wear.protolayout:protolayout-expression:1.3.0-alpha05` -* `androidx.wear.protolayout:protolayout-material3:1.3.0-alpha05` -* `androidx.wear.protolayout:protolayout-material:1.3.0-alpha05` +* `androidx.wear.protolayout:protolayout-expression:1.3.0-beta01` +* `androidx.wear.protolayout:protolayout-material3:1.3.0-beta01` +* `androidx.wear.protolayout:protolayout-material:1.3.0-beta01` [Additional details about androidx.wear.protolayout:protolayout](androidx_wear_protolayout_protolayout.md.html). diff --git a/docs/checks/ProtoLayoutPrimaryLayoutResponsive.md.html b/docs/checks/ProtoLayoutPrimaryLayoutResponsive.md.html index 3cf10852..44fc26ed 100644 --- a/docs/checks/ProtoLayoutPrimaryLayoutResponsive.md.html +++ b/docs/checks/ProtoLayoutPrimaryLayoutResponsive.md.html @@ -161,17 +161,17 @@ ``` // build.gradle.kts -implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha05") +implementation("androidx.wear.protolayout:protolayout:1.3.0-beta01") // build.gradle -implementation 'androidx.wear.protolayout:protolayout:1.3.0-alpha05' +implementation 'androidx.wear.protolayout:protolayout:1.3.0-beta01' // build.gradle.kts with version catalogs: implementation(libs.protolayout) # libs.versions.toml [versions] -protolayout = "1.3.0-alpha05" +protolayout = "1.3.0-beta01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -183,14 +183,14 @@ } ``` -1.3.0-alpha05 is the version this documentation was generated from; +1.3.0-beta01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. Use one of the following artifacts: -* `androidx.wear.protolayout:protolayout-expression:1.3.0-alpha05` -* `androidx.wear.protolayout:protolayout-material3:1.3.0-alpha05` -* `androidx.wear.protolayout:protolayout-material:1.3.0-alpha05` +* `androidx.wear.protolayout:protolayout-expression:1.3.0-beta01` +* `androidx.wear.protolayout:protolayout-material3:1.3.0-beta01` +* `androidx.wear.protolayout:protolayout-material:1.3.0-beta01` [Additional details about androidx.wear.protolayout:protolayout](androidx_wear_protolayout_protolayout.md.html). diff --git a/docs/checks/ProvidesMustNotBeAbstract.md.html b/docs/checks/ProvidesMustNotBeAbstract.md.html index 8e00844f..055ba725 100644 --- a/docs/checks/ProvidesMustNotBeAbstract.md.html +++ b/docs/checks/ProvidesMustNotBeAbstract.md.html @@ -143,17 +143,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -165,7 +165,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/RawDispatchersUse.md.html b/docs/checks/RawDispatchersUse.md.html index d7cbdaae..ac16686c 100644 --- a/docs/checks/RawDispatchersUse.md.html +++ b/docs/checks/RawDispatchersUse.md.html @@ -117,17 +117,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -139,7 +139,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/RedactedInJavaUsage.md.html b/docs/checks/RedactedInJavaUsage.md.html index c10842bb..0a67e485 100644 --- a/docs/checks/RedactedInJavaUsage.md.html +++ b/docs/checks/RedactedInJavaUsage.md.html @@ -145,17 +145,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -167,7 +167,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/RedundantBinds.md.html b/docs/checks/RedundantBinds.md.html index 38bc8838..df86e38b 100644 --- a/docs/checks/RedundantBinds.md.html +++ b/docs/checks/RedundantBinds.md.html @@ -97,17 +97,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -119,7 +119,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/RememberInComposition.md.html b/docs/checks/RememberInComposition.md.html new file mode 100644 index 00000000..c2440b42 --- /dev/null +++ b/docs/checks/RememberInComposition.md.html @@ -0,0 +1,535 @@ + +(#) Calling a @RememberInComposition annotated declaration inside composition without using `remember` + +!!! ERROR: Calling a @RememberInComposition annotated declaration inside composition without using `remember` + This is an error. + +Id +: `RememberInComposition` +Summary +: Calling a @RememberInComposition annotated declaration inside composition without using `remember` +Severity +: Error +Category +: Correctness +Platform +: Any +Vendor +: Jetpack Compose +Identifier +: androidx.compose.runtime +Feedback +: https://issuetracker.google.com/issues/new?component=612128 +Min +: Lint 8.7+ +Compiled +: Lint 8.7+ +Artifact +: [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) +Since +: 1.9.0-alpha01 +Affects +: Kotlin and Java files and test sources +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/RememberInCompositionDetector.kt) +Tests +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/RememberInCompositionDetectorTest.kt) +Copyright Year +: 2025 + +APIs annotated with @RememberInComposition must not be called inside +composition. This can lead to correctness issues and / or performance +issues. Instead, use `remember` to cache the value across compositions, +or hoist this call outside of composition. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/androidx/compose/runtime/foo/{.kt:8:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:9:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val foo = Foo() + --- +src/androidx/compose/runtime/foo/{.kt:10:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:11:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:12:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:14:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:15:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:19:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:20:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val foo = Foo() + --- +src/androidx/compose/runtime/foo/{.kt:21:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:22:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:23:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:25:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:26:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:30:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:31:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val foo = Foo() + --- +src/androidx/compose/runtime/foo/{.kt:32:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:33:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:34:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:36:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:37:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:46:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:47:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val foo = Foo() + --- +src/androidx/compose/runtime/foo/{.kt:48:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:49:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:50:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:52:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:53:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:56:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:57:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val foo = Foo() + --- +src/androidx/compose/runtime/foo/{.kt:58:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:59:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:60:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:62:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:63:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:69:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:70:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val foo = Foo() + --- +src/androidx/compose/runtime/foo/{.kt:71:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:72:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:73:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:75:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:76:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:80:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + test() + ---- +src/androidx/compose/runtime/foo/{.kt:81:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val foo = Foo() + --- +src/androidx/compose/runtime/foo/{.kt:82:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:83:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + bar.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:84:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:86:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + barImpl.calculateValue() + -------------- +src/androidx/compose/runtime/foo/{.kt:87:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barImplValue = barImpl.value + ----- +src/androidx/compose/runtime/foo/{.kt:94:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val foo = Foo() + --- +src/androidx/compose/runtime/foo/{.kt:95:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val fooValue = foo.value + ----- +src/androidx/compose/runtime/foo/{.kt:96:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barValue = bar.value + ----- +src/androidx/compose/runtime/foo/{.kt:98:Error: Calling a +@RememberInComposition annotated declaration inside composition without +using remember [RememberInComposition] + val barImplValue = barImpl.value + ----- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`src/androidx/compose/runtime/foo/{.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +package androidx.compose.runtime.foo + +import androidx.compose.runtime.* + +@Composable +fun Test(bar: Bar) { + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value +} + +val lambda = @Composable { bar: Bar -> + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value +} + +val lambda2: @Composable (bar: Bar) -> Unit = { bar -> + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value +} + +@Composable +fun LambdaParameter(content: @Composable () -> Unit) {} + +@Composable +fun Test2(bar: Bar) { + LambdaParameter(content = { + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value + }) + LambdaParameter { + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value + } +} + +fun test3(bar: Bar) { + val localLambda1 = @Composable { + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value + } + + val localLambda2: @Composable () -> Unit = { + test() + val foo = Foo() + val fooValue = foo.value + bar.calculateValue() + val barValue = bar.value + val barImpl = BarImpl() + barImpl.calculateValue() + val barImplValue = barImpl.value + } +} + +@Composable +fun Test4(bar: Bar) { + val localObject = object { + val foo = Foo() + val fooValue = foo.value + val barValue = bar.value + val barImpl = BarImpl() + val barImplValue = barImpl.value + } +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/RememberInCompositionDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +The above example was automatically extracted from the first unit test +found for this lint check, `RememberInCompositionDetector.notRemembered`. +To report a problem with this extracted sample, visit +https://issuetracker.google.com/issues/new?component=612128. + +(##) Including + +!!! + This is not a built-in check. To include it, add the below dependency + to your project. + +``` +// build.gradle.kts +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") + +// build.gradle +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' + +// build.gradle.kts with version catalogs: +implementation(libs.runtime.android) + +# libs.versions.toml +[versions] +runtime-android = "1.9.0-alpha01" +[libraries] +# For clarity and text wrapping purposes the following declaration is +# shown split up across lines, but in TOML it needs to be on a single +# line (see https://github.com/toml-lang/toml/issues/516) so adjust +# when pasting into libs.versions.toml: +runtime-android = { + module = "androidx.compose.runtime:runtime-android", + version.ref = "runtime-android" +} +``` + +1.9.0-alpha01 is the version this documentation was generated from; +there may be newer versions available. + +NOTE: These lint checks are **also** made available separate from the main library. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. + + +[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("RememberInComposition") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("RememberInComposition") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection RememberInComposition + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="RememberInComposition" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'RememberInComposition' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore RememberInComposition ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/RememberReturnType.md.html b/docs/checks/RememberReturnType.md.html index 6086c5a7..4a18f84a 100644 --- a/docs/checks/RememberReturnType.md.html +++ b/docs/checks/RememberReturnType.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -245,17 +245,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -267,11 +267,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/RememberSaveableSaverParameter.md.html b/docs/checks/RememberSaveableSaverParameter.md.html index 2d4620c6..d9e65eb2 100644 --- a/docs/checks/RememberSaveableSaverParameter.md.html +++ b/docs/checks/RememberSaveableSaverParameter.md.html @@ -131,17 +131,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-saveable-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-saveable-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.saveable.android) # libs.versions.toml [versions] -runtime-saveable-android = "1.8.0-alpha07" +runtime-saveable-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -153,11 +153,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-saveable-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-saveable-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-saveable-android](androidx_compose_runtime_runtime-saveable-android.md.html). diff --git a/docs/checks/RemoveWorkManagerInitializer.md.html b/docs/checks/RemoveWorkManagerInitializer.md.html index 6dab56b0..8a88eb28 100644 --- a/docs/checks/RemoveWorkManagerInitializer.md.html +++ b/docs/checks/RemoveWorkManagerInitializer.md.html @@ -102,17 +102,17 @@ ``` // build.gradle.kts -implementation("androidx.work:work-runtime:2.10.0") +implementation("androidx.work:work-runtime:2.10.1") // build.gradle -implementation 'androidx.work:work-runtime:2.10.0' +implementation 'androidx.work:work-runtime:2.10.1' // build.gradle.kts with version catalogs: implementation(libs.work.runtime) # libs.versions.toml [versions] -work-runtime = "2.10.0" +work-runtime = "2.10.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -124,7 +124,7 @@ } ``` -2.10.0 is the version this documentation was generated from; +2.10.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.work:work-runtime](androidx_work_work-runtime.md.html). diff --git a/docs/checks/RepeatOnLifecycleWrongUsage-2.md.html b/docs/checks/RepeatOnLifecycleWrongUsage-2.md.html index d6ec1d5e..999c151a 100644 --- a/docs/checks/RepeatOnLifecycleWrongUsage-2.md.html +++ b/docs/checks/RepeatOnLifecycleWrongUsage-2.md.html @@ -49,7 +49,7 @@ well. Issue id's must be unique, so you cannot combine these libraries. Also defined in: * RepeatOnLifecycleWrongUsage: Wrong usage of repeatOnLifecycle (this issue) -* [RepeatOnLifecycleWrongUsage from androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08](RepeatOnLifecycleWrongUsage.md.html) +* [RepeatOnLifecycleWrongUsage from androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01](RepeatOnLifecycleWrongUsage.md.html) * [RepeatOnLifecycleWrongUsage from androidx.lifecycle:lifecycle-runtime-ktx:2.8.0-alpha01](RepeatOnLifecycleWrongUsage-2.md.html) diff --git a/docs/checks/RepeatOnLifecycleWrongUsage.md.html b/docs/checks/RepeatOnLifecycleWrongUsage.md.html index b09cdf03..11d3725f 100644 --- a/docs/checks/RepeatOnLifecycleWrongUsage.md.html +++ b/docs/checks/RepeatOnLifecycleWrongUsage.md.html @@ -49,7 +49,7 @@ well. Issue id's must be unique, so you cannot combine these libraries. Also defined in: * RepeatOnLifecycleWrongUsage: Wrong usage of repeatOnLifecycle (this issue) -* [RepeatOnLifecycleWrongUsage from androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08](RepeatOnLifecycleWrongUsage.md.html) +* [RepeatOnLifecycleWrongUsage from androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01](RepeatOnLifecycleWrongUsage.md.html) * [RepeatOnLifecycleWrongUsage from androidx.lifecycle:lifecycle-runtime-ktx:2.8.0-alpha01](RepeatOnLifecycleWrongUsage-2.md.html) @@ -61,17 +61,17 @@ ``` // build.gradle.kts -implementation("androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08") +implementation("androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01") // build.gradle -implementation 'androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08' +implementation 'androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.lifecycle.runtime.android) # libs.versions.toml [versions] -lifecycle-runtime-android = "2.9.0-alpha08" +lifecycle-runtime-android = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -83,7 +83,7 @@ } ``` -2.9.0-alpha08 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lifecycle:lifecycle-runtime-android](androidx_lifecycle_lifecycle-runtime-android.md.html). diff --git a/docs/checks/ReportShortcutUsage.md.html b/docs/checks/ReportShortcutUsage.md.html index ccdf7466..362b9996 100644 --- a/docs/checks/ReportShortcutUsage.md.html +++ b/docs/checks/ReportShortcutUsage.md.html @@ -2,7 +2,7 @@ (#) Report shortcut usage !!! Tip: Report shortcut usage - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `ReportShortcutUsage` diff --git a/docs/checks/RequiresWindowSdk.md.html b/docs/checks/RequiresWindowSdk.md.html new file mode 100644 index 00000000..1888cf55 --- /dev/null +++ b/docs/checks/RequiresWindowSdk.md.html @@ -0,0 +1,147 @@ + +(#) API requires a `WindowSdkExtensions.extensionVersion` check + +!!! ERROR: API requires a `WindowSdkExtensions.extensionVersion` check + This is an error. + +Id +: `RequiresWindowSdk` +Summary +: API requires a `WindowSdkExtensions.extensionVersion` check +Severity +: Error +Category +: Correctness +Platform +: Android +Vendor +: Android Open Source Project +Feedback +: https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.10.0 (May 2025) +Affects +: Kotlin and Java files +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/WindowExtensionsDetector.kt) +Tests +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/WindowExtensionsDetectorTest.kt) + +Some methods in the window library require explicit checks of the +`extensionVersion` level: +```kotlin +if (WindowSdkExtensions.getInstance().extensionVersion >= n) { + val supportedPostures = windowInfoTracker.supportedPostures + ... +``` +This lint check looks for scenarios where you're calling these methods +without checking the extension version level, or annotating the calling +method with a sufficient `@RequiresWindowSdkExtension` annotation. + +(This lint check does not tackle more advanced ways of version checks, +such as extracting the checks into utility methods or constants. Use a +direct `if` check as shown above.) + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/test/pkg/test.kt:12:Error: Field requires window SDK extension level +6: `androidx.window.layout.WindowInfoTracker#getSupportedPostures` +[RequiresWindowSdk] + val supportedPostures = windowInfoTracker.supportedPostures // ERROR 1 + ----------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`src/test/pkg/test.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +@file:Suppress("unused", "UnusedVariable", "ControlFlowWithEmptyBody") + +package test.pkg + +import android.content.Context +import androidx.window.RequiresWindowSdkExtension +import androidx.window.WindowSdkExtensions +import androidx.window.layout.WindowInfoTracker + +fun testPositive(context: Context) { + val windowInfoTracker = WindowInfoTracker.getOrCreate(context) + val supportedPostures = windowInfoTracker.supportedPostures // ERROR 1 + +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/WindowExtensionsDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("RequiresWindowSdk") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("RequiresWindowSdk") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection RequiresWindowSdk + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="RequiresWindowSdk" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'RequiresWindowSdk' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore RequiresWindowSdk ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/RestrictCallsTo.md.html b/docs/checks/RestrictCallsTo.md.html index f01427c0..0d355e4d 100644 --- a/docs/checks/RestrictCallsTo.md.html +++ b/docs/checks/RestrictCallsTo.md.html @@ -152,17 +152,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -174,7 +174,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/RetrofitUsage.md.html b/docs/checks/RetrofitUsage.md.html index aa388f0e..f14e355f 100644 --- a/docs/checks/RetrofitUsage.md.html +++ b/docs/checks/RetrofitUsage.md.html @@ -111,17 +111,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -133,7 +133,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/ReturnFromAwaitPointerEventScope.md.html b/docs/checks/ReturnFromAwaitPointerEventScope.md.html index 3837576d..c3b583de 100644 --- a/docs/checks/ReturnFromAwaitPointerEventScope.md.html +++ b/docs/checks/ReturnFromAwaitPointerEventScope.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) Since @@ -53,17 +53,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -75,11 +75,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). diff --git a/docs/checks/SerializableUsage.md.html b/docs/checks/SerializableUsage.md.html index d4fc696b..80336bfc 100644 --- a/docs/checks/SerializableUsage.md.html +++ b/docs/checks/SerializableUsage.md.html @@ -86,17 +86,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -108,7 +108,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/SimilarGradleDependency.md.html b/docs/checks/SimilarGradleDependency.md.html index 4aa853ff..c37d22f9 100644 --- a/docs/checks/SimilarGradleDependency.md.html +++ b/docs/checks/SimilarGradleDependency.md.html @@ -2,7 +2,7 @@ (#) Multiple Versions Gradle Dependency !!! Tip: Multiple Versions Gradle Dependency - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `SimilarGradleDependency` diff --git a/docs/checks/SpanMarkPointMissingMask.md.html b/docs/checks/SpanMarkPointMissingMask.md.html index 260adde8..4f3207e6 100644 --- a/docs/checks/SpanMarkPointMissingMask.md.html +++ b/docs/checks/SpanMarkPointMissingMask.md.html @@ -92,17 +92,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -114,7 +114,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/SpecifyForegroundServiceType.md.html b/docs/checks/SpecifyForegroundServiceType.md.html index 24c2c822..747fe52a 100644 --- a/docs/checks/SpecifyForegroundServiceType.md.html +++ b/docs/checks/SpecifyForegroundServiceType.md.html @@ -89,17 +89,17 @@ ``` // build.gradle.kts -implementation("androidx.work:work-runtime:2.10.0") +implementation("androidx.work:work-runtime:2.10.1") // build.gradle -implementation 'androidx.work:work-runtime:2.10.0' +implementation 'androidx.work:work-runtime:2.10.1' // build.gradle.kts with version catalogs: implementation(libs.work.runtime) # libs.versions.toml [versions] -work-runtime = "2.10.0" +work-runtime = "2.10.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -111,7 +111,7 @@ } ``` -2.10.0 is the version this documentation was generated from; +2.10.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.work:work-runtime](androidx_work_work-runtime.md.html). diff --git a/docs/checks/SpecifyJobSchedulerIdRange.md.html b/docs/checks/SpecifyJobSchedulerIdRange.md.html index e00de5bb..b9ce78d0 100644 --- a/docs/checks/SpecifyJobSchedulerIdRange.md.html +++ b/docs/checks/SpecifyJobSchedulerIdRange.md.html @@ -84,17 +84,17 @@ ``` // build.gradle.kts -implementation("androidx.work:work-runtime:2.10.0") +implementation("androidx.work:work-runtime:2.10.1") // build.gradle -implementation 'androidx.work:work-runtime:2.10.0' +implementation 'androidx.work:work-runtime:2.10.1' // build.gradle.kts with version catalogs: implementation(libs.work.runtime) # libs.versions.toml [versions] -work-runtime = "2.10.0" +work-runtime = "2.10.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -106,7 +106,7 @@ } ``` -2.10.0 is the version this documentation was generated from; +2.10.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.work:work-runtime](androidx_work_work-runtime.md.html). diff --git a/docs/checks/StateFlowValueCalledInComposition.md.html b/docs/checks/StateFlowValueCalledInComposition.md.html index f7b31877..fcd50ecc 100644 --- a/docs/checks/StateFlowValueCalledInComposition.md.html +++ b/docs/checks/StateFlowValueCalledInComposition.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -195,17 +195,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -217,11 +217,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/SubscribeOnMain.md.html b/docs/checks/SubscribeOnMain.md.html index 5c2310e4..a21db40c 100644 --- a/docs/checks/SubscribeOnMain.md.html +++ b/docs/checks/SubscribeOnMain.md.html @@ -111,17 +111,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -133,7 +133,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/SuspiciousCompositionLocalModifierRead.md.html b/docs/checks/SuspiciousCompositionLocalModifierRead.md.html index 5b951e93..9f655ac6 100644 --- a/docs/checks/SuspiciousCompositionLocalModifierRead.md.html +++ b/docs/checks/SuspiciousCompositionLocalModifierRead.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) Since @@ -117,17 +117,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -139,11 +139,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). diff --git a/docs/checks/SuspiciousModifierThen.md.html b/docs/checks/SuspiciousModifierThen.md.html index 130c83f1..16d52a61 100644 --- a/docs/checks/SuspiciousModifierThen.md.html +++ b/docs/checks/SuspiciousModifierThen.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) Since @@ -107,17 +107,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -129,11 +129,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). diff --git a/docs/checks/TestLifecycleOwnerInCoroutine.md.html b/docs/checks/TestLifecycleOwnerInCoroutine.md.html index 332c47fb..6e80a873 100644 --- a/docs/checks/TestLifecycleOwnerInCoroutine.md.html +++ b/docs/checks/TestLifecycleOwnerInCoroutine.md.html @@ -100,17 +100,17 @@ ``` // build.gradle.kts -implementation("androidx.lifecycle:lifecycle-runtime-testing:2.9.0-alpha08") +implementation("androidx.lifecycle:lifecycle-runtime-testing:2.9.0-rc01") // build.gradle -implementation 'androidx.lifecycle:lifecycle-runtime-testing:2.9.0-alpha08' +implementation 'androidx.lifecycle:lifecycle-runtime-testing:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.lifecycle.runtime.testing) # libs.versions.toml [versions] -lifecycle-runtime-testing = "2.9.0-alpha08" +lifecycle-runtime-testing = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -122,7 +122,7 @@ } ``` -2.9.0-alpha08 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lifecycle:lifecycle-runtime-testing](androidx_lifecycle_lifecycle-runtime-testing.md.html). diff --git a/docs/checks/TestManifestGradleConfiguration.md.html b/docs/checks/TestManifestGradleConfiguration.md.html index 57314cb7..50fa5185 100644 --- a/docs/checks/TestManifestGradleConfiguration.md.html +++ b/docs/checks/TestManifestGradleConfiguration.md.html @@ -112,17 +112,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-test-manifest:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-test-manifest:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-test-manifest:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-test-manifest:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.test.manifest) # libs.versions.toml [versions] -ui-test-manifest = "1.8.0-alpha07" +ui-test-manifest = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -134,11 +134,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-test-manifest-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-test-manifest-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-test-manifest](androidx_compose_ui_ui-test-manifest.md.html). diff --git a/docs/checks/TestParameterSiteTarget.md.html b/docs/checks/TestParameterSiteTarget.md.html new file mode 100644 index 00000000..78612d1d --- /dev/null +++ b/docs/checks/TestParameterSiteTarget.md.html @@ -0,0 +1,172 @@ + +(#) `TestParameter` annotation has the wrong site target + +!!! ERROR: `TestParameter` annotation has the wrong site target + This is an error. + +Id +: `TestParameterSiteTarget` +Summary +: `TestParameter` annotation has the wrong site target +Severity +: Error +Category +: Correctness +Platform +: Any +Vendor +: slack +Identifier +: slack-lint +Contact +: https://github.com/slackhq/slack-lints +Feedback +: https://github.com/slackhq/slack-lints +Min +: Lint 8.7+ +Compiled +: Lint 8.7+ +Artifact +: [com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html) +Since +: 0.9.0 +Affects +: Kotlin and Java files and test sources +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/main/java/slack/lint/TestParameterSiteTargetDetector.kt) +Tests +: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/TestParameterSiteTargetDetectorTest.kt) +Copyright Year +: 2025 + +`TestParameter` annotations on parameter properties must have `param:` +site targets.For example:```kotlinclass MyTest( @param:TestParameter +val myParam: String)```For more information, see: +https://github.com/google/TestParameterInjector/issues/49 + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/MyTest.kt:3:Error: TestParameter annotation has the wrong site +target [TestParameterSiteTarget] + @com.google.testing.junit.testparameterinjector.TestParameter val myParam: String + ------------------------------------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`src/MyTest.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +class MyTest( + @com.google.testing.junit.testparameterinjector.TestParameter val myParam: String +) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/TestParameterSiteTargetDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +(##) Including + +!!! + This is not a built-in check. To include it, add the below dependency + to your project. This lint check is included in the lint documentation, + but the Android team may or may not agree with its recommendations. + +``` +// build.gradle.kts +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") + +// build.gradle +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' + +// build.gradle.kts with version catalogs: +lintChecks(libs.slack.lint.checks) + +# libs.versions.toml +[versions] +slack-lint-checks = "0.9.0" +[libraries] +# For clarity and text wrapping purposes the following declaration is +# shown split up across lines, but in TOML it needs to be on a single +# line (see https://github.com/toml-lang/toml/issues/516) so adjust +# when pasting into libs.versions.toml: +slack-lint-checks = { + module = "com.slack.lint:slack-lint-checks", + version.ref = "slack-lint-checks" +} +``` + +0.9.0 is the version this documentation was generated from; +there may be newer versions available. + +[Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("TestParameterSiteTarget") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("TestParameterSiteTarget") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection TestParameterSiteTarget + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="TestParameterSiteTarget" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'TestParameterSiteTarget' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore TestParameterSiteTarget ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/TrimLambda.md.html b/docs/checks/TrimLambda.md.html index d1a430b3..b9947a4d 100644 --- a/docs/checks/TrimLambda.md.html +++ b/docs/checks/TrimLambda.md.html @@ -2,7 +2,7 @@ (#) Unnecessary lambda with `trim()` !!! Tip: Unnecessary lambda with `trim()` - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `TrimLambda` @@ -18,6 +18,8 @@ : Android Open Source Project Feedback : https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.10.0 (May 2025) Affects : Kotlin and Java files Editing @@ -26,8 +28,6 @@ : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/TrimDetector.kt) Tests : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/TrimDetectorTest.kt) -Copyright Year -: 2025 The Kotlin standard library `trim()` call takes an optional lambda to specify which characters are considered whitespace. diff --git a/docs/checks/UElementAsPsi.md.html b/docs/checks/UElementAsPsi.md.html new file mode 100644 index 00000000..90f49a19 --- /dev/null +++ b/docs/checks/UElementAsPsi.md.html @@ -0,0 +1,264 @@ + +(#) Avoid using UElement as PsiElement + +!!! WARNING: Avoid using UElement as PsiElement + This is a warning. + +Id +: `UElementAsPsi` +Summary +: Avoid using UElement as PsiElement +Severity +: Warning +Category +: Lint Implementation Issues +Platform +: JDK +Vendor +: Android Open Source Project +Feedback +: https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.10.0 (May 2025) +Affects +: Kotlin and Java files +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/UElementAsPsiDetector.kt) +Tests +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/UElementAsPsiDetectorTest.kt) + +Avoid using UAST element as PSI element. If you need to utilize PSI +APIs, retrieve the underlying `javaPsi` explicitly. If you need to +analyze language-specific information, access `sourcePsi`. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +src/test/pkg/MyJavaLintDetector.java:37:Warning: Do not use UElement as +PsiElement [UElementAsPsi] + method.getContainingClass(); // ERROR 1 + --------------------------- +src/test/pkg/MyJavaLintDetector.java:38:Warning: Do not use UElement as +PsiElement [UElementAsPsi] + field.getContainingClass(); // ERROR 2 + -------------------------- +src/test/pkg/MyJavaLintDetector.java:46:Warning: Do not use UElement as +PsiElement [UElementAsPsi] + PsiElement parent = method.getParent(); // ERROR 3 + ------------------ +src/test/pkg/MyJavaLintDetector.java:48:Warning: Do not use UElement as +PsiElement [UElementAsPsi] + PsiTreeUtil.getParentOfType(method, PsiClass.class); // ERROR 4 + ------ +src/test/pkg/MyKotlinLintDetector.kt:21:Warning: Do not use UElement as +PsiElement [UElementAsPsi] + method.getContainingClass() // ERROR 5 + --------------------------- +src/test/pkg/MyKotlinLintDetector.kt:22:Warning: Do not use UElement as +PsiElement [UElementAsPsi] + field.getContainingClass() // ERROR 6 + -------------------------- +src/test/pkg/MyKotlinLintDetector.kt:32:Warning: Do not use UElement as +PsiElement [UElementAsPsi] + val parent2 = method.parent // ERROR 7 + ------------- +src/test/pkg/MyKotlinLintDetector.kt:34:Warning: Do not use UElement as +PsiElement [UElementAsPsi] + PsiTreeUtil.getParentOfType(method, PsiClass::class.java) // ERROR 8 + ------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here are the relevant source files: + +`src/test/pkg/MyJavaLintDetector.java`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers +/* Copyright (C) 2025 The Android Open Source Project */ +package test.pkg; +import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiCallExpression; +import com.intellij.psi.PsiExpression; +import com.intellij.psi.PsiField; +import com.intellij.psi.PsiMethod; +import com.intellij.psi.util.PsiTreeUtil; +import com.android.tools.lint.detector.api.Detector; +import org.jetbrains.uast.UFile; +import org.jetbrains.uast.UMethod; +import org.jetbrains.uast.UField; +import com.android.tools.lint.detector.api.Category; +import com.android.tools.lint.detector.api.Detector; +import com.android.tools.lint.detector.api.Implementation; +import com.android.tools.lint.detector.api.Issue; +import com.android.tools.lint.detector.api.JavaContext; +import com.android.tools.lint.detector.api.Scope; +import com.android.tools.lint.detector.api.Severity; +import org.jetbrains.uast.UCallExpression; +import java.util.EnumSet; + +@SuppressWarnings({"MethodMayBeStatic", "ClassNameDiffersFromFileName", "StatementWithEmptyBody", "deprecation"}) +public class MyJavaLintDetector extends Detector { + public static final Issue ISSUE = + Issue.create( + "com.android.namespaced.lint.check.FooDetector", + "Wrong use of ", + "As described in " + + "https://code.google.com/p/android/issues/detail?id=65351 blah blah blah.", + Category.A11Y, + 3, + Severity.WARNING, + new Implementation(MyJavaLintDetector.class, EnumSet.of(Scope.RESOURCE_FILE, Scope.JAVA_FILE))); + + public void testGetContainingClass(UMethod method, UField field) { + method.getContainingClass(); // ERROR 1 + field.getContainingClass(); // ERROR 2 + } + public void testGetContainingClass(PsiMethod method, PsiField field) { + method.getContainingClass(); // OK + field.getContainingClass(); // OK + } + public void testParents(PsiField field, UMethod method) { + PsiElement parent = field.getParent(); // OK + PsiElement parent = method.getParent(); // ERROR 3 + PsiTreeUtil.getParentOfType(field, PsiClass.class); // OK + PsiTreeUtil.getParentOfType(method, PsiClass.class); // ERROR 4 + } +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`src/test/pkg/MyKotlinLintDetector.kt`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +/* Copyright (C) 2025 The Android Open Source Project */ +package test.pkg +import com.intellij.psi.PsiClass +import com.intellij.psi.PsiCallExpression +import com.intellij.psi.PsiExpression +import com.intellij.psi.PsiField +import com.intellij.psi.PsiMethod +import com.intellij.psi.util.PsiTreeUtil +import com.android.tools.lint.detector.api.Category +import com.android.tools.lint.detector.api.Detector +import com.android.tools.lint.detector.api.Implementation +import com.android.tools.lint.detector.api.Issue +import com.android.tools.lint.detector.api.JavaContext +import com.android.tools.lint.detector.api.Scope +import com.android.tools.lint.detector.api.Severity +import org.jetbrains.uast.UMethod +import org.jetbrains.uast.UField + +class MyKotlinLintDetector : Detector() { + fun testGetContainingClass(method: UMethod, field: UField) { + method.getContainingClass() // ERROR 5 + field.getContainingClass() // ERROR 6 + } + + fun testGetContainingClass(method: PsiMethod, field: PsiField) { + method.getContainingClass() // OK + field.getContainingClass() // OK + } + + fun testParents(field: PsiField, method: UMethod) { + val parent1 = field.parent // OK + val parent2 = method.parent // ERROR 7 + PsiTreeUtil.getParentOfType(field, PsiClass::class.java) // OK + PsiTreeUtil.getParentOfType(method, PsiClass::class.java) // ERROR 8 + } + + companion object { + private val IMPLEMENTATION = + Implementation( + MyKotlinLintDetector::class.java, + Scope.JAVA_FILE_SCOPE + ) + + val ISSUE = + Issue.create( + id = "badlyCapitalized id", + briefDescription = "checks MyLintDetector.", + explanation = """ + Some description here. + Here's a call: foo.bar.baz(args). + This line continuation is okay. \ + But this one is missing a space.\ + Okay? + """.trimIndent(), + category = Category.INTEROPERABILITY_KOTLIN, + priority = 4, + severity = Severity.WARNING, + implementation = IMPLEMENTATION + ) + } +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/UElementAsPsiDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression annotation like this on the enclosing + element: + + ```kt + // Kotlin + @Suppress("UElementAsPsi") + fun method() { + problematicStatement() + } + ``` + + or + + ```java + // Java + @SuppressWarnings("UElementAsPsi") + void method() { + problematicStatement(); + } + ``` + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection UElementAsPsi + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="UElementAsPsi" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'UElementAsPsi' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore UElementAsPsi ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/UnnecessaryArrayInit.md.html b/docs/checks/UnnecessaryArrayInit.md.html index a6ea6a5f..914c3615 100644 --- a/docs/checks/UnnecessaryArrayInit.md.html +++ b/docs/checks/UnnecessaryArrayInit.md.html @@ -2,7 +2,7 @@ (#) Unnecessary array initialization !!! Tip: Unnecessary array initialization - Advice from this check is just a hint; it's "weak" warning. + Advice from this check is just a hint; it's a "weak" warning. Id : `UnnecessaryArrayInit` @@ -18,6 +18,8 @@ : Android Open Source Project Feedback : https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.10.0 (May 2025) Affects : Kotlin and Java files Editing @@ -26,8 +28,6 @@ : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/ArrayInitDetector.kt) Tests : [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/ArrayInitDetectorTest.kt) -Copyright Year -: 2025 When constructing an array in Kotlin, you don't need to pass a lambda to set the initial value if it's identical to the default or if you're diff --git a/docs/checks/UnnecessaryComposedModifier.md.html b/docs/checks/UnnecessaryComposedModifier.md.html index f23aed93..8f0300ae 100644 --- a/docs/checks/UnnecessaryComposedModifier.md.html +++ b/docs/checks/UnnecessaryComposedModifier.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) Since @@ -113,17 +113,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -135,11 +135,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. [Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html). diff --git a/docs/checks/UnrememberedAnimatable.md.html b/docs/checks/UnrememberedAnimatable.md.html index 62191fd7..a8929674 100644 --- a/docs/checks/UnrememberedAnimatable.md.html +++ b/docs/checks/UnrememberedAnimatable.md.html @@ -1,348 +1,8 @@ -(#) Creating an Animatable during composition without using `remember` +(#) UnrememberedAnimatable -!!! ERROR: Creating an Animatable during composition without using `remember` - This is an error. - -Id -: `UnrememberedAnimatable` -Summary -: Creating an Animatable during composition without using `remember` -Severity -: Error -Category -: Correctness -Platform -: Any -Vendor -: Jetpack Compose -Identifier -: androidx.compose.animation.core -Feedback -: https://issuetracker.google.com/issues/new?component=612128 -Min -: Lint 8.0 and 8.1 -Compiled -: Lint 8.7+ -Artifact -: [androidx.compose.animation:animation-core-android](androidx_compose_animation_animation-core-android.md.html) -Since -: 1.5.0 -Affects -: Kotlin and Java files and test sources -Editing -: This check runs on the fly in the IDE editor -Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/animation/animation-core-lint/src/main/java/androidx/compose/animation/core/lint/UnrememberedAnimatableDetector.kt) -Tests -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/animation/animation-core-lint/src/test/java/androidx/compose/animation/core/lint/UnrememberedAnimatableDetectorTest.kt) -Copyright Year -: 2021 - -Animatable instances created during composition need to be `remember`ed, -otherwise they will be recreated during recomposition, and lose their -state. Either hoist the Animatable to an object that is not created -during composition, or wrap the Animatable in a call to `remember`. - -(##) Example - -Here is an example of lint warnings produced by this check: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -src/test/{.kt:12:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable = Animatable<Boolean, Any>(false) - ---------- -src/test/{.kt:13:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable2 = Animatable(0f) - ---------- -src/test/{.kt:15:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable3 = Animatable(Color.Red) - ---------- -src/test/{.kt:20:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable = Animatable<Boolean, Any>(false) - ---------- -src/test/{.kt:21:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable2 = Animatable(0f) - ---------- -src/test/{.kt:23:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable3 = Animatable(Color.Red) - ---------- -src/test/{.kt:28:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable = Animatable<Boolean, Any>(false) - ---------- -src/test/{.kt:29:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable2 = Animatable(0f) - ---------- -src/test/{.kt:31:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable3 = Animatable(Color.Red) - ---------- -src/test/{.kt:41:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable = Animatable<Boolean, Any>(false) - ---------- -src/test/{.kt:42:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable2 = Animatable(0f) - ---------- -src/test/{.kt:44:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable3 = Animatable(Color.Red) - ---------- -src/test/{.kt:48:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable = Animatable<Boolean, Any>(false) - ---------- -src/test/{.kt:49:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable2 = Animatable(0f) - ---------- -src/test/{.kt:51:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable3 = Animatable(Color.Red) - ---------- -src/test/{.kt:58:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable = Animatable<Boolean, Any>(false) - ---------- -src/test/{.kt:59:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable2 = Animatable(0f) - ---------- -src/test/{.kt:61:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable3 = Animatable(Color.Red) - ---------- -src/test/{.kt:66:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable = Animatable<Boolean, Any>(false) - ---------- -src/test/{.kt:67:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable2 = Animatable(0f) - ---------- -src/test/{.kt:69:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable3 = Animatable(Color.Red) - ---------- -src/test/{.kt:77:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable = Animatable<Boolean, Any>(false) - ---------- -src/test/{.kt:78:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable2 = Animatable(0f) - ---------- -src/test/{.kt:80:Error: Creating an Animatable during composition -without using remember [UnrememberedAnimatable] - val animatable3 = Animatable(Color.Red) - ---------- -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Here is the source file referenced above: - -`src/test/{.kt`: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers -package test - -import androidx.compose.animation.* -import androidx.compose.animation.core.* -import androidx.compose.runtime.* -import androidx.compose.ui.graphics.* - -@Composable -fun Test() { - // Float function and constructor from androidx.compose.animation.core - val animatable = Animatable(false) - val animatable2 = Animatable(0f) - // Color function from androidx.compose.animation - val animatable3 = Animatable(Color.Red) -} - -val lambda = @Composable { - // Float function and constructor from androidx.compose.animation.core - val animatable = Animatable(false) - val animatable2 = Animatable(0f) - // Color function from androidx.compose.animation - val animatable3 = Animatable(Color.Red) -} - -val lambda2: @Composable () -> Unit = { - // Float function and constructor from androidx.compose.animation.core - val animatable = Animatable(false) - val animatable2 = Animatable(0f) - // Color function from androidx.compose.animation - val animatable3 = Animatable(Color.Red) -} - -@Composable -fun LambdaParameter(content: @Composable () -> Unit) {} - -@Composable -fun Test2() { - LambdaParameter(content = { - // Float function and constructor from androidx.compose.animation.core - val animatable = Animatable(false) - val animatable2 = Animatable(0f) - // Color function from androidx.compose.animation - val animatable3 = Animatable(Color.Red) - }) - LambdaParameter { - // Float function and constructor from androidx.compose.animation.core - val animatable = Animatable(false) - val animatable2 = Animatable(0f) - // Color function from androidx.compose.animation - val animatable3 = Animatable(Color.Red) - } -} - -fun test3() { - val localLambda1 = @Composable { - // Float function and constructor from androidx.compose.animation.core - val animatable = Animatable(false) - val animatable2 = Animatable(0f) - // Color function from androidx.compose.animation - val animatable3 = Animatable(Color.Red) - } - - val localLambda2: @Composable () -> Unit = { - // Float function and constructor from androidx.compose.animation.core - val animatable = Animatable(false) - val animatable2 = Animatable(0f) - // Color function from androidx.compose.animation - val animatable3 = Animatable(Color.Red) - } -} - -@Composable -fun Test4() { - val localObject = object { - // Float function and constructor from androidx.compose.animation.core - val animatable = Animatable(false) - val animatable2 = Animatable(0f) - // Color function from androidx.compose.animation - val animatable3 = Animatable(Color.Red) - } -} -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You can also visit the -[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/animation/animation-core-lint/src/test/java/androidx/compose/animation/core/lint/UnrememberedAnimatableDetectorTest.kt) -for the unit tests for this check to see additional scenarios. - -The above example was automatically extracted from the first unit test -found for this lint check, `UnrememberedAnimatableDetector.notRemembered`. -To report a problem with this extracted sample, visit -https://issuetracker.google.com/issues/new?component=612128. - -(##) Including - -!!! - This is not a built-in check. To include it, add the below dependency - to your project. - -``` -// build.gradle.kts -implementation("androidx.compose.animation:animation-core-android:1.8.0-alpha07") - -// build.gradle -implementation 'androidx.compose.animation:animation-core-android:1.8.0-alpha07' - -// build.gradle.kts with version catalogs: -implementation(libs.animation.core.android) - -# libs.versions.toml -[versions] -animation-core-android = "1.8.0-alpha07" -[libraries] -# For clarity and text wrapping purposes the following declaration is -# shown split up across lines, but in TOML it needs to be on a single -# line (see https://github.com/toml-lang/toml/issues/516) so adjust -# when pasting into libs.versions.toml: -animation-core-android = { - module = "androidx.compose.animation:animation-core-android", - version.ref = "animation-core-android" -} -``` - -1.8.0-alpha07 is the version this documentation was generated from; -there may be newer versions available. - -NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.animation:animation-core-lint:1.8.0-alpha07`. - - -[Additional details about androidx.compose.animation:animation-core-android](androidx_compose_animation_animation-core-android.md.html). -(##) Suppressing - -You can suppress false positives using one of the following mechanisms: - -* Using a suppression annotation like this on the enclosing - element: - - ```kt - // Kotlin - @Suppress("UnrememberedAnimatable") - fun method() { - problematicStatement() - } - ``` - - or - - ```java - // Java - @SuppressWarnings("UnrememberedAnimatable") - void method() { - problematicStatement(); - } - ``` - -* Using a suppression comment like this on the line above: - - ```kt - //noinspection UnrememberedAnimatable - problematicStatement() - ``` - -* Using a special `lint.xml` file in the source tree which turns off - the check in that folder and any sub folder. A simple file might look - like this: - ```xml - <?xml version="1.0" encoding="UTF-8"?> - <lint> - <issue id="UnrememberedAnimatable" severity="ignore" /> - </lint> - ``` - Instead of `ignore` you can also change the severity here, for - example from `error` to `warning`. You can find additional - documentation on how to filter issues by path, regular expression and - so on - [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). - -* In Gradle projects, using the DSL syntax to configure lint. For - example, you can use something like - ```gradle - lintOptions { - disable 'UnrememberedAnimatable' - } - ``` - In Android projects this should be nested inside an `android { }` - block. - -* For manual invocations of `lint`, using the `--ignore` flag: - ``` - $ lint --ignore UnrememberedAnimatable ...` - ``` - -* Last, but not least, using baselines, as discussed - [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). +The issue for this id has been deleted or marked obsolete and can now be +ignored. +(Additional metadata not available.) \ No newline at end of file diff --git a/docs/checks/UnrememberedGetBackStackEntry.md.html b/docs/checks/UnrememberedGetBackStackEntry.md.html index f2f3d6e0..3683d9af 100644 --- a/docs/checks/UnrememberedGetBackStackEntry.md.html +++ b/docs/checks/UnrememberedGetBackStackEntry.md.html @@ -170,17 +170,17 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-compose:2.9.0-alpha04") +implementation("androidx.navigation:navigation-compose:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-compose:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-compose:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.navigation.compose) # libs.versions.toml [versions] -navigation-compose = "2.9.0-alpha04" +navigation-compose = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -192,7 +192,7 @@ } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html). diff --git a/docs/checks/UnrememberedMutableInteractionSource.md.html b/docs/checks/UnrememberedMutableInteractionSource.md.html index f06cdad9..1868a9e7 100644 --- a/docs/checks/UnrememberedMutableInteractionSource.md.html +++ b/docs/checks/UnrememberedMutableInteractionSource.md.html @@ -1,259 +1,8 @@ -(#) Creating a MutableInteractionSource during composition without using `remember` +(#) UnrememberedMutableInteractionSource -!!! ERROR: Creating a MutableInteractionSource during composition without using `remember` - This is an error. - -Id -: `UnrememberedMutableInteractionSource` -Summary -: Creating a MutableInteractionSource during composition without using `remember` -Severity -: Error -Category -: Correctness -Platform -: Any -Vendor -: Jetpack Compose -Identifier -: androidx.compose.foundation -Feedback -: https://issuetracker.google.com/issues/new?component=612128 -Min -: Lint 8.0 and 8.1 -Compiled -: Lint 8.7+ -Artifact -: [androidx.compose.foundation:foundation-android](androidx_compose_foundation_foundation-android.md.html) -Since -: 1.6.0 -Affects -: Kotlin and Java files and test sources -Editing -: This check runs on the fly in the IDE editor -Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/foundation/foundation-lint/src/main/java/androidx/compose/foundation/lint/UnrememberedMutableInteractionSourceDetector.kt) -Tests -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/foundation/foundation-lint/src/test/java/androidx/compose/foundation/lint/UnrememberedMutableInteractionSourceDetectorTest.kt) -Copyright Year -: 2023 - -MutableInteractionSource instances created during composition need to be -`remember`ed, otherwise they will be recreated during recomposition, and -lose their state. Either hoist the MutableInteractionSource to an object -that is not created during composition, or wrap the -MutableInteractionSource in a call to `remember`. - -(##) Example - -Here is an example of lint warnings produced by this check: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -src/test/{.kt:9:Error: Creating a MutableInteractionSource during -composition without using remember -[UnrememberedMutableInteractionSource] - val interactionSource = MutableInteractionSource() - ------------------------ -src/test/{.kt:13:Error: Creating a MutableInteractionSource during -composition without using remember -[UnrememberedMutableInteractionSource] - val interactionSource = MutableInteractionSource() - ------------------------ -src/test/{.kt:17:Error: Creating a MutableInteractionSource during -composition without using remember -[UnrememberedMutableInteractionSource] - val interactionSource = MutableInteractionSource() - ------------------------ -src/test/{.kt:26:Error: Creating a MutableInteractionSource during -composition without using remember -[UnrememberedMutableInteractionSource] - val interactionSource = MutableInteractionSource() - ------------------------ -src/test/{.kt:29:Error: Creating a MutableInteractionSource during -composition without using remember -[UnrememberedMutableInteractionSource] - val interactionSource = MutableInteractionSource() - ------------------------ -src/test/{.kt:35:Error: Creating a MutableInteractionSource during -composition without using remember -[UnrememberedMutableInteractionSource] - val interactionSource = MutableInteractionSource() - ------------------------ -src/test/{.kt:39:Error: Creating a MutableInteractionSource during -composition without using remember -[UnrememberedMutableInteractionSource] - val interactionSource = MutableInteractionSource() - ------------------------ -src/test/{.kt:46:Error: Creating a MutableInteractionSource during -composition without using remember -[UnrememberedMutableInteractionSource] - val interactionSource = MutableInteractionSource() - ------------------------ -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Here is the source file referenced above: - -`src/test/{.kt`: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers -package test - -import androidx.compose.foundation.interaction.* -import androidx.compose.runtime.* - -@Composable -fun Test() { - val interactionSource = MutableInteractionSource() -} - -val lambda = @Composable { - val interactionSource = MutableInteractionSource() -} - -val lambda2: @Composable () -> Unit = { - val interactionSource = MutableInteractionSource() -} - -@Composable -fun LambdaParameter(content: @Composable () -> Unit) {} - -@Composable -fun Test2() { - LambdaParameter(content = { - val interactionSource = MutableInteractionSource() - }) - LambdaParameter { - val interactionSource = MutableInteractionSource() - } -} - -fun test3() { - val localLambda1 = @Composable { - val interactionSource = MutableInteractionSource() - } - - val localLambda2: @Composable () -> Unit = { - val interactionSource = MutableInteractionSource() - } -} - -@Composable -fun Test4() { - val localObject = object { - val interactionSource = MutableInteractionSource() - } -} -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You can also visit the -[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/foundation/foundation-lint/src/test/java/androidx/compose/foundation/lint/UnrememberedMutableInteractionSourceDetectorTest.kt) -for the unit tests for this check to see additional scenarios. - -The above example was automatically extracted from the first unit test -found for this lint check, `UnrememberedMutableInteractionSourceDetector.notRemembered`. -To report a problem with this extracted sample, visit -https://issuetracker.google.com/issues/new?component=612128. - -(##) Including - -!!! - This is not a built-in check. To include it, add the below dependency - to your project. - -``` -// build.gradle.kts -implementation("androidx.compose.foundation:foundation-android:1.8.0-alpha07") - -// build.gradle -implementation 'androidx.compose.foundation:foundation-android:1.8.0-alpha07' - -// build.gradle.kts with version catalogs: -implementation(libs.foundation.android) - -# libs.versions.toml -[versions] -foundation-android = "1.8.0-alpha07" -[libraries] -# For clarity and text wrapping purposes the following declaration is -# shown split up across lines, but in TOML it needs to be on a single -# line (see https://github.com/toml-lang/toml/issues/516) so adjust -# when pasting into libs.versions.toml: -foundation-android = { - module = "androidx.compose.foundation:foundation-android", - version.ref = "foundation-android" -} -``` - -1.8.0-alpha07 is the version this documentation was generated from; -there may be newer versions available. - -NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.foundation:foundation-lint:1.8.0-alpha07`. - - -[Additional details about androidx.compose.foundation:foundation-android](androidx_compose_foundation_foundation-android.md.html). -(##) Suppressing - -You can suppress false positives using one of the following mechanisms: - -* Using a suppression annotation like this on the enclosing - element: - - ```kt - // Kotlin - @Suppress("UnrememberedMutableInteractionSource") - fun method() { - MutableInteractionSource(...) - } - ``` - - or - - ```java - // Java - @SuppressWarnings("UnrememberedMutableInteractionSource") - void method() { - MutableInteractionSource(...); - } - ``` - -* Using a suppression comment like this on the line above: - - ```kt - //noinspection UnrememberedMutableInteractionSource - problematicStatement() - ``` - -* Using a special `lint.xml` file in the source tree which turns off - the check in that folder and any sub folder. A simple file might look - like this: - ```xml - <?xml version="1.0" encoding="UTF-8"?> - <lint> - <issue id="UnrememberedMutableInteractionSource" severity="ignore" /> - </lint> - ``` - Instead of `ignore` you can also change the severity here, for - example from `error` to `warning`. You can find additional - documentation on how to filter issues by path, regular expression and - so on - [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). - -* In Gradle projects, using the DSL syntax to configure lint. For - example, you can use something like - ```gradle - lintOptions { - disable 'UnrememberedMutableInteractionSource' - } - ``` - In Android projects this should be nested inside an `android { }` - block. - -* For manual invocations of `lint`, using the `--ignore` flag: - ``` - $ lint --ignore UnrememberedMutableInteractionSource ...` - ``` - -* Last, but not least, using baselines, as discussed - [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). +The issue for this id has been deleted or marked obsolete and can now be +ignored. +(Additional metadata not available.) \ No newline at end of file diff --git a/docs/checks/UnrememberedMutableState.md.html b/docs/checks/UnrememberedMutableState.md.html index a5a4e758..44e1f17a 100644 --- a/docs/checks/UnrememberedMutableState.md.html +++ b/docs/checks/UnrememberedMutableState.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) Since @@ -271,17 +271,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -293,11 +293,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. [Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html). diff --git a/docs/checks/UnsafeLifecycleWhenUsage-2.md.html b/docs/checks/UnsafeLifecycleWhenUsage-2.md.html index e4492a62..ecc37505 100644 --- a/docs/checks/UnsafeLifecycleWhenUsage-2.md.html +++ b/docs/checks/UnsafeLifecycleWhenUsage-2.md.html @@ -58,7 +58,7 @@ well. Issue id's must be unique, so you cannot combine these libraries. Also defined in: * UnsafeLifecycleWhenUsage: Unsafe UI operation in finally/catch of Lifecycle.whenStarted of similar method (this issue) -* [UnsafeLifecycleWhenUsage from androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08](UnsafeLifecycleWhenUsage.md.html) +* [UnsafeLifecycleWhenUsage from androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01](UnsafeLifecycleWhenUsage.md.html) * [UnsafeLifecycleWhenUsage from androidx.lifecycle:lifecycle-runtime-ktx:2.8.0-alpha01](UnsafeLifecycleWhenUsage-2.md.html) diff --git a/docs/checks/UnsafeLifecycleWhenUsage.md.html b/docs/checks/UnsafeLifecycleWhenUsage.md.html index 1fd26292..2beb8e3d 100644 --- a/docs/checks/UnsafeLifecycleWhenUsage.md.html +++ b/docs/checks/UnsafeLifecycleWhenUsage.md.html @@ -58,7 +58,7 @@ well. Issue id's must be unique, so you cannot combine these libraries. Also defined in: * UnsafeLifecycleWhenUsage: Unsafe UI operation in finally/catch of Lifecycle.whenStarted of similar method (this issue) -* [UnsafeLifecycleWhenUsage from androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08](UnsafeLifecycleWhenUsage.md.html) +* [UnsafeLifecycleWhenUsage from androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01](UnsafeLifecycleWhenUsage.md.html) * [UnsafeLifecycleWhenUsage from androidx.lifecycle:lifecycle-runtime-ktx:2.8.0-alpha01](UnsafeLifecycleWhenUsage-2.md.html) @@ -70,17 +70,17 @@ ``` // build.gradle.kts -implementation("androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08") +implementation("androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01") // build.gradle -implementation 'androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08' +implementation 'androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.lifecycle.runtime.android) # libs.versions.toml [versions] -lifecycle-runtime-android = "2.9.0-alpha08" +lifecycle-runtime-android = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -92,7 +92,7 @@ } ``` -2.9.0-alpha08 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lifecycle:lifecycle-runtime-android](androidx_lifecycle_lifecycle-runtime-android.md.html). diff --git a/docs/checks/UnsafeOptInUsageError.md.html b/docs/checks/UnsafeOptInUsageError.md.html index b2fce9e5..65b8f5e1 100644 --- a/docs/checks/UnsafeOptInUsageError.md.html +++ b/docs/checks/UnsafeOptInUsageError.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=459778 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.annotation:annotation-experimental](androidx_annotation_annotation-experimental.md.html) Since @@ -74,17 +74,17 @@ ``` // build.gradle.kts -implementation("androidx.annotation:annotation-experimental:1.5.0-alpha01") +implementation("androidx.annotation:annotation-experimental:1.5.0-rc01") // build.gradle -implementation 'androidx.annotation:annotation-experimental:1.5.0-alpha01' +implementation 'androidx.annotation:annotation-experimental:1.5.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.annotation.experimental) # libs.versions.toml [versions] -annotation-experimental = "1.5.0-alpha01" +annotation-experimental = "1.5.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -96,7 +96,7 @@ } ``` -1.5.0-alpha01 is the version this documentation was generated from; +1.5.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.annotation:annotation-experimental](androidx_annotation_annotation-experimental.md.html). diff --git a/docs/checks/UnsafeOptInUsageWarning.md.html b/docs/checks/UnsafeOptInUsageWarning.md.html index 697ef11a..9728ea06 100644 --- a/docs/checks/UnsafeOptInUsageWarning.md.html +++ b/docs/checks/UnsafeOptInUsageWarning.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=459778 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.annotation:annotation-experimental](androidx_annotation_annotation-experimental.md.html) Since @@ -71,17 +71,17 @@ ``` // build.gradle.kts -implementation("androidx.annotation:annotation-experimental:1.5.0-alpha01") +implementation("androidx.annotation:annotation-experimental:1.5.0-rc01") // build.gradle -implementation 'androidx.annotation:annotation-experimental:1.5.0-alpha01' +implementation 'androidx.annotation:annotation-experimental:1.5.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.annotation.experimental) # libs.versions.toml [versions] -annotation-experimental = "1.5.0-alpha01" +annotation-experimental = "1.5.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -93,7 +93,7 @@ } ``` -1.5.0-alpha01 is the version this documentation was generated from; +1.5.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.annotation:annotation-experimental](androidx_annotation_annotation-experimental.md.html). diff --git a/docs/checks/UnsafeRepeatOnLifecycleDetector.md.html b/docs/checks/UnsafeRepeatOnLifecycleDetector.md.html index 6291a4d2..a6e0dd07 100644 --- a/docs/checks/UnsafeRepeatOnLifecycleDetector.md.html +++ b/docs/checks/UnsafeRepeatOnLifecycleDetector.md.html @@ -50,17 +50,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment:1.8.5") +implementation("androidx.fragment:fragment:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment:1.8.5' +implementation 'androidx.fragment:fragment:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment) # libs.versions.toml [versions] -fragment = "1.8.5" +fragment = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -72,7 +72,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment](androidx_fragment_fragment.md.html). diff --git a/docs/checks/UnusedBoxWithConstraintsScope.md.html b/docs/checks/UnusedBoxWithConstraintsScope.md.html index e5bb5eb8..f56bc5ec 100644 --- a/docs/checks/UnusedBoxWithConstraintsScope.md.html +++ b/docs/checks/UnusedBoxWithConstraintsScope.md.html @@ -21,7 +21,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled : Lint 8.7+ Artifact @@ -102,17 +102,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.foundation:foundation-android:1.8.0-alpha07") +implementation("androidx.compose.foundation:foundation-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.foundation:foundation-android:1.8.0-alpha07' +implementation 'androidx.compose.foundation:foundation-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.foundation.android) # libs.versions.toml [versions] -foundation-android = "1.8.0-alpha07" +foundation-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -124,11 +124,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.foundation:foundation-lint:1.8.0-alpha07`. +You can also use `androidx.compose.foundation:foundation-lint:1.9.0-alpha01`. [Additional details about androidx.compose.foundation:foundation-android](androidx_compose_foundation_foundation-android.md.html). diff --git a/docs/checks/UnusedContentLambdaTargetStateParameter.md.html b/docs/checks/UnusedContentLambdaTargetStateParameter.md.html index 240d3b48..f0b3a594 100644 --- a/docs/checks/UnusedContentLambdaTargetStateParameter.md.html +++ b/docs/checks/UnusedContentLambdaTargetStateParameter.md.html @@ -182,17 +182,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.animation:animation-android:1.8.0-alpha07") +implementation("androidx.compose.animation:animation-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.animation:animation-android:1.8.0-alpha07' +implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.animation.android) # libs.versions.toml [versions] -animation-android = "1.8.0-alpha07" +animation-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -204,11 +204,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.animation:animation-lint:1.8.0-alpha07`. +You can also use `androidx.compose.animation:animation-lint:1.9.0-alpha01`. [Additional details about androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html). diff --git a/docs/checks/UnusedCrossfadeTargetStateParameter.md.html b/docs/checks/UnusedCrossfadeTargetStateParameter.md.html index 3b93f058..8c83c31b 100644 --- a/docs/checks/UnusedCrossfadeTargetStateParameter.md.html +++ b/docs/checks/UnusedCrossfadeTargetStateParameter.md.html @@ -116,17 +116,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.animation:animation-android:1.8.0-alpha07") +implementation("androidx.compose.animation:animation-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.animation:animation-android:1.8.0-alpha07' +implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.animation.android) # libs.versions.toml [versions] -animation-android = "1.8.0-alpha07" +animation-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -138,11 +138,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.animation:animation-lint:1.8.0-alpha07`. +You can also use `androidx.compose.animation:animation-lint:1.9.0-alpha01`. [Additional details about androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html). diff --git a/docs/checks/UnusedMaterial3ScaffoldPaddingParameter.md.html b/docs/checks/UnusedMaterial3ScaffoldPaddingParameter.md.html index 65b59f7c..e7be7c5d 100644 --- a/docs/checks/UnusedMaterial3ScaffoldPaddingParameter.md.html +++ b/docs/checks/UnusedMaterial3ScaffoldPaddingParameter.md.html @@ -112,17 +112,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.material3:material3-android:1.4.0-alpha05") +implementation("androidx.compose.material3:material3-android:1.4.0-alpha13") // build.gradle -implementation 'androidx.compose.material3:material3-android:1.4.0-alpha05' +implementation 'androidx.compose.material3:material3-android:1.4.0-alpha13' // build.gradle.kts with version catalogs: implementation(libs.material3.android) # libs.versions.toml [versions] -material3-android = "1.4.0-alpha05" +material3-android = "1.4.0-alpha13" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -134,11 +134,11 @@ } ``` -1.4.0-alpha05 is the version this documentation was generated from; +1.4.0-alpha13 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.material3:material3-lint:1.4.0-alpha05`. +You can also use `androidx.compose.material3:material3-lint:1.4.0-alpha13`. [Additional details about androidx.compose.material3:material3-android](androidx_compose_material3_material3-android.md.html). diff --git a/docs/checks/UnusedMaterialScaffoldPaddingParameter.md.html b/docs/checks/UnusedMaterialScaffoldPaddingParameter.md.html index 43e06e46..17582cd4 100644 --- a/docs/checks/UnusedMaterialScaffoldPaddingParameter.md.html +++ b/docs/checks/UnusedMaterialScaffoldPaddingParameter.md.html @@ -112,17 +112,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.material:material-android:1.8.0-alpha07") +implementation("androidx.compose.material:material-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.material:material-android:1.8.0-alpha07' +implementation 'androidx.compose.material:material-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.material.android) # libs.versions.toml [versions] -material-android = "1.8.0-alpha07" +material-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -134,11 +134,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.material:material-lint:1.8.0-alpha07`. +You can also use `androidx.compose.material:material-lint:1.9.0-alpha01`. [Additional details about androidx.compose.material:material-android](androidx_compose_material_material-android.md.html). diff --git a/docs/checks/UnusedResources.md.html b/docs/checks/UnusedResources.md.html index 74a78bfa..0ca94fbd 100644 --- a/docs/checks/UnusedResources.md.html +++ b/docs/checks/UnusedResources.md.html @@ -47,6 +47,29 @@ !!! Tip This lint check has an associated quickfix available in the IDE. +(##) Options + +You can configure this lint checks using the following options: + +(###) skip-libraries + +Whether the unused resource check should skip reporting unused resources in libraries. +Many libraries will declare resources that are part of the library surface; other modules depending on the library will also reference the resources. To avoid reporting all these resources as unused (in the context of a library), the unused resource check normally skips reporting unused resources in libraries. Instead, run the unused resource check on the consuming app module (along with `checkDependencies=true`). + +However, there are cases where you want to check that all the resources declared in a library are used; in that case, you can disable the skip option. + +Default is true. + +Example `lint.xml`: + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers +<lint> + <issue id="UnusedResources"> + <option name="skip-libraries" value="true" /> + </issue> +</lint> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + (##) Example Here is an example of lint warnings produced by this check: diff --git a/docs/checks/UnusedSharedTransitionModifierParameter.md.html b/docs/checks/UnusedSharedTransitionModifierParameter.md.html index cc55a383..6c367af0 100644 --- a/docs/checks/UnusedSharedTransitionModifierParameter.md.html +++ b/docs/checks/UnusedSharedTransitionModifierParameter.md.html @@ -27,7 +27,7 @@ Artifact : [androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html) Since -: 1.8.0-alpha01 +: 1.8.0 Affects : Kotlin and Java files and test sources Editing @@ -93,17 +93,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.animation:animation-android:1.8.0-alpha07") +implementation("androidx.compose.animation:animation-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.animation:animation-android:1.8.0-alpha07' +implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.animation.android) # libs.versions.toml [versions] -animation-android = "1.8.0-alpha07" +animation-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -115,11 +115,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.animation:animation-lint:1.8.0-alpha07`. +You can also use `androidx.compose.animation:animation-lint:1.9.0-alpha01`. [Additional details about androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html). diff --git a/docs/checks/UnusedTargetStateInContentKeyLambda.md.html b/docs/checks/UnusedTargetStateInContentKeyLambda.md.html index f6b221d7..d219fb29 100644 --- a/docs/checks/UnusedTargetStateInContentKeyLambda.md.html +++ b/docs/checks/UnusedTargetStateInContentKeyLambda.md.html @@ -27,7 +27,7 @@ Artifact : [androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html) Since -: 1.8.0-alpha01 +: 1.8.0 Affects : Kotlin and Java files and test sources Editing @@ -180,17 +180,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.animation:animation-android:1.8.0-alpha07") +implementation("androidx.compose.animation:animation-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.animation:animation-android:1.8.0-alpha07' +implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.animation.android) # libs.versions.toml [versions] -animation-android = "1.8.0-alpha07" +animation-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -202,11 +202,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.animation:animation-lint:1.8.0-alpha07`. +You can also use `androidx.compose.animation:animation-lint:1.9.0-alpha01`. [Additional details about androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html). diff --git a/docs/checks/UnusedTransitionTargetStateParameter.md.html b/docs/checks/UnusedTransitionTargetStateParameter.md.html index 23b116db..5e49a57e 100644 --- a/docs/checks/UnusedTransitionTargetStateParameter.md.html +++ b/docs/checks/UnusedTransitionTargetStateParameter.md.html @@ -119,17 +119,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.animation:animation-core-android:1.8.0-alpha07") +implementation("androidx.compose.animation:animation-core-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.animation:animation-core-android:1.8.0-alpha07' +implementation 'androidx.compose.animation:animation-core-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.animation.core.android) # libs.versions.toml [versions] -animation-core-android = "1.8.0-alpha07" +animation-core-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -141,11 +141,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.animation:animation-core-lint:1.8.0-alpha07`. +You can also use `androidx.compose.animation:animation-core-lint:1.9.0-alpha01`. [Additional details about androidx.compose.animation:animation-core-android](androidx_compose_animation_animation-core-android.md.html). diff --git a/docs/checks/UseGetLayoutInflater.md.html b/docs/checks/UseGetLayoutInflater.md.html index 05ec4b1f..ce44567b 100644 --- a/docs/checks/UseGetLayoutInflater.md.html +++ b/docs/checks/UseGetLayoutInflater.md.html @@ -100,17 +100,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment:1.8.5") +implementation("androidx.fragment:fragment:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment:1.8.5' +implementation 'androidx.fragment:fragment:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment) # libs.versions.toml [versions] -fragment = "1.8.5" +fragment = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -122,7 +122,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment](androidx_fragment_fragment.md.html). diff --git a/docs/checks/UseKtx.md.html b/docs/checks/UseKtx.md.html index e4b6db09..65542d9e 100644 --- a/docs/checks/UseKtx.md.html +++ b/docs/checks/UseKtx.md.html @@ -19,7 +19,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=192708 Since -: 8.9.0-alpha09 (January 2025) +: 8.9.0 (March 2025) Affects : Kotlin and Java files Editing diff --git a/docs/checks/UseOfNonLambdaOffsetOverload.md.html b/docs/checks/UseOfNonLambdaOffsetOverload.md.html index 68e650a8..022125f0 100644 --- a/docs/checks/UseOfNonLambdaOffsetOverload.md.html +++ b/docs/checks/UseOfNonLambdaOffsetOverload.md.html @@ -21,7 +21,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled : Lint 8.7+ Artifact @@ -51,17 +51,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.foundation:foundation-android:1.8.0-alpha07") +implementation("androidx.compose.foundation:foundation-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.foundation:foundation-android:1.8.0-alpha07' +implementation 'androidx.compose.foundation:foundation-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.foundation.android) # libs.versions.toml [versions] -foundation-android = "1.8.0-alpha07" +foundation-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -73,11 +73,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.foundation:foundation-lint:1.8.0-alpha07`. +You can also use `androidx.compose.foundation:foundation-lint:1.9.0-alpha01`. [Additional details about androidx.compose.foundation:foundation-android](androidx_compose_foundation_foundation-android.md.html). diff --git a/docs/checks/UseRequireInsteadOfGet.md.html b/docs/checks/UseRequireInsteadOfGet.md.html index f48a81b2..9c5e5aac 100644 --- a/docs/checks/UseRequireInsteadOfGet.md.html +++ b/docs/checks/UseRequireInsteadOfGet.md.html @@ -166,17 +166,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment:1.8.5") +implementation("androidx.fragment:fragment:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment:1.8.5' +implementation 'androidx.fragment:fragment:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment) # libs.versions.toml [versions] -fragment = "1.8.5" +fragment = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -188,7 +188,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.fragment:fragment](androidx_fragment_fragment.md.html). diff --git a/docs/checks/UseRequiresApi.md.html b/docs/checks/UseRequiresApi.md.html index 11fc8822..928ad716 100644 --- a/docs/checks/UseRequiresApi.md.html +++ b/docs/checks/UseRequiresApi.md.html @@ -19,7 +19,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=192708 Since -: 8.9.0-alpha04 (December 2024) +: 8.9.0 (March 2025) Affects : Kotlin and Java files Editing diff --git a/docs/checks/UseRxSetProgress2.md.html b/docs/checks/UseRxSetProgress2.md.html index 662ee256..4afd6018 100644 --- a/docs/checks/UseRxSetProgress2.md.html +++ b/docs/checks/UseRxSetProgress2.md.html @@ -90,17 +90,17 @@ ``` // build.gradle.kts -implementation("androidx.work:work-runtime:2.10.0") +implementation("androidx.work:work-runtime:2.10.1") // build.gradle -implementation 'androidx.work:work-runtime:2.10.0' +implementation 'androidx.work:work-runtime:2.10.1' // build.gradle.kts with version catalogs: implementation(libs.work.runtime) # libs.versions.toml [versions] -work-runtime = "2.10.0" +work-runtime = "2.10.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -112,7 +112,7 @@ } ``` -2.10.0 is the version this documentation was generated from; +2.10.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.work:work-runtime](androidx_work_work-runtime.md.html). diff --git a/docs/checks/UseSdkSuppress.md.html b/docs/checks/UseSdkSuppress.md.html index 56303ff9..842cb23b 100644 --- a/docs/checks/UseSdkSuppress.md.html +++ b/docs/checks/UseSdkSuppress.md.html @@ -42,7 +42,7 @@ Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -src/test/java/test/pkg/UnitTestKotlin.kt:4:Error: Don't use @RequiresApi +src/test/java/test/pkg/UnitTestKotlin.kt:5:Error: Don't use @RequiresApi from tests; use @SdkSuppress on UnitTestKotlin instead [UseSdkSuppress] @RequiresApi(29) // ERROR: don't use in tests, use @SdkSuppress instead ---------------- @@ -54,10 +54,13 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers import android.widget.GridLayout import androidx.annotation.RequiresApi +import org.junit.Test @RequiresApi(29) // ERROR: don't use in tests, use @SdkSuppress instead class UnitTestKotlin { private val field1 = GridLayout(null) // OK via @RequiresApiSuppress + @Test + fun thisIsATest() = Unit } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -65,7 +68,7 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers android { lintOptions { - checkTestSources true + checkTestSources = true } } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/checks/UsingMaterialAndMaterial3Libraries.md.html b/docs/checks/UsingMaterialAndMaterial3Libraries.md.html index 73509553..dc754e3e 100644 --- a/docs/checks/UsingMaterialAndMaterial3Libraries.md.html +++ b/docs/checks/UsingMaterialAndMaterial3Libraries.md.html @@ -88,17 +88,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.material3:material3-android:1.4.0-alpha05") +implementation("androidx.compose.material3:material3-android:1.4.0-alpha13") // build.gradle -implementation 'androidx.compose.material3:material3-android:1.4.0-alpha05' +implementation 'androidx.compose.material3:material3-android:1.4.0-alpha13' // build.gradle.kts with version catalogs: implementation(libs.material3.android) # libs.versions.toml [versions] -material3-android = "1.4.0-alpha05" +material3-android = "1.4.0-alpha13" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -110,11 +110,11 @@ } ``` -1.4.0-alpha05 is the version this documentation was generated from; +1.4.0-alpha13 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.material3:material3-lint:1.4.0-alpha05`. +You can also use `androidx.compose.material3:material3-lint:1.4.0-alpha13`. [Additional details about androidx.compose.material3:material3-android](androidx_compose_material3_material3-android.md.html). diff --git a/docs/checks/ViewModelConstructorInComposable.md.html b/docs/checks/ViewModelConstructorInComposable.md.html index 4bc89568..5ba2286f 100644 --- a/docs/checks/ViewModelConstructorInComposable.md.html +++ b/docs/checks/ViewModelConstructorInComposable.md.html @@ -49,17 +49,17 @@ ``` // build.gradle.kts -implementation("androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-alpha08") +implementation("androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-rc01") // build.gradle -implementation 'androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-alpha08' +implementation 'androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.lifecycle.viewmodel.compose.android) # libs.versions.toml [versions] -lifecycle-viewmodel-compose-android = "2.9.0-alpha08" +lifecycle-viewmodel-compose-android = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -71,7 +71,7 @@ } ``` -2.9.0-alpha08 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lifecycle:lifecycle-viewmodel-compose-android](androidx_lifecycle_lifecycle-viewmodel-compose-android.md.html). diff --git a/docs/checks/WatchFaceFormatDeclaresHasNoCode.md.html b/docs/checks/WatchFaceFormatDeclaresHasNoCode.md.html new file mode 100644 index 00000000..c35320b3 --- /dev/null +++ b/docs/checks/WatchFaceFormatDeclaresHasNoCode.md.html @@ -0,0 +1,84 @@ + +(#) The `hasCode` attribute should be set to `false` + +!!! ERROR: The `hasCode` attribute should be set to `false` + This is an error. + +Id +: `WatchFaceFormatDeclaresHasNoCode` +Summary +: The `hasCode` attribute should be set to `false` +Severity +: Error +Category +: Correctness +Platform +: Android +Vendor +: Android Open Source Project +Feedback +: https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.11.0-alpha06 (April 2025) +Affects +: Manifest files +Editing +: This check runs on the fly in the IDE editor +See +: https://developer.android.com/training/wearables/wff/setup#declare-wff-use +Implementation +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/WatchFaceFormatDeclaresHasNoCodeDetector.kt) +Tests +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/WatchFaceFormatDeclaresHasNoCodeDetectorTest.kt) + +Watch Face Format is a resource-only format, so the `hasCode` attribute +should be set to `false` to reflect this. + +!!! Tip + This lint check has an associated quickfix available in the IDE. + +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Adding the suppression attribute + `tools:ignore="WatchFaceFormatDeclaresHasNoCode"` on the problematic + XML element (or one of its enclosing elements). You may also need to + add the following namespace declaration on the root element in the + XML file if it's not already there: + `xmlns:tools="http://schemas.android.com/tools"`. + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="WatchFaceFormatDeclaresHasNoCode" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'WatchFaceFormatDeclaresHasNoCode' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore WatchFaceFormatDeclaresHasNoCode ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/WatchFaceFormatMissingVersion.md.html b/docs/checks/WatchFaceFormatMissingVersion.md.html new file mode 100644 index 00000000..a2db98f5 --- /dev/null +++ b/docs/checks/WatchFaceFormatMissingVersion.md.html @@ -0,0 +1,103 @@ + +(#) The Watch Face Format version is missing + +!!! ERROR: The Watch Face Format version is missing + This is an error. + +Id +: `WatchFaceFormatMissingVersion` +Summary +: The Watch Face Format version is missing +Severity +: Error +Category +: Correctness +Platform +: Android +Vendor +: Android Open Source Project +Feedback +: https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.11.0-alpha07 (April 2025) +Affects +: Manifest files +Editing +: This check runs on the fly in the IDE editor +See +: https://developer.android.com/training/wearables/wff/setup#declare-wff-use +See +: https://developer.android.com/training/wearables/wff/features +Implementation +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/WatchFaceFormatVersionDetector.kt) +Tests +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/WatchFaceFormatVersionDetectorTest.kt) + +When creating a watch face using the Watch Face Format, you need to add +the "com.google.wear.watchface.format.version" application property. +This property specifies which feature version the Watch Face Format is +using. + +Add the property to your application element: +```xml + +``` + +!!! Tip + This lint check has an associated quickfix available in the IDE. + +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Adding the suppression attribute + `tools:ignore="WatchFaceFormatMissingVersion"` on the problematic + XML element (or one of its enclosing elements). You may also need to + add the following namespace declaration on the root element in the + XML file if it's not already there: + `xmlns:tools="http://schemas.android.com/tools"`. + + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <manifest xmlns:tools="http://schemas.android.com/tools"> + ... + <property tools:ignore="WatchFaceFormatMissingVersion" .../> + ... + </manifest> + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="WatchFaceFormatMissingVersion" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'WatchFaceFormatMissingVersion' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore WatchFaceFormatMissingVersion ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/WithPluginClasspathUsage.md.html b/docs/checks/WithPluginClasspathUsage.md.html index a62da1a3..a72bf379 100644 --- a/docs/checks/WithPluginClasspathUsage.md.html +++ b/docs/checks/WithPluginClasspathUsage.md.html @@ -29,7 +29,7 @@ Since : 1.0.0-alpha02 Affects -: Kotlin and Java files +: Kotlin and Java files and test sources Editing : This check runs on the fly in the IDE editor Implementation @@ -51,17 +51,17 @@ ``` // build.gradle.kts -implementation("androidx.lint:lint-gradle:1.0.0-alpha03") +implementation("androidx.lint:lint-gradle:1.0.0-alpha04") // build.gradle -implementation 'androidx.lint:lint-gradle:1.0.0-alpha03' +implementation 'androidx.lint:lint-gradle:1.0.0-alpha04' // build.gradle.kts with version catalogs: implementation(libs.lint.gradle) # libs.versions.toml [versions] -lint-gradle = "1.0.0-alpha03" +lint-gradle = "1.0.0-alpha04" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -73,7 +73,7 @@ } ``` -1.0.0-alpha03 is the version this documentation was generated from; +1.0.0-alpha04 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html). diff --git a/docs/checks/WithTypeWithoutConfigureEach.md.html b/docs/checks/WithTypeWithoutConfigureEach.md.html index caf9b688..f6fe7f2b 100644 --- a/docs/checks/WithTypeWithoutConfigureEach.md.html +++ b/docs/checks/WithTypeWithoutConfigureEach.md.html @@ -50,17 +50,17 @@ ``` // build.gradle.kts -implementation("androidx.lint:lint-gradle:1.0.0-alpha03") +implementation("androidx.lint:lint-gradle:1.0.0-alpha04") // build.gradle -implementation 'androidx.lint:lint-gradle:1.0.0-alpha03' +implementation 'androidx.lint:lint-gradle:1.0.0-alpha04' // build.gradle.kts with version catalogs: implementation(libs.lint.gradle) # libs.versions.toml [versions] -lint-gradle = "1.0.0-alpha03" +lint-gradle = "1.0.0-alpha04" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -72,7 +72,7 @@ } ``` -1.0.0-alpha03 is the version this documentation was generated from; +1.0.0-alpha04 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html). diff --git a/docs/checks/WorkerHasAPublicModifier.md.html b/docs/checks/WorkerHasAPublicModifier.md.html index 873f278e..399ee0c4 100644 --- a/docs/checks/WorkerHasAPublicModifier.md.html +++ b/docs/checks/WorkerHasAPublicModifier.md.html @@ -83,17 +83,17 @@ ``` // build.gradle.kts -implementation("androidx.work:work-runtime:2.10.0") +implementation("androidx.work:work-runtime:2.10.1") // build.gradle -implementation 'androidx.work:work-runtime:2.10.0' +implementation 'androidx.work:work-runtime:2.10.1' // build.gradle.kts with version catalogs: implementation(libs.work.runtime) # libs.versions.toml [versions] -work-runtime = "2.10.0" +work-runtime = "2.10.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -105,7 +105,7 @@ } ``` -2.10.0 is the version this documentation was generated from; +2.10.1 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.work:work-runtime](androidx_work_work-runtime.md.html). diff --git a/docs/checks/WrongGradleMethod.md.html b/docs/checks/WrongGradleMethod.md.html new file mode 100644 index 00000000..6257dfe3 --- /dev/null +++ b/docs/checks/WrongGradleMethod.md.html @@ -0,0 +1,167 @@ + +(#) Wrong Gradle method invoked + +!!! ERROR: Wrong Gradle method invoked + This is an error. + +Id +: `WrongGradleMethod` +Summary +: Wrong Gradle method invoked +Severity +: Error +Category +: Correctness +Platform +: Any +Vendor +: Android Open Source Project +Feedback +: https://issuetracker.google.com/issues/new?component=192708 +Since +: 8.10.0 (May 2025) +Affects +: Gradle build files +Editing +: This check runs on the fly in the IDE editor +Implementation +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/WrongGradleMethodDetector.kt) +Tests +: [Source Code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/WrongGradleMethodDetectorTest.kt) + +This lint check looks for suspicious Gradle DSL calls. + +One common example is attempting to create product flavor or build type +specific dependencies by placing the `dependencies` block inside a +product flavor or build type. + +Another one is KTS specific. When migrating from Groovy to KTS, be extra +careful with some calls into plugin DSL methods; in some cases, you +might have to insert an explicit `import` statement, even if the code +compiles without it; instead you are silently calling a generated +method. + +For example, with the Firebase App Distribution plugin, you *cannot* +just convert this `build.gradle` snippet: +```groovy +buildTypes { + release { + firebaseAppDistribution { + artifactType="APK" + releaseNotesFile="/path/to/releasenotes.txt" + testers="ali@example.com, bri@example.com, cal@example.com" + } + } +} +``` +to this KTS: +```kotlin +buildTypes { + getByName("release") { + firebaseAppDistribution { + artifactType = "APK" + releaseNotesFile = "/path/to/releasenotes.txt" + testers = "ali@example.com, bri@example.com, cal@example.com" + } + } +} +``` +You have to *also* add this import at the top of the file: +```kotlin +import com.google.firebase.appdistribution.gradle.firebaseAppDistribution +``` + +If you get this error on other DSL constructs inside build types or +product flavors, check the plugin documentation. + +!!! Tip + This lint check has an associated quickfix available in the IDE. + +(##) Example + +Here is an example of lint warnings produced by this check: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text +build.gradle.kts:15:Error: This does not resolve to the right method; +you need to explicitly add `import +com.google.firebase.appdistribution.gradle.firebaseAppDistribution` to +this file! [WrongGradleMethod] + firebaseAppDistribution { + ----------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the source file referenced above: + +`build.gradle.kts`: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers +plugins { + id("com.google.firebase.appdistribution") +} +android { + flavorDimensions += "version" + buildTypes { + getByName("debug") { + } + getByName("release") { + } + } + productFlavors { + create("demo") { + dimension = "version" + firebaseAppDistribution { + releaseNotes = "Release notes for demo version" + testers = "demo@example.com" + } + } + } +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can also visit the +[source code](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/checks/WrongGradleMethodDetectorTest.kt) +for the unit tests for this check to see additional scenarios. + +(##) Suppressing + +You can suppress false positives using one of the following mechanisms: + +* Using a suppression comment like this on the line above: + + ```kt + //noinspection WrongGradleMethod + problematicStatement() + ``` + +* Using a special `lint.xml` file in the source tree which turns off + the check in that folder and any sub folder. A simple file might look + like this: + ```xml + <?xml version="1.0" encoding="UTF-8"?> + <lint> + <issue id="WrongGradleMethod" severity="ignore" /> + </lint> + ``` + Instead of `ignore` you can also change the severity here, for + example from `error` to `warning`. You can find additional + documentation on how to filter issues by path, regular expression and + so on + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html). + +* In Gradle projects, using the DSL syntax to configure lint. For + example, you can use something like + ```gradle + lintOptions { + disable 'WrongGradleMethod' + } + ``` + In Android projects this should be nested inside an `android { }` + block. + +* For manual invocations of `lint`, using the `--ignore` flag: + ``` + $ lint --ignore WrongGradleMethod ...` + ``` + +* Last, but not least, using baselines, as discussed + [here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html). + + \ No newline at end of file diff --git a/docs/checks/WrongNavigateRouteType.md.html b/docs/checks/WrongNavigateRouteType.md.html index 1432d2de..ed11425e 100644 --- a/docs/checks/WrongNavigateRouteType.md.html +++ b/docs/checks/WrongNavigateRouteType.md.html @@ -153,17 +153,17 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-runtime:2.9.0-alpha04") +implementation("androidx.navigation:navigation-runtime:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-runtime:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.navigation.runtime) # libs.versions.toml [versions] -navigation-runtime = "2.9.0-alpha04" +navigation-runtime = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -175,7 +175,7 @@ } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html). diff --git a/docs/checks/WrongRequiresOptIn.md.html b/docs/checks/WrongRequiresOptIn.md.html index cee670dc..25287a17 100644 --- a/docs/checks/WrongRequiresOptIn.md.html +++ b/docs/checks/WrongRequiresOptIn.md.html @@ -21,9 +21,9 @@ Feedback : https://issuetracker.google.com/issues/new?component=459778 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact : [androidx.annotation:annotation-experimental](androidx_annotation_annotation-experimental.md.html) Since @@ -53,17 +53,17 @@ ``` // build.gradle.kts -implementation("androidx.annotation:annotation-experimental:1.5.0-alpha01") +implementation("androidx.annotation:annotation-experimental:1.5.0-rc01") // build.gradle -implementation 'androidx.annotation:annotation-experimental:1.5.0-alpha01' +implementation 'androidx.annotation:annotation-experimental:1.5.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.annotation.experimental) # libs.versions.toml [versions] -annotation-experimental = "1.5.0-alpha01" +annotation-experimental = "1.5.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -75,7 +75,7 @@ } ``` -1.5.0-alpha01 is the version this documentation was generated from; +1.5.0-rc01 is the version this documentation was generated from; there may be newer versions available. [Additional details about androidx.annotation:annotation-experimental](androidx_annotation_annotation-experimental.md.html). diff --git a/docs/checks/WrongResourceImportAlias.md.html b/docs/checks/WrongResourceImportAlias.md.html index 95808f5c..9f7f69b2 100644 --- a/docs/checks/WrongResourceImportAlias.md.html +++ b/docs/checks/WrongResourceImportAlias.md.html @@ -108,17 +108,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -130,7 +130,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. [Additional details about com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html). diff --git a/docs/checks/WrongSdkInt.md.html b/docs/checks/WrongSdkInt.md.html index 40c1022c..91aa34ff 100644 --- a/docs/checks/WrongSdkInt.md.html +++ b/docs/checks/WrongSdkInt.md.html @@ -19,7 +19,7 @@ Feedback : https://issuetracker.google.com/issues/new?component=192708 Since -: 8.9.0-alpha01 (November 2024) +: 8.9.0 (March 2025) Affects : Kotlin and Java files Editing diff --git a/docs/checks/WrongStartDestinationType-2.md.html b/docs/checks/WrongStartDestinationType-2.md.html index 84fff1f4..c87bd2b6 100644 --- a/docs/checks/WrongStartDestinationType-2.md.html +++ b/docs/checks/WrongStartDestinationType-2.md.html @@ -15,17 +15,15 @@ Platform : Any Vendor -: Android Open Source Project +: Jetpack Navigation Compose Identifier -: androidx.navigation.runtime -Feedback -: https://issuetracker.google.com/issues/new?component=409828 +: androidx.navigation.compose Min : Lint 8.0 and 8.1 Compiled : Lint 8.7+ Artifact -: [androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html) +: [androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html) Since : 2.8.0 Affects @@ -33,9 +31,9 @@ Editing : This check runs on the fly in the IDE editor Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetector.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetector.kt) Tests -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetectorTest.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt) Copyright Year : 2024 @@ -48,62 +46,110 @@ Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -src/com/example/test.kt:8:Error: StartDestination should not be a simple +src/com/example/test.kt:9:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor TestClass(...)? If the class TestClass does not contain arguments, you can also pass in its KClass reference TestClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestClass) - --------- -src/com/example/test.kt:9:Error: StartDestination should not be a simple -class name reference. + navController.createGraph(startDestination = TestClass) {} + --------- +src/com/example/test.kt:10:Error: StartDestination should not be a +simple class name reference. Did you mean to call its constructor TestClassWithArg(...)? If the class TestClassWithArg does not contain arguments, you can also pass in its KClass reference TestClassWithArg::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestClassWithArg) - ---------------- -src/com/example/test.kt:10:Error: StartDestination should not be a + navController.createGraph(startDestination = TestClassWithArg) {} + ---------------- +src/com/example/test.kt:11:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor InnerClass(...)? If the class InnerClass does not contain arguments, you can also pass in its KClass reference InnerClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = Outer.InnerClass) - ---------------- -src/com/example/test.kt:11:Error: StartDestination should not be a + navController.createGraph(startDestination = Outer.InnerClass) {} + ---------------- +src/com/example/test.kt:12:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor InterfaceChildClass(...)? If the class InterfaceChildClass does not contain arguments, you can also pass in its KClass reference InterfaceChildClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = InterfaceChildClass) - ------------------- -src/com/example/test.kt:12:Error: StartDestination should not be a + navController.createGraph(startDestination = InterfaceChildClass) {} + ------------------- +src/com/example/test.kt:13:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor AbstractChildClass(...)? If the class AbstractChildClass does not contain arguments, you can also pass in its KClass reference AbstractChildClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = AbstractChildClass) - ------------------ -src/com/example/test.kt:13:Error: StartDestination should not be a + navController.createGraph(startDestination = AbstractChildClass) {} + ------------------ +src/com/example/test.kt:14:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor TestInterface(...)? If the class TestInterface does not contain arguments, you can also pass in its KClass reference TestInterface::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestInterface) - ------------- -src/com/example/test.kt:14:Error: StartDestination should not be a + navController.createGraph(startDestination = TestInterface) + ------------- +src/com/example/test.kt:15:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor TestAbstract(...)? If the class TestAbstract does not contain arguments, you can also pass in its KClass reference TestAbstract::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestAbstract) - ------------ + navController.createGraph(startDestination = TestAbstract) + ------------ +src/com/example/test.kt:17:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = TestClassComp) + ------------- +src/com/example/test.kt:18:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = TestClassWithArgComp) + -------------------- +src/com/example/test.kt:19:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = OuterComp.InnerClassComp) + ------------------------ +src/com/example/test.kt:20:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = InterfaceChildClassComp) + ----------------------- +src/com/example/test.kt:21:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = AbstractChildClassComp) + ---------------------- +src/com/example/test.kt:22:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = TestAbstractComp) + ---------------- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Here is the source file referenced above: @@ -112,29 +158,37 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers package com.example -import androidx.navigation.* +import androidx.navigation.NavController +import androidx.navigation.createGraph +import androidx.test.* fun createGraph() { - val provider = NavigatorProvider() - val builder = NavGraphBuilder(provider, TestGraph, null) - builder.navigation(startDestination = TestClass) - builder.navigation(startDestination = TestClassWithArg) - builder.navigation(startDestination = Outer.InnerClass) - builder.navigation(startDestination = InterfaceChildClass) - builder.navigation(startDestination = AbstractChildClass) - builder.navigation(startDestination = TestInterface) - builder.navigation(startDestination = TestAbstract) + val navController = NavController() + navController.createGraph(startDestination = TestClass) {} + navController.createGraph(startDestination = TestClassWithArg) {} + navController.createGraph(startDestination = Outer.InnerClass) {} + navController.createGraph(startDestination = InterfaceChildClass) {} + navController.createGraph(startDestination = AbstractChildClass) {} + navController.createGraph(startDestination = TestInterface) + navController.createGraph(startDestination = TestAbstract) + //classes with companion object to simulate marked with @Serializable + navController.createGraph(startDestination = TestClassComp) + navController.createGraph(startDestination = TestClassWithArgComp) + navController.createGraph(startDestination = OuterComp.InnerClassComp) + navController.createGraph(startDestination = InterfaceChildClassComp) + navController.createGraph(startDestination = AbstractChildClassComp) + navController.createGraph(startDestination = TestAbstractComp) } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can also visit the -[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetectorTest.kt) +[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt) for the unit tests for this check to see additional scenarios. The above example was automatically extracted from the first unit test -found for this lint check, `WrongStartDestinationTypeDetector.testNavGraphBuilder_classHasError`. -To report a problem with this extracted sample, visit -https://issuetracker.google.com/issues/new?component=409828. +found for this lint check, `WrongStartDestinationTypeDetector.testNavController_classHasError`. +To report a problem with this extracted sample, contact +Jetpack Navigation Compose. (##) Conflicts @@ -142,8 +196,8 @@ id's must be unique, so you cannot combine these libraries. Also defined in: * WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class. (this issue) -* [WrongStartDestinationType from androidx.navigation:navigation-compose:2.9.0-alpha04](WrongStartDestinationType.md.html) -* [WrongStartDestinationType from androidx.navigation:navigation-common:2.9.0-alpha04](WrongStartDestinationType-3.md.html) +* [WrongStartDestinationType from androidx.navigation:navigation-common:2.9.0-rc01](WrongStartDestinationType.md.html) +* [WrongStartDestinationType from androidx.navigation:navigation-runtime:2.9.0-rc01](WrongStartDestinationType-3.md.html) (##) Including @@ -154,32 +208,32 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-runtime:2.9.0-alpha04") +implementation("androidx.navigation:navigation-compose:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-runtime:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-compose:2.9.0-rc01' // build.gradle.kts with version catalogs: -implementation(libs.navigation.runtime) +implementation(libs.navigation.compose) # libs.versions.toml [versions] -navigation-runtime = "2.9.0-alpha04" +navigation-compose = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single # line (see https://github.com/toml-lang/toml/issues/516) so adjust # when pasting into libs.versions.toml: -navigation-runtime = { - module = "androidx.navigation:navigation-runtime", - version.ref = "navigation-runtime" +navigation-compose = { + module = "androidx.navigation:navigation-compose", + version.ref = "navigation-compose" } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. -[Additional details about androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html). +[Additional details about androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html). (##) Suppressing You can suppress false positives using one of the following mechanisms: @@ -191,7 +245,7 @@ // Kotlin @Suppress("WrongStartDestinationType") fun method() { - createGraph(...) + NavHost(...) } ``` @@ -201,7 +255,7 @@ // Java @SuppressWarnings("WrongStartDestinationType") void method() { - createGraph(...); + NavHost(...); } ``` diff --git a/docs/checks/WrongStartDestinationType-3.md.html b/docs/checks/WrongStartDestinationType-3.md.html index b25d86d8..82e751ca 100644 --- a/docs/checks/WrongStartDestinationType-3.md.html +++ b/docs/checks/WrongStartDestinationType-3.md.html @@ -17,7 +17,7 @@ Vendor : Android Open Source Project Identifier -: androidx.navigation.common +: androidx.navigation.runtime Feedback : https://issuetracker.google.com/issues/new?component=409828 Min @@ -25,7 +25,7 @@ Compiled : Lint 8.7+ Artifact -: [androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html) +: [androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html) Since : 2.8.0 Affects @@ -33,9 +33,9 @@ Editing : This check runs on the fly in the IDE editor Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetector.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetector.kt) Tests -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetectorTest.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt) Copyright Year : 2024 @@ -48,62 +48,110 @@ Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -src/com/example/test.kt:8:Error: StartDestination should not be a simple +src/com/example/test.kt:9:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor TestClass(...)? If the class TestClass does not contain arguments, you can also pass in its KClass reference TestClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestClass) - --------- -src/com/example/test.kt:9:Error: StartDestination should not be a simple -class name reference. + navController.createGraph(startDestination = TestClass) {} + --------- +src/com/example/test.kt:10:Error: StartDestination should not be a +simple class name reference. Did you mean to call its constructor TestClassWithArg(...)? If the class TestClassWithArg does not contain arguments, you can also pass in its KClass reference TestClassWithArg::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestClassWithArg) - ---------------- -src/com/example/test.kt:10:Error: StartDestination should not be a + navController.createGraph(startDestination = TestClassWithArg) {} + ---------------- +src/com/example/test.kt:11:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor InnerClass(...)? If the class InnerClass does not contain arguments, you can also pass in its KClass reference InnerClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = Outer.InnerClass) - ---------------- -src/com/example/test.kt:11:Error: StartDestination should not be a + navController.createGraph(startDestination = Outer.InnerClass) {} + ---------------- +src/com/example/test.kt:12:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor InterfaceChildClass(...)? If the class InterfaceChildClass does not contain arguments, you can also pass in its KClass reference InterfaceChildClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = InterfaceChildClass) - ------------------- -src/com/example/test.kt:12:Error: StartDestination should not be a + navController.createGraph(startDestination = InterfaceChildClass) {} + ------------------- +src/com/example/test.kt:13:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor AbstractChildClass(...)? If the class AbstractChildClass does not contain arguments, you can also pass in its KClass reference AbstractChildClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = AbstractChildClass) - ------------------ -src/com/example/test.kt:13:Error: StartDestination should not be a + navController.createGraph(startDestination = AbstractChildClass) {} + ------------------ +src/com/example/test.kt:14:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor TestInterface(...)? If the class TestInterface does not contain arguments, you can also pass in its KClass reference TestInterface::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestInterface) - ------------- -src/com/example/test.kt:14:Error: StartDestination should not be a + navController.createGraph(startDestination = TestInterface) + ------------- +src/com/example/test.kt:15:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor TestAbstract(...)? If the class TestAbstract does not contain arguments, you can also pass in its KClass reference TestAbstract::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestAbstract) - ------------ + navController.createGraph(startDestination = TestAbstract) + ------------ +src/com/example/test.kt:17:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = TestClassComp) + ------------- +src/com/example/test.kt:18:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = TestClassWithArgComp) + -------------------- +src/com/example/test.kt:19:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = OuterComp.InnerClassComp) + ------------------------ +src/com/example/test.kt:20:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = InterfaceChildClassComp) + ----------------------- +src/com/example/test.kt:21:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = AbstractChildClassComp) + ---------------------- +src/com/example/test.kt:22:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = TestAbstractComp) + ---------------- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Here is the source file referenced above: @@ -112,27 +160,35 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers package com.example -import androidx.navigation.* +import androidx.navigation.NavController +import androidx.navigation.createGraph +import androidx.test.* fun createGraph() { - val provider = NavigatorProvider() - val builder = NavGraphBuilder(provider, TestGraph, null) - builder.navigation(startDestination = TestClass) - builder.navigation(startDestination = TestClassWithArg) - builder.navigation(startDestination = Outer.InnerClass) - builder.navigation(startDestination = InterfaceChildClass) - builder.navigation(startDestination = AbstractChildClass) - builder.navigation(startDestination = TestInterface) - builder.navigation(startDestination = TestAbstract) + val navController = NavController() + navController.createGraph(startDestination = TestClass) {} + navController.createGraph(startDestination = TestClassWithArg) {} + navController.createGraph(startDestination = Outer.InnerClass) {} + navController.createGraph(startDestination = InterfaceChildClass) {} + navController.createGraph(startDestination = AbstractChildClass) {} + navController.createGraph(startDestination = TestInterface) + navController.createGraph(startDestination = TestAbstract) + //classes with companion object to simulate marked with @Serializable + navController.createGraph(startDestination = TestClassComp) + navController.createGraph(startDestination = TestClassWithArgComp) + navController.createGraph(startDestination = OuterComp.InnerClassComp) + navController.createGraph(startDestination = InterfaceChildClassComp) + navController.createGraph(startDestination = AbstractChildClassComp) + navController.createGraph(startDestination = TestAbstractComp) } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can also visit the -[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetectorTest.kt) +[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt) for the unit tests for this check to see additional scenarios. The above example was automatically extracted from the first unit test -found for this lint check, `WrongStartDestinationTypeDetector.testNavGraphBuilder_classHasError`. +found for this lint check, `WrongStartDestinationTypeDetector.testNavController_classHasError`. To report a problem with this extracted sample, visit https://issuetracker.google.com/issues/new?component=409828. @@ -142,8 +198,8 @@ id's must be unique, so you cannot combine these libraries. Also defined in: * WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class. (this issue) -* [WrongStartDestinationType from androidx.navigation:navigation-compose:2.9.0-alpha04](WrongStartDestinationType.md.html) -* [WrongStartDestinationType from androidx.navigation:navigation-runtime:2.9.0-alpha04](WrongStartDestinationType-2.md.html) +* [WrongStartDestinationType from androidx.navigation:navigation-common:2.9.0-rc01](WrongStartDestinationType.md.html) +* [WrongStartDestinationType from androidx.navigation:navigation-compose:2.9.0-rc01](WrongStartDestinationType-2.md.html) (##) Including @@ -154,32 +210,32 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-common:2.9.0-alpha04") +implementation("androidx.navigation:navigation-runtime:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-common:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01' // build.gradle.kts with version catalogs: -implementation(libs.navigation.common) +implementation(libs.navigation.runtime) # libs.versions.toml [versions] -navigation-common = "2.9.0-alpha04" +navigation-runtime = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single # line (see https://github.com/toml-lang/toml/issues/516) so adjust # when pasting into libs.versions.toml: -navigation-common = { - module = "androidx.navigation:navigation-common", - version.ref = "navigation-common" +navigation-runtime = { + module = "androidx.navigation:navigation-runtime", + version.ref = "navigation-runtime" } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. -[Additional details about androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html). +[Additional details about androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html). (##) Suppressing You can suppress false positives using one of the following mechanisms: @@ -191,7 +247,7 @@ // Kotlin @Suppress("WrongStartDestinationType") fun method() { - navigation(...) + createGraph(...) } ``` @@ -201,7 +257,7 @@ // Java @SuppressWarnings("WrongStartDestinationType") void method() { - navigation(...); + createGraph(...); } ``` diff --git a/docs/checks/WrongStartDestinationType.md.html b/docs/checks/WrongStartDestinationType.md.html index 53c4fbf5..2a36245e 100644 --- a/docs/checks/WrongStartDestinationType.md.html +++ b/docs/checks/WrongStartDestinationType.md.html @@ -15,15 +15,17 @@ Platform : Any Vendor -: Jetpack Navigation Compose +: Android Open Source Project Identifier -: androidx.navigation.compose +: androidx.navigation.common +Feedback +: https://issuetracker.google.com/issues/new?component=409828 Min : Lint 8.0 and 8.1 Compiled : Lint 8.7+ Artifact -: [androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html) +: [androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html) Since : 2.8.0 Affects @@ -31,9 +33,9 @@ Editing : This check runs on the fly in the IDE editor Implementation -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/main/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetector.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetector.kt) Tests -: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetectorTest.kt) +: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt) Copyright Year : 2024 @@ -46,62 +48,110 @@ Here is an example of lint warnings produced by this check: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text -src/com/example/test.kt:8:Error: StartDestination should not be a simple +src/com/example/test.kt:9:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor TestClass(...)? If the class TestClass does not contain arguments, you can also pass in its KClass reference TestClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestClass) - --------- -src/com/example/test.kt:9:Error: StartDestination should not be a simple -class name reference. + navController.createGraph(startDestination = TestClass) {} + --------- +src/com/example/test.kt:10:Error: StartDestination should not be a +simple class name reference. Did you mean to call its constructor TestClassWithArg(...)? If the class TestClassWithArg does not contain arguments, you can also pass in its KClass reference TestClassWithArg::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestClassWithArg) - ---------------- -src/com/example/test.kt:10:Error: StartDestination should not be a + navController.createGraph(startDestination = TestClassWithArg) {} + ---------------- +src/com/example/test.kt:11:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor InnerClass(...)? If the class InnerClass does not contain arguments, you can also pass in its KClass reference InnerClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = Outer.InnerClass) - ---------------- -src/com/example/test.kt:11:Error: StartDestination should not be a + navController.createGraph(startDestination = Outer.InnerClass) {} + ---------------- +src/com/example/test.kt:12:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor InterfaceChildClass(...)? If the class InterfaceChildClass does not contain arguments, you can also pass in its KClass reference InterfaceChildClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = InterfaceChildClass) - ------------------- -src/com/example/test.kt:12:Error: StartDestination should not be a + navController.createGraph(startDestination = InterfaceChildClass) {} + ------------------- +src/com/example/test.kt:13:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor AbstractChildClass(...)? If the class AbstractChildClass does not contain arguments, you can also pass in its KClass reference AbstractChildClass::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = AbstractChildClass) - ------------------ -src/com/example/test.kt:13:Error: StartDestination should not be a + navController.createGraph(startDestination = AbstractChildClass) {} + ------------------ +src/com/example/test.kt:14:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor TestInterface(...)? If the class TestInterface does not contain arguments, you can also pass in its KClass reference TestInterface::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestInterface) - ------------- -src/com/example/test.kt:14:Error: StartDestination should not be a + navController.createGraph(startDestination = TestInterface) + ------------- +src/com/example/test.kt:15:Error: StartDestination should not be a simple class name reference. Did you mean to call its constructor TestAbstract(...)? If the class TestAbstract does not contain arguments, you can also pass in its KClass reference TestAbstract::class [WrongStartDestinationType] - builder.navigation<TestGraph>(startDestination = TestAbstract) - ------------ + navController.createGraph(startDestination = TestAbstract) + ------------ +src/com/example/test.kt:17:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = TestClassComp) + ------------- +src/com/example/test.kt:18:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = TestClassWithArgComp) + -------------------- +src/com/example/test.kt:19:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = OuterComp.InnerClassComp) + ------------------------ +src/com/example/test.kt:20:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = InterfaceChildClassComp) + ----------------------- +src/com/example/test.kt:21:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = AbstractChildClassComp) + ---------------------- +src/com/example/test.kt:22:Error: StartDestination should not be a +simple class name reference. +Did you mean to call its constructor Companion(...)? +If the class Companion does not contain arguments, +you can also pass in its KClass reference Companion::class +[WrongStartDestinationType] + navController.createGraph(startDestination = TestAbstractComp) + ---------------- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Here is the source file referenced above: @@ -110,29 +160,37 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers package com.example -import androidx.navigation.* +import androidx.navigation.NavController +import androidx.navigation.createGraph +import androidx.test.* fun createGraph() { - val provider = NavigatorProvider() - val builder = NavGraphBuilder(provider, TestGraph, null) - builder.navigation(startDestination = TestClass) - builder.navigation(startDestination = TestClassWithArg) - builder.navigation(startDestination = Outer.InnerClass) - builder.navigation(startDestination = InterfaceChildClass) - builder.navigation(startDestination = AbstractChildClass) - builder.navigation(startDestination = TestInterface) - builder.navigation(startDestination = TestAbstract) + val navController = NavController() + navController.createGraph(startDestination = TestClass) {} + navController.createGraph(startDestination = TestClassWithArg) {} + navController.createGraph(startDestination = Outer.InnerClass) {} + navController.createGraph(startDestination = InterfaceChildClass) {} + navController.createGraph(startDestination = AbstractChildClass) {} + navController.createGraph(startDestination = TestInterface) + navController.createGraph(startDestination = TestAbstract) + //classes with companion object to simulate marked with @Serializable + navController.createGraph(startDestination = TestClassComp) + navController.createGraph(startDestination = TestClassWithArgComp) + navController.createGraph(startDestination = OuterComp.InnerClassComp) + navController.createGraph(startDestination = InterfaceChildClassComp) + navController.createGraph(startDestination = AbstractChildClassComp) + navController.createGraph(startDestination = TestAbstractComp) } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can also visit the -[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/WrongStartDestinationTypeDetectorTest.kt) +[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt) for the unit tests for this check to see additional scenarios. The above example was automatically extracted from the first unit test -found for this lint check, `WrongStartDestinationTypeDetector.testNavGraphBuilder_classHasError`. -To report a problem with this extracted sample, contact -Jetpack Navigation Compose. +found for this lint check, `WrongStartDestinationTypeDetector.testNavController_classHasError`. +To report a problem with this extracted sample, visit +https://issuetracker.google.com/issues/new?component=409828. (##) Conflicts @@ -140,8 +198,8 @@ id's must be unique, so you cannot combine these libraries. Also defined in: * WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class. (this issue) -* [WrongStartDestinationType from androidx.navigation:navigation-runtime:2.9.0-alpha04](WrongStartDestinationType-2.md.html) -* [WrongStartDestinationType from androidx.navigation:navigation-common:2.9.0-alpha04](WrongStartDestinationType-3.md.html) +* [WrongStartDestinationType from androidx.navigation:navigation-compose:2.9.0-rc01](WrongStartDestinationType-2.md.html) +* [WrongStartDestinationType from androidx.navigation:navigation-runtime:2.9.0-rc01](WrongStartDestinationType-3.md.html) (##) Including @@ -152,32 +210,32 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-compose:2.9.0-alpha04") +implementation("androidx.navigation:navigation-common:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-compose:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-common:2.9.0-rc01' // build.gradle.kts with version catalogs: -implementation(libs.navigation.compose) +implementation(libs.navigation.common) # libs.versions.toml [versions] -navigation-compose = "2.9.0-alpha04" +navigation-common = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single # line (see https://github.com/toml-lang/toml/issues/516) so adjust # when pasting into libs.versions.toml: -navigation-compose = { - module = "androidx.navigation:navigation-compose", - version.ref = "navigation-compose" +navigation-common = { + module = "androidx.navigation:navigation-common", + version.ref = "navigation-common" } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. -[Additional details about androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html). +[Additional details about androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html). (##) Suppressing You can suppress false positives using one of the following mechanisms: @@ -189,7 +247,7 @@ // Kotlin @Suppress("WrongStartDestinationType") fun method() { - NavHost(...) + navigation(...) } ``` @@ -199,7 +257,7 @@ // Java @SuppressWarnings("WrongStartDestinationType") void method() { - NavHost(...); + navigation(...); } ``` diff --git a/docs/checks/androidx_activity_activity-compose.md.html b/docs/checks/androidx_activity_activity-compose.md.html index 2bfd6906..7f570bcd 100644 --- a/docs/checks/androidx_activity_activity-compose.md.html +++ b/docs/checks/androidx_activity_activity-compose.md.html @@ -15,9 +15,9 @@ Min : Lint 8.0 and 8.1 Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact -: androidx.activity:activity-compose:1.10.0-rc01 +: androidx.activity:activity-compose:1.11.0-rc01 (##) Included Issues @@ -35,17 +35,17 @@ ``` // build.gradle.kts -implementation("androidx.activity:activity-compose:1.10.0-rc01") +implementation("androidx.activity:activity-compose:1.11.0-rc01") // build.gradle -implementation 'androidx.activity:activity-compose:1.10.0-rc01' +implementation 'androidx.activity:activity-compose:1.11.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.activity.compose) # libs.versions.toml [versions] -activity-compose = "1.10.0-rc01" +activity-compose = "1.11.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -57,14 +57,14 @@ } ``` -1.10.0-rc01 is the version this documentation was generated from; +1.11.0-rc01 is the version this documentation was generated from; there may be newer versions available. (##) Changes * 1.4.0: First version includes LaunchDuringComposition. * 1.8.0: Adds NoCollectCallFound. -* 1.10.0-alpha03: Adds ContextCastToActivity. +* 1.10.0: Adds ContextCastToActivity. (##) Version Compatibility @@ -72,11 +72,12 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.10.0-rc01|2024/12/11| 3| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.10.0-beta01|2024/11/13| 3| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.10.0-alpha03|2024/10/30| 3| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.10.0-alpha02|2024/09/04| 2| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.10.0-alpha01|2024/06/26| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.11.0-rc01|2025/04/23| 3| Yes| 8.7+|8.0 and 8.1| +| 1.11.0-beta01|2025/04/09| 3| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.11.0-alpha02|2025/03/26| 3| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.11.0-alpha01|2025/03/12| 3| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.10.1|2025/02/26| 3| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.10.0|2025/01/15| 3| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.9.3|2024/10/16| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.9.2|2024/09/04| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.9.1|2024/07/24| 2| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_activity_activity.md.html b/docs/checks/androidx_activity_activity.md.html index dfe8ece9..47b19674 100644 --- a/docs/checks/androidx_activity_activity.md.html +++ b/docs/checks/androidx_activity_activity.md.html @@ -16,9 +16,9 @@ Min : Lint 8.0 and 8.1 Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact -: androidx.activity:activity:1.10.0-rc01 +: androidx.activity:activity:1.11.0-rc01 (##) Included Issues @@ -35,17 +35,17 @@ ``` // build.gradle.kts -implementation("androidx.activity:activity:1.10.0-rc01") +implementation("androidx.activity:activity:1.11.0-rc01") // build.gradle -implementation 'androidx.activity:activity:1.10.0-rc01' +implementation 'androidx.activity:activity:1.11.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.activity) # libs.versions.toml [versions] -activity = "1.10.0-rc01" +activity = "1.11.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -57,7 +57,7 @@ } ``` -1.10.0-rc01 is the version this documentation was generated from; +1.11.0-rc01 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -72,11 +72,12 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.10.0-rc01|2024/12/11| 2| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.10.0-beta01|2024/11/13| 2| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.10.0-alpha03|2024/10/30| 2| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.10.0-alpha02|2024/09/04| 2| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.10.0-alpha01|2024/06/26| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.11.0-rc01|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1| +| 1.11.0-beta01|2025/04/09| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.11.0-alpha02|2025/03/26| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.11.0-alpha01|2025/03/12| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.10.1|2025/02/26| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.10.0|2025/01/15| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.9.3|2024/10/16| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.9.2|2024/09/04| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.9.1|2024/07/24| 2| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_annotation_annotation-experimental.md.html b/docs/checks/androidx_annotation_annotation-experimental.md.html index e12b8130..9685c384 100644 --- a/docs/checks/androidx_annotation_annotation-experimental.md.html +++ b/docs/checks/androidx_annotation_annotation-experimental.md.html @@ -16,11 +16,11 @@ Feedback : https://issuetracker.google.com/issues/new?component=459778 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact -: androidx.annotation:annotation-experimental:1.5.0-alpha01 +: androidx.annotation:annotation-experimental:1.5.0-rc01 (##) Included Issues @@ -39,17 +39,17 @@ ``` // build.gradle.kts -implementation("androidx.annotation:annotation-experimental:1.5.0-alpha01") +implementation("androidx.annotation:annotation-experimental:1.5.0-rc01") // build.gradle -implementation 'androidx.annotation:annotation-experimental:1.5.0-alpha01' +implementation 'androidx.annotation:annotation-experimental:1.5.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.annotation.experimental) # libs.versions.toml [versions] -annotation-experimental = "1.5.0-alpha01" +annotation-experimental = "1.5.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -61,7 +61,7 @@ } ``` -1.5.0-alpha01 is the version this documentation was generated from; +1.5.0-rc01 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -79,6 +79,8 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 1.5.0-rc01|2025/04/23| 4| Yes| 8.7+| 8.7+| +| 1.5.0-beta01|2025/04/09| 4| Yes| 8.7+| 8.7+| | 1.5.0-alpha01|2024/08/21| 4| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.4.1|2024/04/03| 4| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.4.0|2024/01/24| 4| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_compose_animation_animation-android.md.html b/docs/checks/androidx_compose_animation_animation-android.md.html index f5c51b9e..62da0824 100644 --- a/docs/checks/androidx_compose_animation_animation-android.md.html +++ b/docs/checks/androidx_compose_animation_animation-android.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.compose.animation:animation-android:1.8.0-alpha07 +: androidx.compose.animation:animation-android:1.9.0-alpha01 (##) Included Issues @@ -37,17 +37,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.animation:animation-android:1.8.0-alpha07") +implementation("androidx.compose.animation:animation-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.animation:animation-android:1.8.0-alpha07' +implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.animation.android) # libs.versions.toml [versions] -animation-android = "1.8.0-alpha07" +animation-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -59,18 +59,18 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.animation:animation-lint:1.8.0-alpha07`. +You can also use `androidx.compose.animation:animation-lint:1.9.0-alpha01`. (##) Changes * 1.5.0: First version includes UnusedContentLambdaTargetStateParameter, UnusedCrossfadeTargetStateParameter. -* 1.8.0-alpha01: Adds ConstantContentStateKeyInItemsCall, +* 1.8.0: Adds ConstantContentStateKeyInItemsCall, UnusedSharedTransitionModifierParameter, UnusedTargetStateInContentKeyLambda. @@ -80,13 +80,10 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.8.0-alpha07|2024/12/11| 5| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha06|2024/11/13| 5| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha05|2024/10/30| 5| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha04|2024/10/16| 5| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha03|2024/10/02| 5| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha02|2024/09/18| 5| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha01|2024/09/04| 5| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.9.0-alpha01|2025/04/23| 5| Yes| 8.7+|8.0 and 8.1| +| 1.8.0|2025/04/23| 5| Yes| 8.7+|8.0 and 8.1| +| 1.7.8|2025/02/12| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.7.7|2025/01/29| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.6|2024/12/11| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.5|2024/10/30| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.4|2024/10/16| 2| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_compose_animation_animation-core-android.md.html b/docs/checks/androidx_compose_animation_animation-core-android.md.html index d33f1382..75ef3c51 100644 --- a/docs/checks/androidx_compose_animation_animation-core-android.md.html +++ b/docs/checks/androidx_compose_animation_animation-core-android.md.html @@ -18,14 +18,13 @@ Compiled : Lint 8.7+ Artifact -: androidx.compose.animation:animation-core-android:1.8.0-alpha07 +: androidx.compose.animation:animation-core-android:1.9.0-alpha01 (##) Included Issues |Issue Id |Issue Description | |------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------| |[UnusedTransitionTargetStateParameter](UnusedTransitionTargetStateParameter.md.html)|Transition.animate* calls should use the provided targetState when defining values | -|[UnrememberedAnimatable](UnrememberedAnimatable.md.html) |Creating an Animatable during composition without using `remember` | |[ArcAnimationSpecTypeIssue](ArcAnimationSpecTypeIssue.md.html) |ArcAnimationSpec is designed for 2D values. Particularly, for positional values such as Offset.| (##) Including @@ -36,17 +35,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.animation:animation-core-android:1.8.0-alpha07") +implementation("androidx.compose.animation:animation-core-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.animation:animation-core-android:1.8.0-alpha07' +implementation 'androidx.compose.animation:animation-core-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.animation.core.android) # libs.versions.toml [versions] -animation-core-android = "1.8.0-alpha07" +animation-core-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -58,11 +57,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.animation:animation-core-lint:1.8.0-alpha07`. +You can also use `androidx.compose.animation:animation-core-lint:1.9.0-alpha01`. (##) Changes @@ -70,6 +69,7 @@ * 1.5.0: First version includes UnrememberedAnimatable, UnusedTransitionTargetStateParameter. * 1.7.0: Adds ArcAnimationSpecTypeIssue. +* 1.9.0-alpha01: Removes UnrememberedAnimatable. (##) Version Compatibility @@ -77,13 +77,10 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.8.0-alpha07|2024/12/11| 3| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha06|2024/11/13| 3| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha05|2024/10/30| 3| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha04|2024/10/16| 3| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha03|2024/10/02| 3| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha02|2024/09/18| 3| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha01|2024/09/04| 3| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.9.0-alpha01|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1| +| 1.8.0|2025/04/23| 3| Yes| 8.7+|8.0 and 8.1| +| 1.7.8|2025/02/12| 3| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.7.7|2025/01/29| 3| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.6|2024/12/11| 3| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.5|2024/10/30| 3| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.4|2024/10/16| 3| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_compose_foundation_foundation-android.md.html b/docs/checks/androidx_compose_foundation_foundation-android.md.html index 993c5395..65da8a90 100644 --- a/docs/checks/androidx_compose_foundation_foundation-android.md.html +++ b/docs/checks/androidx_compose_foundation_foundation-android.md.html @@ -15,20 +15,18 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled : Lint 8.7+ Artifact -: androidx.compose.foundation:foundation-android:1.8.0-alpha07 +: androidx.compose.foundation:foundation-android:1.9.0-alpha01 (##) Included Issues -|Issue Id |Issue Description | -|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------| -|[FrequentlyChangedStateReadInComposition](FrequentlyChangedStateReadInComposition.md.html)|Frequently changing state should not be directly read in composable function | -|[UnrememberedMutableInteractionSource](UnrememberedMutableInteractionSource.md.html) |Creating a MutableInteractionSource during composition without using `remember` | -|[UseOfNonLambdaOffsetOverload](UseOfNonLambdaOffsetOverload.md.html) |Modifier.offset{ } is preferred over Modifier.offset() for `State` backed arguments | -|[UnusedBoxWithConstraintsScope](UnusedBoxWithConstraintsScope.md.html) |BoxWithConstraints content should use the constraints provided via BoxWithConstraintsScope| +|Issue Id |Issue Description | +|----------------------------------------------------------------------|------------------------------------------------------------------------------------------| +|[UseOfNonLambdaOffsetOverload](UseOfNonLambdaOffsetOverload.md.html) |Modifier.offset{ } is preferred over Modifier.offset() for `State` backed arguments | +|[UnusedBoxWithConstraintsScope](UnusedBoxWithConstraintsScope.md.html)|BoxWithConstraints content should use the constraints provided via BoxWithConstraintsScope| (##) Including @@ -38,17 +36,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.foundation:foundation-android:1.8.0-alpha07") +implementation("androidx.compose.foundation:foundation-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.foundation:foundation-android:1.8.0-alpha07' +implementation 'androidx.compose.foundation:foundation-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.foundation.android) # libs.versions.toml [versions] -foundation-android = "1.8.0-alpha07" +foundation-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -60,11 +58,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.foundation:foundation-lint:1.8.0-alpha07`. +You can also use `androidx.compose.foundation:foundation-lint:1.9.0-alpha01`. (##) Changes @@ -73,6 +71,8 @@ UseOfNonLambdaOffsetOverload. * 1.6.0: Adds UnrememberedMutableInteractionSource, UnusedBoxWithConstraintsScope. +* 1.9.0-alpha01: Removes FrequentlyChangedStateReadInComposition, + UnrememberedMutableInteractionSource. (##) Version Compatibility @@ -80,13 +80,10 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.8.0-alpha07|2024/12/11| 4| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha06|2024/11/13| 4| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha05|2024/10/30| 4| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha04|2024/10/16| 4| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha03|2024/10/02| 4| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha02|2024/09/18| 4| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha01|2024/09/04| 4| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.9.0-alpha01|2025/04/23| 2| Yes| 8.7+| 8.7+| +| 1.8.0|2025/04/23| 4| Yes| 8.7+|8.0 and 8.1| +| 1.7.8|2025/02/12| 4| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.7.7|2025/01/29| 4| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.6|2024/12/11| 4| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.5|2024/10/30| 4| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.4|2024/10/16| 4| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_compose_material3_material3-android.md.html b/docs/checks/androidx_compose_material3_material3-android.md.html index 9a05856a..2c076afa 100644 --- a/docs/checks/androidx_compose_material3_material3-android.md.html +++ b/docs/checks/androidx_compose_material3_material3-android.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.compose.material3:material3-android:1.4.0-alpha05 +: androidx.compose.material3:material3-android:1.4.0-alpha13 (##) Included Issues @@ -34,17 +34,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.material3:material3-android:1.4.0-alpha05") +implementation("androidx.compose.material3:material3-android:1.4.0-alpha13") // build.gradle -implementation 'androidx.compose.material3:material3-android:1.4.0-alpha05' +implementation 'androidx.compose.material3:material3-android:1.4.0-alpha13' // build.gradle.kts with version catalogs: implementation(libs.material3.android) # libs.versions.toml [versions] -material3-android = "1.4.0-alpha05" +material3-android = "1.4.0-alpha13" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -56,11 +56,11 @@ } ``` -1.4.0-alpha05 is the version this documentation was generated from; +1.4.0-alpha13 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.material3:material3-lint:1.4.0-alpha05`. +You can also use `androidx.compose.material3:material3-lint:1.4.0-alpha13`. (##) Changes @@ -74,11 +74,20 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 1.4.0-alpha13|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1| +| 1.4.0-alpha12|2025/04/09| 2| Yes| 8.7+|8.0 and 8.1| +| 1.4.0-alpha11|2025/03/26| 2| Yes| 8.7+|8.0 and 8.1| +| 1.4.0-alpha10|2025/03/12| 2| Yes| 8.7+|8.0 and 8.1| +| 1.4.0-alpha09|2025/02/26| 2| Yes| 8.7+|8.0 and 8.1| +| 1.4.0-alpha08|2025/02/12| 2| Yes| 8.7+|8.0 and 8.1| +| 1.4.0-alpha07|2025/01/29| 2| Yes| 8.7+|8.0 and 8.1| +| 1.4.0-alpha06|2025/01/15| 2| Yes| 8.7+|8.0 and 8.1| | 1.4.0-alpha05|2024/12/12| 2| Yes| 8.7+|8.0 and 8.1| | 1.4.0-alpha04|2024/11/13| 2| Yes| 8.7+|8.0 and 8.1| | 1.4.0-alpha03|2024/10/30| 2| Yes| 8.7+|8.0 and 8.1| | 1.4.0-alpha02|2024/10/16| 2| Yes| 8.7+|8.0 and 8.1| | 1.4.0-alpha01|2024/10/02| 2| Yes| 8.7+|8.0 and 8.1| +| 1.3.2|2025/04/09| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.3.1|2024/10/30| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.3.0|2024/09/04| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.2.1|2024/03/06| 2| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_compose_material_material-android.md.html b/docs/checks/androidx_compose_material_material-android.md.html index cad17136..e9314d66 100644 --- a/docs/checks/androidx_compose_material_material-android.md.html +++ b/docs/checks/androidx_compose_material_material-android.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.compose.material:material-android:1.8.0-alpha07 +: androidx.compose.material:material-android:1.9.0-alpha01 (##) Included Issues @@ -34,17 +34,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.material:material-android:1.8.0-alpha07") +implementation("androidx.compose.material:material-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.material:material-android:1.8.0-alpha07' +implementation 'androidx.compose.material:material-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.material.android) # libs.versions.toml [versions] -material-android = "1.8.0-alpha07" +material-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -56,11 +56,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.material:material-lint:1.8.0-alpha07`. +You can also use `androidx.compose.material:material-lint:1.9.0-alpha01`. (##) Changes @@ -74,13 +74,10 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.8.0-alpha07|2024/12/11| 2| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha06|2024/11/13| 2| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha05|2024/10/30| 2| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha04|2024/10/16| 2| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha03|2024/10/02| 2| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha02|2024/09/18| 2| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha01|2024/09/04| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.9.0-alpha01|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1| +| 1.8.0|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1| +| 1.7.8|2025/02/12| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.7.7|2025/01/29| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.6|2024/12/11| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.5|2024/10/30| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.4|2024/10/16| 2| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_compose_runtime_runtime-android.md.html b/docs/checks/androidx_compose_runtime_runtime-android.md.html index 9c6ee2c9..147f14f9 100644 --- a/docs/checks/androidx_compose_runtime_runtime-android.md.html +++ b/docs/checks/androidx_compose_runtime_runtime-android.md.html @@ -14,30 +14,32 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact -: androidx.compose.runtime:runtime-android:1.8.0-alpha07 +: androidx.compose.runtime:runtime-android:1.9.0-alpha01 (##) Included Issues -|Issue Id |Issue Description | -|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| -|[AutoboxingStateValueProperty](AutoboxingStateValueProperty.md.html) |State access causes value to be autoboxed | -|[AutoboxingStateCreation](AutoboxingStateCreation.md.html) |`State` will autobox values assigned to this state. Use a specialized state type instead.| -|[CoroutineCreationDuringComposition](CoroutineCreationDuringComposition.md.html)|Calls to `async` or `launch` should happen inside a LaunchedEffect and not composition | -|[FlowOperatorInvokedInComposition](FlowOperatorInvokedInComposition.md.html) |Flow operator functions should not be invoked within composition | -|[ComposableLambdaParameterNaming](ComposableLambdaParameterNaming.md.html) |Primary composable lambda parameter not named `content` | -|[ComposableLambdaParameterPosition](ComposableLambdaParameterPosition.md.html) |Non-trailing primary composable lambda parameter | -|[ComposableNaming](ComposableNaming.md.html) |Incorrect naming for @Composable functions | -|[StateFlowValueCalledInComposition](StateFlowValueCalledInComposition.md.html) |StateFlow.value should not be called within composition | -|[CompositionLocalNaming](CompositionLocalNaming.md.html) |CompositionLocal properties should be prefixed with `Local` | -|[MutableCollectionMutableState](MutableCollectionMutableState.md.html) |Creating a MutableState object with a mutable collection type | -|[ProduceStateDoesNotAssignValue](ProduceStateDoesNotAssignValue.md.html) |produceState calls should assign `value` inside the producer lambda | -|[RememberReturnType](RememberReturnType.md.html) |`remember` calls must not return `Unit` | -|[OpaqueUnitKey](OpaqueUnitKey.md.html) |Passing an expression which always returns `Unit` as a key argument | -|[UnrememberedMutableState](UnrememberedMutableState.md.html) |Creating a state object during composition without using `remember` | +|Issue Id |Issue Description | +|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------| +|[AutoboxingStateValueProperty](AutoboxingStateValueProperty.md.html) |State access causes value to be autoboxed | +|[AutoboxingStateCreation](AutoboxingStateCreation.md.html) |`State` will autobox values assigned to this state. Use a specialized state type instead. | +|[CoroutineCreationDuringComposition](CoroutineCreationDuringComposition.md.html)|Calls to `async` or `launch` should happen inside a LaunchedEffect and not composition | +|[FlowOperatorInvokedInComposition](FlowOperatorInvokedInComposition.md.html) |Flow operator functions should not be invoked within composition | +|[ComposableLambdaParameterNaming](ComposableLambdaParameterNaming.md.html) |Primary composable lambda parameter not named `content` | +|[ComposableLambdaParameterPosition](ComposableLambdaParameterPosition.md.html) |Non-trailing primary composable lambda parameter | +|[ComposableNaming](ComposableNaming.md.html) |Incorrect naming for @Composable functions | +|[StateFlowValueCalledInComposition](StateFlowValueCalledInComposition.md.html) |StateFlow.value should not be called within composition | +|[CompositionLocalNaming](CompositionLocalNaming.md.html) |CompositionLocal properties should be prefixed with `Local` | +|[FrequentlyChangingValue](FrequentlyChangingValue.md.html) |Reading a value annotated with @FrequentlyChangingValue inside composition | +|[MutableCollectionMutableState](MutableCollectionMutableState.md.html) |Creating a MutableState object with a mutable collection type | +|[ProduceStateDoesNotAssignValue](ProduceStateDoesNotAssignValue.md.html) |produceState calls should assign `value` inside the producer lambda | +|[RememberReturnType](RememberReturnType.md.html) |`remember` calls must not return `Unit` | +|[RememberInComposition](RememberInComposition.md.html) |Calling a @RememberInComposition annotated declaration inside composition without using `remember`| +|[OpaqueUnitKey](OpaqueUnitKey.md.html) |Passing an expression which always returns `Unit` as a key argument | +|[UnrememberedMutableState](UnrememberedMutableState.md.html) |Creating a state object during composition without using `remember` | (##) Including @@ -47,17 +49,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.android) # libs.versions.toml [versions] -runtime-android = "1.8.0-alpha07" +runtime-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -69,11 +71,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-lint:1.9.0-alpha01`. (##) Changes @@ -85,6 +87,7 @@ FlowOperatorInvokedInComposition, MutableCollectionMutableState, OpaqueUnitKey, ProduceStateDoesNotAssignValue, RememberReturnType, StateFlowValueCalledInComposition, UnrememberedMutableState. +* 1.9.0-alpha01: Adds FrequentlyChangingValue, RememberInComposition. (##) Version Compatibility @@ -92,33 +95,35 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.8.0-alpha07|2024/12/11| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha06|2024/11/13| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha05|2024/10/30| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha04|2024/10/16| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha03|2024/10/02| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha02|2024/09/18| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha01|2024/09/04| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.7.6|2024/12/11| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.7.5|2024/10/30| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.7.4|2024/10/16| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.7.3|2024/10/02| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.7.2|2024/09/18| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.7.1|2024/09/10| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.7.0|2024/09/04| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.6.8|2024/06/12| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.6.7|2024/05/01| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.6.6|2024/04/17| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.6.5|2024/04/03| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.6.4|2024/03/20| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.6.3|2024/03/06| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.6.2|2024/02/21| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.6.1|2024/02/07| 14| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.6.0|2024/01/24| 14| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.9.0-alpha01|2025/04/23| 16| Yes| 8.7+| 8.7+| +| 1.8.0|2025/04/23| 14| No[^1]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.8|2025/02/12| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.7|2025/01/29| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.6|2024/12/11| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.5|2024/10/30| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.4|2024/10/16| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.3|2024/10/02| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.2|2024/09/18| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.1|2024/09/10| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.0|2024/09/04| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.6.8|2024/06/12| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.6.7|2024/05/01| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.6.6|2024/04/17| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.6.5|2024/04/03| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.6.4|2024/03/20| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.6.3|2024/03/06| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.6.2|2024/02/21| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.6.1|2024/02/07| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.6.0|2024/01/24| 14| No[^2]| 8.0 and 8.1|8.0 and 8.1| | 1.5.4|2023/10/18| 14| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.5.3|2023/10/04| 14| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.5.2|2023/09/27| 14| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.5.1|2023/09/06| 14| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.5.0|2023/08/09| 14| Yes| 8.0 and 8.1|8.0 and 8.1| +Compatibility Problems: + +[^1]: org.jetbrains.kotlin.analysis.api.calls.KaCallKt#singleFunctionCallOrNull(org.jetbrains.kotlin.analysis.api.resolution.KaCallInfo): org.jetbrains.kotlin.analysis.api.resolution.KaFunctionCall is not available +[^2]: org.jetbrains.kotlin.analysis.api.KaSession#resolveCall(org.jetbrains.kotlin.psi.KtElement): org.jetbrains.kotlin.analysis.api.resolution.KaCallInfo is not available + \ No newline at end of file diff --git a/docs/checks/androidx_compose_runtime_runtime-saveable-android.md.html b/docs/checks/androidx_compose_runtime_runtime-saveable-android.md.html index 7d2c466a..0bc2c735 100644 --- a/docs/checks/androidx_compose_runtime_runtime-saveable-android.md.html +++ b/docs/checks/androidx_compose_runtime_runtime-saveable-android.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.compose.runtime:runtime-saveable-android:1.8.0-alpha07 +: androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha01 (##) Included Issues @@ -33,17 +33,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.runtime:runtime-saveable-android:1.8.0-alpha07") +implementation("androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.runtime:runtime-saveable-android:1.8.0-alpha07' +implementation 'androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.runtime.saveable.android) # libs.versions.toml [versions] -runtime-saveable-android = "1.8.0-alpha07" +runtime-saveable-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -55,11 +55,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.runtime:runtime-saveable-lint:1.8.0-alpha07`. +You can also use `androidx.compose.runtime:runtime-saveable-lint:1.9.0-alpha01`. (##) Changes @@ -72,13 +72,10 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.8.0-alpha07|2024/12/11| 1| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha06|2024/11/13| 1| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha05|2024/10/30| 1| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha04|2024/10/16| 1| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha03|2024/10/02| 1| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha02|2024/09/18| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha01|2024/09/04| 1| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.9.0-alpha01|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1| +| 1.8.0|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1| +| 1.7.8|2025/02/12| 1| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.7.7|2025/01/29| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.6|2024/12/11| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.5|2024/10/30| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.4|2024/10/16| 1| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_compose_ui_ui-android.md.html b/docs/checks/androidx_compose_ui_ui-android.md.html index 3ba18ab5..f0ffd86a 100644 --- a/docs/checks/androidx_compose_ui_ui-android.md.html +++ b/docs/checks/androidx_compose_ui_ui-android.md.html @@ -14,17 +14,20 @@ Feedback : https://issuetracker.google.com/issues/new?component=612128 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact -: androidx.compose.ui:ui-android:1.8.0-alpha07 +: androidx.compose.ui:ui-android:1.9.0-alpha01 (##) Included Issues |Issue Id |Issue Description | |----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------| |[UnnecessaryComposedModifier](UnnecessaryComposedModifier.md.html) |Modifier.composed should only be used for modifiers that invoke @Composable functions | +|[LocalContextConfigurationRead](LocalContextConfigurationRead.md.html) |Reading Configuration using LocalContext.current.resources.configuration | +|[LocalContextResourcesRead](LocalContextResourcesRead.md.html) |Reading Resources using LocalContext.current.resources | +|[ConfigurationScreenWidthHeight](ConfigurationScreenWidthHeight.md.html) |Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize | |[ModifierFactoryExtensionFunction](ModifierFactoryExtensionFunction.md.html) |Modifier factory functions should be extensions on Modifier | |[ModifierFactoryReturnType](ModifierFactoryReturnType.md.html) |Modifier factory functions should return Modifier | |[ModifierFactoryUnreferencedReceiver](ModifierFactoryUnreferencedReceiver.md.html) |Modifier factory functions must use the receiver Modifier instance | @@ -43,17 +46,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.android) # libs.versions.toml [versions] -ui-android = "1.8.0-alpha07" +ui-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -65,11 +68,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-lint:1.9.0-alpha01`. (##) Changes @@ -83,6 +86,9 @@ UnnecessaryComposedModifier. * 1.6.0: Removes ComposableModifierFactory. * 1.7.0: Adds SuspiciousModifierThen. +* 1.8.0: Adds ConfigurationScreenWidthHeight, + LocalContextConfigurationRead. +* 1.9.0-alpha01: Adds LocalContextResourcesRead. (##) Version Compatibility @@ -90,20 +96,17 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.8.0-alpha07|2024/12/11| 10| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha06|2024/11/13| 10| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha05|2024/10/30| 10| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha04|2024/10/16| 10| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha03|2024/10/02| 10| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha02|2024/09/18| 10| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha01|2024/09/04| 10| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.7.6|2024/12/11| 10| No[^1]| 8.0 and 8.1|8.0 and 8.1| -| 1.7.5|2024/10/30| 10| No[^1]| 8.0 and 8.1|8.0 and 8.1| -| 1.7.4|2024/10/16| 10| No[^1]| 8.0 and 8.1|8.0 and 8.1| -| 1.7.3|2024/10/02| 10| No[^1]| 8.0 and 8.1|8.0 and 8.1| -| 1.7.2|2024/09/18| 10| No[^1]| 8.0 and 8.1|8.0 and 8.1| -| 1.7.1|2024/09/10| 10| No[^1]| 8.0 and 8.1|8.0 and 8.1| -| 1.7.0|2024/09/04| 10| No[^1]| 8.0 and 8.1|8.0 and 8.1| +| 1.9.0-alpha01|2025/04/23| 13| Yes| 8.7+| 8.7+| +| 1.8.0|2025/04/23| 12| No[^1]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.8|2025/02/12| 10| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.7|2025/01/29| 10| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.6|2024/12/11| 10| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.5|2024/10/30| 10| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.4|2024/10/16| 10| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.3|2024/10/02| 10| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.2|2024/09/18| 10| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.1|2024/09/10| 10| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 1.7.0|2024/09/04| 10| No[^2]| 8.0 and 8.1|8.0 and 8.1| | 1.6.8|2024/06/12| 9| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.6.7|2024/05/01| 9| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.6.6|2024/04/17| 9| Yes| 8.0 and 8.1|8.0 and 8.1| @@ -121,6 +124,7 @@ Compatibility Problems: -[^1]: org.jetbrains.kotlin.analysis.api.resolution.KaCompoundAccess#getOperationPartiallyAppliedSymbol(): org.jetbrains.kotlin.analysis.api.resolution.KaPartiallyAppliedSymbol is not available +[^1]: org.jetbrains.kotlin.analysis.api.calls.KaCallKt#getCalls(org.jetbrains.kotlin.analysis.api.resolution.KaCallInfo): java.util.List is not available +[^2]: org.jetbrains.kotlin.analysis.api.KaSession#resolveCall(org.jetbrains.kotlin.psi.KtElement): org.jetbrains.kotlin.analysis.api.resolution.KaCallInfo is not available \ No newline at end of file diff --git a/docs/checks/androidx_compose_ui_ui-graphics-android.md.html b/docs/checks/androidx_compose_ui_ui-graphics-android.md.html index e3bc6352..3f63f311 100644 --- a/docs/checks/androidx_compose_ui_ui-graphics-android.md.html +++ b/docs/checks/androidx_compose_ui_ui-graphics-android.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.compose.ui:ui-graphics-android:1.8.0-alpha07 +: androidx.compose.ui:ui-graphics-android:1.9.0-alpha01 (##) Included Issues @@ -34,17 +34,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-graphics-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-graphics-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-graphics-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-graphics-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.graphics.android) # libs.versions.toml [versions] -ui-graphics-android = "1.8.0-alpha07" +ui-graphics-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -56,11 +56,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-graphics-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-graphics-lint:1.9.0-alpha01`. (##) Changes @@ -74,13 +74,10 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.8.0-alpha07|2024/12/11| 2| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha06|2024/11/13| 2| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha05|2024/10/30| 2| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha04|2024/10/16| 2| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha03|2024/10/02| 2| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha02|2024/09/18| 2| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha01|2024/09/04| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.9.0-alpha01|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1| +| 1.8.0|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1| +| 1.7.8|2025/02/12| 2| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.7.7|2025/01/29| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.6|2024/12/11| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.5|2024/10/30| 2| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.4|2024/10/16| 2| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_compose_ui_ui-test-manifest.md.html b/docs/checks/androidx_compose_ui_ui-test-manifest.md.html index d4a16e49..0bf21375 100644 --- a/docs/checks/androidx_compose_ui_ui-test-manifest.md.html +++ b/docs/checks/androidx_compose_ui_ui-test-manifest.md.html @@ -19,7 +19,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.compose.ui:ui-test-manifest:1.8.0-alpha07 +: androidx.compose.ui:ui-test-manifest:1.9.0-alpha01 (##) Included Issues @@ -35,17 +35,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-test-manifest:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-test-manifest:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-test-manifest:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-test-manifest:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.test.manifest) # libs.versions.toml [versions] -ui-test-manifest = "1.8.0-alpha07" +ui-test-manifest = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -57,11 +57,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-test-manifest-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-test-manifest-lint:1.9.0-alpha01`. (##) Changes @@ -74,13 +74,10 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.8.0-alpha07|2024/12/11| 1| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha06|2024/11/13| 1| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha05|2024/10/30| 1| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha04|2024/10/16| 1| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha03|2024/10/02| 1| Yes| 8.7+|8.0 and 8.1| -| 1.8.0-alpha02|2024/09/18| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha01|2024/09/04| 1| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.9.0-alpha01|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1| +| 1.8.0|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1| +| 1.7.8|2025/02/12| 1| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.7.7|2025/01/29| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.6|2024/12/11| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.5|2024/10/30| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.4|2024/10/16| 1| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_compose_ui_ui-text-android.md.html b/docs/checks/androidx_compose_ui_ui-text-android.md.html index f2e1eff0..e9b7661f 100644 --- a/docs/checks/androidx_compose_ui_ui-text-android.md.html +++ b/docs/checks/androidx_compose_ui_ui-text-android.md.html @@ -13,11 +13,11 @@ Feedback : https://issuetracker.google.com/issues/new?component=779818 Min -: Lint 8.7+ +: Lint 8.0 and 8.1 Compiled : Lint 8.7+ Artifact -: androidx.compose.ui:ui-text-android:1.8.0-alpha07 +: androidx.compose.ui:ui-text-android:1.9.0-alpha01 (##) Included Issues @@ -33,17 +33,17 @@ ``` // build.gradle.kts -implementation("androidx.compose.ui:ui-text-android:1.8.0-alpha07") +implementation("androidx.compose.ui:ui-text-android:1.9.0-alpha01") // build.gradle -implementation 'androidx.compose.ui:ui-text-android:1.8.0-alpha07' +implementation 'androidx.compose.ui:ui-text-android:1.9.0-alpha01' // build.gradle.kts with version catalogs: implementation(libs.ui.text.android) # libs.versions.toml [versions] -ui-text-android = "1.8.0-alpha07" +ui-text-android = "1.9.0-alpha01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -55,11 +55,11 @@ } ``` -1.8.0-alpha07 is the version this documentation was generated from; +1.9.0-alpha01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. -You can also use `androidx.compose.ui:ui-text-lint:1.8.0-alpha07`. +You can also use `androidx.compose.ui:ui-text-lint:1.9.0-alpha01`. (##) Changes @@ -72,13 +72,10 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.8.0-alpha07|2024/12/11| 1| Yes| 8.7+| 8.7+| -| 1.8.0-alpha06|2024/11/13| 1| Yes| 8.7+| 8.7+| -| 1.8.0-alpha05|2024/10/30| 1| Yes| 8.7+| 8.7+| -| 1.8.0-alpha04|2024/10/16| 1| Yes| 8.7+| 8.7+| -| 1.8.0-alpha03|2024/10/02| 1| Yes| 8.7+| 8.7+| -| 1.8.0-alpha02|2024/09/18| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.8.0-alpha01|2024/09/04| 1| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.9.0-alpha01|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1| +| 1.8.0|2025/04/23| 1| Yes| 8.7+| 8.7+| +| 1.7.8|2025/02/12| 1| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.7.7|2025/01/29| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.6|2024/12/11| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.5|2024/10/30| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.7.4|2024/10/16| 1| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_constraintlayout_constraintlayout-compose.md.html b/docs/checks/androidx_constraintlayout_constraintlayout-compose.md.html index 4ce81fa5..05028056 100644 --- a/docs/checks/androidx_constraintlayout_constraintlayout-compose.md.html +++ b/docs/checks/androidx_constraintlayout_constraintlayout-compose.md.html @@ -18,7 +18,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.constraintlayout:constraintlayout-compose:1.1.0 +: androidx.constraintlayout:constraintlayout-compose:1.1.1 (##) Included Issues @@ -36,17 +36,17 @@ ``` // build.gradle.kts -implementation("androidx.constraintlayout:constraintlayout-compose:1.1.0") +implementation("androidx.constraintlayout:constraintlayout-compose:1.1.1") // build.gradle -implementation 'androidx.constraintlayout:constraintlayout-compose:1.1.0' +implementation 'androidx.constraintlayout:constraintlayout-compose:1.1.1' // build.gradle.kts with version catalogs: implementation(libs.constraintlayout.compose) # libs.versions.toml [versions] -constraintlayout-compose = "1.1.0" +constraintlayout-compose = "1.1.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -58,8 +58,21 @@ } ``` -1.1.0 is the version this documentation was generated from; +1.1.1 is the version this documentation was generated from; there may be newer versions available. +(##) Changes + +* 1.1.0: First version includes IncorrectChainMarginsUsage, + IncorrectMatchParentUsage, IncorrectReferencesDeclaration. + +(##) Version Compatibility + +There are multiple older versions available of this library: + +| Version | Date | Issues | Compatible | Compiled | Requires | +|-------------------:|----------|-------:|------------|--------------:|---------:| +| 1.1.1|2025/02/26| 3| Yes| 8.7+| 8.7+| +| 1.1.0|2024/10/30| 3| Yes| 8.7+| 8.7+| \ No newline at end of file diff --git a/docs/checks/androidx_fragment_fragment-testing-manifest.md.html b/docs/checks/androidx_fragment_fragment-testing-manifest.md.html index 59d75744..204a26cb 100644 --- a/docs/checks/androidx_fragment_fragment-testing-manifest.md.html +++ b/docs/checks/androidx_fragment_fragment-testing-manifest.md.html @@ -19,7 +19,7 @@ Compiled : Lint 8.0 and 8.1 Artifact -: androidx.fragment:fragment-testing-manifest:1.8.5 +: androidx.fragment:fragment-testing-manifest:1.8.6 (##) Included Issues @@ -35,17 +35,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment-testing-manifest:1.8.5") +implementation("androidx.fragment:fragment-testing-manifest:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment-testing-manifest:1.8.5' +implementation 'androidx.fragment:fragment-testing-manifest:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment.testing.manifest) # libs.versions.toml [versions] -fragment-testing-manifest = "1.8.5" +fragment-testing-manifest = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -57,7 +57,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -70,6 +70,7 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 1.8.6|2025/02/12| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.8.5|2024/10/30| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.8.4|2024/10/02| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.8.3|2024/09/04| 1| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_fragment_fragment-testing.md.html b/docs/checks/androidx_fragment_fragment-testing.md.html index 3798fe59..e7adf1c0 100644 --- a/docs/checks/androidx_fragment_fragment-testing.md.html +++ b/docs/checks/androidx_fragment_fragment-testing.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.0 and 8.1 Artifact -: androidx.fragment:fragment-testing:1.8.5 +: androidx.fragment:fragment-testing:1.8.6 (##) Included Issues @@ -33,17 +33,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment-testing:1.8.5") +implementation("androidx.fragment:fragment-testing:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment-testing:1.8.5' +implementation 'androidx.fragment:fragment-testing:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment.testing) # libs.versions.toml [versions] -fragment-testing = "1.8.5" +fragment-testing = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -55,7 +55,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -68,6 +68,7 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 1.8.6|2025/02/12| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.8.5|2024/10/30| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.8.4|2024/10/02| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.8.3|2024/09/04| 1| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_fragment_fragment.md.html b/docs/checks/androidx_fragment_fragment.md.html index 6d5ee85f..220c5d45 100644 --- a/docs/checks/androidx_fragment_fragment.md.html +++ b/docs/checks/androidx_fragment_fragment.md.html @@ -20,7 +20,7 @@ Compiled : Lint 8.0 and 8.1 Artifact -: androidx.fragment:fragment:1.8.5 +: androidx.fragment:fragment:1.8.6 (##) Included Issues @@ -44,17 +44,17 @@ ``` // build.gradle.kts -implementation("androidx.fragment:fragment:1.8.5") +implementation("androidx.fragment:fragment:1.8.6") // build.gradle -implementation 'androidx.fragment:fragment:1.8.5' +implementation 'androidx.fragment:fragment:1.8.6' // build.gradle.kts with version catalogs: implementation(libs.fragment) # libs.versions.toml [versions] -fragment = "1.8.5" +fragment = "1.8.6" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -66,7 +66,7 @@ } ``` -1.8.5 is the version this documentation was generated from; +1.8.6 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -84,6 +84,7 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 1.8.6|2025/02/12| 9| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.8.5|2024/10/30| 9| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.8.4|2024/10/02| 9| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.8.3|2024/09/04| 9| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_lifecycle_lifecycle-livedata-core.md.html b/docs/checks/androidx_lifecycle_lifecycle-livedata-core.md.html index acd5906f..d6c7ee56 100644 --- a/docs/checks/androidx_lifecycle_lifecycle-livedata-core.md.html +++ b/docs/checks/androidx_lifecycle_lifecycle-livedata-core.md.html @@ -13,11 +13,11 @@ Feedback : https://issuetracker.google.com/issues/new?component=413132 Min -: Lint 8.0 and 8.1 +: Lint 8.7+ Compiled -: Lint 8.0 and 8.1 +: Lint 8.7+ Artifact -: androidx.lifecycle:lifecycle-livedata-core:2.9.0-alpha08 +: androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01 (##) Included Issues @@ -33,17 +33,17 @@ ``` // build.gradle.kts -implementation("androidx.lifecycle:lifecycle-livedata-core:2.9.0-alpha08") +implementation("androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01") // build.gradle -implementation 'androidx.lifecycle:lifecycle-livedata-core:2.9.0-alpha08' +implementation 'androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.lifecycle.livedata.core) # libs.versions.toml [versions] -lifecycle-livedata-core = "2.9.0-alpha08" +lifecycle-livedata-core = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -55,7 +55,7 @@ } ``` -2.9.0-alpha08 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -68,21 +68,33 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 2.9.0-alpha08|2024/12/11| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.9.0-alpha07|2024/11/13| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.9.0-alpha06|2024/10/30| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.9.0-alpha05|2024/10/16| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.9.0-alpha04|2024/10/02| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.9.0-alpha03|2024/09/18| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.9.0-alpha02|2024/09/04| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.9.0-alpha01|2024/08/07| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.8.7|2024/10/30| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.8.6|2024/09/18| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.8.5|2024/09/04| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.8.4|2024/07/24| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.8.3|2024/07/01| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.8.2|2024/06/12| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.8.1|2024/05/29| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 2.8.0|2024/05/14| 1| Yes| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-rc01|2025/04/23| 1| Yes| 8.7+| 8.7+| +| 2.9.0-beta01|2025/04/09| 1| Yes| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha13|2025/03/26| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha12|2025/03/12| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha11|2025/02/26| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha10|2025/02/12| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha09|2025/01/29| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha08|2024/12/11| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha07|2024/11/13| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha06|2024/10/30| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha05|2024/10/16| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha04|2024/10/02| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha03|2024/09/18| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha02|2024/09/04| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.9.0-alpha01|2024/08/07| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.8.7|2024/10/30| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.8.6|2024/09/18| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.8.5|2024/09/04| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.8.4|2024/07/24| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.8.3|2024/07/01| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.8.2|2024/06/12| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.8.1|2024/05/29| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| +| 2.8.0|2024/05/14| 1| No[^2]| 8.0 and 8.1|8.0 and 8.1| + +Compatibility Problems: + +[^1]: org.jetbrains.kotlin.analysis.api.calls.KaCallKt#getCalls(org.jetbrains.kotlin.analysis.api.resolution.KaCallInfo): java.util.List is not available +[^2]: org.jetbrains.kotlin.analysis.api.KaSession#resolveCall(org.jetbrains.kotlin.psi.KtElement): org.jetbrains.kotlin.analysis.api.resolution.KaCallInfo is not available \ No newline at end of file diff --git a/docs/checks/androidx_lifecycle_lifecycle-runtime-android.md.html b/docs/checks/androidx_lifecycle_lifecycle-runtime-android.md.html index 61df67d5..c2a421bd 100644 --- a/docs/checks/androidx_lifecycle_lifecycle-runtime-android.md.html +++ b/docs/checks/androidx_lifecycle_lifecycle-runtime-android.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08 +: androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01 (##) Included Issues @@ -34,17 +34,17 @@ ``` // build.gradle.kts -implementation("androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08") +implementation("androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01") // build.gradle -implementation 'androidx.lifecycle:lifecycle-runtime-android:2.9.0-alpha08' +implementation 'androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.lifecycle.runtime.android) # libs.versions.toml [versions] -lifecycle-runtime-android = "2.9.0-alpha08" +lifecycle-runtime-android = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -56,7 +56,7 @@ } ``` -2.9.0-alpha08 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -70,6 +70,13 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 2.9.0-rc01|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-beta01|2025/04/09| 2| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha13|2025/03/26| 2| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha12|2025/03/12| 2| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha11|2025/02/26| 2| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha10|2025/02/12| 2| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha09|2025/01/29| 2| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha08|2024/12/11| 2| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha07|2024/11/13| 2| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha06|2024/10/30| 2| Yes| 8.7+|8.0 and 8.1| diff --git a/docs/checks/androidx_lifecycle_lifecycle-runtime-compose-android.md.html b/docs/checks/androidx_lifecycle_lifecycle-runtime-compose-android.md.html new file mode 100644 index 00000000..9c23dec7 --- /dev/null +++ b/docs/checks/androidx_lifecycle_lifecycle-runtime-compose-android.md.html @@ -0,0 +1,79 @@ +(#) androidx.lifecycle:lifecycle-runtime-compose-android + +Name +: Lifecycle Runtime Compose +Description +: Compose integration with Lifecycle +License +: [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt) +Vendor +: Android Open Source Project +Identifier +: androidx.lifecycle +Feedback +: https://issuetracker.google.com/issues/new?component=413132 +Min +: Lint 8.0 and 8.1 +Compiled +: Lint 8.7+ +Artifact +: androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-rc01 + +(##) Included Issues + +|Issue Id |Issue Description | +|--------------------------------------------------------------------------------|--------------------------------------------------------------| +|[LifecycleCurrentStateInComposition](LifecycleCurrentStateInComposition.md.html)|Lifecycle.currentState should not be called within composition| + +(##) Including + +!!! + This is not a built-in check. To include it, add the below dependency + to your project. + +``` +// build.gradle.kts +implementation("androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-rc01") + +// build.gradle +implementation 'androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-rc01' + +// build.gradle.kts with version catalogs: +implementation(libs.lifecycle.runtime.compose.android) + +# libs.versions.toml +[versions] +lifecycle-runtime-compose-android = "2.9.0-rc01" +[libraries] +# For clarity and text wrapping purposes the following declaration is +# shown split up across lines, but in TOML it needs to be on a single +# line (see https://github.com/toml-lang/toml/issues/516) so adjust +# when pasting into libs.versions.toml: +lifecycle-runtime-compose-android = { + module = "androidx.lifecycle:lifecycle-runtime-compose-android", + version.ref = "lifecycle-runtime-compose-android" +} +``` + +2.9.0-rc01 is the version this documentation was generated from; +there may be newer versions available. + +(##) Changes + +* 2.9.0-alpha10: First version includes + LifecycleCurrentStateInComposition. + +(##) Version Compatibility + +There are multiple older versions available of this library: + +| Version | Date | Issues | Compatible | Compiled | Requires | +|-------------------:|----------|-------:|------------|--------------:|---------:| +| 2.9.0-rc01|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-beta01|2025/04/09| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha13|2025/03/26| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha12|2025/03/12| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha11|2025/02/26| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha10|2025/02/12| 1| Yes| 8.7+|8.0 and 8.1| + + \ No newline at end of file diff --git a/docs/checks/androidx_lifecycle_lifecycle-runtime-testing.md.html b/docs/checks/androidx_lifecycle_lifecycle-runtime-testing.md.html index 5ee8d6b2..c340d8c4 100644 --- a/docs/checks/androidx_lifecycle_lifecycle-runtime-testing.md.html +++ b/docs/checks/androidx_lifecycle_lifecycle-runtime-testing.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.lifecycle:lifecycle-runtime-testing:2.9.0-alpha08 +: androidx.lifecycle:lifecycle-runtime-testing:2.9.0-rc01 (##) Included Issues @@ -33,17 +33,17 @@ ``` // build.gradle.kts -implementation("androidx.lifecycle:lifecycle-runtime-testing:2.9.0-alpha08") +implementation("androidx.lifecycle:lifecycle-runtime-testing:2.9.0-rc01") // build.gradle -implementation 'androidx.lifecycle:lifecycle-runtime-testing:2.9.0-alpha08' +implementation 'androidx.lifecycle:lifecycle-runtime-testing:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.lifecycle.runtime.testing) # libs.versions.toml [versions] -lifecycle-runtime-testing = "2.9.0-alpha08" +lifecycle-runtime-testing = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -55,7 +55,7 @@ } ``` -2.9.0-alpha08 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -68,6 +68,13 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 2.9.0-rc01|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-beta01|2025/04/09| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha13|2025/03/26| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha12|2025/03/12| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha11|2025/02/26| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha10|2025/02/12| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha09|2025/01/29| 1| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha08|2024/12/11| 1| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha07|2024/11/13| 1| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha06|2024/10/30| 1| Yes| 8.7+|8.0 and 8.1| diff --git a/docs/checks/androidx_lifecycle_lifecycle-viewmodel-compose-android.md.html b/docs/checks/androidx_lifecycle_lifecycle-viewmodel-compose-android.md.html index c2ae80d5..a6a396e0 100644 --- a/docs/checks/androidx_lifecycle_lifecycle-viewmodel-compose-android.md.html +++ b/docs/checks/androidx_lifecycle_lifecycle-viewmodel-compose-android.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-alpha08 +: androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-rc01 (##) Included Issues @@ -33,17 +33,17 @@ ``` // build.gradle.kts -implementation("androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-alpha08") +implementation("androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-rc01") // build.gradle -implementation 'androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-alpha08' +implementation 'androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.lifecycle.viewmodel.compose.android) # libs.versions.toml [versions] -lifecycle-viewmodel-compose-android = "2.9.0-alpha08" +lifecycle-viewmodel-compose-android = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -55,7 +55,7 @@ } ``` -2.9.0-alpha08 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -69,6 +69,13 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 2.9.0-rc01|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-beta01|2025/04/09| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha13|2025/03/26| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha12|2025/03/12| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha11|2025/02/26| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha10|2025/02/12| 1| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha09|2025/01/29| 1| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha08|2024/12/11| 1| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha07|2024/11/13| 1| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha06|2024/10/30| 1| Yes| 8.7+|8.0 and 8.1| diff --git a/docs/checks/androidx_lint_lint-gradle.md.html b/docs/checks/androidx_lint_lint-gradle.md.html index 5d800b82..b2a547b5 100644 --- a/docs/checks/androidx_lint_lint-gradle.md.html +++ b/docs/checks/androidx_lint_lint-gradle.md.html @@ -11,7 +11,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.lint:lint-gradle:1.0.0-alpha03 +: androidx.lint:lint-gradle:1.0.0-alpha04 (##) Included Issues @@ -19,6 +19,7 @@ |--------------------------------------------------------------------|---------------------------------------------------------------| |[EagerGradleConfiguration](EagerGradleConfiguration.md.html) |Avoid using eager task APIs | |[GradleProjectIsolation](GradleProjectIsolation.md.html) |Avoid using APIs that are not project isolation safe | +|[GradleLikelyBug](GradleLikelyBug.md.html) |Use of this API is likely a bug | |[FilePropertyDetector](FilePropertyDetector.md.html) |Avoid using Property | |[InternalGradleApiUsage](InternalGradleApiUsage.md.html) |Avoid using internal Gradle APIs | |[InternalAgpApiUsage](InternalAgpApiUsage.md.html) |Avoid using internal Android Gradle Plugin APIs | @@ -33,17 +34,17 @@ ``` // build.gradle.kts -implementation("androidx.lint:lint-gradle:1.0.0-alpha03") +implementation("androidx.lint:lint-gradle:1.0.0-alpha04") // build.gradle -implementation 'androidx.lint:lint-gradle:1.0.0-alpha03' +implementation 'androidx.lint:lint-gradle:1.0.0-alpha04' // build.gradle.kts with version catalogs: implementation(libs.lint.gradle) # libs.versions.toml [versions] -lint-gradle = "1.0.0-alpha03" +lint-gradle = "1.0.0-alpha04" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -55,7 +56,7 @@ } ``` -1.0.0-alpha03 is the version this documentation was generated from; +1.0.0-alpha04 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -64,6 +65,7 @@ GradleProjectIsolation, InternalAgpApiUsage, InternalGradleApiUsage, WithPluginClasspathUsage, WithTypeWithoutConfigureEach. * 1.0.0-alpha03: Adds FilePropertyDetector. +* 1.0.0-alpha04: Adds GradleLikelyBug. (##) Version Compatibility @@ -71,6 +73,7 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 1.0.0-alpha04| | 8| Yes| 8.7+| 8.7+| | 1.0.0-alpha03| | 7| Yes| 8.7+| 8.7+| | 1.0.0-alpha02| | 6| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_navigation_navigation-common.md.html b/docs/checks/androidx_navigation_navigation-common.md.html index a4a7d4ee..61eeb09a 100644 --- a/docs/checks/androidx_navigation_navigation-common.md.html +++ b/docs/checks/androidx_navigation_navigation-common.md.html @@ -17,16 +17,16 @@ Compiled : Lint 8.7+ Artifact -: androidx.navigation:navigation-common:2.9.0-alpha04 +: androidx.navigation:navigation-common:2.9.0-rc01 (##) Included Issues -|Issue Id |Issue Description | -|------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|[EmptyNavDeepLink](EmptyNavDeepLink.md.html) |NavDeepLink must define an uri, action, and/or mimetype to be valid | -|[WrongStartDestinationType](WrongStartDestinationType-3.md.html) |If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.| -|[MissingSerializableAnnotation](MissingSerializableAnnotation-3.md.html)|Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable | -|[MissingKeepAnnotation](MissingKeepAnnotation-3.md.html) |In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep | +|Issue Id |Issue Description | +|----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|[EmptyNavDeepLink](EmptyNavDeepLink.md.html) |NavDeepLink must define an uri, action, and/or mimetype to be valid | +|[WrongStartDestinationType](WrongStartDestinationType.md.html) |If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.| +|[MissingSerializableAnnotation](MissingSerializableAnnotation.md.html)|Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable | +|[MissingKeepAnnotation](MissingKeepAnnotation.md.html) |In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep | (##) Including @@ -36,17 +36,17 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-common:2.9.0-alpha04") +implementation("androidx.navigation:navigation-common:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-common:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-common:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.navigation.common) # libs.versions.toml [versions] -navigation-common = "2.9.0-alpha04" +navigation-common = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -58,7 +58,7 @@ } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -73,6 +73,13 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 2.9.0-rc01|2025/04/23| 4| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-beta01|2025/04/09| 4| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha09|2025/03/26| 4| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha08|2025/03/12| 4| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha07|2025/02/26| 4| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha06|2025/02/12| 4| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha05|2025/01/29| 4| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha04|2024/12/11| 4| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha03|2024/11/13| 4| Yes| 8.0 and 8.1|8.0 and 8.1| | 2.9.0-alpha02|2024/10/30| 4| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_navigation_navigation-compose.md.html b/docs/checks/androidx_navigation_navigation-compose.md.html index dfbb80db..8160479b 100644 --- a/docs/checks/androidx_navigation_navigation-compose.md.html +++ b/docs/checks/androidx_navigation_navigation-compose.md.html @@ -15,7 +15,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.navigation:navigation-compose:2.9.0-alpha04 +: androidx.navigation:navigation-compose:2.9.0-rc01 (##) Included Issues @@ -24,9 +24,9 @@ |[ComposableDestinationInComposeScope](ComposableDestinationInComposeScope.md.html)|Building composable destination in compose scope | |[ComposableNavGraphInComposeScope](ComposableNavGraphInComposeScope.md.html) |Building navigation graph in compose scope | |[UnrememberedGetBackStackEntry](UnrememberedGetBackStackEntry.md.html) |Calling getBackStackEntry during composition without using `remember`with a NavBackStackEntry key | -|[WrongStartDestinationType](WrongStartDestinationType.md.html) |If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.| -|[MissingKeepAnnotation](MissingKeepAnnotation.md.html) |In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep | -|[MissingSerializableAnnotation](MissingSerializableAnnotation.md.html) |Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable | +|[WrongStartDestinationType](WrongStartDestinationType-2.md.html) |If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.| +|[MissingKeepAnnotation](MissingKeepAnnotation-2.md.html) |In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep | +|[MissingSerializableAnnotation](MissingSerializableAnnotation-2.md.html) |Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable | (##) Including @@ -36,17 +36,17 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-compose:2.9.0-alpha04") +implementation("androidx.navigation:navigation-compose:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-compose:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-compose:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.navigation.compose) # libs.versions.toml [versions] -navigation-compose = "2.9.0-alpha04" +navigation-compose = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -58,7 +58,7 @@ } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -74,6 +74,11 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 2.9.0-rc01|2025/04/23| 6| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-beta01|2025/04/09| 6| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha09|2025/03/26| 6| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha08|2025/03/12| 6| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha07|2025/02/26| 6| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha04|2024/12/11| 6| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha03|2024/11/13| 6| Yes| 8.0 and 8.1|8.0 and 8.1| | 2.9.0-alpha02|2024/10/30| 6| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_navigation_navigation-runtime.md.html b/docs/checks/androidx_navigation_navigation-runtime.md.html index ce42b763..8c1a3df5 100644 --- a/docs/checks/androidx_navigation_navigation-runtime.md.html +++ b/docs/checks/androidx_navigation_navigation-runtime.md.html @@ -17,17 +17,17 @@ Compiled : Lint 8.7+ Artifact -: androidx.navigation:navigation-runtime:2.9.0-alpha04 +: androidx.navigation:navigation-runtime:2.9.0-rc01 (##) Included Issues |Issue Id |Issue Description | |------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |[DeepLinkInActivityDestination](DeepLinkInActivityDestination.md.html) |A should not be attached to an destination | -|[WrongStartDestinationType](WrongStartDestinationType-2.md.html) |If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.| +|[WrongStartDestinationType](WrongStartDestinationType-3.md.html) |If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.| |[WrongNavigateRouteType](WrongNavigateRouteType.md.html) |Navigation route should be an object literal or a destination class instance with arguments | -|[MissingKeepAnnotation](MissingKeepAnnotation-2.md.html) |In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep | -|[MissingSerializableAnnotation](MissingSerializableAnnotation-2.md.html)|Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable | +|[MissingKeepAnnotation](MissingKeepAnnotation-3.md.html) |In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep | +|[MissingSerializableAnnotation](MissingSerializableAnnotation-3.md.html)|Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable | (##) Including @@ -37,17 +37,17 @@ ``` // build.gradle.kts -implementation("androidx.navigation:navigation-runtime:2.9.0-alpha04") +implementation("androidx.navigation:navigation-runtime:2.9.0-rc01") // build.gradle -implementation 'androidx.navigation:navigation-runtime:2.9.0-alpha04' +implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01' // build.gradle.kts with version catalogs: implementation(libs.navigation.runtime) # libs.versions.toml [versions] -navigation-runtime = "2.9.0-alpha04" +navigation-runtime = "2.9.0-rc01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -59,7 +59,7 @@ } ``` -2.9.0-alpha04 is the version this documentation was generated from; +2.9.0-rc01 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -74,6 +74,13 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 2.9.0-rc01|2025/04/23| 5| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-beta01|2025/04/09| 5| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha09|2025/03/26| 5| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha08|2025/03/12| 5| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha07|2025/02/26| 5| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha06|2025/02/12| 5| Yes| 8.7+|8.0 and 8.1| +| 2.9.0-alpha05|2025/01/29| 5| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha04|2024/12/11| 5| Yes| 8.7+|8.0 and 8.1| | 2.9.0-alpha03|2024/11/13| 5| Yes| 8.0 and 8.1|8.0 and 8.1| | 2.9.0-alpha02|2024/10/30| 5| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/androidx_recyclerview_recyclerview.md.html b/docs/checks/androidx_recyclerview_recyclerview.md.html index f3d8a9df..453e909d 100644 --- a/docs/checks/androidx_recyclerview_recyclerview.md.html +++ b/docs/checks/androidx_recyclerview_recyclerview.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.0 and 8.1 Artifact -: androidx.recyclerview:recyclerview:1.4.0-rc01 +: androidx.recyclerview:recyclerview:1.4.0 (##) Included Issues @@ -33,17 +33,17 @@ ``` // build.gradle.kts -implementation("androidx.recyclerview:recyclerview:1.4.0-rc01") +implementation("androidx.recyclerview:recyclerview:1.4.0") // build.gradle -implementation 'androidx.recyclerview:recyclerview:1.4.0-rc01' +implementation 'androidx.recyclerview:recyclerview:1.4.0' // build.gradle.kts with version catalogs: implementation(libs.recyclerview) # libs.versions.toml [versions] -recyclerview = "1.4.0-rc01" +recyclerview = "1.4.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -55,7 +55,7 @@ } ``` -1.4.0-rc01 is the version this documentation was generated from; +1.4.0 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -68,10 +68,7 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| -| 1.4.0-rc01|2024/09/18| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.4.0-beta01|2024/08/21| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.4.0-alpha02|2024/08/07| 1| Yes| 8.0 and 8.1|8.0 and 8.1| -| 1.4.0-alpha01|2023/10/18| 1| Yes| 8.0 and 8.1|8.0 and 8.1| +| 1.4.0|2025/01/15| 1| Yes| 8.0 and 8.1|8.0 and 8.1| | 1.3.2|2023/10/18| 1| Yes| 7.3 and 7.4| 7.0| | 1.3.1|2023/07/26| 1| Yes| 7.3 and 7.4| 7.0| | 1.3.0|2023/03/08| 1| Yes| 7.3 and 7.4| 7.0| diff --git a/docs/checks/androidx_wear_protolayout_protolayout.md.html b/docs/checks/androidx_wear_protolayout_protolayout.md.html index 52a62a9b..cd1d6eb1 100644 --- a/docs/checks/androidx_wear_protolayout_protolayout.md.html +++ b/docs/checks/androidx_wear_protolayout_protolayout.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.wear.protolayout:protolayout:1.3.0-alpha05 +: androidx.wear.protolayout:protolayout:1.3.0-beta01 (##) Included Issues @@ -35,17 +35,17 @@ ``` // build.gradle.kts -implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha05") +implementation("androidx.wear.protolayout:protolayout:1.3.0-beta01") // build.gradle -implementation 'androidx.wear.protolayout:protolayout:1.3.0-alpha05' +implementation 'androidx.wear.protolayout:protolayout:1.3.0-beta01' // build.gradle.kts with version catalogs: implementation(libs.protolayout) # libs.versions.toml [versions] -protolayout = "1.3.0-alpha05" +protolayout = "1.3.0-beta01" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -57,14 +57,14 @@ } ``` -1.3.0-alpha05 is the version this documentation was generated from; +1.3.0-beta01 is the version this documentation was generated from; there may be newer versions available. NOTE: These lint checks are **also** made available separate from the main library. Use one of the following artifacts: -* `androidx.wear.protolayout:protolayout-expression:1.3.0-alpha05` -* `androidx.wear.protolayout:protolayout-material3:1.3.0-alpha05` -* `androidx.wear.protolayout:protolayout-material:1.3.0-alpha05` +* `androidx.wear.protolayout:protolayout-expression:1.3.0-beta01` +* `androidx.wear.protolayout:protolayout-material3:1.3.0-beta01` +* `androidx.wear.protolayout:protolayout-material:1.3.0-beta01` (##) Changes @@ -79,6 +79,12 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 1.3.0-beta01|2025/04/09| 3| Yes| 8.7+| 8.7+| +| 1.3.0-alpha10|2025/03/12| 3| Yes| 8.7+| 8.7+| +| 1.3.0-alpha09|2025/02/26| 3| Yes| 8.7+| 8.7+| +| 1.3.0-alpha08|2025/02/12| 3| Yes| 8.7+| 8.7+| +| 1.3.0-alpha07|2025/01/29| 3| Yes| 8.7+| 8.7+| +| 1.3.0-alpha06|2025/01/15| 3| Yes| 8.7+| 8.7+| | 1.3.0-alpha05|2024/12/11| 3| Yes| 8.7+| 8.7+| | 1.3.0-alpha04|2024/11/13| 3| Yes| 8.7+| 8.7+| | 1.3.0-alpha03|2024/10/30| 3| Yes| 8.7+| 8.7+| diff --git a/docs/checks/androidx_work_work-runtime.md.html b/docs/checks/androidx_work_work-runtime.md.html index 6c95a4a7..a5aa0bfe 100644 --- a/docs/checks/androidx_work_work-runtime.md.html +++ b/docs/checks/androidx_work_work-runtime.md.html @@ -17,7 +17,7 @@ Compiled : Lint 8.7+ Artifact -: androidx.work:work-runtime:2.10.0 +: androidx.work:work-runtime:2.10.1 (##) Included Issues @@ -41,17 +41,17 @@ ``` // build.gradle.kts -implementation("androidx.work:work-runtime:2.10.0") +implementation("androidx.work:work-runtime:2.10.1") // build.gradle -implementation 'androidx.work:work-runtime:2.10.0' +implementation 'androidx.work:work-runtime:2.10.1' // build.gradle.kts with version catalogs: implementation(libs.work.runtime) # libs.versions.toml [versions] -work-runtime = "2.10.0" +work-runtime = "2.10.1" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -63,7 +63,7 @@ } ``` -2.10.0 is the version this documentation was generated from; +2.10.1 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -82,6 +82,7 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 2.10.1|2025/04/23| 9| Yes| 8.7+|8.0 and 8.1| | 2.10.0|2024/10/30| 9| Yes| 8.7+|8.0 and 8.1| | 2.9.1|2024/08/07| 9| Yes| 8.0 and 8.1|8.0 and 8.1| | 2.9.0|2023/11/29| 9| Yes| 8.0 and 8.1|8.0 and 8.1| diff --git a/docs/checks/categories.md.html b/docs/checks/categories.md.html index ef4da938..4ebcb6e6 100644 --- a/docs/checks/categories.md.html +++ b/docs/checks/categories.md.html @@ -3,7 +3,7 @@ Order: [Alphabetical](index.md.html) | By category | [By vendor](vendors.md.html) | [By severity](severity.md.html) | [By year](year.md.html) | [Libraries](libraries.md.html) -* Correctness (537) +* Correctness (549) - [AaptCrash: Potential AAPT crash](AaptCrash.md.html) - [AccidentalOctal: Accidental Octal](AccidentalOctal.md.html) @@ -58,10 +58,12 @@ - [ComposeViewModelForwarding: Don't forward ViewModels through composables](ComposeViewModelForwarding.md.html) - [ComposeViewModelInjection: Implicit dependencies of composables should be made explicit](ComposeViewModelInjection.md.html) - [CompositionLocalNaming: CompositionLocal properties should be prefixed with `Local`](CompositionLocalNaming.md.html) + - [ConfigurationScreenWidthHeight: Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize](ConfigurationScreenWidthHeight.md.html) - [ConflictingOnColor: Background colors with the same value should have the same 'on' color](ConflictingOnColor.md.html) - [ConstantContentStateKeyInItemsCall: Composables within an LazyList `items` call should have unique content state keys](ConstantContentStateKeyInItemsCall.md.html) - [ConstraintLayoutToolsEditorAttribute: Flags tools:layout_editor xml properties](ConstraintLayoutToolsEditorAttribute.md.html) - [ContextCastToActivity: LocalContext should not be cast to Activity, use LocalActivity instead](ContextCastToActivity.md.html) + - [CoreLibDesugaringV1: Android 15 requires `desugar_jdk_libs` 2.+](CoreLibDesugaringV1.md.html) - [CoroutineCreationDuringComposition: Calls to `async` or `launch` should happen inside a LaunchedEffect and not composition](CoroutineCreationDuringComposition.md.html) - [CredManMissingDal: Missing Digital Asset Link for Credential Manager](CredManMissingDal.md.html) - [CredentialDependency: `credentials-play-services-auth` is Required](CredentialDependency.md.html) @@ -76,6 +78,7 @@ - [DefaultEncoding: Using Default Character Encoding](DefaultEncoding.md.html) - [DefaultLayoutAttribute: Flags default layout values](DefaultLayoutAttribute.md.html) - [DefaultLocale: Implied default locale in case conversion](DefaultLocale.md.html) + - [DefaultUncaughtExceptionDelegation: Missing default uncaught exception handler delegation](DefaultUncaughtExceptionDelegation.md.html) - [DenyListedApi: Deny-listed API](DenyListedApi.md.html) - [DenyListedBlockingApi: Deny-listed API](DenyListedBlockingApi.md.html) - [Deprecated: Using deprecated resources](Deprecated.md.html) @@ -147,6 +150,7 @@ - [GradleDynamicVersion: Gradle Dynamic Version](GradleDynamicVersion.md.html) - [GradleGetter: Gradle Implicit Getter Call](GradleGetter.md.html) - [GradleIdeError: Gradle IDE Support Issues](GradleIdeError.md.html) + - [GradleLikelyBug: Use of this API is likely a bug](GradleLikelyBug.md.html) - [GradleOverrides: Value overridden by Gradle build script](GradleOverrides.md.html) - [GradlePath: Gradle Path Issues](GradlePath.md.html) - [GradlePluginVersion: Incompatible Android Gradle Plugin](GradlePluginVersion.md.html) @@ -176,7 +180,6 @@ - [InjectInJava: Only Kotlin classes should be injected in order for Anvil to work](InjectInJava.md.html) - [InlinedApi: Using inlined constants on older versions](InlinedApi.md.html) - [InnerclassSeparator: Inner classes should use `$` rather than `.`](InnerclassSeparator.md.html) - - [InstantApps: Instant App Issues](InstantApps.md.html) - [Instantiatable: Registered class is not instantiatable](Instantiatable.md.html) - [IntentFilterUniqueDataAttributes: Data tags should only declare unique attributes](IntentFilterUniqueDataAttributes.md.html) - [IntentReset: Suspicious mix of `setType` and `setData`](IntentReset.md.html) @@ -214,6 +217,9 @@ - [LayoutFileNameMatchesClass: Checks that the layout file matches the class name](LayoutFileNameMatchesClass.md.html) - [LeanbackUsesWifi: Using android.hardware.wifi on TV](LeanbackUsesWifi.md.html) - [LibraryCustomView: Custom views in libraries should use res-auto-namespace](LibraryCustomView.md.html) + - [LifecycleCurrentStateInComposition: Lifecycle.currentState should not be called within composition](LifecycleCurrentStateInComposition.md.html) + - [LocalContextConfigurationRead: Reading Configuration using LocalContext.current.resources.configuration](LocalContextConfigurationRead.md.html) + - [LocalContextResourcesRead: Reading Resources using LocalContext.current.resources](LocalContextResourcesRead.md.html) - [LocalSuppress: @SuppressLint on invalid element](LocalSuppress.md.html) - [LocaleFolder: Wrong locale name](LocaleFolder.md.html) - [LockedOrientationActivity: Incompatible screenOrientation value](LockedOrientationActivity.md.html) @@ -226,6 +232,7 @@ - [ManifestTypo: Typos in manifest tags](ManifestTypo.md.html) - [MatchingMenuId: Flags menu ids that don't match with the file name](MatchingMenuId.md.html) - [MatchingViewId: Flags view ids that don't match with the file name](MatchingViewId.md.html) + - [MemberExtensionConflict: Conflict applicable candidates of member and extension](MemberExtensionConflict.md.html) - [MergeMarker: Code contains merge marker](MergeMarker.md.html) - [MinSdkTooLow: API Version Too Low](MinSdkTooLow.md.html) - [MissingBackupPin: Missing Backup Pin](MissingBackupPin.md.html) @@ -333,6 +340,7 @@ - [NotificationIconCompatibility: Notification Icon Compatibility](NotificationIconCompatibility.md.html) - [NotificationId0: Notification Id is 0](NotificationId0.md.html) - [NotificationPermission: Notifications Without Permission](NotificationPermission.md.html) + - [NullableConcurrentHashMap: ConcurrentHashMap should not use nullable types](NullableConcurrentHashMap.md.html) - [ObjectAnimatorBinding: Incorrect ObjectAnimator Property](ObjectAnimatorBinding.md.html) - [OldTargetApi: Target SDK attribute is not targeting latest version](OldTargetApi.md.html) - [OnClick: `onClick` method does not exist](OnClick.md.html) @@ -372,6 +380,7 @@ - [RedundantLabel: Redundant label on activity](RedundantLabel.md.html) - [ReferenceType: Incorrect reference types](ReferenceType.md.html) - [Registered: Class is not registered in the manifest](Registered.md.html) + - [RememberInComposition: Calling a @RememberInComposition annotated declaration inside composition without using `remember`](RememberInComposition.md.html) - [RememberReturnType: `remember` calls must not return `Unit`](RememberReturnType.md.html) - [RememberSaveableSaverParameter: `Saver` objects should be passed to the saver parameter, not the vararg `inputs` parameter](RememberSaveableSaverParameter.md.html) - [RemoteViewLayout: Unsupported View in RemoteView](RemoteViewLayout.md.html) @@ -380,6 +389,7 @@ - [RepeatOnLifecycleWrongUsage: Wrong usage of repeatOnLifecycle](RepeatOnLifecycleWrongUsage-2.md.html) - [RequiredSize: Missing `layout_width` or `layout_height` attributes](RequiredSize.md.html) - [RequiresFeature: Requires Feature](RequiresFeature.md.html) + - [RequiresWindowSdk: API requires a `WindowSdkExtensions.extensionVersion` check](RequiresWindowSdk.md.html) - [ResAuto: Hardcoded Package in Namespace](ResAuto.md.html) - [ResourceAsColor: Should pass resolved color instead of resource id](ResourceAsColor.md.html) - [ResourceCycle: Cycle in resource definitions](ResourceCycle.md.html) @@ -441,6 +451,7 @@ - [TestAppLink: Unmatched URLs](TestAppLink.md.html) - [TestLifecycleOwnerInCoroutine: Use the suspending function setCurrentState(), rather than directly accessing the currentState property](TestLifecycleOwnerInCoroutine.md.html) - [TestManifestGradleConfiguration: The ui-test-manifest library should be included using the debugImplementation configuration](TestManifestGradleConfiguration.md.html) + - [TestParameterSiteTarget: `TestParameter` annotation has the wrong site target](TestParameterSiteTarget.md.html) - [TextViewEdits: TextView should probably be an EditText instead](TextViewEdits.md.html) - [TimberExceptionLogging: Exception Logging](TimberExceptionLogging.md.html) - [TimberTagLength: Too Long Log Tags](TimberTagLength.md.html) @@ -454,9 +465,7 @@ - [UnknownIdInLayout: Reference to an id that is not in the current layout](UnknownIdInLayout.md.html) - [UnlocalizedSms: SMS phone number missing country code](UnlocalizedSms.md.html) - [UnnecessaryComposedModifier: Modifier.composed should only be used for modifiers that invoke @Composable functions](UnnecessaryComposedModifier.md.html) - - [UnrememberedAnimatable: Creating an Animatable during composition without using `remember`](UnrememberedAnimatable.md.html) - [UnrememberedGetBackStackEntry: Calling getBackStackEntry during composition without using `remember`with a NavBackStackEntry key](UnrememberedGetBackStackEntry.md.html) - - [UnrememberedMutableInteractionSource: Creating a MutableInteractionSource during composition without using `remember`](UnrememberedMutableInteractionSource.md.html) - [UnrememberedMutableState: Creating a state object during composition without using `remember`](UnrememberedMutableState.md.html) - [UnsafeLifecycleWhenUsage: Unsafe UI operation in finally/catch of Lifecycle.whenStarted of similar method](UnsafeLifecycleWhenUsage.md.html) - [UnsafeLifecycleWhenUsage: Unsafe UI operation in finally/catch of Lifecycle.whenStarted of similar method](UnsafeLifecycleWhenUsage-2.md.html) @@ -504,6 +513,8 @@ - [VisibleForTests: Visible Only For Tests](VisibleForTests.md.html) - [WatchFaceEditor: Watch face editor must use launchMode="standard"](WatchFaceEditor.md.html) - [WatchFaceForAndroidX: AndroidX watch faces must use action `WATCH_FACE_EDITOR`](WatchFaceForAndroidX.md.html) + - [WatchFaceFormatDeclaresHasNoCode: The `hasCode` attribute should be set to `false`](WatchFaceFormatDeclaresHasNoCode.md.html) + - [WatchFaceFormatMissingVersion: The Watch Face Format version is missing](WatchFaceFormatMissingVersion.md.html) - [WearMaterialTheme: Using not non-Wear `MaterialTheme` in a Wear OS project](WearMaterialTheme.md.html) - [WearStandaloneAppFlag: Invalid or missing Wear standalone app flag](WearStandaloneAppFlag.md.html) - [WearableActionDuplicate: Duplicate watch face configuration activities found](WearableActionDuplicate.md.html) @@ -524,6 +535,7 @@ - [WrongDrawableName: Drawable names should be prefixed accordingly](WrongDrawableName.md.html) - [WrongFolder: Resource file in the wrong `res` folder](WrongFolder.md.html) - [WrongGlobalIconColor: Each icon should have the same global color defined](WrongGlobalIconColor.md.html) + - [WrongGradleMethod: Wrong Gradle method invoked](WrongGradleMethod.md.html) - [WrongLayoutName: Layout names should be prefixed accordingly](WrongLayoutName.md.html) - [WrongManifestParent: Wrong manifest parent](WrongManifestParent.md.html) - [WrongMenuIdFormat: Flag menu ids that are not in lowerCamelCase Format](WrongMenuIdFormat.md.html) @@ -681,7 +693,7 @@ - [DrawAllocation: Memory allocations within drawing code](DrawAllocation.md.html) - [DuplicateDivider: Unnecessary Divider Copy](DuplicateDivider.md.html) - [ExpensiveAssertion: Expensive Assertions](ExpensiveAssertion.md.html) - - [FrequentlyChangedStateReadInComposition: Frequently changing state should not be directly read in composable function](FrequentlyChangedStateReadInComposition.md.html) + - [FrequentlyChangingValue: Reading a value annotated with @FrequentlyChangingValue inside composition](FrequentlyChangingValue.md.html) - [HandlerLeak: Handler reference leaks](HandlerLeak.md.html) - [InefficientWeight: Inefficient layout weight](InefficientWeight.md.html) - [KaptUsageInsteadOfKsp: Kapt usage should be replaced with KSP](KaptUsageInsteadOfKsp.md.html) @@ -850,7 +862,7 @@ - [NullSafeMutableLiveData: LiveData value assignment nullability mismatch](NullSafeMutableLiveData-2.md.html) - [UnknownNullness: Unknown nullness](UnknownNullness.md.html) -* Lint Implementation Issues (12) +* Lint Implementation Issues (13) - [KotlincFE10: Avoid using old K1 Kotlin compiler APIs](KotlincFE10.md.html) - [LintDocExample: Missing Documentation Example](LintDocExample.md.html) @@ -863,25 +875,30 @@ - [LintImplUnexpectedDomain: Unexpected URL Domain](LintImplUnexpectedDomain.md.html) - [LintImplUseKotlin: Non-Kotlin Lint Detectors](LintImplUseKotlin.md.html) - [LintImplUseUast: Using Wrong UAST Method](LintImplUseUast.md.html) + - [UElementAsPsi: Avoid using UElement as PsiElement](UElementAsPsi.md.html) - [UastImplementation: Avoid using UAST implementation](UastImplementation.md.html) -* Withdrawn or Obsolete Issues (17) +* Withdrawn or Obsolete Issues (21) - - [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html) - - [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html) - - [IconLauncherFormat](IconLauncherFormat.md.html) - - [ViewTag](ViewTag.md.html) - - [FieldGetter](FieldGetter.md.html) - - [MissingRegistered](MissingRegistered.md.html) - - [FontValidationWarning](FontValidationWarning.md.html) - - [FontValidationError](FontValidationError.md.html) + - [AllowBackup](AllowBackup.md.html) - [AppLinksAutoVerifyError](AppLinksAutoVerifyError.md.html) - [AppLinksAutoVerifyWarning](AppLinksAutoVerifyWarning.md.html) - - [AllowBackup](AllowBackup.md.html) - - [MediaCapabilities](MediaCapabilities.md.html) - - [UnpackedNativeCode](UnpackedNativeCode.md.html) - [Assert](Assert.md.html) - - [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html) + - [FieldGetter](FieldGetter.md.html) + - [FontValidationError](FontValidationError.md.html) + - [FontValidationWarning](FontValidationWarning.md.html) + - [FrequentlyChangedStateReadInComposition](FrequentlyChangedStateReadInComposition.md.html) + - [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html) + - [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html) + - [IconLauncherFormat](IconLauncherFormat.md.html) + - [InstantApps](InstantApps.md.html) + - [MediaCapabilities](MediaCapabilities.md.html) + - [MissingRegistered](MissingRegistered.md.html) - [Override](Override.md.html) - [PackageManagerGetSignatures](PackageManagerGetSignatures.md.html) + - [UnpackedNativeCode](UnpackedNativeCode.md.html) + - [UnrememberedAnimatable](UnrememberedAnimatable.md.html) + - [UnrememberedMutableInteractionSource](UnrememberedMutableInteractionSource.md.html) + - [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html) + - [ViewTag](ViewTag.md.html) \ No newline at end of file diff --git a/docs/checks/com_google_dagger_dagger-lint.md.html b/docs/checks/com_google_dagger_dagger-lint.md.html index e392b459..c9ea4afa 100644 --- a/docs/checks/com_google_dagger_dagger-lint.md.html +++ b/docs/checks/com_google_dagger_dagger-lint.md.html @@ -17,11 +17,11 @@ Feedback : https://github.com/google/dagger/issues Min -: Lint 7.1 +: Lint 7.3 and 7.4 Compiled : Lint 7.1 Artifact -: com.google.dagger:dagger-lint:2.55 +: com.google.dagger:dagger-lint:2.56.2 (##) Included Issues @@ -40,17 +40,17 @@ ``` // build.gradle.kts -implementation("com.google.dagger:dagger-lint:2.55") +implementation("com.google.dagger:dagger-lint:2.56.2") // build.gradle -implementation 'com.google.dagger:dagger-lint:2.55' +implementation 'com.google.dagger:dagger-lint:2.56.2' // build.gradle.kts with version catalogs: implementation(libs.dagger.lint) # libs.versions.toml [versions] -dagger-lint = "2.55" +dagger-lint = "2.56.2" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -62,7 +62,7 @@ } ``` -2.55 is the version this documentation was generated from; +2.56.2 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -77,6 +77,9 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 2.56.2|2025/04/16| 4| Yes| 7.1|7.3 and 7.4| +| 2.56.1|2025/03/25| 4| Yes| 7.1|7.3 and 7.4| +| 2.56|2025/03/19| 4| Yes| 7.1|7.3 and 7.4| | 2.55|2025/01/09| 4| Yes| 7.1| 7.1| | 2.54|2024/12/20| 4| Yes| 7.1| 7.1| | 2.53.1|2024/12/09| 4| Yes| 7.1| 7.1| diff --git a/docs/checks/com_slack_lint_slack-lint-checks.md.html b/docs/checks/com_slack_lint_slack-lint-checks.md.html index 661d6443..f64e616a 100644 --- a/docs/checks/com_slack_lint_slack-lint-checks.md.html +++ b/docs/checks/com_slack_lint_slack-lint-checks.md.html @@ -19,7 +19,7 @@ Compiled : Lint 8.7+ Artifact -: com.slack.lint:slack-lint-checks:0.8.2 +: com.slack.lint:slack-lint-checks:0.9.0 (##) Included Issues @@ -115,10 +115,12 @@ |[DenyListedBlockingApi](DenyListedBlockingApi.md.html) |Deny-listed API | |[ParcelizeFunctionProperty](ParcelizeFunctionProperty.md.html) |Function type properties are not parcelable | |[ExceptionMessage](ExceptionMessage.md.html) |Please provide a string for the `lazyMessage` parameter | +|[TestParameterSiteTarget](TestParameterSiteTarget.md.html) |`TestParameter` annotation has the wrong site target | |[MustUseNamedParams](MustUseNamedParams.md.html) |Calls to @MustUseNamedParams-annotated methods must name all parameters | |[AvoidUsingNotNullOperator](AvoidUsingNotNullOperator.md.html) |Avoid using the !! operator in Kotlin | |[DoNotCallViewToString](DoNotCallViewToString.md.html) |Do not use `View.toString()` | |[InflationInItemDecoration](InflationInItemDecoration.md.html) |Avoid inflating a view to display text | +|[NullableConcurrentHashMap](NullableConcurrentHashMap.md.html) |ConcurrentHashMap should not use nullable types | (##) Including @@ -129,17 +131,17 @@ ``` // build.gradle.kts -lintChecks("com.slack.lint:slack-lint-checks:0.8.2") +lintChecks("com.slack.lint:slack-lint-checks:0.9.0") // build.gradle -lintChecks 'com.slack.lint:slack-lint-checks:0.8.2' +lintChecks 'com.slack.lint:slack-lint-checks:0.9.0' // build.gradle.kts with version catalogs: lintChecks(libs.slack.lint.checks) # libs.versions.toml [versions] -slack-lint-checks = "0.8.2" +slack-lint-checks = "0.9.0" [libraries] # For clarity and text wrapping purposes the following declaration is # shown split up across lines, but in TOML it needs to be on a single @@ -151,7 +153,7 @@ } ``` -0.8.2 is the version this documentation was generated from; +0.9.0 is the version this documentation was generated from; there may be newer versions available. (##) Changes @@ -223,6 +225,7 @@ * 0.7.2: Adds DoNotMockAnything. * 0.8.1: Adds AvoidUsingNotNullOperator, DoNotCallViewToString, InflationInItemDecoration. +* 0.9.0: Adds NullableConcurrentHashMap, TestParameterSiteTarget. (##) Version Compatibility @@ -230,6 +233,7 @@ | Version | Date | Issues | Compatible | Compiled | Requires | |-------------------:|----------|-------:|------------|--------------:|---------:| +| 0.9.0|2025/03/28| 96| Yes| 8.7+| 8.7+| | 0.8.2|2024/10/14| 94| Yes| 8.7+| 8.7+| | 0.8.1|2024/10/03| 94| Yes| 8.7+| 8.7+| | 0.8.0|2024/10/02| 91| Yes| 8.7+| 8.7+| diff --git a/docs/checks/index.md.html b/docs/checks/index.md.html index b57edcd7..8cfb1c4c 100644 --- a/docs/checks/index.md.html +++ b/docs/checks/index.md.html @@ -101,6 +101,7 @@ - [ComposeViewModelForwarding: Don't forward ViewModels through composables](ComposeViewModelForwarding.md.html) - [ComposeViewModelInjection: Implicit dependencies of composables should be made explicit](ComposeViewModelInjection.md.html) - [CompositionLocalNaming: CompositionLocal properties should be prefixed with `Local`](CompositionLocalNaming.md.html) + - [ConfigurationScreenWidthHeight: Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize](ConfigurationScreenWidthHeight.md.html) - [ConflictingOnColor: Background colors with the same value should have the same 'on' color](ConflictingOnColor.md.html) - [ConstantContentStateKeyInItemsCall: Composables within an LazyList `items` call should have unique content state keys](ConstantContentStateKeyInItemsCall.md.html) - [ConstantLocale: Constant Locale](ConstantLocale.md.html) @@ -108,6 +109,7 @@ - [ContentDescription: Image without `contentDescription`](ContentDescription.md.html) - [ContextCastToActivity: LocalContext should not be cast to Activity, use LocalActivity instead](ContextCastToActivity.md.html) - [ConvertToWebp: Convert to WebP](ConvertToWebp.md.html) + - [CoreLibDesugaringV1: Android 15 requires `desugar_jdk_libs` 2.+](CoreLibDesugaringV1.md.html) - [CoroutineCreationDuringComposition: Calls to `async` or `launch` should happen inside a LaunchedEffect and not composition](CoroutineCreationDuringComposition.md.html) - [CredManMissingDal: Missing Digital Asset Link for Credential Manager](CredManMissingDal.md.html) - [CredentialDependency: `credentials-play-services-auth` is Required](CredentialDependency.md.html) @@ -127,6 +129,7 @@ - [DefaultLayoutAttribute: Flags default layout values](DefaultLayoutAttribute.md.html) - [DefaultLocale: Implied default locale in case conversion](DefaultLocale.md.html) - [DefaultTrustedUserCerts: Application by default trusts user-added CA certificates](DefaultTrustedUserCerts.md.html) + - [DefaultUncaughtExceptionDelegation: Missing default uncaught exception handler delegation](DefaultUncaughtExceptionDelegation.md.html) - [DeletedProvider: Using Deleted Provider](DeletedProvider.md.html) - [DenyListedApi: Deny-listed API](DenyListedApi.md.html) - [DenyListedBlockingApi: Deny-listed API](DenyListedBlockingApi.md.html) @@ -207,7 +210,7 @@ - [FragmentGradleConfiguration: Include the fragment-testing-manifest library using the debugImplementation configuration](FragmentGradleConfiguration-2.md.html) (from androidx.fragment:fragment-testing-manifest:+) - [FragmentLiveDataObserve: Use getViewLifecycleOwner() as the LifecycleOwner instead of a Fragment instance when observing a LiveData object](FragmentLiveDataObserve.md.html) - [FragmentTagUsage: Use FragmentContainerView instead of the tag](FragmentTagUsage.md.html) - - [FrequentlyChangedStateReadInComposition: Frequently changing state should not be directly read in composable function](FrequentlyChangedStateReadInComposition.md.html) + - [FrequentlyChangingValue: Reading a value annotated with @FrequentlyChangingValue inside composition](FrequentlyChangingValue.md.html) - [FullBackupContent: Valid Full Backup Content File](FullBackupContent.md.html) - [FullyQualifiedResource: Resources should use an import alias instead of being fully qualified](FullyQualifiedResource.md.html) - [GestureBackNavigation: Usage of KeyEvent.KEYCODE_BACK](GestureBackNavigation.md.html) @@ -222,6 +225,7 @@ - [GradleDynamicVersion: Gradle Dynamic Version](GradleDynamicVersion.md.html) - [GradleGetter: Gradle Implicit Getter Call](GradleGetter.md.html) - [GradleIdeError: Gradle IDE Support Issues](GradleIdeError.md.html) + - [GradleLikelyBug: Use of this API is likely a bug](GradleLikelyBug.md.html) - [GradleOverrides: Value overridden by Gradle build script](GradleOverrides.md.html) - [GradlePath: Gradle Path Issues](GradlePath.md.html) - [GradlePluginVersion: Incompatible Android Gradle Plugin](GradlePluginVersion.md.html) @@ -278,7 +282,6 @@ - [InsecurePermissionProtectionLevel: Custom permission created with a normal `protectionLevel`](InsecurePermissionProtectionLevel.md.html) - [InsecureStickyBroadcastsMethod: Usage of insecure sticky broadcasts](InsecureStickyBroadcastsMethod.md.html) - [InsecureStickyBroadcastsPermission: Usage of insecure sticky broadcasts](InsecureStickyBroadcastsPermission.md.html) - - [InstantApps: Instant App Issues](InstantApps.md.html) - [Instantiatable: Registered class is not instantiatable](Instantiatable.md.html) - [IntentFilterExportedReceiver: Unspecified `android:exported` in manifest](IntentFilterExportedReceiver.md.html) - [IntentFilterUniqueDataAttributes: Data tags should only declare unique attributes](IntentFilterUniqueDataAttributes.md.html) @@ -332,6 +335,7 @@ - [LeanbackUsesWifi: Using android.hardware.wifi on TV](LeanbackUsesWifi.md.html) - [LibraryCustomView: Custom views in libraries should use res-auto-namespace](LibraryCustomView.md.html) - [LifecycleAnnotationProcessorWithJava8: Lifecycle Annotation Processor with Java 8 Compile Option](LifecycleAnnotationProcessorWithJava8.md.html) + - [LifecycleCurrentStateInComposition: Lifecycle.currentState should not be called within composition](LifecycleCurrentStateInComposition.md.html) - [LintDocExample: Missing Documentation Example](LintDocExample.md.html) - [LintImplBadUrl: Bad More Info Link](LintImplBadUrl.md.html) - [LintImplDollarEscapes: Using Dollar Escapes](LintImplDollarEscapes.md.html) @@ -342,6 +346,8 @@ - [LintImplUnexpectedDomain: Unexpected URL Domain](LintImplUnexpectedDomain.md.html) - [LintImplUseKotlin: Non-Kotlin Lint Detectors](LintImplUseKotlin.md.html) - [LintImplUseUast: Using Wrong UAST Method](LintImplUseUast.md.html) + - [LocalContextConfigurationRead: Reading Configuration using LocalContext.current.resources.configuration](LocalContextConfigurationRead.md.html) + - [LocalContextResourcesRead: Reading Resources using LocalContext.current.resources](LocalContextResourcesRead.md.html) - [LocalSuppress: @SuppressLint on invalid element](LocalSuppress.md.html) - [LocaleFolder: Wrong locale name](LocaleFolder.md.html) - [LockedOrientationActivity: Incompatible screenOrientation value](LockedOrientationActivity.md.html) @@ -356,6 +362,7 @@ - [ManifestTypo: Typos in manifest tags](ManifestTypo.md.html) - [MatchingMenuId: Flags menu ids that don't match with the file name](MatchingMenuId.md.html) - [MatchingViewId: Flags view ids that don't match with the file name](MatchingViewId.md.html) + - [MemberExtensionConflict: Conflict applicable candidates of member and extension](MemberExtensionConflict.md.html) - [MenuTitle: Missing menu title](MenuTitle.md.html) - [MergeMarker: Code contains merge marker](MergeMarker.md.html) - [MergeRootFrame: FrameLayout can be replaced with `` tag](MergeRootFrame.md.html) @@ -372,9 +379,9 @@ - [MissingId: Fragments should specify an `id` or `tag`](MissingId.md.html) - [MissingInflatedId: ID not found in inflated resource](MissingInflatedId.md.html) - [MissingIntentFilterForMediaSearch: Missing MEDIA_PLAY_FROM_SEARCH intent-filter](MissingIntentFilterForMediaSearch.md.html) - - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation.md.html) (from androidx.navigation:navigation-compose:+) - - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-2.md.html) (from androidx.navigation:navigation-runtime:+) - - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-3.md.html) (from androidx.navigation:navigation-common:+) + - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation.md.html) (from androidx.navigation:navigation-common:+) + - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-2.md.html) (from androidx.navigation:navigation-compose:+) + - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-3.md.html) (from androidx.navigation:navigation-runtime:+) - [MissingLeanbackLauncher: Missing Leanback Launcher Intent Filter](MissingLeanbackLauncher.md.html) - [MissingLeanbackSupport: Missing Leanback Support](MissingLeanbackSupport.md.html) - [MissingMediaBrowserServiceIntentFilter: Missing MediaBrowserService intent-filter](MissingMediaBrowserServiceIntentFilter.md.html) @@ -385,9 +392,9 @@ - [MissingResourceImportAlias: Missing import alias for R class](MissingResourceImportAlias.md.html) - [MissingResourcesProperties: Missing resources.properties file](MissingResourcesProperties.md.html) - [MissingScrollbars: Scroll views should declare a scrollbar](MissingScrollbars.md.html) - - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation.md.html) (from androidx.navigation:navigation-compose:+) - - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-2.md.html) (from androidx.navigation:navigation-runtime:+) - - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-3.md.html) (from androidx.navigation:navigation-common:+) + - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation.md.html) (from androidx.navigation:navigation-common:+) + - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-2.md.html) (from androidx.navigation:navigation-compose:+) + - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-3.md.html) (from androidx.navigation:navigation-runtime:+) - [MissingSuperCall: Missing Super Call](MissingSuperCall.md.html) - [MissingTranslation: Incomplete translation](MissingTranslation.md.html) - [MissingTvBanner: TV Missing Banner](MissingTvBanner.md.html) @@ -480,6 +487,7 @@ - [NotifyDataSetChanged: Invalidating All RecyclerView Data](NotifyDataSetChanged.md.html) - [NullSafeMutableLiveData: LiveData value assignment nullability mismatch](NullSafeMutableLiveData.md.html) (from androidx.lifecycle:lifecycle-livedata-core:+) - [NullSafeMutableLiveData: LiveData value assignment nullability mismatch](NullSafeMutableLiveData-2.md.html) (from androidx.lifecycle:lifecycle-livedata-core-ktx:+) + - [NullableConcurrentHashMap: ConcurrentHashMap should not use nullable types](NullableConcurrentHashMap.md.html) - [ObjectAnimatorBinding: Incorrect ObjectAnimator Property](ObjectAnimatorBinding.md.html) - [ObsoleteLayoutParam: Obsolete layout params](ObsoleteLayoutParam.md.html) - [ObsoleteSdkInt: Obsolete SDK_INT Version Check](ObsoleteSdkInt.md.html) @@ -537,6 +545,7 @@ - [ReferenceType: Incorrect reference types](ReferenceType.md.html) - [Registered: Class is not registered in the manifest](Registered.md.html) - [RelativeOverlap: Overlapping items in RelativeLayout](RelativeOverlap.md.html) + - [RememberInComposition: Calling a @RememberInComposition annotated declaration inside composition without using `remember`](RememberInComposition.md.html) - [RememberReturnType: `remember` calls must not return `Unit`](RememberReturnType.md.html) - [RememberSaveableSaverParameter: `Saver` objects should be passed to the saver parameter, not the vararg `inputs` parameter](RememberSaveableSaverParameter.md.html) - [RemoteViewLayout: Unsupported View in RemoteView](RemoteViewLayout.md.html) @@ -546,6 +555,7 @@ - [ReportShortcutUsage: Report shortcut usage](ReportShortcutUsage.md.html) - [RequiredSize: Missing `layout_width` or `layout_height` attributes](RequiredSize.md.html) - [RequiresFeature: Requires Feature](RequiresFeature.md.html) + - [RequiresWindowSdk: API requires a `WindowSdkExtensions.extensionVersion` check](RequiresWindowSdk.md.html) - [ResAuto: Hardcoded Package in Namespace](ResAuto.md.html) - [ReservedSystemPermission: Permission name is a reserved Android permission](ReservedSystemPermission.md.html) - [ResourceAsColor: Should pass resolved color instead of resource id](ResourceAsColor.md.html) @@ -640,6 +650,7 @@ - [TestAppLink: Unmatched URLs](TestAppLink.md.html) - [TestLifecycleOwnerInCoroutine: Use the suspending function setCurrentState(), rather than directly accessing the currentState property](TestLifecycleOwnerInCoroutine.md.html) - [TestManifestGradleConfiguration: The ui-test-manifest library should be included using the debugImplementation configuration](TestManifestGradleConfiguration.md.html) + - [TestParameterSiteTarget: `TestParameter` annotation has the wrong site target](TestParameterSiteTarget.md.html) - [TextFields: Missing `inputType`](TextFields.md.html) - [TextViewEdits: TextView should probably be an EditText instead](TextViewEdits.md.html) - [ThrowableNotAtBeginning: Exception in Timber not at the beginning](ThrowableNotAtBeginning.md.html) @@ -662,6 +673,7 @@ - [TypographyOther: Other typographical problems](TypographyOther.md.html) - [TypographyQuotes: Straight quotes can be replaced with curvy quotes, and apostrophes with typographic apostrophes](TypographyQuotes.md.html) - [Typos: Spelling error](Typos.md.html) + - [UElementAsPsi: Avoid using UElement as PsiElement](UElementAsPsi.md.html) - [UastImplementation: Avoid using UAST implementation](UastImplementation.md.html) - [UnclosedTrace: Incorrect trace section usage](UnclosedTrace.md.html) - [UnintendedExposedUrl: Application may have a debugging or development URL publicly exposed](UnintendedExposedUrl.md.html) @@ -676,9 +688,7 @@ - [UnnecessaryComposedModifier: Modifier.composed should only be used for modifiers that invoke @Composable functions](UnnecessaryComposedModifier.md.html) - [UnnecessaryRequiredFeature: Potentially unnecessary required feature](UnnecessaryRequiredFeature.md.html) - [UnprotectedSMSBroadcastReceiver: Unprotected SMS `BroadcastReceiver`](UnprotectedSMSBroadcastReceiver.md.html) - - [UnrememberedAnimatable: Creating an Animatable during composition without using `remember`](UnrememberedAnimatable.md.html) - [UnrememberedGetBackStackEntry: Calling getBackStackEntry during composition without using `remember`with a NavBackStackEntry key](UnrememberedGetBackStackEntry.md.html) - - [UnrememberedMutableInteractionSource: Creating a MutableInteractionSource during composition without using `remember`](UnrememberedMutableInteractionSource.md.html) - [UnrememberedMutableState: Creating a state object during composition without using `remember`](UnrememberedMutableState.md.html) - [UnsafeCryptoAlgorithmUsage: Application uses unsafe cipher modes or paddings with cryptographic algorithms](UnsafeCryptoAlgorithmUsage.md.html) - [UnsafeDynamicallyLoadedCode: `load` used to dynamically load code](UnsafeDynamicallyLoadedCode.md.html) @@ -762,6 +772,8 @@ - [WakelockTimeout: Using wakeLock without timeout](WakelockTimeout.md.html) - [WatchFaceEditor: Watch face editor must use launchMode="standard"](WatchFaceEditor.md.html) - [WatchFaceForAndroidX: AndroidX watch faces must use action `WATCH_FACE_EDITOR`](WatchFaceForAndroidX.md.html) + - [WatchFaceFormatDeclaresHasNoCode: The `hasCode` attribute should be set to `false`](WatchFaceFormatDeclaresHasNoCode.md.html) + - [WatchFaceFormatMissingVersion: The Watch Face Format version is missing](WatchFaceFormatMissingVersion.md.html) - [WeakPrng: Application uses non-cryptographically secure pseudorandom number generators](WeakPrng.md.html) - [WearBackNavigation: Wear: Disabling Back navigation](WearBackNavigation.md.html) - [WearMaterialTheme: Using not non-Wear `MaterialTheme` in a Wear OS project](WearMaterialTheme.md.html) @@ -793,6 +805,7 @@ - [WrongDrawableName: Drawable names should be prefixed accordingly](WrongDrawableName.md.html) - [WrongFolder: Resource file in the wrong `res` folder](WrongFolder.md.html) - [WrongGlobalIconColor: Each icon should have the same global color defined](WrongGlobalIconColor.md.html) + - [WrongGradleMethod: Wrong Gradle method invoked](WrongGradleMethod.md.html) - [WrongLayoutName: Layout names should be prefixed accordingly](WrongLayoutName.md.html) - [WrongManifestParent: Wrong manifest parent](WrongManifestParent.md.html) - [WrongMenuIdFormat: Flag menu ids that are not in lowerCamelCase Format](WrongMenuIdFormat.md.html) @@ -801,9 +814,9 @@ - [WrongRequiresOptIn: Experimental annotations defined in Kotlin must use kotlin.RequiresOptIn](WrongRequiresOptIn.md.html) - [WrongResourceImportAlias: Wrong import alias for this R class](WrongResourceImportAlias.md.html) - [WrongSdkInt: Mismatched SDK_INT or SDK_INT_FULL](WrongSdkInt.md.html) - - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType.md.html) (from androidx.navigation:navigation-compose:+) - - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-2.md.html) (from androidx.navigation:navigation-runtime:+) - - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-3.md.html) (from androidx.navigation:navigation-common:+) + - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType.md.html) (from androidx.navigation:navigation-common:+) + - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-2.md.html) (from androidx.navigation:navigation-compose:+) + - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-3.md.html) (from androidx.navigation:navigation-runtime:+) - [WrongTestMethodName: Flags test methods that start with test](WrongTestMethodName.md.html) - [WrongThread: Wrong Thread](WrongThread.md.html) - [WrongThreadInterprocedural: Wrong Thread (Interprocedural)](WrongThreadInterprocedural.md.html) @@ -812,23 +825,27 @@ - [XmlEscapeNeeded: Missing XML Escape](XmlEscapeNeeded.md.html) - [XmlSpacing: XML files should not contain any new lines](XmlSpacing.md.html) -* Withdrawn or Obsolete Issues (17) +* Withdrawn or Obsolete Issues (21) - - [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html) - - [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html) - - [IconLauncherFormat](IconLauncherFormat.md.html) - - [ViewTag](ViewTag.md.html) - - [FieldGetter](FieldGetter.md.html) - - [MissingRegistered](MissingRegistered.md.html) - - [FontValidationWarning](FontValidationWarning.md.html) - - [FontValidationError](FontValidationError.md.html) + - [AllowBackup](AllowBackup.md.html) - [AppLinksAutoVerifyError](AppLinksAutoVerifyError.md.html) - [AppLinksAutoVerifyWarning](AppLinksAutoVerifyWarning.md.html) - - [AllowBackup](AllowBackup.md.html) - - [MediaCapabilities](MediaCapabilities.md.html) - - [UnpackedNativeCode](UnpackedNativeCode.md.html) - [Assert](Assert.md.html) - - [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html) + - [FieldGetter](FieldGetter.md.html) + - [FontValidationError](FontValidationError.md.html) + - [FontValidationWarning](FontValidationWarning.md.html) + - [FrequentlyChangedStateReadInComposition](FrequentlyChangedStateReadInComposition.md.html) + - [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html) + - [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html) + - [IconLauncherFormat](IconLauncherFormat.md.html) + - [InstantApps](InstantApps.md.html) + - [MediaCapabilities](MediaCapabilities.md.html) + - [MissingRegistered](MissingRegistered.md.html) - [Override](Override.md.html) - [PackageManagerGetSignatures](PackageManagerGetSignatures.md.html) + - [UnpackedNativeCode](UnpackedNativeCode.md.html) + - [UnrememberedAnimatable](UnrememberedAnimatable.md.html) + - [UnrememberedMutableInteractionSource](UnrememberedMutableInteractionSource.md.html) + - [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html) + - [ViewTag](ViewTag.md.html) \ No newline at end of file diff --git a/docs/checks/libraries.md.html b/docs/checks/libraries.md.html index 1c99e6f6..c4b505a9 100644 --- a/docs/checks/libraries.md.html +++ b/docs/checks/libraries.md.html @@ -5,14 +5,14 @@ Lint-specific libraries: -* [androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html) (7 checks) +* [androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html) (8 checks) * [com.android.security.lint:lint](com_android_security_lint_lint.md.html) (18 checks) * [com.uber.autodispose2:autodispose-lint](com_uber_autodispose2_autodispose-lint.md.html) (1 checks) * [com.google.dagger:dagger-lint](com_google_dagger_dagger-lint.md.html) (4 checks) * [com.vanniktech:lint-rules-rxjava2](com_vanniktech_lint-rules-rxjava2.md.html) (7 checks) * [com.vanniktech:lint-rules-kotlin](com_vanniktech_lint-rules-kotlin.md.html) (1 checks) * [com.vanniktech:lint-rules-android](com_vanniktech_lint-rules-android.md.html) (41 checks) -* [com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html) (94 checks) +* [com.slack.lint:slack-lint-checks](com_slack_lint_slack-lint-checks.md.html) (96 checks) * [com.slack.lint.compose:compose-lint-checks](com_slack_lint_compose_compose-lint-checks.md.html) (21 checks) Android archive libraries which also contain bundled lint checks: @@ -20,14 +20,14 @@ * [androidx.activity:activity-compose](androidx_activity_activity-compose.md.html) (3 checks) * [androidx.activity:activity](androidx_activity_activity.md.html) (2 checks) * [androidx.compose.ui:ui-test-manifest](androidx_compose_ui_ui-test-manifest.md.html) (1 checks) -* [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) (10 checks) +* [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) (13 checks) * [androidx.compose.ui:ui-text-android](androidx_compose_ui_ui-text-android.md.html) (1 checks) * [androidx.compose.ui:ui-graphics-android](androidx_compose_ui_ui-graphics-android.md.html) (2 checks) * [androidx.compose.runtime:runtime-saveable-android](androidx_compose_runtime_runtime-saveable-android.md.html) (1 checks) -* [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) (14 checks) -* [androidx.compose.animation:animation-core-android](androidx_compose_animation_animation-core-android.md.html) (3 checks) +* [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html) (16 checks) +* [androidx.compose.animation:animation-core-android](androidx_compose_animation_animation-core-android.md.html) (2 checks) * [androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html) (5 checks) -* [androidx.compose.foundation:foundation-android](androidx_compose_foundation_foundation-android.md.html) (4 checks) +* [androidx.compose.foundation:foundation-android](androidx_compose_foundation_foundation-android.md.html) (2 checks) * [androidx.compose.material3:material3-android](androidx_compose_material3_material3-android.md.html) (2 checks) * [androidx.compose.material:material-android](androidx_compose_material_material-android.md.html) (2 checks) * [androidx.lifecycle:lifecycle-livedata-core](androidx_lifecycle_lifecycle-livedata-core.md.html) (1 checks) @@ -35,10 +35,11 @@ * [androidx.lifecycle:lifecycle-livedata-core-ktx](androidx_lifecycle_lifecycle-livedata-core-ktx.md.html) (1 checks) * [androidx.lifecycle:lifecycle-runtime-android](androidx_lifecycle_lifecycle-runtime-android.md.html) (2 checks) * [androidx.lifecycle:lifecycle-runtime-ktx](androidx_lifecycle_lifecycle-runtime-ktx.md.html) (2 checks) +* [androidx.lifecycle:lifecycle-runtime-compose-android](androidx_lifecycle_lifecycle-runtime-compose-android.md.html) (1 checks) * [androidx.lifecycle:lifecycle-viewmodel-compose-android](androidx_lifecycle_lifecycle-viewmodel-compose-android.md.html) (1 checks) +* [androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html) (4 checks) * [androidx.navigation:navigation-compose](androidx_navigation_navigation-compose.md.html) (6 checks) * [androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html) (5 checks) -* [androidx.navigation:navigation-common](androidx_navigation_navigation-common.md.html) (4 checks) * [androidx.annotation:annotation-experimental](androidx_annotation_annotation-experimental.md.html) (4 checks) * [androidx.fragment:fragment-testing](androidx_fragment_fragment-testing.md.html) (1 checks) * [androidx.fragment:fragment-testing-manifest](androidx_fragment_fragment-testing-manifest.md.html) (1 checks) diff --git a/docs/checks/severity.md.html b/docs/checks/severity.md.html index 450f1c2e..c7a05c4e 100644 --- a/docs/checks/severity.md.html +++ b/docs/checks/severity.md.html @@ -60,7 +60,7 @@ - [WrongFolder: Resource file in the wrong `res` folder](WrongFolder.md.html) - [WrongManifestParent: Wrong manifest parent](WrongManifestParent.md.html) -* Error (314) +* Error (323) - [AccidentalOctal: Accidental Octal](AccidentalOctal.md.html) - [AppCompatCustomView: Appcompat Custom Widgets](AppCompatCustomView.md.html) @@ -104,6 +104,7 @@ - [ConflictingOnColor: Background colors with the same value should have the same 'on' color](ConflictingOnColor.md.html) - [ConstantContentStateKeyInItemsCall: Composables within an LazyList `items` call should have unique content state keys](ConstantContentStateKeyInItemsCall.md.html) - [ContextCastToActivity: LocalContext should not be cast to Activity, use LocalActivity instead](ContextCastToActivity.md.html) + - [CoreLibDesugaringV1: Android 15 requires `desugar_jdk_libs` 2.+](CoreLibDesugaringV1.md.html) - [CoroutineCreationDuringComposition: Calls to `async` or `launch` should happen inside a LaunchedEffect and not composition](CoroutineCreationDuringComposition.md.html) - [CredManMissingDal: Missing Digital Asset Link for Credential Manager](CredManMissingDal.md.html) - [DalvikOverride: Method considered overridden by Dalvik](DalvikOverride.md.html) @@ -150,6 +151,7 @@ - [GetLocales: Locale crash](GetLocales.md.html) - [GradleGetter: Gradle Implicit Getter Call](GradleGetter.md.html) - [GradleIdeError: Gradle IDE Support Issues](GradleIdeError.md.html) + - [GradleLikelyBug: Use of this API is likely a bug](GradleLikelyBug.md.html) - [GradlePluginVersion: Incompatible Android Gradle Plugin](GradlePluginVersion.md.html) - [GradleProjectIsolation: Avoid using APIs that are not project isolation safe](GradleProjectIsolation.md.html) - [GuavaChecksUsed: Use Slack's JavaPreconditions instead of Guava's Preconditions checks](GuavaChecksUsed.md.html) @@ -180,6 +182,7 @@ - [KnownPermissionError: Value specified for permission is a known error](KnownPermissionError.md.html) - [KotlinNullnessAnnotation: Kotlin nullability annotation](KotlinNullnessAnnotation.md.html) - [LaunchDuringComposition: Calls to `launch` should happen inside of a SideEffect and not during composition](LaunchDuringComposition.md.html) + - [LifecycleCurrentStateInComposition: Lifecycle.currentState should not be called within composition](LifecycleCurrentStateInComposition.md.html) - [LintImplBadUrl: Bad More Info Link](LintImplBadUrl.md.html) - [LintImplDollarEscapes: Using Dollar Escapes](LintImplDollarEscapes.md.html) - [LintImplIdFormat: Lint ID Format](LintImplIdFormat.md.html) @@ -187,6 +190,7 @@ - [LintImplTrimIndent: Calling `.trimIndent` on Lint Strings](LintImplTrimIndent.md.html) - [LintImplUnexpectedDomain: Unexpected URL Domain](LintImplUnexpectedDomain.md.html) - [LintImplUseUast: Using Wrong UAST Method](LintImplUseUast.md.html) + - [LocalContextConfigurationRead: Reading Configuration using LocalContext.current.resources.configuration](LocalContextConfigurationRead.md.html) - [LocalSuppress: @SuppressLint on invalid element](LocalSuppress.md.html) - [LogTagMismatch: Mismatched Log Tags](LogTagMismatch.md.html) - [LongLogTag: Too Long Log Tags](LongLogTag.md.html) @@ -259,6 +263,7 @@ - [NotificationId0: Notification Id is 0](NotificationId0.md.html) - [NotificationPermission: Notifications Without Permission](NotificationPermission.md.html) - [NotificationTrampoline: Notification Trampolines](NotificationTrampoline.md.html) + - [NullableConcurrentHashMap: ConcurrentHashMap should not use nullable types](NullableConcurrentHashMap.md.html) - [ObjectAnimatorBinding: Incorrect ObjectAnimator Property](ObjectAnimatorBinding.md.html) - [OnClick: `onClick` method does not exist](OnClick.md.html) - [OpenForTesting: Extending API only allowed from tests](OpenForTesting.md.html) @@ -283,12 +288,14 @@ - [RecyclerView: RecyclerView Problems](RecyclerView.md.html) - [RedactedInJavaUsage: @Redacted is only supported in Kotlin classes](RedactedInJavaUsage.md.html) - [RedundantBinds: @Binds functions should return a different type](RedundantBinds.md.html) + - [RememberInComposition: Calling a @RememberInComposition annotated declaration inside composition without using `remember`](RememberInComposition.md.html) - [RememberReturnType: `remember` calls must not return `Unit`](RememberReturnType.md.html) - [RememberSaveableSaverParameter: `Saver` objects should be passed to the saver parameter, not the vararg `inputs` parameter](RememberSaveableSaverParameter.md.html) - [RemoteViewLayout: Unsupported View in RemoteView](RemoteViewLayout.md.html) - [RepeatOnLifecycleWrongUsage: Wrong usage of repeatOnLifecycle](RepeatOnLifecycleWrongUsage.md.html) - [RepeatOnLifecycleWrongUsage: Wrong usage of repeatOnLifecycle](RepeatOnLifecycleWrongUsage-2.md.html) - [RequiredSize: Missing `layout_width` or `layout_height` attributes](RequiredSize.md.html) + - [RequiresWindowSdk: API requires a `WindowSdkExtensions.extensionVersion` check](RequiresWindowSdk.md.html) - [ReservedSystemPermission: Permission name is a reserved Android permission](ReservedSystemPermission.md.html) - [ResourceAsColor: Should pass resolved color instead of resource id](ResourceAsColor.md.html) - [ResourceType: Wrong Resource Type](ResourceType.md.html) @@ -318,14 +325,13 @@ - [SuspiciousIndentation: Suspicious indentation](SuspiciousIndentation.md.html) - [SuspiciousModifierThen: Using Modifier.then with a Modifier factory function with an implicit receiver](SuspiciousModifierThen.md.html) - [TestLifecycleOwnerInCoroutine: Use the suspending function setCurrentState(), rather than directly accessing the currentState property](TestLifecycleOwnerInCoroutine.md.html) + - [TestParameterSiteTarget: `TestParameter` annotation has the wrong site target](TestParameterSiteTarget.md.html) - [TilePreviewImageFormat: Tile preview is not compliant with standards](TilePreviewImageFormat.md.html) - [TimberArgCount: Formatting argument types incomplete or inconsistent](TimberArgCount.md.html) - [TimberArgTypes: Formatting string doesn't match passed arguments](TimberArgTypes.md.html) - [TimberTagLength: Too Long Log Tags](TimberTagLength.md.html) - [UniqueConstants: Overlapping Enumeration Constants](UniqueConstants.md.html) - - [UnrememberedAnimatable: Creating an Animatable during composition without using `remember`](UnrememberedAnimatable.md.html) - [UnrememberedGetBackStackEntry: Calling getBackStackEntry during composition without using `remember`with a NavBackStackEntry key](UnrememberedGetBackStackEntry.md.html) - - [UnrememberedMutableInteractionSource: Creating a MutableInteractionSource during composition without using `remember`](UnrememberedMutableInteractionSource.md.html) - [UnrememberedMutableState: Creating a state object during composition without using `remember`](UnrememberedMutableState.md.html) - [UnsafeImplicitIntentLaunch: Implicit intent matches an internal non-exported component](UnsafeImplicitIntentLaunch.md.html) - [UnsafeLifecycleWhenUsage: Unsafe UI operation in finally/catch of Lifecycle.whenStarted of similar method](UnsafeLifecycleWhenUsage.md.html) @@ -354,6 +360,8 @@ - [ViewBindingType: `tools:viewBindingType` issues](ViewBindingType.md.html) - [ViewModelConstructorInComposable: Constructing a view model in a composable](ViewModelConstructorInComposable.md.html) - [VulnerableCryptoAlgorithm: Application uses vulnerable cryptography algorithms](VulnerableCryptoAlgorithm.md.html) + - [WatchFaceFormatDeclaresHasNoCode: The `hasCode` attribute should be set to `false`](WatchFaceFormatDeclaresHasNoCode.md.html) + - [WatchFaceFormatMissingVersion: The Watch Face Format version is missing](WatchFaceFormatMissingVersion.md.html) - [WearMaterialTheme: Using not non-Wear `MaterialTheme` in a Wear OS project](WearMaterialTheme.md.html) - [WearPasswordInput: Wear: Using password input](WearPasswordInput.md.html) - [WearStandaloneAppFlag: Invalid or missing Wear standalone app flag](WearStandaloneAppFlag.md.html) @@ -365,6 +373,7 @@ - [WrongCall: Using wrong draw/layout method](WrongCall.md.html) - [WrongConstant: Incorrect constant](WrongConstant.md.html) - [WrongConstraintLayoutUsage: Marks a wrong usage of the Constraint Layout](WrongConstraintLayoutUsage.md.html) + - [WrongGradleMethod: Wrong Gradle method invoked](WrongGradleMethod.md.html) - [WrongNavigateRouteType: Navigation route should be an object literal or a destination class instance with arguments](WrongNavigateRouteType.md.html) - [WrongRequiresOptIn: Experimental annotations defined in Kotlin must use kotlin.RequiresOptIn](WrongRequiresOptIn.md.html) - [WrongResourceImportAlias: Wrong import alias for this R class](WrongResourceImportAlias.md.html) @@ -377,7 +386,7 @@ - [WrongViewCast: Mismatched view type](WrongViewCast.md.html) - [XmlEscapeNeeded: Missing XML Escape](XmlEscapeNeeded.md.html) -* Warning (429) +* Warning (433) - [AcceptsUserCertificates: Allowing User Certificates](AcceptsUserCertificates.md.html) - [AccessibilityFocus: Forcing accessibility focus](AccessibilityFocus.md.html) @@ -433,6 +442,7 @@ - [ComposeUnstableCollections: Immutable collections should ideally be used in Composables](ComposeUnstableCollections.md.html) - [ComposeUnstableReceiver: Unstable receivers will always be recomposed](ComposeUnstableReceiver.md.html) - [CompositionLocalNaming: CompositionLocal properties should be prefixed with `Local`](CompositionLocalNaming.md.html) + - [ConfigurationScreenWidthHeight: Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize](ConfigurationScreenWidthHeight.md.html) - [ConstantLocale: Constant Locale](ConstantLocale.md.html) - [ConstraintLayoutToolsEditorAttribute: Flags tools:layout_editor xml properties](ConstraintLayoutToolsEditorAttribute.md.html) - [ContentDescription: Image without `contentDescription`](ContentDescription.md.html) @@ -452,6 +462,7 @@ - [DefaultLayoutAttribute: Flags default layout values](DefaultLayoutAttribute.md.html) - [DefaultLocale: Implied default locale in case conversion](DefaultLocale.md.html) - [DefaultTrustedUserCerts: Application by default trusts user-added CA certificates](DefaultTrustedUserCerts.md.html) + - [DefaultUncaughtExceptionDelegation: Missing default uncaught exception handler delegation](DefaultUncaughtExceptionDelegation.md.html) - [Deprecated: Using deprecated resources](Deprecated.md.html) - [DeprecatedCall: This class or method is deprecated; consider using an alternative](DeprecatedCall.md.html) - [DeprecatedProvider: Using BC Provider](DeprecatedProvider.md.html) @@ -487,7 +498,7 @@ - [FindViewByIdCast: Add Explicit Cast](FindViewByIdCast.md.html) - [FormalGerman: Marks strings which contain formal German words](FormalGerman.md.html) - [FragmentTagUsage: Use FragmentContainerView instead of the tag](FragmentTagUsage.md.html) - - [FrequentlyChangedStateReadInComposition: Frequently changing state should not be directly read in composable function](FrequentlyChangedStateReadInComposition.md.html) + - [FrequentlyChangingValue: Reading a value annotated with @FrequentlyChangingValue inside composition](FrequentlyChangingValue.md.html) - [GestureBackNavigation: Usage of KeyEvent.KEYCODE_BACK](GestureBackNavigation.md.html) - [GetInstance: Cipher.getInstance with ECB](GetInstance.md.html) - [GifUsage: Using `.gif` format for bitmaps is discouraged](GifUsage.md.html) @@ -536,7 +547,6 @@ - [InsecurePermissionProtectionLevel: Custom permission created with a normal `protectionLevel`](InsecurePermissionProtectionLevel.md.html) - [InsecureStickyBroadcastsMethod: Usage of insecure sticky broadcasts](InsecureStickyBroadcastsMethod.md.html) - [InsecureStickyBroadcastsPermission: Usage of insecure sticky broadcasts](InsecureStickyBroadcastsPermission.md.html) - - [InstantApps: Instant App Issues](InstantApps.md.html) - [IntentFilterExportedReceiver: Unspecified `android:exported` in manifest](IntentFilterExportedReceiver.md.html) - [IntentFilterUniqueDataAttributes: Data tags should only declare unique attributes](IntentFilterUniqueDataAttributes.md.html) - [IntentReset: Suspicious mix of `setType` and `setData`](IntentReset.md.html) @@ -569,6 +579,7 @@ - [LintDocExample: Missing Documentation Example](LintDocExample.md.html) - [LintImplTextFormat: Lint Text Format](LintImplTextFormat.md.html) - [LintImplUseKotlin: Non-Kotlin Lint Detectors](LintImplUseKotlin.md.html) + - [LocalContextResourcesRead: Reading Resources using LocalContext.current.resources](LocalContextResourcesRead.md.html) - [LocaleFolder: Wrong locale name](LocaleFolder.md.html) - [LockedOrientationActivity: Incompatible screenOrientation value](LockedOrientationActivity.md.html) - [LogConditional: Unconditional Logging Calls](LogConditional.md.html) @@ -576,6 +587,7 @@ - [ManifestOrder: Incorrect order of elements in manifest](ManifestOrder.md.html) - [MatchingMenuId: Flags menu ids that don't match with the file name](MatchingMenuId.md.html) - [MatchingViewId: Flags view ids that don't match with the file name](MatchingViewId.md.html) + - [MemberExtensionConflict: Conflict applicable candidates of member and extension](MemberExtensionConflict.md.html) - [MergeRootFrame: FrameLayout can be replaced with `` tag](MergeRootFrame.md.html) - [MinSdkTooLow: API Version Too Low](MinSdkTooLow.md.html) - [MipmapIcons: Use Mipmap Launcher Icons](MipmapIcons.md.html) @@ -725,6 +737,7 @@ - [TypographyOther: Other typographical problems](TypographyOther.md.html) - [TypographyQuotes: Straight quotes can be replaced with curvy quotes, and apostrophes with typographic apostrophes](TypographyQuotes.md.html) - [Typos: Spelling error](Typos.md.html) + - [UElementAsPsi: Avoid using UElement as PsiElement](UElementAsPsi.md.html) - [UastImplementation: Avoid using UAST implementation](UastImplementation.md.html) - [UnclosedTrace: Incorrect trace section usage](UnclosedTrace.md.html) - [UnintendedExposedUrl: Application may have a debugging or development URL publicly exposed](UnintendedExposedUrl.md.html) @@ -848,9 +861,9 @@ - [LintImplUnexpectedDomain](LintImplUnexpectedDomain.md.html) - [LogConditional](LogConditional.md.html) - [MangledCRLF](MangledCRLF.md.html) + - [MemberExtensionConflict](MemberExtensionConflict.md.html) - [MinSdkTooLow](MinSdkTooLow.md.html) - [NegativeMargin](NegativeMargin.md.html) - - [NewerVersionAvailable](NewerVersionAvailable.md.html) - [NoHardKeywords](NoHardKeywords.md.html) - [NoOp](NoOp.md.html) - [PermissionNamingConvention](PermissionNamingConvention.md.html) @@ -869,23 +882,27 @@ - [VulnerableCordovaVersion](VulnerableCordovaVersion.md.html) - [WrongThreadInterprocedural](WrongThreadInterprocedural.md.html) -* Withdrawn or Obsolete Issues (17) +* Withdrawn or Obsolete Issues (21) - - [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html) - - [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html) - - [IconLauncherFormat](IconLauncherFormat.md.html) - - [ViewTag](ViewTag.md.html) - - [FieldGetter](FieldGetter.md.html) - - [MissingRegistered](MissingRegistered.md.html) - - [FontValidationWarning](FontValidationWarning.md.html) - - [FontValidationError](FontValidationError.md.html) + - [AllowBackup](AllowBackup.md.html) - [AppLinksAutoVerifyError](AppLinksAutoVerifyError.md.html) - [AppLinksAutoVerifyWarning](AppLinksAutoVerifyWarning.md.html) - - [AllowBackup](AllowBackup.md.html) - - [MediaCapabilities](MediaCapabilities.md.html) - - [UnpackedNativeCode](UnpackedNativeCode.md.html) - [Assert](Assert.md.html) - - [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html) + - [FieldGetter](FieldGetter.md.html) + - [FontValidationError](FontValidationError.md.html) + - [FontValidationWarning](FontValidationWarning.md.html) + - [FrequentlyChangedStateReadInComposition](FrequentlyChangedStateReadInComposition.md.html) + - [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html) + - [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html) + - [IconLauncherFormat](IconLauncherFormat.md.html) + - [InstantApps](InstantApps.md.html) + - [MediaCapabilities](MediaCapabilities.md.html) + - [MissingRegistered](MissingRegistered.md.html) - [Override](Override.md.html) - [PackageManagerGetSignatures](PackageManagerGetSignatures.md.html) + - [UnpackedNativeCode](UnpackedNativeCode.md.html) + - [UnrememberedAnimatable](UnrememberedAnimatable.md.html) + - [UnrememberedMutableInteractionSource](UnrememberedMutableInteractionSource.md.html) + - [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html) + - [ViewTag](ViewTag.md.html) \ No newline at end of file diff --git a/docs/checks/vendors.md.html b/docs/checks/vendors.md.html index 4fe6543a..51824c20 100644 --- a/docs/checks/vendors.md.html +++ b/docs/checks/vendors.md.html @@ -3,7 +3,7 @@ Order: [Alphabetical](index.md.html) | [By category](categories.md.html) | By vendor | [By severity](severity.md.html) | [By year](year.md.html) | [Libraries](libraries.md.html) -* Built In (490) +* Built In (497) - [AaptCrash: Potential AAPT crash](AaptCrash.md.html) - [AcceptsUserCertificates: Allowing User Certificates](AcceptsUserCertificates.md.html) @@ -62,6 +62,7 @@ - [ConstantLocale: Constant Locale](ConstantLocale.md.html) - [ContentDescription: Image without `contentDescription`](ContentDescription.md.html) - [ConvertToWebp: Convert to WebP](ConvertToWebp.md.html) + - [CoreLibDesugaringV1: Android 15 requires `desugar_jdk_libs` 2.+](CoreLibDesugaringV1.md.html) - [CredManMissingDal: Missing Digital Asset Link for Credential Manager](CredManMissingDal.md.html) - [CredentialDependency: `credentials-play-services-auth` is Required](CredentialDependency.md.html) - [CredentialManagerMisuse: Misuse of Credential Manager API](CredentialManagerMisuse.md.html) @@ -76,6 +77,7 @@ - [DataExtractionRules: Missing data extraction rules](DataExtractionRules.md.html) - [DefaultEncoding: Using Default Character Encoding](DefaultEncoding.md.html) - [DefaultLocale: Implied default locale in case conversion](DefaultLocale.md.html) + - [DefaultUncaughtExceptionDelegation: Missing default uncaught exception handler delegation](DefaultUncaughtExceptionDelegation.md.html) - [DeletedProvider: Using Deleted Provider](DeletedProvider.md.html) - [Deprecated: Using deprecated resources](Deprecated.md.html) - [DeprecatedProvider: Using BC Provider](DeprecatedProvider.md.html) @@ -170,7 +172,6 @@ - [InlinedApi: Using inlined constants on older versions](InlinedApi.md.html) - [InnerclassSeparator: Inner classes should use `$` rather than `.`](InnerclassSeparator.md.html) - [InsecureBaseConfiguration: Insecure Base Configuration](InsecureBaseConfiguration.md.html) - - [InstantApps: Instant App Issues](InstantApps.md.html) - [Instantiatable: Registered class is not instantiatable](Instantiatable.md.html) - [IntentFilterExportedReceiver: Unspecified `android:exported` in manifest](IntentFilterExportedReceiver.md.html) - [IntentFilterUniqueDataAttributes: Data tags should only declare unique attributes](IntentFilterUniqueDataAttributes.md.html) @@ -225,6 +226,7 @@ - [ManifestOrder: Incorrect order of elements in manifest](ManifestOrder.md.html) - [ManifestResource: Manifest Resource References](ManifestResource.md.html) - [ManifestTypo: Typos in manifest tags](ManifestTypo.md.html) + - [MemberExtensionConflict: Conflict applicable candidates of member and extension](MemberExtensionConflict.md.html) - [MenuTitle: Missing menu title](MenuTitle.md.html) - [MergeMarker: Code contains merge marker](MergeMarker.md.html) - [MergeRootFrame: FrameLayout can be replaced with `` tag](MergeRootFrame.md.html) @@ -329,6 +331,7 @@ - [ReportShortcutUsage: Report shortcut usage](ReportShortcutUsage.md.html) - [RequiredSize: Missing `layout_width` or `layout_height` attributes](RequiredSize.md.html) - [RequiresFeature: Requires Feature](RequiresFeature.md.html) + - [RequiresWindowSdk: API requires a `WindowSdkExtensions.extensionVersion` check](RequiresWindowSdk.md.html) - [ResAuto: Hardcoded Package in Namespace](ResAuto.md.html) - [ReservedSystemPermission: Permission name is a reserved Android permission](ReservedSystemPermission.md.html) - [ResourceAsColor: Should pass resolved color instead of resource id](ResourceAsColor.md.html) @@ -406,6 +409,7 @@ - [TypographyOther: Other typographical problems](TypographyOther.md.html) - [TypographyQuotes: Straight quotes can be replaced with curvy quotes, and apostrophes with typographic apostrophes](TypographyQuotes.md.html) - [Typos: Spelling error](Typos.md.html) + - [UElementAsPsi: Avoid using UElement as PsiElement](UElementAsPsi.md.html) - [UastImplementation: Avoid using UAST implementation](UastImplementation.md.html) - [UnclosedTrace: Incorrect trace section usage](UnclosedTrace.md.html) - [UniqueConstants: Overlapping Enumeration Constants](UniqueConstants.md.html) @@ -465,6 +469,8 @@ - [WakelockTimeout: Using wakeLock without timeout](WakelockTimeout.md.html) - [WatchFaceEditor: Watch face editor must use launchMode="standard"](WatchFaceEditor.md.html) - [WatchFaceForAndroidX: AndroidX watch faces must use action `WATCH_FACE_EDITOR`](WatchFaceForAndroidX.md.html) + - [WatchFaceFormatDeclaresHasNoCode: The `hasCode` attribute should be set to `false`](WatchFaceFormatDeclaresHasNoCode.md.html) + - [WatchFaceFormatMissingVersion: The Watch Face Format version is missing](WatchFaceFormatMissingVersion.md.html) - [WearBackNavigation: Wear: Disabling Back navigation](WearBackNavigation.md.html) - [WearMaterialTheme: Using not non-Wear `MaterialTheme` in a Wear OS project](WearMaterialTheme.md.html) - [WearPasswordInput: Wear: Using password input](WearPasswordInput.md.html) @@ -488,6 +494,7 @@ - [WrongCommentType: Wrong Comment Type](WrongCommentType.md.html) - [WrongConstant: Incorrect constant](WrongConstant.md.html) - [WrongFolder: Resource file in the wrong `res` folder](WrongFolder.md.html) + - [WrongGradleMethod: Wrong Gradle method invoked](WrongGradleMethod.md.html) - [WrongManifestParent: Wrong manifest parent](WrongManifestParent.md.html) - [WrongRegion: Suspicious Language/Region Combination](WrongRegion.md.html) - [WrongSdkInt: Mismatched SDK_INT or SDK_INT_FULL](WrongSdkInt.md.html) @@ -551,8 +558,9 @@ - [FragmentGradleConfiguration: Include the fragment-testing-manifest library using the debugImplementation configuration](FragmentGradleConfiguration-2.md.html) -* Android Open Source Project (androidx.lifecycle) (8) +* Android Open Source Project (androidx.lifecycle) (9) + - [LifecycleCurrentStateInComposition: Lifecycle.currentState should not be called within composition](LifecycleCurrentStateInComposition.md.html) - [NullSafeMutableLiveData: LiveData value assignment nullability mismatch](NullSafeMutableLiveData.md.html) - [NullSafeMutableLiveData: LiveData value assignment nullability mismatch](NullSafeMutableLiveData-2.md.html) - [RepeatOnLifecycleWrongUsage: Wrong usage of repeatOnLifecycle](RepeatOnLifecycleWrongUsage.md.html) @@ -562,10 +570,11 @@ - [UnsafeLifecycleWhenUsage: Unsafe UI operation in finally/catch of Lifecycle.whenStarted of similar method](UnsafeLifecycleWhenUsage-2.md.html) - [ViewModelConstructorInComposable: Constructing a view model in a composable](ViewModelConstructorInComposable.md.html) -* Android Open Source Project (androidx.lint:lint-gradle) (7) +* Android Open Source Project (androidx.lint:lint-gradle) (8) - [EagerGradleConfiguration: Avoid using eager task APIs](EagerGradleConfiguration.md.html) - [FilePropertyDetector: Avoid using Property](FilePropertyDetector.md.html) + - [GradleLikelyBug: Use of this API is likely a bug](GradleLikelyBug.md.html) - [GradleProjectIsolation: Avoid using APIs that are not project isolation safe](GradleProjectIsolation.md.html) - [InternalAgpApiUsage: Avoid using internal Android Gradle Plugin APIs](InternalAgpApiUsage.md.html) - [InternalGradleApiUsage: Avoid using internal Gradle APIs](InternalGradleApiUsage.md.html) @@ -575,17 +584,17 @@ * Android Open Source Project (androidx.navigation.common) (4) - [EmptyNavDeepLink: NavDeepLink must define an uri, action, and/or mimetype to be valid](EmptyNavDeepLink.md.html) - - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-3.md.html) - - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-3.md.html) - - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-3.md.html) + - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation.md.html) + - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation.md.html) + - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType.md.html) * Android Open Source Project (androidx.navigation.runtime) (5) - [DeepLinkInActivityDestination: A should not be attached to an destination](DeepLinkInActivityDestination.md.html) - - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-2.md.html) - - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-2.md.html) + - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-3.md.html) + - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-3.md.html) - [WrongNavigateRouteType: Navigation route should be an object literal or a destination class instance with arguments](WrongNavigateRouteType.md.html) - - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-2.md.html) + - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-3.md.html) * Android Open Source Project (androidx.recyclerview) (1) @@ -667,16 +676,13 @@ - [UnusedSharedTransitionModifierParameter: SharedTransitionScope calls should use the provided Modifier parameter](UnusedSharedTransitionModifierParameter.md.html) - [UnusedTargetStateInContentKeyLambda: `contentKey` lambda in AnimatedContent should always use the provided `T` parameter](UnusedTargetStateInContentKeyLambda.md.html) -* Jetpack Compose (androidx.compose.animation.core) (3) +* Jetpack Compose (androidx.compose.animation.core) (2) - [ArcAnimationSpecTypeIssue: ArcAnimationSpec is designed for 2D values. Particularly, for positional values such as Offset.](ArcAnimationSpecTypeIssue.md.html) - - [UnrememberedAnimatable: Creating an Animatable during composition without using `remember`](UnrememberedAnimatable.md.html) - [UnusedTransitionTargetStateParameter: Transition.animate* calls should use the provided targetState when defining values](UnusedTransitionTargetStateParameter.md.html) -* Jetpack Compose (androidx.compose.foundation) (4) +* Jetpack Compose (androidx.compose.foundation) (2) - - [FrequentlyChangedStateReadInComposition: Frequently changing state should not be directly read in composable function](FrequentlyChangedStateReadInComposition.md.html) - - [UnrememberedMutableInteractionSource: Creating a MutableInteractionSource during composition without using `remember`](UnrememberedMutableInteractionSource.md.html) - [UnusedBoxWithConstraintsScope: BoxWithConstraints content should use the constraints provided via BoxWithConstraintsScope](UnusedBoxWithConstraintsScope.md.html) - [UseOfNonLambdaOffsetOverload: Modifier.offset{ } is preferred over Modifier.offset() for `State` backed arguments](UseOfNonLambdaOffsetOverload.md.html) @@ -690,7 +696,7 @@ - [UnusedMaterial3ScaffoldPaddingParameter: Scaffold content should use the padding provided as a lambda parameter](UnusedMaterial3ScaffoldPaddingParameter.md.html) - [UsingMaterialAndMaterial3Libraries: material and material3 are separate, incompatible design system libraries](UsingMaterialAndMaterial3Libraries.md.html) -* Jetpack Compose (androidx.compose.runtime) (14) +* Jetpack Compose (androidx.compose.runtime) (16) - [AutoboxingStateCreation: `State` will autobox values assigned to this state. Use a specialized state type instead.](AutoboxingStateCreation.md.html) - [AutoboxingStateValueProperty: State access causes value to be autoboxed](AutoboxingStateValueProperty.md.html) @@ -700,9 +706,11 @@ - [CompositionLocalNaming: CompositionLocal properties should be prefixed with `Local`](CompositionLocalNaming.md.html) - [CoroutineCreationDuringComposition: Calls to `async` or `launch` should happen inside a LaunchedEffect and not composition](CoroutineCreationDuringComposition.md.html) - [FlowOperatorInvokedInComposition: Flow operator functions should not be invoked within composition](FlowOperatorInvokedInComposition.md.html) + - [FrequentlyChangingValue: Reading a value annotated with @FrequentlyChangingValue inside composition](FrequentlyChangingValue.md.html) - [MutableCollectionMutableState: Creating a MutableState object with a mutable collection type](MutableCollectionMutableState.md.html) - [OpaqueUnitKey: Passing an expression which always returns `Unit` as a key argument](OpaqueUnitKey.md.html) - [ProduceStateDoesNotAssignValue: produceState calls should assign `value` inside the producer lambda](ProduceStateDoesNotAssignValue.md.html) + - [RememberInComposition: Calling a @RememberInComposition annotated declaration inside composition without using `remember`](RememberInComposition.md.html) - [RememberReturnType: `remember` calls must not return `Unit`](RememberReturnType.md.html) - [StateFlowValueCalledInComposition: StateFlow.value should not be called within composition](StateFlowValueCalledInComposition.md.html) - [UnrememberedMutableState: Creating a state object during composition without using `remember`](UnrememberedMutableState.md.html) @@ -711,8 +719,11 @@ - [RememberSaveableSaverParameter: `Saver` objects should be passed to the saver parameter, not the vararg `inputs` parameter](RememberSaveableSaverParameter.md.html) -* Jetpack Compose (androidx.compose.ui) (10) +* Jetpack Compose (androidx.compose.ui) (13) + - [ConfigurationScreenWidthHeight: Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize](ConfigurationScreenWidthHeight.md.html) + - [LocalContextConfigurationRead: Reading Configuration using LocalContext.current.resources.configuration](LocalContextConfigurationRead.md.html) + - [LocalContextResourcesRead: Reading Resources using LocalContext.current.resources](LocalContextResourcesRead.md.html) - [ModifierFactoryExtensionFunction: Modifier factory functions should be extensions on Modifier](ModifierFactoryExtensionFunction.md.html) - [ModifierFactoryReturnType: Modifier factory functions should return Modifier](ModifierFactoryReturnType.md.html) - [ModifierFactoryUnreferencedReceiver: Modifier factory functions must use the receiver Modifier instance](ModifierFactoryUnreferencedReceiver.md.html) @@ -737,10 +748,10 @@ - [ComposableDestinationInComposeScope: Building composable destination in compose scope](ComposableDestinationInComposeScope.md.html) - [ComposableNavGraphInComposeScope: Building navigation graph in compose scope](ComposableNavGraphInComposeScope.md.html) - - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation.md.html) - - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation.md.html) + - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-2.md.html) + - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-2.md.html) - [UnrememberedGetBackStackEntry: Calling getBackStackEntry during composition without using `remember`with a NavBackStackEntry key](UnrememberedGetBackStackEntry.md.html) - - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType.md.html) + - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-2.md.html) * slack (com.slack.lint.compose:compose-lints) (21) @@ -766,7 +777,7 @@ - [ComposeViewModelInjection: Implicit dependencies of composables should be made explicit](ComposeViewModelInjection.md.html) - [SlotReused: Slots should be invoked in at most one place](SlotReused.md.html) -* slack (slack-lint) (94) +* slack (slack-lint) (96) - [ArgInFormattedQuantityStringRes: Count value in formatted string resource](ArgInFormattedQuantityStringRes.md.html) - [AvoidUsingNotNullOperator: Avoid using the !! operator in Kotlin](AvoidUsingNotNullOperator.md.html) @@ -851,6 +862,7 @@ - [MoshiUsageVarProperty: Moshi properties should be immutable](MoshiUsageVarProperty.md.html) - [MustBeInModule: @Binds/@Provides functions must be in modules](MustBeInModule.md.html) - [MustUseNamedParams: Calls to @MustUseNamedParams-annotated methods must name all parameters](MustUseNamedParams.md.html) + - [NullableConcurrentHashMap: ConcurrentHashMap should not use nullable types](NullableConcurrentHashMap.md.html) - [ParcelizeFunctionProperty: Function type properties are not parcelable](ParcelizeFunctionProperty.md.html) - [ProvidesMustNotBeAbstract: @Provides functions cannot be abstract](ProvidesMustNotBeAbstract.md.html) - [RawDispatchersUse: Use SlackDispatchers](RawDispatchersUse.md.html) @@ -861,6 +873,7 @@ - [SerializableUsage: Don't use Serializable](SerializableUsage.md.html) - [SpanMarkPointMissingMask: Check that Span flags use the bitwise mask SPAN_POINT_MARK_MASK when being compared to](SpanMarkPointMissingMask.md.html) - [SubscribeOnMain: subscribeOn called with the main thread scheduler](SubscribeOnMain.md.html) + - [TestParameterSiteTarget: `TestParameter` annotation has the wrong site target](TestParameterSiteTarget.md.html) - [WrongResourceImportAlias: Wrong import alias for this R class](WrongResourceImportAlias.md.html) * Uber (AutoDispose) (1) @@ -919,23 +932,27 @@ - [WrongViewIdFormat: Flag view ids that are not in lowerCamelCase Format](WrongViewIdFormat.md.html) - [XmlSpacing: XML files should not contain any new lines](XmlSpacing.md.html) -* Withdrawn or Obsolete Issues (17) +* Withdrawn or Obsolete Issues (21) - - [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html) - - [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html) - - [IconLauncherFormat](IconLauncherFormat.md.html) - - [ViewTag](ViewTag.md.html) - - [FieldGetter](FieldGetter.md.html) - - [MissingRegistered](MissingRegistered.md.html) - - [FontValidationWarning](FontValidationWarning.md.html) - - [FontValidationError](FontValidationError.md.html) + - [AllowBackup](AllowBackup.md.html) - [AppLinksAutoVerifyError](AppLinksAutoVerifyError.md.html) - [AppLinksAutoVerifyWarning](AppLinksAutoVerifyWarning.md.html) - - [AllowBackup](AllowBackup.md.html) - - [MediaCapabilities](MediaCapabilities.md.html) - - [UnpackedNativeCode](UnpackedNativeCode.md.html) - [Assert](Assert.md.html) - - [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html) + - [FieldGetter](FieldGetter.md.html) + - [FontValidationError](FontValidationError.md.html) + - [FontValidationWarning](FontValidationWarning.md.html) + - [FrequentlyChangedStateReadInComposition](FrequentlyChangedStateReadInComposition.md.html) + - [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html) + - [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html) + - [IconLauncherFormat](IconLauncherFormat.md.html) + - [InstantApps](InstantApps.md.html) + - [MediaCapabilities](MediaCapabilities.md.html) + - [MissingRegistered](MissingRegistered.md.html) - [Override](Override.md.html) - [PackageManagerGetSignatures](PackageManagerGetSignatures.md.html) + - [UnpackedNativeCode](UnpackedNativeCode.md.html) + - [UnrememberedAnimatable](UnrememberedAnimatable.md.html) + - [UnrememberedMutableInteractionSource](UnrememberedMutableInteractionSource.md.html) + - [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html) + - [ViewTag](ViewTag.md.html) \ No newline at end of file diff --git a/docs/checks/year.md.html b/docs/checks/year.md.html index d011af92..0046e0fc 100644 --- a/docs/checks/year.md.html +++ b/docs/checks/year.md.html @@ -3,25 +3,45 @@ Order: [Alphabetical](index.md.html) | [By category](categories.md.html) | [By vendor](vendors.md.html) | [By severity](severity.md.html) | By year | [Libraries](libraries.md.html) -* 2025 (9) +* 2025 (30) - [Aligned16KB: Native library dependency not 16 KB aligned](Aligned16KB.md.html) - [AppLinkSplitToWebAndCustom: Android App links should only use http(s) schemes](AppLinkSplitToWebAndCustom.md.html) + - [AppLinkUriRelativeFilterGroupError: URI relative filter group invalid](AppLinkUriRelativeFilterGroupError.md.html) - [AppLinkWarning: App Link warning](AppLinkWarning.md.html) + - [ConfigurationScreenWidthHeight: Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize](ConfigurationScreenWidthHeight.md.html) + - [CoreLibDesugaringV1: Android 15 requires `desugar_jdk_libs` 2.+](CoreLibDesugaringV1.md.html) - [CredentialManagerMisuse: Misuse of Credential Manager API](CredentialManagerMisuse.md.html) + - [DefaultUncaughtExceptionDelegation: Missing default uncaught exception handler delegation](DefaultUncaughtExceptionDelegation.md.html) + - [FrequentlyChangingValue: Reading a value annotated with @FrequentlyChangingValue inside composition](FrequentlyChangingValue.md.html) + - [LifecycleCurrentStateInComposition: Lifecycle.currentState should not be called within composition](LifecycleCurrentStateInComposition.md.html) + - [MemberExtensionConflict: Conflict applicable candidates of member and extension](MemberExtensionConflict.md.html) + - [MissingResourcesProperties: Missing resources.properties file](MissingResourcesProperties.md.html) + - [NioDesugaring: Unsupported `java.nio` operations](NioDesugaring.md.html) + - [NullableConcurrentHashMap: ConcurrentHashMap should not use nullable types](NullableConcurrentHashMap.md.html) + - [PlaySdkIndexDeprecated: Library is marked as deprecated in SDK Index](PlaySdkIndexDeprecated.md.html) - [PlaySdkIndexVulnerability: Library has vulnerability issues in SDK Index](PlaySdkIndexVulnerability.md.html) + - [PrivacySandboxBlockedCall: Call is blocked in the Privacy Sandbox](PrivacySandboxBlockedCall.md.html) + - [RememberInComposition: Calling a @RememberInComposition annotated declaration inside composition without using `remember`](RememberInComposition.md.html) + - [RequiresWindowSdk: API requires a `WindowSdkExtensions.extensionVersion` check](RequiresWindowSdk.md.html) + - [TestParameterSiteTarget: `TestParameter` annotation has the wrong site target](TestParameterSiteTarget.md.html) - [TrimLambda: Unnecessary lambda with `trim()`](TrimLambda.md.html) + - [UElementAsPsi: Avoid using UElement as PsiElement](UElementAsPsi.md.html) - [UnnecessaryArrayInit: Unnecessary array initialization](UnnecessaryArrayInit.md.html) - [UnsanitizedFilenameFromContentProvider: Trusting ContentProvider filenames without any sanitization](UnsanitizedFilenameFromContentProvider.md.html) - [UseKtx: Use KTX extension function](UseKtx.md.html) + - [UseRequiresApi: Use `@RequiresApi` instead of `@TargetApi`](UseRequiresApi.md.html) + - [WatchFaceFormatDeclaresHasNoCode: The `hasCode` attribute should be set to `false`](WatchFaceFormatDeclaresHasNoCode.md.html) + - [WatchFaceFormatMissingVersion: The Watch Face Format version is missing](WatchFaceFormatMissingVersion.md.html) + - [WrongGradleMethod: Wrong Gradle method invoked](WrongGradleMethod.md.html) + - [WrongSdkInt: Mismatched SDK_INT or SDK_INT_FULL](WrongSdkInt.md.html) -* 2024 (62) +* 2024 (58) - [AccessibilityFocus: Forcing accessibility focus](AccessibilityFocus.md.html) - [AccessibilityScrollActions: Incomplete Scroll Action support](AccessibilityScrollActions.md.html) - [AccessibilityWindowStateChangedEvent: Use of accessibility window state change events](AccessibilityWindowStateChangedEvent.md.html) - [ActivityIconColor: Ongoing activity icon is not white](ActivityIconColor.md.html) - - [AppLinkUriRelativeFilterGroupError: URI relative filter group invalid](AppLinkUriRelativeFilterGroupError.md.html) - [AvoidUsingNotNullOperator: Avoid using the !! operator in Kotlin](AvoidUsingNotNullOperator.md.html) - [BuildListAdds: Missing `add` call in `buildList`](BuildListAdds.md.html) - [ChildInNonViewGroup: Only view groups can have children](ChildInNonViewGroup.md.html) @@ -34,6 +54,7 @@ - [DoNotCallViewToString: Do not use `View.toString()`](DoNotCallViewToString.md.html) - [EagerGradleConfiguration: Avoid using eager task APIs](EagerGradleConfiguration.md.html) - [FilePropertyDetector: Avoid using Property](FilePropertyDetector.md.html) + - [GradleLikelyBug: Use of this API is likely a bug](GradleLikelyBug.md.html) - [GradleProjectIsolation: Avoid using APIs that are not project isolation safe](GradleProjectIsolation.md.html) - [InflationInItemDecoration: Avoid inflating a view to display text](InflationInItemDecoration.md.html) - [InsecureDnsSdkLevel: Application vulnerable to DNS spoofing attacks](InsecureDnsSdkLevel.md.html) @@ -44,18 +65,16 @@ - [InternalGradleApiUsage: Avoid using internal Gradle APIs](InternalGradleApiUsage.md.html) - [InvalidLanguageTagDelimiter: Underscore (`_`) is an unsupported delimiter for subtags](InvalidLanguageTagDelimiter.md.html) - [InvalidUseOfOnBackPressed: Do not call onBackPressed() within OnBackPressedDisptacher](InvalidUseOfOnBackPressed.md.html) + - [LocalContextConfigurationRead: Reading Configuration using LocalContext.current.resources.configuration](LocalContextConfigurationRead.md.html) + - [LocalContextResourcesRead: Reading Resources using LocalContext.current.resources](LocalContextResourcesRead.md.html) - [MissingAutoVerifyAttribute: Application has custom scheme intent filters with missing `autoVerify` attributes](MissingAutoVerifyAttribute.md.html) - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation.md.html) - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-2.md.html) - [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-3.md.html) - - [MissingResourcesProperties: Missing resources.properties file](MissingResourcesProperties.md.html) - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation.md.html) - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-2.md.html) - [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-3.md.html) - - [NioDesugaring: Unsupported `java.nio` operations](NioDesugaring.md.html) - [PictureInPictureIssue: Picture In Picture best practices not followed](PictureInPictureIssue.md.html) - - [PlaySdkIndexDeprecated: Library is marked as deprecated in SDK Index](PlaySdkIndexDeprecated.md.html) - - [PrivacySandboxBlockedCall: Call is blocked in the Privacy Sandbox](PrivacySandboxBlockedCall.md.html) - [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive.md.html) - [ProtoLayoutPrimaryLayoutResponsive: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales](ProtoLayoutPrimaryLayoutResponsive.md.html) - [PublicKeyCredential: Creating public key credential](PublicKeyCredential.md.html) @@ -68,19 +87,17 @@ - [UnnecessaryRequiredFeature: Potentially unnecessary required feature](UnnecessaryRequiredFeature.md.html) - [UnsanitizedContentProviderFilename: Trusting ContentProvider filenames without any sanitization](UnsanitizedContentProviderFilename.md.html) - [UnusedSharedTransitionModifierParameter: SharedTransitionScope calls should use the provided Modifier parameter](UnusedSharedTransitionModifierParameter.md.html) - - [UseRequiresApi: Use `@RequiresApi` instead of `@TargetApi`](UseRequiresApi.md.html) - [UseSdkSuppress: Using `@SdkSuppress` instead of `@RequiresApi`](UseSdkSuppress.md.html) - [ViewModelConstructorInComposable: Constructing a view model in a composable](ViewModelConstructorInComposable.md.html) - [WithPluginClasspathUsage: Flags usage of GradleRunner#withPluginClasspath](WithPluginClasspathUsage.md.html) - [WithTypeWithoutConfigureEach: Flags usage of withType with a closure instead of configureEach](WithTypeWithoutConfigureEach.md.html) - [WrongCommentType: Wrong Comment Type](WrongCommentType.md.html) - [WrongNavigateRouteType: Navigation route should be an object literal or a destination class instance with arguments](WrongNavigateRouteType.md.html) - - [WrongSdkInt: Mismatched SDK_INT or SDK_INT_FULL](WrongSdkInt.md.html) - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType.md.html) - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-2.md.html) - [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-3.md.html) -* 2023 (85) +* 2023 (84) - [ArcAnimationSpecTypeIssue: ArcAnimationSpec is designed for 2D values. Particularly, for positional values such as Offset.](ArcAnimationSpecTypeIssue.md.html) - [AutoboxingStateCreation: `State` will autobox values assigned to this state. Use a specialized state type instead.](AutoboxingStateCreation.md.html) @@ -149,7 +166,6 @@ - [TilePreviewImageFormat: Tile preview is not compliant with standards](TilePreviewImageFormat.md.html) - [UnintendedExposedUrl: Application may have a debugging or development URL publicly exposed](UnintendedExposedUrl.md.html) - [UnintendedPrivateIpAddress: Application may have a private IP address publicly exposed](UnintendedPrivateIpAddress.md.html) - - [UnrememberedMutableInteractionSource: Creating a MutableInteractionSource during composition without using `remember`](UnrememberedMutableInteractionSource.md.html) - [UnsafeCryptoAlgorithmUsage: Application uses unsafe cipher modes or paddings with cryptographic algorithms](UnsafeCryptoAlgorithmUsage.md.html) - [UnsafeImplicitIntentLaunch: Implicit intent matches an internal non-exported component](UnsafeImplicitIntentLaunch.md.html) - [UnsafeIntentLaunch: Launched Unsafe Intent](UnsafeIntentLaunch.md.html) @@ -168,7 +184,7 @@ - [WearRecents: Wear OS: Recents and app resume](WearRecents.md.html) - [WearSplashScreen: Wear: Use `SplashScreen` library](WearSplashScreen.md.html) -* 2022 (50) +* 2022 (49) - [AppBundleLocaleChanges: App Bundle handling of runtime locale changes](AppBundleLocaleChanges.md.html) - [AssertionSideEffect: Assertions with Side Effects](AssertionSideEffect.md.html) @@ -185,7 +201,6 @@ - [EmptyNavDeepLink: NavDeepLink must define an uri, action, and/or mimetype to be valid](EmptyNavDeepLink.md.html) - [EmptySuperCall: Calling an empty super method](EmptySuperCall.md.html) - [FileEndsWithExt: File endsWith on file extensions](FileEndsWithExt.md.html) - - [FrequentlyChangedStateReadInComposition: Frequently changing state should not be directly read in composable function](FrequentlyChangedStateReadInComposition.md.html) - [FullyQualifiedResource: Resources should use an import alias instead of being fully qualified](FullyQualifiedResource.md.html) - [IncorrectChainMarginsUsage: Use `LayoutReference.withChainParams()` to define margins for elements in a Chain](IncorrectChainMarginsUsage.md.html) - [IncorrectMatchParentUsage: Prefer using `Dimension.percent(1f)` when defining custom constraints](IncorrectMatchParentUsage.md.html) @@ -221,7 +236,7 @@ - [WebViewClientOnReceivedSslError: Proceeds with the HTTPS connection despite SSL errors](WebViewClientOnReceivedSslError.md.html) - [WrongResourceImportAlias: Wrong import alias for this R class](WrongResourceImportAlias.md.html) -* 2021 (124) +* 2021 (123) - [AnnotateVersionCheck: Annotate SDK_INT checks](AnnotateVersionCheck.md.html) - [AppLinksAutoVerify: App Links Auto Verification Failure](AppLinksAutoVerify.md.html) @@ -339,7 +354,6 @@ - [TileProviderPermissions: TileProvider does not set permission](TileProviderPermissions.md.html) - [TrustAllX509TrustManager: Insecure TLS/SSL trust manager](TrustAllX509TrustManager.md.html) - [UnnecessaryComposedModifier: Modifier.composed should only be used for modifiers that invoke @Composable functions](UnnecessaryComposedModifier.md.html) - - [UnrememberedAnimatable: Creating an Animatable during composition without using `remember`](UnrememberedAnimatable.md.html) - [UnrememberedGetBackStackEntry: Calling getBackStackEntry during composition without using `remember`with a NavBackStackEntry key](UnrememberedGetBackStackEntry.md.html) - [UnsafeRepeatOnLifecycleDetector: RepeatOnLifecycle should be used with viewLifecycleOwner in Fragments](UnsafeRepeatOnLifecycleDetector.md.html) - [UnusedCrossfadeTargetStateParameter: Crossfade calls should use the provided `T` parameter in the content lambda](UnusedCrossfadeTargetStateParameter.md.html) @@ -496,7 +510,7 @@ - [WrongConstant: Incorrect constant](WrongConstant.md.html) - [WrongThread: Wrong Thread](WrongThread.md.html) -* 2017 (49) +* 2017 (48) - [AllCaps: Combining textAllCaps and markup](AllCaps.md.html) - [AnimatorKeep: Missing @Keep for Animated Properties](AnimatorKeep.md.html) @@ -515,7 +529,6 @@ - [HighAppVersionCode: VersionCode too high](HighAppVersionCode.md.html) - [ImpliedTouchscreenHardware: Touchscreen not optional](ImpliedTouchscreenHardware.md.html) - [IncompatibleMediaBrowserServiceCompatVersion: Obsolete version of MediaBrowserServiceCompat](IncompatibleMediaBrowserServiceCompatVersion.md.html) - - [InstantApps: Instant App Issues](InstantApps.md.html) - [InvalidAnalyticsName: Invalid Analytics Name](InvalidAnalyticsName.md.html) - [InvalidImeActionId: Invalid imeActionId declaration](InvalidImeActionId.md.html) - [InvalidPermission: Invalid Permission Attribute](InvalidPermission.md.html) @@ -859,23 +872,27 @@ - [WrongViewIdFormat: Flag view ids that are not in lowerCamelCase Format](WrongViewIdFormat.md.html) - [XmlSpacing: XML files should not contain any new lines](XmlSpacing.md.html) -* Withdrawn or Obsolete Issues (17) +* Withdrawn or Obsolete Issues (21) - - [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html) - - [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html) - - [IconLauncherFormat](IconLauncherFormat.md.html) - - [ViewTag](ViewTag.md.html) - - [FieldGetter](FieldGetter.md.html) - - [MissingRegistered](MissingRegistered.md.html) - - [FontValidationWarning](FontValidationWarning.md.html) - - [FontValidationError](FontValidationError.md.html) + - [AllowBackup](AllowBackup.md.html) - [AppLinksAutoVerifyError](AppLinksAutoVerifyError.md.html) - [AppLinksAutoVerifyWarning](AppLinksAutoVerifyWarning.md.html) - - [AllowBackup](AllowBackup.md.html) - - [MediaCapabilities](MediaCapabilities.md.html) - - [UnpackedNativeCode](UnpackedNativeCode.md.html) - [Assert](Assert.md.html) - - [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html) + - [FieldGetter](FieldGetter.md.html) + - [FontValidationError](FontValidationError.md.html) + - [FontValidationWarning](FontValidationWarning.md.html) + - [FrequentlyChangedStateReadInComposition](FrequentlyChangedStateReadInComposition.md.html) + - [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html) + - [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html) + - [IconLauncherFormat](IconLauncherFormat.md.html) + - [InstantApps](InstantApps.md.html) + - [MediaCapabilities](MediaCapabilities.md.html) + - [MissingRegistered](MissingRegistered.md.html) - [Override](Override.md.html) - [PackageManagerGetSignatures](PackageManagerGetSignatures.md.html) + - [UnpackedNativeCode](UnpackedNativeCode.md.html) + - [UnrememberedAnimatable](UnrememberedAnimatable.md.html) + - [UnrememberedMutableInteractionSource](UnrememberedMutableInteractionSource.md.html) + - [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html) + - [ViewTag](ViewTag.md.html) \ No newline at end of file