diff --git a/docs/api-guide/annotations.md.html b/docs/api-guide/annotations.md.html
index 6422dfe2..0d134279 100644
--- a/docs/api-guide/annotations.md.html
+++ b/docs/api-guide/annotations.md.html
@@ -58,7 +58,7 @@
val location = context.getLocation(element)
context.report(TEST_ISSUE, element, location, message)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All this simple detector does is flag any usage associated with the
given annotation, including some information about the usage.
@@ -73,7 +73,7 @@
@MyAnnotation fun close() = TODO()
}
operator fun Book.get(@MyAnnotation index: Int): Int = TODO()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...and we then run the above detector on the following test case:
@@ -83,7 +83,7 @@
val firstWord = book[0]
book.close()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
we get the following output:
@@ -97,7 +97,7 @@
src/book.kt:16: Error: METHOD_CALL usage associated with @MyAnnotation on METHOD
book.close()
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In the first case, the infix operator “in” will call `contains` under
the hood, and here we've annotated the parameter, so lint visits the
@@ -150,7 +150,7 @@
open class Paperback : Book() {
override fun close() { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
then the detector will emit the following incident since the new method
overrides another method that was annotated:
@@ -160,7 +160,7 @@
override fun close() { }
-----
1 errors, 0 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Overriding an annotated element is how the `@CallSuper` detector is
implemented, which makes sure that any method which overrides a method
@@ -184,7 +184,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here, lint will flag the various exit points from the method
associated with the annotation:
@@ -197,7 +197,7 @@
return getDefaultCaption()
-------------------
2 errors, 0 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note also that this would have worked if the annotation had been
inherited from a super method instead of being explicitly set here.
@@ -231,7 +231,7 @@
return type != AnnotationUsageType.METHOD_OVERRIDE &&
super.isApplicableAnnotationUsage(type)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Tip
Notice how we are also calling `super` here and combining the result
@@ -249,7 +249,7 @@
return type != AnnotationUsageType.BINARY &&
type != AnnotationUsageType.EQUALITY
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These usage types apply to cases where annotated elements are
compared for equality or using other binary operators. Initially
@@ -277,7 +277,7 @@
src/test/pkg/HalfFloatTest.java:50: Error: Half-float type in expression widened to int [HalfFloat]
Math.round(float1); // Error: should use Half.round
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Scopes
@@ -303,7 +303,7 @@
abstract override fun pop(): String
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
And the following test case:
@@ -314,7 +314,7 @@
fileStack.push("Hello")
fileStack.pop()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here, `stack.push` call on line 2 resolves to the API method on line 7.
That method is not annotated, but it's inside a class that is annotated
@@ -367,7 +367,7 @@
// outer @CheckReturnValue annotation we're analyzing here
return
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Tip
You only have to worry about this when there are different
@@ -418,7 +418,7 @@
// Require restriction annotations to be annotated everywhere
return false
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(Note that the API passes in the fully qualified name of the annotation
in question so you can control this behavior individually for each
diff --git a/docs/api-guide/ast-analysis.md.html b/docs/api-guide/ast-analysis.md.html
index d2e27c6b..8ecce102 100644
--- a/docs/api-guide/ast-analysis.md.html
+++ b/docs/api-guide/ast-analysis.md.html
@@ -29,7 +29,7 @@
public class MyTest {
String s = "hello";
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here's the AST for the above program, the way it's represented
internally in IntelliJ.
@@ -54,7 +54,7 @@
class MyTest {
val s: String = "hello"
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
And here's the corresponding AST in IntelliJ:
@@ -103,7 +103,7 @@
var id: String,
var name: String
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is a Kotlin data class with two properties. So you might expect
that UAST would have a way to represent these concepts. This should
@@ -122,7 +122,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
var property = 0
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here's the UAST representation:
@@ -154,7 +154,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
if (s.length > 3) 0 else s.count { it.isUpperCase() }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This maps to the following UAST tree:
@@ -184,7 +184,7 @@
val warn1 = Date()
val ok = Date(0L)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
here's the corresponding UAST `asRecursiveLogString` output:
@@ -203,7 +203,7 @@
UCallExpression (kind = UastCallKind(name='constructor_call'), …
USimpleNameReferenceExpression (identifier = Date)
ULiteralExpression (value = 0)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Visiting
@@ -224,7 +224,7 @@
return super.visitSimpleNameReferenceExpression(node)
}
})
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In a visitor, you generally want to call `super` as shown above. You can
also `return true` if you've “seen enough” and can stop visiting the
@@ -274,7 +274,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
val resolved = call.resolve() ?: return
val uDeclaration = resolve.toUElement()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note however that `toUElement` may return null. For example, if you've
resolved to a method call that is compiled (which you can check using
@@ -320,7 +320,7 @@
object Companion { // Named "Companion" but not a companion object!
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The right way to do this is using Kotlin PSI, via the
`UElement.sourcePsi` property:
@@ -331,7 +331,7 @@
if (source is KtObjectDeclaration && source.isCompanion()) {
return
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(To figure out how to write the above code, use a debugger on a test
case and look at the `UClass.sourcePsi` property; you'll discover that
@@ -377,7 +377,7 @@
}
val actionBar = getActionBar() // OK - SDK_INT must be >= 11 !
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here we have a scenario where we know that the TODO call will never
return, and lint can take advantage of that when analyzing the control
@@ -391,7 +391,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
@kotlin.internal.InlineOnly
public inline fun TODO(): Nothing = throw NotImplementedError()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The `Nothing` return type means it will never return.
@@ -406,7 +406,7 @@
if (methodName == "fail" || methodName == "error" || methodName == "TODO") {
return true
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
However, with the Kotlin analysis API, this is easy:
@@ -419,7 +419,7 @@
return returnType != null && returnType.isNothingType
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
@@ -436,7 +436,7 @@
return returnType != null && returnType.isNothing
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The entry point to all Kotlin Analysis API usages is to call the
`analyze` method (see line 7) and pass in a Kotlin PSI element. This
@@ -505,13 +505,13 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
symbol is KaClassSymbol && symbol.classKind == KaClassKind.COMPANION_OBJECT
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
symbol is KtClassOrObjectSymbol && symbol.classKind == KtClassKind.COMPANION_OBJECT
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#### Kotlin Analysis API Howto
@@ -524,7 +524,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
thisReference.toUElement()?.tryResolve()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can now use a debugger to step into the `tryResolve` call, and
you'll eventually wind up in code using the Kotlin Analysis API to look
@@ -537,7 +537,7 @@
val psi = reference.resolveToSymbol()?.psi
…
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Configuring lint to use K2
@@ -547,7 +547,7 @@
override fun lint(): TestLintTask {
return super.lint().configureOptions { flags -> flags.setUseK2Uast(true) }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Outside of tests, you can also set the `-Dlint.use.fir.uast=true` system property in your run configurations.
@@ -588,7 +588,7 @@
?: callInfo.singleCallOrNull()?.symbol
…
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
@@ -603,7 +603,7 @@
?: callInfo.singleCallOrNull()?.symbol
…
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Resolve a variable reference
@@ -615,7 +615,7 @@
analyze(expression) {
val symbol: KaVariableSymbol? = expression.resolveToCall()?.singleVariableAccessCall()?.symbol
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
@@ -625,7 +625,7 @@
analyze(expression) {
val symbol: KtVariableLikeSymbol = expression.resolveCall()?.singleVariableAccessCall()?.symbol
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Get the containing class of a symbol
@@ -634,7 +634,7 @@
if (containingSymbol is KaNamedClassSymbol) {
…
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
@@ -643,7 +643,7 @@
if (containingSymbol is KtNamedClassOrObjectSymbol) {
…
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Get the fully qualified name of a class
@@ -653,7 +653,7 @@
val fqn = containing.classId?.asSingleFqName()
…
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
@@ -663,7 +663,7 @@
val fqn = containing.classIdIfNonLocal?.asSingleFqName()
…
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Look up the deprecation status of a symbol
@@ -671,7 +671,7 @@
if (symbol is KaDeclarationSymbol) {
symbol.deprecationStatus?.let { … }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
@@ -679,7 +679,7 @@
if (symbol is KtDeclarationSymbol) {
symbol.deprecationStatus?.let { … }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Look up visibility
@@ -689,7 +689,7 @@
…
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
@@ -700,7 +700,7 @@
…
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Get the KtType of a class symbol
@@ -708,13 +708,13 @@
if (symbol is KaNamedClassSymbol) {
val type = symbol.defaultType
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
containingSymbol.buildSelfClassType()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Resolve a KtType into a class
@@ -732,7 +732,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
@@ -747,7 +747,7 @@
…
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### See if two types refer to the same raw class (erasure):
@@ -757,7 +757,7 @@
) {
…
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
@@ -766,7 +766,7 @@
type1.classId == type2.classId) {
…
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### For an extension method, get the receiver type:
@@ -774,14 +774,14 @@
if (declarationSymbol is KaNamedFunctionSymbol) {
val declarationReceiverType = declarationSymbol.receiverParameter?.type
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
if (declarationSymbol is KtFunctionSymbol) {
val declarationReceiverType = declarationSymbol.receiverParameter?.type
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Get the PsiFile containing a symbol declaration
@@ -793,7 +793,7 @@
…
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Older APIs (pre-8.7.0-alpha04):
@@ -804,6 +804,26 @@
if (psi is PsiFile) {
…
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+## Display a type as a string
+
+If you have a `KaType` and want to include it in for example an error
+message, rather than calling `toString()` on it, do something like this:
+
+If it's a class type (`KaClassType`) and you just want the fully
+qualified name, use
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
+classTypeType.classId.asSingleFqName().asString()
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Otherwise, use
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
+val type = …
+val fullyQualified = type.render(position = Variance.IN_VARIANCE)
+val shortOnly = type.render(KaDeclarationRendererForSource.WITH_SHORT_NAMES, Variance.IN_VARIANCE)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/api-guide/basics.md.html b/docs/api-guide/basics.md.html
index e61e03c4..5a0c1e61 100644
--- a/docs/api-guide/basics.md.html
+++ b/docs/api-guide/basics.md.html
@@ -100,7 +100,7 @@
) {
// ...
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As of 7.0, there is more Kotlin code in lint than remaining Java
code:
@@ -315,7 +315,7 @@
)
}
...
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are a number of things to note here.
@@ -546,7 +546,7 @@
contact = "author@com.example.lint"
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On line 8, we're returning our issue. It's a list, so an
`IssueRegistry` can provide multiple issues.
@@ -608,7 +608,7 @@
"I complain a lot")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This will just complain in every single file. Obviously, no real lint
detector does this; we want to do some analysis and **conditionally** report
@@ -789,7 +789,7 @@
context.report(incident)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The above is using the new `Incident` API from Lint 7.0 and on; in
older versions you can use the following API, which still works in 7.0:
@@ -803,7 +803,7 @@
"Use `` instead of ``")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The second (older) form may seem simpler, but the new API allows a lot
more metadata to be attached to the report, such as an override
@@ -813,7 +813,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
context.report(Incident(ISSUE, context.getLocation(element),
"Use `` instead of ``"))
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Analyzing Kotlin and Java Code
@@ -948,7 +948,7 @@
return java.lang.Long.MAX_VALUE
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Looking up UAST
diff --git a/docs/api-guide/changes.md.html b/docs/api-guide/changes.md.html
index dc87c11e..6208fa4f 100644
--- a/docs/api-guide/changes.md.html
+++ b/docs/api-guide/changes.md.html
@@ -5,6 +5,21 @@
information about user visible changes to lint, see the User
Guide.
+**9.1**
+
+* The manifest merger that runs during lint tests could previously fail, without causing the test to
+ fail. The manifest merger will now throw an exception in this scenario, unless the test calls
+ `.allowManifestMergerErrors(true)` on the `lint()` test task.
+
+**8.10**
+
+* Lint might now call `Detector.visitAnnotationUsage` in a few additional cases,
+ with `usageInfo.type` set to `VARIABLE_REFERENCE`, `FIELD_REFERENCE`,
+ `ASSIGNMENT_RHS`, or `ASSIGNMENT_LHS`. We believe the additional cases were
+ previously (incorrectly) not triggering, so most `Detector`s should continue
+ to work without changes. However, some `Detector`s may have inadvertently been
+ relying on these cases not triggering, and so may need minor changes.
+
**8.9**
* Lint's testing infrastructure support for testing quickfixes
diff --git a/docs/api-guide/dataflow-analyzer.md.html b/docs/api-guide/dataflow-analyzer.md.html
index 1af02645..b6fd5928 100644
--- a/docs/api-guide/dataflow-analyzer.md.html
+++ b/docs/api-guide/dataflow-analyzer.md.html
@@ -26,7 +26,7 @@
val t1 = getFragmentManager().beginTransaction() // NEVER COMMITTED
val t2 = getFragmentManager().beginTransaction() // OK
t2.commit()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here we are creating 3 transactions. The first one is committed
immediately. The second one is never committed. And the third one
@@ -81,7 +81,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As you can see, the `DataFlowAnalyzer` is a visitor, so when we find a
call we're interested in, we construct a `DataFlowAnalyzer` and
@@ -101,7 +101,7 @@
val t2 = t
val t3 = t2
t3.commit()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
However, there's a lot that can go wrong, which we'll need to deal with. This is explained in the following sections
@@ -123,7 +123,7 @@
public abstract FragmentTransaction addToBackStack(String name);
...
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The reason all these methods return a `FragmentTransaction` is to make it easy to chain calls; e.g.
@@ -132,7 +132,7 @@
.add(new Fragment(), null)
.addToBackStack(null)
.commit();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In order to correctly analyze this, we'd need to know what the implementation of `add` and `addToBackStack` return. If we know that they simply return “this”, then it's easy; we can transfer the instance through the call.
@@ -158,7 +158,7 @@
return super.returnsSelf(call) || call.methodName == "copy"
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Kotlin Scoping Functions
@@ -187,7 +187,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Limitations
@@ -201,7 +201,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
fun createTransaction(): FragmentTransaction =
getFragmentManager().beginTransaction().add(new Fragment(), null)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here, we're not calling `commit`, so our lint check would issue a
warning. However, it's quite possible and likely that elsewhere,
@@ -211,7 +211,7 @@
val transaction = createTransaction()
...
transaction.commit()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ideally, we'd perform global analysis to handle this, but that's not
currently possible. However, we *can* analyze some additional non-local
@@ -245,7 +245,7 @@
if (!escapes && !foundCommit) {
context.report(Incident(...))
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Parameters
@@ -258,7 +258,7 @@
val transaction = getFragmentManager().beginTransaction()
process(transaction)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here, it's possible that the `process` method will proceed to actually
commit the transaction.
@@ -276,7 +276,7 @@
}
...
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(By default, the analyzer will ignore calls that look like logging calls since those are probably safe and not true escapes; you can
customize this by overriding `ignoreArgument()`.)
@@ -290,7 +290,7 @@
fun initialize() {
this.transaction = createTransaction()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As with returns and method calls, the analyzer has a callback to make
it easy to handle when this is the case:
@@ -304,7 +304,7 @@
}
...
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As you can see, it's passing in the field that is being stored to, in
case you want to perform additional analysis to track field values; see
@@ -387,7 +387,7 @@
if (method.isMissingTarget(analyzer)) {
context.report(...)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can subclass `TargetMethodDataFlowAnalyzer` directly and override the
`getTargetMethod` methods and any other UAST visitor methods if you want
diff --git a/docs/api-guide/example.md.html b/docs/api-guide/example.md.html
index 51c93d7c..d8798505 100644
--- a/docs/api-guide/example.md.html
+++ b/docs/api-guide/example.md.html
@@ -55,7 +55,7 @@
compileOnly "com.android.tools.lint:lint-checks:$lintVersion"
testImplementation "com.android.tools.lint:lint-tests:$lintVersion"
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The second dependency is usually not necessary; you just need to depend
on the Lint API. However, the built-in checks define a lot of
@@ -91,7 +91,7 @@
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The `$lintVersion` variable is defined on line 11. We don't technically
need to define the `$gradlePluginVersion` here or add it to the classpath on line 19, but that's done so that we can add the `lint`
@@ -244,7 +244,7 @@
)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The `Issue` registration is pretty self-explanatory, and the details
about issue registration are covered in the [basics](basics.md.html)
@@ -291,7 +291,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This lint check is very simple; for Kotlin and Java files, it visits
all the literal strings, and if the string contains the word “lint”,
@@ -344,7 +344,7 @@
)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As you can see, writing a lint unit test is very simple, because
lint ships with a dedicated testing library; this is what the
diff --git a/docs/api-guide/faq.md.html b/docs/api-guide/faq.md.html
index d0a9ac87..0e5e631d 100644
--- a/docs/api-guide/faq.md.html
+++ b/docs/api-guide/faq.md.html
@@ -98,7 +98,7 @@
/** Returns true if the given language is Java. */
fun isJava(language: Language?): Boolean { /* ... */ }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you have a `UElement` and need a `PsiElement` for the above method,
see the next question.
@@ -171,7 +171,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
abstract fun getClassType(psiClass: PsiClass?): PsiClassType?
abstract fun getTypeClass(psiType: PsiType?): PsiClass?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### How do I look up hierarchy annotations for an element?
@@ -192,7 +192,7 @@
owner: PsiModifierListOwner,
inHierarchy: Boolean
): Array
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### How do I look up if a class is a subclass of another?
@@ -201,7 +201,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
fun isMemberInClass(member: PsiMember?, className: String): Boolean { }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To see if a method is a member in any *subclass* of a named class, use
@@ -212,7 +212,7 @@
strict: Boolean = false
): Boolean { /* ... */ }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here, use `strict = true` if you don't want to include members in the
named class itself as a match.
diff --git a/docs/api-guide/options.md.html b/docs/api-guide/options.md.html
index f40d49b2..8f81d297 100644
--- a/docs/api-guide/options.md.html
+++ b/docs/api-guide/options.md.html
@@ -45,7 +45,7 @@
val MAX_COUNT = IntOption("maxCount", "Max number of views allowed", 80)
val MY_ISSUE = Issue.create("MyId", ...)
.setOptions(listOf(MAX_COUNT))
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
An option has a few pieces of metadata:
@@ -93,7 +93,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
val maxCount = MAX_COUNT.getValue(context)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This will return the `Int` value configured for this option by the
user, or if not set, our original default value, in this case 80.
@@ -122,7 +122,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
val maxCount = MAX_COUNT.getValue(context.configuration)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you want to find the most applicable configuration for a given
source file, use
@@ -130,7 +130,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
val configuration = context.findConfiguration(context.file)
val maxCount = MAX_COUNT.getValue(configuration)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Files
@@ -160,7 +160,7 @@
min = 0f,
max = 15f
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
It will also be checked at runtime, and if the configured value is
outside of the range, lint will report an error and pinpoint the
@@ -189,7 +189,7 @@
.configureOption(MAX_COUNT, 150)
.run()
.expectClean()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Supporting Lint 4.2, 7.0 and 7.1
@@ -203,7 +203,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
val option: String? = configuration.getOption(ISSUE, "maxCount")
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The `getOption` method returns a `String`. For numbers and booleans,
the coniguration also provides lookups which will convert the value to
@@ -216,6 +216,6 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
val option = configuration.getOptionAsInt(ISSUE, "maxCount", 100)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/api-guide/partial-analysis.md.html b/docs/api-guide/partial-analysis.md.html
index a004774b..c50aaa26 100644
--- a/docs/api-guide/partial-analysis.md.html
+++ b/docs/api-guide/partial-analysis.md.html
@@ -240,7 +240,7 @@
xml(
"res/layout/linear.xml",
"" + ...
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The second `manifest()` call here on line 3 does all the heavy lifting:
the fact that you're referencing `../app` means it will create another
@@ -285,7 +285,7 @@
context.getNameLocation(element),
"Missing `contentDescription` attribute on image"
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
At some point, we added support for quickfixes, so the
report method took an additional parameter, line 6:
@@ -298,7 +298,7 @@
"Missing `contentDescription` attribute on image",
fix().set().todo(ANDROID_URI, ATTR_CONTENT_DESCRIPTION).build()
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now that we need to attach various additional data (like constraints
and maps), we don't really want to just add more parameters.
@@ -318,7 +318,7 @@
context.getNameLocation(element),
"Missing `contentDescription` attribute on image"
))
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
and then reformatting the source code:
@@ -331,7 +331,7 @@
"Missing `contentDescription` attribute on image"
)
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`Incident` has a number of overloaded constructors to make it easy to
construct it from existing report calls.
@@ -345,7 +345,7 @@
.scope(node)
.location(context.getLocation(node))
.message("Do not hardcode \"/sdcard/\"").report()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
That are additional methods you can fall too, like `fix()`, and
conveniently, `at()` which specifies not only the scope node but
@@ -357,7 +357,7 @@
.issue(ISSUE)
.at(node)
.message("Do not hardcode \"/sdcard/\"").report()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
So step one to partial analysis is to convert your code to report
incidents instead of the passing in all the individual properties of an
@@ -400,7 +400,7 @@
+ "even for lossless conversion";
Incident incident = new Incident(WEBP_ELIGIBLE, location, message);
context.report(incident, minSdkAtLeast(18));
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Finally, note that you can combine constraints; there are both “and”
and “or” operators defined for the `Constraint` class, so the following
@@ -409,7 +409,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
val constraint = targetSdkAtLeast(23) and notLibraryProject()
context.report(incident, constraint)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
That's all you have to do. Lint will record this provisional incident,
and when it is performing reporting, it will evaluate these constraints
@@ -437,7 +437,7 @@
.put(KEY_OVERRIDES, overrides)
.put(KEY_IMPLICIT, implicitlyExportedPreS)
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here, `map()` is a method defined by `Detector` to create a new
`LintMap`, similar to how `fix()` constructs a new `LintFix`.
@@ -455,7 +455,7 @@
* customizing the error message further.
*/
open fun filterIncident(context: Context, incident: Incident, map: LintMap): Boolean { }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For example, for the above report call, the corresponding
implementation of `filterIncident` looks like this:
@@ -466,7 +466,7 @@
if (map.getBoolean(KEY_IMPLICIT, false) == true && context.mainProject.targetSdk >= 31) return true
return map.getBoolean(KEY_OVERRIDES, false) == false
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note also that you are allowed to modify incidents here before
reporting them. The most common reason scenario for this is changing
@@ -590,7 +590,7 @@
* yourself, via the various [LintDriver.isSuppressed] methods.
*/
fun getPartialResults(issue: Issue): PartialResult { ... }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Then you put whatever data you want, such as the resource usage model
encoded as a string.
@@ -611,7 +611,7 @@
* (via [Context.report]) to lint.
*/
open fun checkPartialResults(context: Context, partialResults: PartialResult) { ... }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Optimizations
@@ -628,6 +628,6 @@
} else {
// partial analysis code path
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/api-guide/quickfixes.md.html b/docs/api-guide/quickfixes.md.html
index 68d77af2..85e62c19 100644
--- a/docs/api-guide/quickfixes.md.html
+++ b/docs/api-guide/quickfixes.md.html
@@ -56,7 +56,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
LintFix fix = fix().set(null, "singleLine", "true").build()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here the `fix()` method is provided by the `Detector` super class, but
that's just a utility method for `LintFix.fix()` (or in older versions,
@@ -187,7 +187,7 @@
val fix = fix()
.url("https://developer.android.com/topic/libraries/architecture/workmanager/migrating-gcm")
.build()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Combining Fixes
@@ -224,7 +224,7 @@
fix().set(ANDROID_URI, "singleLine", "true").build(),
fix().unset(namespace, oldAttributeName).build()
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
And here's an example of how to create an alternatives fix, which are
offered to the user as separate options; this is from our earlier
@@ -237,7 +237,7 @@
fix().set().todo(ANDROID_URI, "text").build(),
fix().set().todo(ANDROID_URI, "contentDescription")
.build())
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Refactoring Java and Kotlin code
@@ -278,7 +278,7 @@
.with("if (javaClass.desiredAssertionStatus()) { \\k<1> }")
.reformat(true)
.build()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The replacement string's back reference above, on line 5, is \k<1>. If
there were multiple regular expression groups in the replacement
@@ -295,7 +295,7 @@
+ if (javaClass.desiredAssertionStatus()) { assert(expensive()) } // WARN
"""
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Verifying Quickfixes
diff --git a/docs/api-guide/test-modes.md.html b/docs/api-guide/test-modes.md.html
index 18749ed4..6bfa908e 100644
--- a/docs/api-guide/test-modes.md.html
+++ b/docs/api-guide/test-modes.md.html
@@ -57,7 +57,7 @@
override fun lint(): TestLintTask {
return super.lint().testModes(TestMode.PARENTHESIZED)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now when you run your test, it will run *only* this test mode, so you
can set breakpoints and start debugging through the scenario without
@@ -91,7 +91,7 @@
.skipTestModes(TestMode.PARTIAL)
.run()
.expectClean()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Source-Modifying Test Modes
@@ -138,7 +138,7 @@
val rv = RemoteViews(packageName, R.layout.test)
val ov = other as RemoteViews
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
to
@@ -149,7 +149,7 @@
val rv = android.widget.RemoteViews(packageName, R.layout.test)
val ov = other as android.widget.RemoteViews
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This makes sure that your detector handles not only the case where a
symbol appears in its normal imported state, but also when it is fully
@@ -170,7 +170,7 @@
if (receiver is USimpleNameReferenceExpression &&
receiver.identifier == "EnumSet"
) {
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
which will work for code such as `EnumSet.of()` but not
`java.util.EnumSet.of()`.
@@ -182,7 +182,7 @@
val targetClass = node.resolve()?.containingClass?.qualifiedName
?: return
if (targetClass == "java.util.EnumSet") {
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
As with all the source transforming test modes, there are cases where
it doesn't apply. For example, lint had a built-in check for camera
@@ -212,7 +212,7 @@
// does not apply:
return super.lint().skipTestModes(TestMode.FULLY_QUALIFIED);
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Tip
In Kotlin code, you may have code that checks to see if a node is a
@@ -240,7 +240,7 @@
val rv = RemoteViews(packageName, R.layout.test)
val ov = other as RemoteViews
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
to
@@ -251,7 +251,7 @@
val rv = IMPORT_ALIAS_1_REMOTEVIEWS(packageName, R.layout.test)
val ov = other as IMPORT_ALIAS_1_REMOTEVIEWS
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Type Aliasing
@@ -279,7 +279,7 @@
val rv = RemoteViews(packageName, R.layout.test)
val ov = other as RemoteViews
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
to
@@ -293,7 +293,7 @@
typealias TYPE_ALIAS_1 = String
typealias TYPE_ALIAS_2 = Any
typealias TYPE_ALIAS_3 = RemoteViews
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Parenthesis Mode
@@ -347,14 +347,14 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
(t as? String)?.plus("other")?.get(0)?.dec()?.inc()
"foo".chars().allMatch { it.dec() > 0 }.toString()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
to
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
(((((t as? String))?.plus("other"))?.get(0))?.dec())?.inc()
(("foo".chars()).allMatch { (it.dec() > 0) }).toString()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
By default the parenthesis mode limits itself to “likely” unnecessary
parentheses; in particular, it won't put extra parenthesis around
@@ -383,13 +383,13 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
test("test", 5, true)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
to
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
test(n = 5, z = true, s = "test")
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Body Removal
@@ -399,13 +399,13 @@
fun test(): List {
return if (true) listOf("hello") else emptyList()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
with
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
fun test(): List = if (true) listOf("hello") else emptyList()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note that these two ASTs do not look the same; we'll only have an
`UReturnExpression` node in the first case. Therefore, you have to be
@@ -421,13 +421,13 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
if (x < y) { test(x+1) } else test(x+2)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
to
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
if (x < y) test(x+1) else { test(x+2) }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(Here it has removed the braces around the if-then body since they are
optional, and it has added braces around the if-else body since it did
@@ -478,7 +478,7 @@
+ .pattern("acquire\\s*\\(()\\s*\\)")
.with("10*60*1000L /*10 minutes*/")
.build();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### CDATA Mode
@@ -490,7 +490,7 @@
<resources>
<string name="app_name">Application Name</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
you can equivalently use
@@ -499,7 +499,7 @@
<resources>
<string name="app_name"><![CDATA[Application Name]]></string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(where you can place newlines and other unescaped text inside the bracketed span.)
@@ -536,7 +536,7 @@
fun test(parameter: Int = 0) {
implementation()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
it will “inline” these two methods in the AST, such that we see the whole
method body twice:
@@ -549,7 +549,7 @@
fun test(parameter: Int) {
implementation()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If there were additional default parameters, there would be additional
repetitions.
@@ -573,7 +573,7 @@
test(var0)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Again, UAST will instead just repeat the method body. And this means
lint detectors may trigger repeatedly on the same code. In most cases
diff --git a/docs/api-guide/unit-testing.md.html b/docs/api-guide/unit-testing.md.html
index a31d56c8..b6a6d445 100644
--- a/docs/api-guide/unit-testing.md.html
+++ b/docs/api-guide/unit-testing.md.html
@@ -55,7 +55,7 @@
)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lint's testing API is a “fluent API”; you chain method calls together,
and the return objects determine what is allowed next.
@@ -486,6 +486,6 @@
.javaLanguageLevel("17")
.run()
.expect(...)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/checks/AaptCrash.md.html b/docs/checks/AaptCrash.md.html
index 2ab15322..53e556bd 100644
--- a/docs/checks/AaptCrash.md.html
+++ b/docs/checks/AaptCrash.md.html
@@ -48,7 +48,7 @@
[AaptCrash]
<item name="android:id">@+id/titlebar</item>
--------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
<item name="android:layout_height">@dimen/titlebar_height</item>
</style>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ResourceCycleDetectorTest.java)
diff --git a/docs/checks/AcceptsUserCertificates.md.html b/docs/checks/AcceptsUserCertificates.md.html
index 6ec51869..be6fd81a 100644
--- a/docs/checks/AcceptsUserCertificates.md.html
+++ b/docs/checks/AcceptsUserCertificates.md.html
@@ -48,7 +48,7 @@
[AcceptsUserCertificates]
<certificates src="user"/>
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
</trust-anchors>
</base-config>
</network-security-config>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NetworkSecurityConfigDetectorTest.java)
diff --git a/docs/checks/AccessibilityFocus.md.html b/docs/checks/AccessibilityFocus.md.html
index aa7207d4..fad9ce32 100644
--- a/docs/checks/AccessibilityFocus.md.html
+++ b/docs/checks/AccessibilityFocus.md.html
@@ -41,7 +41,7 @@
experience, especially across apps [AccessibilityFocus]
performAccessibilityAction(AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null)
----------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
performAccessibilityAction(AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS, null)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AccessibilityForceFocusDetectorTest.kt)
diff --git a/docs/checks/AccessibilityPolicy.md.html b/docs/checks/AccessibilityPolicy.md.html
new file mode 100644
index 00000000..34e9cae3
--- /dev/null
+++ b/docs/checks/AccessibilityPolicy.md.html
@@ -0,0 +1,228 @@
+
+(#) Accessibility Insights
+
+!!! WARNING: Accessibility Insights
+ This is a warning.
+
+Id
+: `AccessibilityPolicy`
+Summary
+: Accessibility Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Kotlin and Java files, manifest files and resource files
+Editing
+: This check runs on the fly in the IDE editor
+
+Google Play permits the use of the AccessibilityService API across a
+wide range of applications. However, only services designed to help
+people with disabilities access their devices or overcome challenges due
+to their disabilities are eligible to declare themselves as
+accessibility tools by setting `isAccessibilityTool=true` in their
+metadata. These apps are exempt from the prominent disclosure and
+consent requirements. For all other uses, or if not declaring your app
+as an accessibility tool, you will be required to complete an
+accessibility declaration in Play Console and must implement a clear
+in-app disclosure explaining data access and use, and obtain affirmative
+user consent.
+
+**Dos:**
+
+- Declare `isAccessibilityTool=true` accurately if your app’s main goal
+ is disability support in your service’s metadata file.
+- Provide a clear Play Console declaration and demo video if using
+ AccessibilityService API.
+- Implement clear in-app disclosure and obtain user consent if not a
+ designated accessibility tool.
+- Complete an accessibility declaration when you submit a declaration
+ form in your Play Console if you have not declared your app to be an
+ accessibility tool but use the AccessibilityService API
+- Limit data collection and use strictly to the disclosed and declared
+ purposes.
+- Use more narrowly scoped APIs and permissions in lieu of the
+ Accessibility API when possible to achieve the desired
+ functionality.
+
+**Don'ts:**
+
+- Misuse the Accessibility API to bypass privacy settings or alter UI
+ without consent.
+- Claim `isAccessibilityTool=true` if your app's core purpose is not
+ supporting people with disabilities.
+- Neglect the Play Console declaration, video, or necessary in-app
+ disclosures.
+- Collect data beyond what's essential for the declared accessibility
+ features.
+- Rely only on app descriptions or privacy policies for required user
+ disclosures.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-accessibility
+See Help Center article: https://goo.gle/play-help-accessibility
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+res/xml/accessibility.xml:3:Warning: AccessibilityService API usage must
+align with the API policy guidelines. It must not be used to bypass
+privacy controls or change settings without consent.
+[AccessibilityPolicy]
+ android:isAccessibilityTool="true"/>
+ ----------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`res/xml/accessibility.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+ <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
+ android:isAccessibilityTool="true"/>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/AccessibilityServicePolicyDetectorTest.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, `AccessibilityServicePolicyDetector.testFlagsIsAccessibilityTool`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="AccessibilityPolicy"` 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">
+ ...
+ <accessibility-service tools:ignore="AccessibilityPolicy" .../>
+ ...
+ </manifest>
+ ```
+
+* Using a suppression annotation like this on the enclosing
+ element:
+
+ ```kt
+ // Kotlin
+ @Suppress("AccessibilityPolicy")
+ fun method() {
+ problematicStatement()
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("AccessibilityPolicy")
+ void method() {
+ problematicStatement();
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection AccessibilityPolicy
+ 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="AccessibilityPolicy" 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 'AccessibilityPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore AccessibilityPolicy ...`
+ ```
+
+* 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/AccessibilityScrollActions.md.html b/docs/checks/AccessibilityScrollActions.md.html
index 7be95129..15311add 100644
--- a/docs/checks/AccessibilityScrollActions.md.html
+++ b/docs/checks/AccessibilityScrollActions.md.html
@@ -43,7 +43,7 @@
[AccessibilityScrollActions]
override fun onInitializeAccessibilityNodeInfo(info: AccessibilityNodeInfo) {
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -69,7 +69,7 @@
return ScrollView::class.java.name
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AccessibilityViewScrollActionsDetectorTest.kt)
diff --git a/docs/checks/AccessibilityWindowStateChangedEvent.md.html b/docs/checks/AccessibilityWindowStateChangedEvent.md.html
index 6d49e46b..e45a3a1e 100644
--- a/docs/checks/AccessibilityWindowStateChangedEvent.md.html
+++ b/docs/checks/AccessibilityWindowStateChangedEvent.md.html
@@ -75,7 +75,7 @@
changes to the UI. [AccessibilityWindowStateChangedEvent]
if (event.eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -109,7 +109,7 @@
super.onPopulateAccessibilityEvent(event)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AccessibilityWindowStateChangedDetectorTest.kt)
diff --git a/docs/checks/AccidentalOctal.md.html b/docs/checks/AccidentalOctal.md.html
index 994c972a..85000170 100644
--- a/docs/checks/AccidentalOctal.md.html
+++ b/docs/checks/AccidentalOctal.md.html
@@ -40,42 +40,57 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-build.gradle:13:Error: The leading 0 turns this number into octal which
+build.gradle:7:Error: The leading 0 turns this number into octal which
is probably not what was intended (interpreted as 8) [AccidentalOctal]
- versionCode 010
- ---
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ version = release(010)
+ ------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
-apply plugin: 'com.android.application'
+plugins {
+ id("com.android.application")
+}
android {
- defaultConfig {
- // Ok: not octal
- versionCode 1
- versionCode 10
- versionCode 100
- // ok: octal == decimal
- versionCode 01
-
- // Errors
- versionCode 010
-
- // Lint Groovy Bug:
- versionCode 01 // line suffix comments are not handled correctly
+ compileSdk {
+ version = release(010)
+
+ version = release()
+ version = release( 20)
+ version = release( "20")
+ version = release( "S")
+
+ version = release( // 1
+ "S",
+ ) {
+ sdkExtension = 12
}
+
+ version = preview( // 2
+ "S",
+ )
+
+ // Different syntax.
+ version(release(35))
+ version(release 35)
+ version release(35)
+ version = release 35
+
+ // Invalid. Lint will not see it, and project will not build:
+ // version release 35
+ }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.testAccidentalOctal`.
+found for this lint check, `GradleDetector.testCompileSdkVersionNewDslGroovy`.
To report a problem with this extracted sample, visit
https://issuetracker.google.com/issues/new?component=192708.
diff --git a/docs/checks/ActivityIconColor.md.html b/docs/checks/ActivityIconColor.md.html
index 3d720775..018d5bdb 100644
--- a/docs/checks/ActivityIconColor.md.html
+++ b/docs/checks/ActivityIconColor.md.html
@@ -49,7 +49,7 @@
background [ActivityIconColor]
.setStaticIcon(R.drawable.ic_walk)
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
.build()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ActivityIconColorDetectorTest.kt)
diff --git a/docs/checks/AdapterViewChildren.md.html b/docs/checks/AdapterViewChildren.md.html
index 5d3e4727..28222f60 100644
--- a/docs/checks/AdapterViewChildren.md.html
+++ b/docs/checks/AdapterViewChildren.md.html
@@ -44,7 +44,7 @@
children declared in XML [AdapterViewChildren]
<ListView
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
android:layout_height="match_parent" />
</ListView>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ChildCountDetectorTest.kt)
diff --git a/docs/checks/AddJavascriptInterface.md.html b/docs/checks/AddJavascriptInterface.md.html
index 88102616..4f869e36 100644
--- a/docs/checks/AddJavascriptInterface.md.html
+++ b/docs/checks/AddJavascriptInterface.md.html
@@ -59,7 +59,7 @@
application [AddJavascriptInterface]
webView.addJavascriptInterface(object, string);
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -102,7 +102,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AddJavascriptInterfaceDetectorTest.kt)
diff --git a/docs/checks/AdvertisingIdPolicy.md.html b/docs/checks/AdvertisingIdPolicy.md.html
new file mode 100644
index 00000000..ca7ebfdb
--- /dev/null
+++ b/docs/checks/AdvertisingIdPolicy.md.html
@@ -0,0 +1,208 @@
+
+(#) Advertising Id Insights
+
+!!! WARNING: Advertising Id Insights
+ This is a warning.
+
+Id
+: `AdvertisingIdPolicy`
+Summary
+: Advertising Id Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Kotlin and Java files and manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+The Android advertising identifier (AAID) must only be used for
+advertising and user analytics; although we urge you to instead
+transition to App Set ID for analytics. You must respect users' opt-out
+selections and acquire explicit user consent if you link the AAID to
+personally identifiable information (PII). It is crucial to be
+transparent, so disclose any AAID collection and use in a legally
+adequate privacy policy.
+
+**Dos:**
+
+- Submit a declaration form in your Play Console for Google Play
+ services permission.
+- Use App Set ID for non-ads use cases (analytics, fraud).
+
+**Don'ts:**
+
+- Use persistent identifiers for advertising instead of AAID.
+- Link AAID to PII for any analytics purposes -even with consent.
+- Allow third-party code in your app to violate this policy.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-advertising-id
+See Help Center article:
+https://goo.gle/play-help-advertising-identifier
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:3:Warning: Use Advertising Identifier only for
+advertising or user analytics. Respect user choices (opt-outs), get
+consent for PII links, and disclose use clearly. [AdvertisingIdPolicy]
+ <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
+ ------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
+ <uses-sdk android:targetSdkVersion="34"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/AdvertisingIdPolicyDetectorTest.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, `AdvertisingIdPolicyDetector.testFlagsAdIdPermission`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="AdvertisingIdPolicy"` 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">
+ ...
+ <uses-permission tools:ignore="AdvertisingIdPolicy" .../>
+ ...
+ </manifest>
+ ```
+
+* Using a suppression annotation like this on the enclosing
+ element:
+
+ ```kt
+ // Kotlin
+ @Suppress("AdvertisingIdPolicy")
+ fun method() {
+ getId(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("AdvertisingIdPolicy")
+ void method() {
+ getId(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection AdvertisingIdPolicy
+ 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="AdvertisingIdPolicy" 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 'AdvertisingIdPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore AdvertisingIdPolicy ...`
+ ```
+
+* 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/AlertDialogUsage.md.html b/docs/checks/AlertDialogUsage.md.html
index e47e94a6..110f544a 100644
--- a/docs/checks/AlertDialogUsage.md.html
+++ b/docs/checks/AlertDialogUsage.md.html
@@ -47,7 +47,7 @@
[AlertDialogUsage]
public Test(AlertDialog dialog) { }
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -58,7 +58,7 @@
class Test {
public Test(AlertDialog dialog) { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/AlertDialogUsageDetectorTest.kt)
diff --git a/docs/checks/Aligned16KB.md.html b/docs/checks/Aligned16KB.md.html
index cfc35294..fef8923c 100644
--- a/docs/checks/Aligned16KB.md.html
+++ b/docs/checks/Aligned16KB.md.html
@@ -65,7 +65,7 @@
[Aligned16KB]
implementation("org.tensorflow:tensorflow-lite:2.16.1")
---------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant test files:
@@ -74,7 +74,7 @@
dependencies {
implementation("org.tensorflow:tensorflow-lite:2.16.1")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build/intermediates/exploded-aar/org.tensorflow/tensorflow-lite/2.16.1/jni/arm64-v8a/libtensorflowlite_jni.so](examples/arm64-v8a/libtensorflowlite_jni.so)
diff --git a/docs/checks/AllCaps.md.html b/docs/checks/AllCaps.md.html
index e5b4b5b0..fc53dec0 100644
--- a/docs/checks/AllCaps.md.html
+++ b/docs/checks/AllCaps.md.html
@@ -43,7 +43,7 @@
caps conversion [AllCaps]
android:textAllCaps="true"
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -75,7 +75,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</merge>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -83,7 +83,7 @@
<string name="plain">Home Sample</string>
<string name="has_markup">This is <b>bold</b></string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AllCapsDetectorTest.kt)
diff --git a/docs/checks/AllFilesAccessPolicy.md.html b/docs/checks/AllFilesAccessPolicy.md.html
new file mode 100644
index 00000000..edb914d4
--- /dev/null
+++ b/docs/checks/AllFilesAccessPolicy.md.html
@@ -0,0 +1,188 @@
+
+(#) All Files Access Insights
+
+!!! WARNING: All Files Access Insights
+ This is a warning.
+
+Id
+: `AllFilesAccessPolicy`
+Summary
+: All Files Access Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+Google Play policy treats access to user files and directories as
+sensitive and high risk access, so we restrict use of the
+`MANAGE_EXTERNAL_STORAGE` permission on Android 11+. You must have
+essential core app functionality that requires broad access to this
+permission for a user-facing purpose, and never for third parties. This
+helps prevent unnecessary data collection and protects users' privacy.
+Apps requesting this permission must clearly prompt users so they can
+make an informed privacy decision, and get approval through Play’s app
+review.
+
+**Dos:**
+
+- Prioritize using privacy-friendly alternatives instead, like Storage
+ Access Framework or MediaStore API.
+- Declare this permissions when you submit a declaration form in your
+ Play Console.
+- Clearly define and document your app's core functionality in your app
+ review.
+- Clearly prompt users to enable “All files access” for your app under
+ “Special app access” settings.
+
+**Don'ts:**
+
+- Request the `MANAGE_EXTERNAL_STORAGE` permission for non-permitted
+ use-cases like Media Files access or any File selection activity
+ where the user manually selects individual files.
+- Misrepresent the core functionality of your app.
+- Store or share data beyond essential and disclosed needs.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-all-files-access
+See Help Center article: https://goo.gle/play-help-all-files-access
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:4:Warning: To protect user data,
+MANAGE_EXTERNAL_STORAGE requires essential core functionality and Google
+Play’s approval. [AllFilesAccessPolicy]
+ <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
+ ---------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-sdk android:targetSdkVersion="30" />
+ <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/AllFilesAccessPolicyDetectorTest.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, `AllFilesAccessPolicyDetector.testFlagsManageExternalStorage`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="AllFilesAccessPolicy"` 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">
+ ...
+ <uses-permission tools:ignore="AllFilesAccessPolicy" .../>
+ ...
+ </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="AllFilesAccessPolicy" 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 'AllFilesAccessPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore AllFilesAccessPolicy ...`
+ ```
+
+* 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/AllowAllHostnameVerifier.md.html b/docs/checks/AllowAllHostnameVerifier.md.html
index e1673ca6..f55bf914 100644
--- a/docs/checks/AllowAllHostnameVerifier.md.html
+++ b/docs/checks/AllowAllHostnameVerifier.md.html
@@ -54,7 +54,7 @@
[AllowAllHostnameVerifier]
connection.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
--------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -88,7 +88,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AllowAllHostnameVerifierDetectorTest.java)
diff --git a/docs/checks/AlwaysShowAction.md.html b/docs/checks/AlwaysShowAction.md.html
index c5a368ad..16dadc96 100644
--- a/docs/checks/AlwaysShowAction.md.html
+++ b/docs/checks/AlwaysShowAction.md.html
@@ -58,7 +58,7 @@
[AlwaysShowAction]
android:showAsAction="always|collapseActionView"
------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -126,7 +126,7 @@
</group>
</menu>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AlwaysShowActionDetectorTest.java)
diff --git a/docs/checks/AndroidGradlePluginVersion.md.html b/docs/checks/AndroidGradlePluginVersion.md.html
index d1e2c93b..c968aaca 100644
--- a/docs/checks/AndroidGradlePluginVersion.md.html
+++ b/docs/checks/AndroidGradlePluginVersion.md.html
@@ -55,7 +55,7 @@
[AndroidGradlePluginVersion]
gradlePlugins-agp-alpha = "8.1.0-alpha01"
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -92,7 +92,7 @@
android-application3 = { id = "com.android.application", version.ref = "gradlePlugins-agp-dev" }
crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "gradlePlugins-crashlytics" }
dependency-analysis = { id = "com.autonomousapps.dependency-analysis", version.ref = "gradlePlugins-dependency-analysis" }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/AnimatorKeep.md.html b/docs/checks/AnimatorKeep.md.html
index 9eb86c4b..cda089fa 100644
--- a/docs/checks/AnimatorKeep.md.html
+++ b/docs/checks/AnimatorKeep.md.html
@@ -50,7 +50,7 @@
that it is not discarded or renamed in release builds [AnimatorKeep]
public void setProp1(int x) {
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -78,7 +78,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ObjectAnimatorDetectorTest.kt)
diff --git a/docs/checks/AnnotateVersionCheck.md.html b/docs/checks/AnnotateVersionCheck.md.html
index 2718ab45..9c1073f6 100644
--- a/docs/checks/AnnotateVersionCheck.md.html
+++ b/docs/checks/AnnotateVersionCheck.md.html
@@ -56,7 +56,7 @@
[AnnotateVersionCheck]
inline fun <T> T.applyForOreoOrAbove(block: T.() -> Unit): T {
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -83,7 +83,7 @@
}
return this
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SdkIntDetectorTest.kt)
diff --git a/docs/checks/AnnotationProcessorOnCompilePath.md.html b/docs/checks/AnnotationProcessorOnCompilePath.md.html
index 86b7f2e9..dd67d892 100644
--- a/docs/checks/AnnotationProcessorOnCompilePath.md.html
+++ b/docs/checks/AnnotationProcessorOnCompilePath.md.html
@@ -69,7 +69,7 @@
[AnnotationProcessorOnCompilePath]
debugCompile "android.arch.persistence.room:compiler:1.1.1"
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -85,7 +85,7 @@
debugCompile "android.arch.persistence.room:compiler:1.1.1"
implementation "com.jakewharton:butterknife:10.1.0"
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/AppBundleLocaleChanges.md.html b/docs/checks/AppBundleLocaleChanges.md.html
index 57f3728a..130cc32c 100644
--- a/docs/checks/AppBundleLocaleChanges.md.html
+++ b/docs/checks/AppBundleLocaleChanges.md.html
@@ -46,7 +46,7 @@
[AppBundleLocaleChanges]
configuration.locale = locale
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -58,7 +58,7 @@
fun example(configuration: Configuration, locale: Locale) {
configuration.locale = locale
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AppBundleLocaleChangesDetectorTest.kt)
diff --git a/docs/checks/AppCompatCustomView.md.html b/docs/checks/AppCompatCustomView.md.html
index 6949ebd0..13cbb910 100644
--- a/docs/checks/AppCompatCustomView.md.html
+++ b/docs/checks/AppCompatCustomView.md.html
@@ -115,7 +115,7 @@
[AppCompatCustomView]
public class MySpinner extends Spinner { // ERROR
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -225,7 +225,7 @@
public MyChronometer(Context context) { super(context); }
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AppCompatCustomViewDetectorTest.kt)
diff --git a/docs/checks/AppCompatMethod.md.html b/docs/checks/AppCompatMethod.md.html
index 931cfc47..c62f6d2a 100644
--- a/docs/checks/AppCompatMethod.md.html
+++ b/docs/checks/AppCompatMethod.md.html
@@ -76,7 +76,7 @@
setProgressBarIndeterminateVisibility name [AppCompatMethod]
setProgressBarIndeterminateVisibility(true); // ERROR
-------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -104,7 +104,7 @@
setSupportProgressBarIndeterminateVisibility(true); // OK
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AppCompatCallDetectorTest.java)
diff --git a/docs/checks/AppCompatResource.md.html b/docs/checks/AppCompatResource.md.html
index 72f40689..3bbe827e 100644
--- a/docs/checks/AppCompatResource.md.html
+++ b/docs/checks/AppCompatResource.md.html
@@ -50,7 +50,7 @@
not using the appcompat library [AppCompatResource]
app:showAsAction="never" />
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,8 +63,7 @@
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AppCompatResourceDetectorTest.java)
diff --git a/docs/checks/AppIndexingService.md.html b/docs/checks/AppIndexingService.md.html
index 794f06cb..b96f3dcf 100644
--- a/docs/checks/AppIndexingService.md.html
+++ b/docs/checks/AppIndexingService.md.html
@@ -45,7 +45,7 @@
you're targeting. Use a BroadcastReceiver instead. [AppIndexingService]
<action android:name="com.google.firebase.appindexing.UPDATE_INDEX" />
-----------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -66,7 +66,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
@@ -75,7 +75,7 @@
dependencies {
compile 'com.google.firebase:firebase-appindexing:11.0.4'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ManifestDetectorTest.kt)
diff --git a/docs/checks/AppLinkSplitToWebAndCustom.md.html b/docs/checks/AppLinkSplitToWebAndCustom.md.html
index 87b5dbcd..7639ca73 100644
--- a/docs/checks/AppLinkSplitToWebAndCustom.md.html
+++ b/docs/checks/AppLinkSplitToWebAndCustom.md.html
@@ -49,7 +49,7 @@
separate intent filters [AppLinkSplitToWebAndCustom]
<intent-filter android:autoVerify="true" android:order="-1" android:priority="-1">
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -86,14 +86,14 @@
</activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="path">/path</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AppLinksValidDetectorTest.kt)
diff --git a/docs/checks/AppLinkUriRelativeFilterGroupError.md.html b/docs/checks/AppLinkUriRelativeFilterGroupError.md.html
index 8f988d95..0137d06c 100644
--- a/docs/checks/AppLinkUriRelativeFilterGroupError.md.html
+++ b/docs/checks/AppLinkUriRelativeFilterGroupError.md.html
@@ -52,7 +52,7 @@
matching [AppLinkUriRelativeFilterGroupError]
<data android:host='example.com' android:mimeType="application/json" android:pathPrefix='/gizmos' />
----------------------------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -113,7 +113,7 @@
</activity>
</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/AppLinksValidDetectorTest.kt)
diff --git a/docs/checks/AppLinkUrlError.md.html b/docs/checks/AppLinkUrlError.md.html
index 605bd8e8..cc99b671 100644
--- a/docs/checks/AppLinkUrlError.md.html
+++ b/docs/checks/AppLinkUrlError.md.html
@@ -47,7 +47,7 @@
[AppLinkUrlError]
<tools:validation />
--------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -72,7 +72,7 @@
</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/AppLinksValidDetectorTest.kt)
diff --git a/docs/checks/AppLinkWarning.md.html b/docs/checks/AppLinkWarning.md.html
index 289de85a..a00c6be2 100644
--- a/docs/checks/AppLinkWarning.md.html
+++ b/docs/checks/AppLinkWarning.md.html
@@ -60,7 +60,7 @@
an Android App Link. [AppLinkWarning]
<intent-filter> <!-- We expect a warning here -->
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -159,7 +159,7 @@
</activity>
</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/AppLinksValidDetectorTest.kt)
diff --git a/docs/checks/AppLinksAutoVerify.md.html b/docs/checks/AppLinksAutoVerify.md.html
index 7b585412..6d605b51 100644
--- a/docs/checks/AppLinksAutoVerify.md.html
+++ b/docs/checks/AppLinksAutoVerify.md.html
@@ -44,7 +44,7 @@
http://example.com/.well-known/assetlinks.json [AppLinksAutoVerify]
android:host="example.com"
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
</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/AppLinksAutoVerifyDetectorTest.kt)
diff --git a/docs/checks/ApplySharedPref.md.html b/docs/checks/ApplySharedPref.md.html
index b58f8529..94f715a4 100644
--- a/docs/checks/ApplySharedPref.md.html
+++ b/docs/checks/ApplySharedPref.md.html
@@ -45,7 +45,7 @@
whereas apply will handle it in the background [ApplySharedPref]
editor.commit();
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -128,7 +128,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CleanupDetectorTest.kt)
diff --git a/docs/checks/ArcAnimationSpecTypeIssue.md.html b/docs/checks/ArcAnimationSpecTypeIssue.md.html
index a5179501..c1b459b4 100644
--- a/docs/checks/ArcAnimationSpecTypeIssue.md.html
+++ b/docs/checks/ArcAnimationSpecTypeIssue.md.html
@@ -48,19 +48,19 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/test.kt:14:Information: Arc animation is intended for 2D values
-such as Offset, IntOffset or DpOffset.
+src/foo/test.kt:14:Hint: Arc animation is intended for 2D values such as
+Offset, IntOffset or DpOffset.
Otherwise, the animation might not be what you expect.
[ArcAnimationSpecTypeIssue]
ArcAnimationSpec<Float>(ArcAbove)
----------------
-src/foo/test.kt:15:Information: Arc animation is intended for 2D values
-such as Offset, IntOffset or DpOffset.
+src/foo/test.kt:15:Hint: Arc animation is intended for 2D values such as
+Offset, IntOffset or DpOffset.
Otherwise, the animation might not be what you expect.
[ArcAnimationSpecTypeIssue]
ArcAnimationSpec<String>(ArcAbove)
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -81,7 +81,7 @@
ArcAnimationSpec(ArcAbove)
ArcAnimationSpec(ArcAbove)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ArcAnimationSpecTypeDetectorTest.kt)
@@ -100,17 +100,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.animation:animation-core-android:1.9.0-alpha01")
+implementation("androidx.compose.animation:animation-core-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.animation:animation-core-android:1.9.0-alpha01'
+implementation 'androidx.compose.animation:animation-core-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.animation.core.android)
# libs.versions.toml
[versions]
-animation-core-android = "1.9.0-alpha01"
+animation-core-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.animation:animation-core-lint:1.11.0-alpha06`.
[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 ccb50c3d..21930b88 100644
--- a/docs/checks/ArgInFormattedQuantityStringRes.md.html
+++ b/docs/checks/ArgInFormattedQuantityStringRes.md.html
@@ -57,7 +57,7 @@
[ArgInFormattedQuantityStringRes]
String s = res.getQuantityString(0, 3, 3, "asdf");
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -72,7 +72,7 @@
String s = res.getQuantityString(0, 3, 3, "asdf");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/ArgInFormattedQuantityStringResDetectorTest.kt)
diff --git a/docs/checks/AssertionSideEffect.md.html b/docs/checks/AssertionSideEffect.md.html
index 8aabf500..36cc6c72 100644
--- a/docs/checks/AssertionSideEffect.md.html
+++ b/docs/checks/AssertionSideEffect.md.html
@@ -50,7 +50,7 @@
2024 [AssertionSideEffect]
assert(2024 != (f.of = 2024)) // WARN 2
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -63,7 +63,7 @@
assert(42 != f.setOf(42)) // WARN 1
assert(2024 != (f.of = 2024)) // WARN 2
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/Foo.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -79,7 +79,7 @@
return prev;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AssertDetectorTest.kt)
diff --git a/docs/checks/AuthLeak.md.html b/docs/checks/AuthLeak.md.html
index 183dfd55..107c4622 100644
--- a/docs/checks/AuthLeak.md.html
+++ b/docs/checks/AuthLeak.md.html
@@ -45,7 +45,7 @@
src/AuthDemo.java:4:Warning: Possible credential leak [AuthLeak]
private static final String LEAK = "http://someuser:%restofmypass@example.com"; // WARN 2
-----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
private static final String LEAK = "http://someuser:%restofmypass@example.com"; // WARN 2
private static final String URL = "http://%-05s@example.com"; // 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/StringAuthLeakDetectorTest.kt)
diff --git a/docs/checks/AutoDispose.md.html b/docs/checks/AutoDispose.md.html
index 43c50b7a..89bdbde8 100644
--- a/docs/checks/AutoDispose.md.html
+++ b/docs/checks/AutoDispose.md.html
@@ -49,41 +49,35 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/MyActivity.kt:10:Error: [AutoDispose]
- Observable.just(1).subscribe()
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-src/foo/MyActivity.kt:12: Error: [AutoDispose]
- Observable.just(2).subscribe()
- ------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+src/foo/ExampleClass.java:8:Error: Missing Disposable handling: Apply
+AutoDispose or cache the Disposable instance manually and enable lenient
+mode. [AutoDispose]
+ obs.subscribe();
+ ---------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
-`src/foo/MyActivity.kt`:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-package foo
-import androidx.appcompat.app.AppCompatActivity
-import io.reactivex.rxjava3.core.Observable
-import io.reactivex.rxjava3.disposables.CompositeDisposable
-
-class MyActivity: AppCompatActivity {
- private val disposables = CompositeDisposable()
- fun doSomething(flag: Boolean) {
- if (flag) {
- Observable.just(1).subscribe()
- } else {
- Observable.just(2).subscribe()
- }
+`src/foo/ExampleClass.java`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
+package foo;
+import io.reactivex.rxjava3.core.Observable;
+import androidx.fragment.app.Fragment;
+
+class ExampleClass extends Fragment {
+ void names() {
+ Observable obs = Observable.just(1, 2, 3, 4);
+ obs.subscribe();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/uber/AutoDispose/tree/main/static-analysis/autodispose-lint/src/test/kotlin/autodispose2/lint/AutoDisposeDetectorTest.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, `AutoDisposeDetector.checkLenientLintInIfExpression`.
+found for this lint check, `AutoDisposeDetector.observableErrorsOutOnOmittingAutoDispose`.
To report a problem with this extracted sample, visit
https://github.com/uber/AutoDispose/issues.
diff --git a/docs/checks/AutoboxingStateCreation.md.html b/docs/checks/AutoboxingStateCreation.md.html
index 2095efc3..19395dd8 100644
--- a/docs/checks/AutoboxingStateCreation.md.html
+++ b/docs/checks/AutoboxingStateCreation.md.html
@@ -57,11 +57,11 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/androidx/compose/runtime/lint/test/test.kt:8:Information: Prefer
+src/androidx/compose/runtime/lint/test/test.kt:8:Hint: Prefer
mutableStateOf instead of mutableStateOf [AutoboxingStateCreation]
val state = mutableStateOf<>()
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,7 +76,7 @@
val state = mutableStateOf<>()
state.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/AutoboxingStateCreationDetectorTest.kt)
@@ -95,17 +95,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[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 530d2ce0..0b049542 100644
--- a/docs/checks/AutoboxingStateValueProperty.md.html
+++ b/docs/checks/AutoboxingStateValueProperty.md.html
@@ -57,7 +57,7 @@
allocations. [AutoboxingStateValueProperty]
val value = state.value
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
val state = mutableIntStateOf(4)
val value = state.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/AutoboxingStateValuePropertyDetectorTest.kt)
@@ -90,17 +90,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html).
diff --git a/docs/checks/Autofill.md.html b/docs/checks/Autofill.md.html
index 84586a89..628f7e1e 100644
--- a/docs/checks/Autofill.md.html
+++ b/docs/checks/Autofill.md.html
@@ -59,7 +59,7 @@
[Autofill]
<EditText
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -80,7 +80,7 @@
</EditText>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AutofillDetectorTest.java)
diff --git a/docs/checks/AvoidUsingNotNullOperator.md.html b/docs/checks/AvoidUsingNotNullOperator.md.html
index ab6d0af1..2f87e660 100644
--- a/docs/checks/AvoidUsingNotNullOperator.md.html
+++ b/docs/checks/AvoidUsingNotNullOperator.md.html
@@ -57,7 +57,7 @@
[AvoidUsingNotNullOperator]
return t!!.length == 1
--
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
return t!!.length == 1
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/NotNullOperatorDetectorTest.kt)
diff --git a/docs/checks/BackButton.md.html b/docs/checks/BackButton.md.html
index 0d2af11d..44d0258c 100644
--- a/docs/checks/BackButton.md.html
+++ b/docs/checks/BackButton.md.html
@@ -54,7 +54,7 @@
Android; see design guide's navigation section [BackButton]
<Button
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -248,7 +248,7 @@
android:text="@string/goback" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/buttonbar-values.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -267,7 +267,7 @@
<string name="goback">'Back'</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ButtonDetectorTest.java)
diff --git a/docs/checks/BackgroundLocationPolicy.md.html b/docs/checks/BackgroundLocationPolicy.md.html
new file mode 100644
index 00000000..a883ee68
--- /dev/null
+++ b/docs/checks/BackgroundLocationPolicy.md.html
@@ -0,0 +1,184 @@
+
+(#) Background Location Insights
+
+!!! WARNING: Background Location Insights
+ This is a warning.
+
+Id
+: `BackgroundLocationPolicy`
+Summary
+: Background Location Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+To protect user privacy, the background location policy requires apps to
+provide a strong justification and obtain explicit user consent for
+access. Device location data is limited to essential functions that
+directly benefit the user and are central to the app's core purpose; it
+is never permitted solely for advertising or analytics. Minimize your
+requests, choosing lesser sensitive options like coarse location and
+foreground access whenever possible. Foreground Services access of
+device location must be user-initiated and temporary, while background
+is only for critical features.
+
+**Dos:**
+
+- Comply with the Designed for Families policy for apps targeting
+ children.
+- Review additional key considerations and requirements to submit your
+ app for access to location in the background permissions.
+- Complete the Console declaration for background location.
+
+**Don'ts:**
+
+- Use device location solely for advertising or analytics purposes.
+- Access data after it's no longer needed.
+- Request device location for apps directed at children.
+- Sell device location.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-background-location
+See Help Center article: https://goo.gle/play-help-background-location
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:3:Warning: Background location access requires a
+strong justification demonstrating it is critical for your app's core
+functionality and provides a clear user benefit.
+[BackgroundLocationPolicy]
+ <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
+ ------------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/LocationPolicyDetectorTest.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, `LocationPolicyDetector.testFlagsAccessBackgroundLocationPermission`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="BackgroundLocationPolicy"` 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">
+ ...
+ <uses-permission tools:ignore="BackgroundLocationPolicy" .../>
+ ...
+ </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="BackgroundLocationPolicy" 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 'BackgroundLocationPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore BackgroundLocationPolicy ...`
+ ```
+
+* 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/BadConfigurationProvider.md.html b/docs/checks/BadConfigurationProvider.md.html
index 0cce2370..9b8ff450 100644
--- a/docs/checks/BadConfigurationProvider.md.html
+++ b/docs/checks/BadConfigurationProvider.md.html
@@ -52,7 +52,7 @@
com/example/App.kt:Error: Expected Application subtype to implement
Configuration.Provider [BadConfigurationProvider]
1 errors, 0 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -67,7 +67,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`com/example/CustomProvider.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -78,7 +78,7 @@
class Provider: Configuration.Provider {
override fun getWorkManagerConfiguration(): Configuration = TODO()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/work/work-lint/src/test/java/androidx/work/lint/BadConfigurationProviderTest.kt)
@@ -97,17 +97,17 @@
```
// build.gradle.kts
-implementation("androidx.work:work-runtime:2.10.1")
+implementation("androidx.work:work-runtime:2.11.1")
// build.gradle
-implementation 'androidx.work:work-runtime:2.10.1'
+implementation 'androidx.work:work-runtime:2.11.1'
// build.gradle.kts with version catalogs:
implementation(libs.work.runtime)
# libs.versions.toml
[versions]
-work-runtime = "2.10.1"
+work-runtime = "2.11.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.1 is the version this documentation was generated from;
+2.11.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/BadHostnameVerifier.md.html b/docs/checks/BadHostnameVerifier.md.html
index 66263d7d..8ae2db2d 100644
--- a/docs/checks/BadHostnameVerifier.md.html
+++ b/docs/checks/BadHostnameVerifier.md.html
@@ -45,7 +45,7 @@
TLS/SSL server certificates for wrong hostnames [BadHostnameVerifier]
public boolean verify(String hostname, SSLSession session) {
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -89,8 +89,7 @@
}
};
}
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/BadHostnameVerifierDetectorTest.java)
diff --git a/docs/checks/BadPeriodicWorkRequestEnqueue.md.html b/docs/checks/BadPeriodicWorkRequestEnqueue.md.html
index 6d8740b0..63cb6d77 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.1")
+implementation("androidx.work:work-runtime:2.11.1")
// build.gradle
-implementation 'androidx.work:work-runtime:2.10.1'
+implementation 'androidx.work:work-runtime:2.11.1'
// build.gradle.kts with version catalogs:
implementation(libs.work.runtime)
# libs.versions.toml
[versions]
-work-runtime = "2.10.1"
+work-runtime = "2.11.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.1 is the version this documentation was generated from;
+2.11.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/BatteryLife.md.html b/docs/checks/BatteryLife.md.html
index 9b898249..20452d1a 100644
--- a/docs/checks/BatteryLife.md.html
+++ b/docs/checks/BatteryLife.md.html
@@ -77,7 +77,7 @@
[BatteryLife]
Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
-------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -99,7 +99,7 @@
</receiver>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/BatteryTest.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -122,7 +122,7 @@
startActivity(intent);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/BatteryDetectorTest.java)
diff --git a/docs/checks/BidiSpoofing.md.html b/docs/checks/BidiSpoofing.md.html
index 40335a3b..a0b561e2 100644
--- a/docs/checks/BidiSpoofing.md.html
+++ b/docs/checks/BidiSpoofing.md.html
@@ -55,7 +55,7 @@
bidirectional text [BidiSpoofing]
/* end admins only { */
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -70,7 +70,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/CommentingOut.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -83,7 +83,7 @@
/* end admins only { */
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -92,7 +92,7 @@
*/
val valid1 = "LeftRightLeft" // OK
val valid2 = "LeftRightNested LeftLeft" // OK
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/BidirectionalTextDetectorTest.kt)
diff --git a/docs/checks/BinaryOperationInTimber.md.html b/docs/checks/BinaryOperationInTimber.md.html
index 134ea1d8..f3a7cadc 100644
--- a/docs/checks/BinaryOperationInTimber.md.html
+++ b/docs/checks/BinaryOperationInTimber.md.html
@@ -51,7 +51,7 @@
Timber's string formatting [BinaryOperationInTimber]
Timber.d(foo + "bar");
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -65,7 +65,7 @@
Timber.d(foo + "bar");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -77,7 +77,7 @@
Timber.d("${foo}bar")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/JakeWharton/timber/tree/trunk/timber-lint/src/test/java/timber/lint/WrongTimberUsageDetectorTest.kt)
diff --git a/docs/checks/BinderGetCallingInMainThread.md.html b/docs/checks/BinderGetCallingInMainThread.md.html
index 85ed1516..b3ccb4ed 100644
--- a/docs/checks/BinderGetCallingInMainThread.md.html
+++ b/docs/checks/BinderGetCallingInMainThread.md.html
@@ -47,7 +47,7 @@
used inside onBind() [BinderGetCallingInMainThread]
Binder.getCallingPid()
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
Binder.getCallingPid()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/BinderGetCallingInMainThreadDetectorTest.kt)
diff --git a/docs/checks/BindingReceiverParameter.md.html b/docs/checks/BindingReceiverParameter.md.html
index 3afe4d93..fed4357d 100644
--- a/docs/checks/BindingReceiverParameter.md.html
+++ b/docs/checks/BindingReceiverParameter.md.html
@@ -85,7 +85,7 @@
extensions [BindingReceiverParameter]
@Binds fun @receiver:MyQualifier Boolean.bind(): Comparable<Boolean>
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -125,7 +125,7 @@
@Provides fun String.bind(): Comparable = this@bind
@Provides fun @receiver:MyQualifier Boolean.bind(): Comparable = this@bind
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DaggerIssuesDetectorTest.kt)
diff --git a/docs/checks/BindingReturnType.md.html b/docs/checks/BindingReturnType.md.html
index 46b6b524..e89524a8 100644
--- a/docs/checks/BindingReturnType.md.html
+++ b/docs/checks/BindingReturnType.md.html
@@ -56,7 +56,7 @@
type [BindingReturnType]
@Provides fun invalidBind4(): Unit {
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -82,7 +82,7 @@
return Unit
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DaggerIssuesDetectorTest.kt)
diff --git a/docs/checks/BindsMustBeAbstract.md.html b/docs/checks/BindsMustBeAbstract.md.html
index 7570d5df..a36a797a 100644
--- a/docs/checks/BindsMustBeAbstract.md.html
+++ b/docs/checks/BindsMustBeAbstract.md.html
@@ -55,7 +55,7 @@
[BindsMustBeAbstract]
@Binds fun invalidBind2(@MyQualifier real: Unit): Unit
------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -81,7 +81,7 @@
return Unit
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DaggerIssuesDetectorTest.kt)
diff --git a/docs/checks/BindsTypeMismatch.md.html b/docs/checks/BindsTypeMismatch.md.html
index 99f27e88..e3c9307c 100644
--- a/docs/checks/BindsTypeMismatch.md.html
+++ b/docs/checks/BindsTypeMismatch.md.html
@@ -60,7 +60,7 @@
type-assignable [BindsTypeMismatch]
@Binds fun invalidComplexBinding(real: DetailTypeAItemMapper): ItemMapper<ItemDetail>
-------------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -90,7 +90,7 @@
@Binds fun validComplexBinding2(real: DetailTypeAItemMapper): ItemMapper<*>
@Binds fun invalidComplexBinding(real: DetailTypeAItemMapper): ItemMapper
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DaggerIssuesDetectorTest.kt)
diff --git a/docs/checks/BindsWrongParameterCount.md.html b/docs/checks/BindsWrongParameterCount.md.html
index 37973a76..a48f52d7 100644
--- a/docs/checks/BindsWrongParameterCount.md.html
+++ b/docs/checks/BindsWrongParameterCount.md.html
@@ -55,7 +55,7 @@
[BindsWrongParameterCount]
@Binds fun invalidBind(): Number
--------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
@Binds fun invalidBind(real: Int, second: Int): Number
@Binds fun invalidBind(): Number
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DaggerIssuesDetectorTest.kt)
diff --git a/docs/checks/BlockedPrivateApi.md.html b/docs/checks/BlockedPrivateApi.md.html
index 83203fc1..759b6fc1 100644
--- a/docs/checks/BlockedPrivateApi.md.html
+++ b/docs/checks/BlockedPrivateApi.md.html
@@ -47,7 +47,7 @@
[BlockedPrivateApi]
Field deniedField = TelephonyManager.class.getDeclaredField("NETWORK_TYPES"); // ERROR 1
--------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,10 +75,10 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/PrivateApiDetectorTest.kt)
+You can also visit the source code ([PrivateApiDetectorTest.kt](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/PrivateApiDetectorTest.kt)
+[SuppressibleTestModeTest.kt](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/infrastructure/SuppressibleTestModeTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/BomWithoutPlatform.md.html b/docs/checks/BomWithoutPlatform.md.html
index 08ec003a..c8d8074d 100644
--- a/docs/checks/BomWithoutPlatform.md.html
+++ b/docs/checks/BomWithoutPlatform.md.html
@@ -57,7 +57,7 @@
[BomWithoutPlatform]
api("androidx.compose:compose-bom:2023.01.00")
-----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -67,7 +67,7 @@
composeBom = "2023.01.00"
[libraries]
compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
@@ -83,7 +83,7 @@
// Make sure we don't complain about existing platforms
implementation platform("androidx.compose:compose-bom:2023.01.00")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/BottomAppBar.md.html b/docs/checks/BottomAppBar.md.html
index a12e329a..7fe1f781 100644
--- a/docs/checks/BottomAppBar.md.html
+++ b/docs/checks/BottomAppBar.md.html
@@ -40,7 +40,7 @@
[BottomAppBar]
<android.support.design.bottomappbar.BottomAppBar
------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -71,7 +71,7 @@
app:srcCompat="@drawable/ic_add_black_24dp"
tools:ignore="RtlHardcoded"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/wrong1.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -92,7 +92,7 @@
app:navigationIcon="@drawable/ic_menu_black_24dp"/>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/wrong2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -105,7 +105,7 @@
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:navigationIcon="@drawable/ic_menu_black_24dp"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/BottomAppBarDetectorTest.kt)
diff --git a/docs/checks/BrokenIterator.md.html b/docs/checks/BrokenIterator.md.html
index 2f49c1ac..77e49090 100644
--- a/docs/checks/BrokenIterator.md.html
+++ b/docs/checks/BrokenIterator.md.html
@@ -87,7 +87,7 @@
c2a.spliterator().characteristics()) [BrokenIterator]
StreamSupport.stream(c2a.spliterator(), false); // Warn
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -138,7 +138,7 @@
StreamSupport.stream(keys2, false); // OK
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/kt/LinkedHashmapTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -178,7 +178,7 @@
StreamSupport.stream(keys2, false) // OK
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/IteratorDetectorTest.kt)
diff --git a/docs/checks/BuildListAdds.md.html b/docs/checks/BuildListAdds.md.html
index d6c87220..ed9b8ac6 100644
--- a/docs/checks/BuildListAdds.md.html
+++ b/docs/checks/BuildListAdds.md.html
@@ -40,7 +40,7 @@
usually a mistake [BuildListAdds]
return buildList { // ERROR
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -55,7 +55,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/BuildListDetectorTest.kt)
diff --git a/docs/checks/ButtonCase.md.html b/docs/checks/ButtonCase.md.html
index 6c03916a..df0c29f7 100644
--- a/docs/checks/ButtonCase.md.html
+++ b/docs/checks/ButtonCase.md.html
@@ -49,7 +49,7 @@
[ButtonCase]
<string name="giveup2">"CANCEL"</string>
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -243,7 +243,7 @@
android:text="@string/goback" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/buttonbar-values.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -262,7 +262,7 @@
<string name="goback">'Back'</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ButtonDetectorTest.java)
diff --git a/docs/checks/ButtonOrder.md.html b/docs/checks/ButtonOrder.md.html
index 30b185f7..06c72ada 100644
--- a/docs/checks/ButtonOrder.md.html
+++ b/docs/checks/ButtonOrder.md.html
@@ -78,7 +78,7 @@
left (was "Send | Cancel", should be "Cancel | Send") [ButtonOrder]
<Button
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -272,7 +272,7 @@
android:text="@string/goback" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/buttonbar-values.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -291,7 +291,7 @@
<string name="goback">'Back'</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ButtonDetectorTest.java)
diff --git a/docs/checks/ButtonStyle.md.html b/docs/checks/ButtonStyle.md.html
index 30819617..da1c7e38 100644
--- a/docs/checks/ButtonStyle.md.html
+++ b/docs/checks/ButtonStyle.md.html
@@ -145,7 +145,7 @@
?android:attr/buttonBarStyle on the parent) [ButtonStyle]
<Button
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -339,7 +339,7 @@
android:text="@string/goback" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/buttonbar2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -395,7 +395,7 @@
android:src="@drawable/menu_list_divider" />
</RelativeLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/buttonbar3.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -434,7 +434,7 @@
</RelativeLayout>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/buttonbar-values.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -453,7 +453,7 @@
<string name="goback">'Back'</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ButtonDetectorTest.java)
diff --git a/docs/checks/ByteOrderMark.md.html b/docs/checks/ByteOrderMark.md.html
index c795ba6f..321a033e 100644
--- a/docs/checks/ByteOrderMark.md.html
+++ b/docs/checks/ByteOrderMark.md.html
@@ -52,7 +52,7 @@
file [ByteOrderMark]
<manifest package='foo.bar'>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -60,7 +60,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<manifest package='foo.bar'>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-zh-rCN/bom.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -69,7 +69,7 @@
<string name="hanping_chinese_lite_app_name">(Translated name)</string>
<string tools:ignore='ByteOrderMark' name="something">testtest2</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/raw/bom_allowed.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -78,7 +78,7 @@
<string name="hanping_chinese_lite_app_name">(Translated name)</string>
<string tools:ignore='ByteOrderMark' name="something">testtest2</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyTest.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -94,7 +94,7 @@
String s = ""; //OK/suppressed
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`proguard.cfg`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~proguard linenumbers
@@ -103,10 +103,10 @@
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/ByteOrderMarkDetectorTest.java)
+You can also visit the source code ([ByteOrderMarkDetectorTest.java](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/ByteOrderMarkDetectorTest.java)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/CanvasSize.md.html b/docs/checks/CanvasSize.md.html
index 6a6ce5c8..705b22ff 100644
--- a/docs/checks/CanvasSize.md.html
+++ b/docs/checks/CanvasSize.md.html
@@ -72,7 +72,7 @@
[CanvasSize]
int height4 = canvas.getHeight(); // WARN
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -120,7 +120,7 @@
int height4 = canvas.getHeight(); // OK
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyCustomView2.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -146,7 +146,7 @@
val height5 = canvas.getHeight() // WARN
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyDrawable.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -164,7 +164,7 @@
int height2 = canvas.getHeight(); // WARN
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyDrawableKotlin.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -180,7 +180,7 @@
val height2 = canvas.height // WARN
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CanvasSizeDetectorTest.kt)
diff --git a/docs/checks/CheckResult.md.html b/docs/checks/CheckResult.md.html
index 70d6cab3..d183c5dc 100644
--- a/docs/checks/CheckResult.md.html
+++ b/docs/checks/CheckResult.md.html
@@ -43,7 +43,7 @@
[CheckResult]
score.double()
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,10 +61,10 @@
score.double()
return score
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/CheckResultDetectorTest.kt)
+You can also visit the source code ([CheckResultDetectorTest.kt](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/CheckResultDetectorTest.kt)
+[SourceTransformationTestMode.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/main/java/com/android/tools/lint/checks/infrastructure/SourceTransformationTestMode.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/ChildInNonViewGroup.md.html b/docs/checks/ChildInNonViewGroup.md.html
index 0000e8fe..486dac46 100644
--- a/docs/checks/ChildInNonViewGroup.md.html
+++ b/docs/checks/ChildInNonViewGroup.md.html
@@ -39,7 +39,7 @@
declared in XML [ChildInNonViewGroup]
<TextView />
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
</ImageView>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ChildInNonViewGroupDetectorTest.kt)
diff --git a/docs/checks/ChromeOsAbiSupport.md.html b/docs/checks/ChromeOsAbiSupport.md.html
index 6b9e14c0..a20444a6 100644
--- a/docs/checks/ChromeOsAbiSupport.md.html
+++ b/docs/checks/ChromeOsAbiSupport.md.html
@@ -49,7 +49,7 @@
[ChromeOsAbiSupport]
abiFilters 'arm64-v8a'
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/ChromeOsOnConfigurationChanged.md.html b/docs/checks/ChromeOsOnConfigurationChanged.md.html
index 6fd2225b..aeeb5554 100644
--- a/docs/checks/ChromeOsOnConfigurationChanged.md.html
+++ b/docs/checks/ChromeOsOnConfigurationChanged.md.html
@@ -48,7 +48,7 @@
[ChromeOsOnConfigurationChanged]
finish(); // ERROR 1
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,7 +75,7 @@
finish(); // 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/ChromeOsSourceDetectorTest.kt)
diff --git a/docs/checks/ClickableViewAccessibility.md.html b/docs/checks/ClickableViewAccessibility.md.html
index 00d5f51f..abba4c9d 100644
--- a/docs/checks/ClickableViewAccessibility.md.html
+++ b/docs/checks/ClickableViewAccessibility.md.html
@@ -47,7 +47,7 @@
not performClick [ClickableViewAccessibility]
public boolean onTouchEvent(MotionEvent event) {
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -73,7 +73,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ClickableViewAccessibilityDetectorTest.java)
diff --git a/docs/checks/CoarseFineLocation.md.html b/docs/checks/CoarseFineLocation.md.html
index fe66739d..442c1583 100644
--- a/docs/checks/CoarseFineLocation.md.html
+++ b/docs/checks/CoarseFineLocation.md.html
@@ -43,7 +43,7 @@
[CoarseFineLocation]
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
-------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -58,7 +58,7 @@
android:label="@string/app_name" >
</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/FineLocationDetectorTest.kt)
diff --git a/docs/checks/ColorCasing.md.html b/docs/checks/ColorCasing.md.html
index 1be861d7..7f498a7b 100644
--- a/docs/checks/ColorCasing.md.html
+++ b/docs/checks/ColorCasing.md.html
@@ -49,7 +49,7 @@
[ColorCasing]
tools:textColor="#fff"/>
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<TextView xmlns:tools="http://schemas.android.com/tools"
tools:textColor="#fff"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/ColorCasingDetectorTest.kt)
diff --git a/docs/checks/CommitPrefEdits.md.html b/docs/checks/CommitPrefEdits.md.html
index 205f76c5..b038d8b7 100644
--- a/docs/checks/CommitPrefEdits.md.html
+++ b/docs/checks/CommitPrefEdits.md.html
@@ -47,7 +47,7 @@
without a corresponding commit() or apply() call [CommitPrefEdits]
SharedPreferences.Editor editor = preferences.edit();
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -130,7 +130,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CleanupDetectorTest.kt)
diff --git a/docs/checks/CommitTransaction.md.html b/docs/checks/CommitTransaction.md.html
index 5f0912c2..4035ee54 100644
--- a/docs/checks/CommitTransaction.md.html
+++ b/docs/checks/CommitTransaction.md.html
@@ -62,7 +62,7 @@
completed with a commit() call [CommitTransaction]
transaction = getFragmentManager().beginTransaction(); // ERROR 6
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -205,7 +205,7 @@
transaction2.commit();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CleanupDetectorTest.kt)
diff --git a/docs/checks/ComposableDestinationInComposeScope.md.html b/docs/checks/ComposableDestinationInComposeScope.md.html
index 66433fc6..e7181d86 100644
--- a/docs/checks/ComposableDestinationInComposeScope.md.html
+++ b/docs/checks/ComposableDestinationInComposeScope.md.html
@@ -49,7 +49,7 @@
scope [ComposableDestinationInComposeScope]
composable("wrong") { }
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/ComposableDestinationInComposeScopeDetectorTest.kt)
@@ -89,17 +89,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-compose:2.9.0-rc01")
+implementation("androidx.navigation:navigation-compose:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-compose:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-compose:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.compose)
# libs.versions.toml
[versions]
-navigation-compose = "2.9.0-rc01"
+navigation-compose = "2.9.7"
[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-rc01 is the version this documentation was generated from;
+2.9.7 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 7c9466f2..d69b1d09 100644
--- a/docs/checks/ComposableLambdaParameterNaming.md.html
+++ b/docs/checks/ComposableLambdaParameterNaming.md.html
@@ -55,7 +55,7 @@
parameter should be named content [ComposableLambdaParameterNaming]
fun Button(foo: Int, text: @Composable () -> Unit) {
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -69,7 +69,7 @@
fun Button(foo: Int, text: @Composable () -> Unit) {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ComposableLambdaParameterDetectorTest.kt)
@@ -88,17 +88,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[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 67dda703..3686b8c7 100644
--- a/docs/checks/ComposableLambdaParameterPosition.md.html
+++ b/docs/checks/ComposableLambdaParameterPosition.md.html
@@ -54,7 +54,7 @@
lambda [ComposableLambdaParameterPosition]
fun Button(content: @Composable () -> Unit, foo: Int) {
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
fun Button(content: @Composable () -> Unit, foo: Int) {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ComposableLambdaParameterDetectorTest.kt)
@@ -87,17 +87,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[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 be81428a..9919a4a5 100644
--- a/docs/checks/ComposableNaming.md.html
+++ b/docs/checks/ComposableNaming.md.html
@@ -56,7 +56,7 @@
[ComposableNaming]
fun button() {}
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
@Composable
fun button() {}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ComposableNamingDetectorTest.kt)
@@ -87,17 +87,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[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 4e405014..88ece6f5 100644
--- a/docs/checks/ComposableNavGraphInComposeScope.md.html
+++ b/docs/checks/ComposableNavGraphInComposeScope.md.html
@@ -48,7 +48,7 @@
scope [ComposableNavGraphInComposeScope]
navigation("wrong") { }
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/ComposableDestinationInComposeScopeDetectorTest.kt)
@@ -89,17 +89,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-compose:2.9.0-rc01")
+implementation("androidx.navigation:navigation-compose:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-compose:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-compose:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.compose)
# libs.versions.toml
[versions]
-navigation-compose = "2.9.0-rc01"
+navigation-compose = "2.9.7"
[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-rc01 is the version this documentation was generated from;
+2.9.7 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/ComposeCompositionLocalGetter.md.html b/docs/checks/ComposeCompositionLocalGetter.md.html
index 826b7afc..d40efa7e 100644
--- a/docs/checks/ComposeCompositionLocalGetter.md.html
+++ b/docs/checks/ComposeCompositionLocalGetter.md.html
@@ -60,7 +60,7 @@
<option name="allowed-composition-locals" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -76,7 +76,7 @@
[ComposeCompositionLocalGetter]
val LocalPotato get() {
---
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -86,7 +86,7 @@
val LocalPotato get() {
return compositionLocalOf { "Prune" }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/CompositionLocalUsageDetectorTest.kt)
diff --git a/docs/checks/ComposeCompositionLocalUsage.md.html b/docs/checks/ComposeCompositionLocalUsage.md.html
index 931c81a0..c0a48ae9 100644
--- a/docs/checks/ComposeCompositionLocalUsage.md.html
+++ b/docs/checks/ComposeCompositionLocalUsage.md.html
@@ -62,7 +62,7 @@
<option name="allowed-composition-locals" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -92,7 +92,7 @@
more information. [ComposeCompositionLocalUsage]
private val LocalKiwi: String = compositionLocalOf { "Kiwi" }
-------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -102,7 +102,7 @@
internal val LocalPlum: String = staticCompositionLocalOf { "Plum" }
val LocalPrune = compositionLocalOf { "Prune" }
private val LocalKiwi: String = compositionLocalOf { "Kiwi" }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/CompositionLocalUsageDetectorTest.kt)
diff --git a/docs/checks/ComposeContentEmitterReturningValues.md.html b/docs/checks/ComposeContentEmitterReturningValues.md.html
index ba05633f..ee120859 100644
--- a/docs/checks/ComposeContentEmitterReturningValues.md.html
+++ b/docs/checks/ComposeContentEmitterReturningValues.md.html
@@ -65,56 +65,77 @@
<option name="content-emitters" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/test.kt:3:Error: Composable functions should either emit content
-into the composition or return a value, but not both.If a composable
+src/test.kt:9:Error: Composable functions should either emit content
+into the composition or return a value, but not both. If a composable
should offer additional control surfaces to its caller, those control
surfaces or callbacks should be provided as parameters to the composable
-function by the caller.See
+function by the caller. See
https://slackhq.github.io/compose-lints/rules/#do-not-emit-content-and-return-a-result
for more information. [ComposeContentEmitterReturningValues]
-@Composable
-^
-src/test.kt:8:Error: Composable functions should either emit content
-into the composition or return a value, but not both.If a composable
+fun Something2(): String {
+ ----------
+src/test.kt:22:Error: Composable functions should either emit content
+into the composition or return a value, but not both. If a composable
should offer additional control surfaces to its caller, those control
surfaces or callbacks should be provided as parameters to the composable
-function by the caller.See
+function by the caller. See
https://slackhq.github.io/compose-lints/rules/#do-not-emit-content-and-return-a-result
for more information. [ComposeContentEmitterReturningValues]
-@Composable
-^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+fun Something5(): String {
+ ----------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
`src/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
import androidx.compose.runtime.Composable
+import androidx.compose.ui.Text
@Composable
-fun Something() {
- Text("Hi")
- Text("Hola")
+fun Something1() {
+ Something2()
}
@Composable
-fun Something() {
- Spacer16()
+fun Something2(): String {
Text("Hola")
+ Something3()
+}
+@Composable
+fun Something3() {
+ Potato()
+}
+@Composable
+fun Something4() {
+ Banana()
+}
+@Composable
+fun Something5(): String {
+ Something3()
+ Something4()
+}
+@Composable
+fun Potato() {
+ Text("Potato")
+}
+@Composable
+fun Banana() {
+ Text("Banana")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ContentEmitterReturningValuesDetectorTest.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, `ContentEmitterReturningValuesDetector.errors when a Composable function has more than one UI emitter at the top level`.
+found for this lint check, `ContentEmitterReturningValuesDetector.errors when a Composable function has more than one indirect UI emitter at the top level`.
To report a problem with this extracted sample, visit
https://github.com/slackhq/compose-lints/issues.
diff --git a/docs/checks/ComposeM2Api.md.html b/docs/checks/ComposeM2Api.md.html
index 217ad926..feda884e 100644
--- a/docs/checks/ComposeM2Api.md.html
+++ b/docs/checks/ComposeM2Api.md.html
@@ -63,7 +63,7 @@
<option name="allowed-m2-apis" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) enable-mangling-workaround
@@ -80,7 +80,7 @@
<option name="enable-mangling-workaround" value="false" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -110,7 +110,7 @@
information. [ComposeM2Api]
val drawerValue = BottomDrawerValue.Closed
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -143,7 +143,7 @@
val drawerValue = BottomDrawerValue.Closed
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/M2ApiDetectorTest.kt)
diff --git a/docs/checks/ComposeModifierComposed.md.html b/docs/checks/ComposeModifierComposed.md.html
index b5ab8e41..1a602cc8 100644
--- a/docs/checks/ComposeModifierComposed.md.html
+++ b/docs/checks/ComposeModifierComposed.md.html
@@ -71,7 +71,7 @@
for more information. [ComposeModifierComposed]
fun Modifier.something2() = composed { }
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -85,7 +85,7 @@
): Modifier {
TODO()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -97,7 +97,7 @@
fun Modifier.something1() = Modifier.composed { }
fun Modifier.something2() = composed { }
fun Modifier.something3() = somethingElse()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ModifierComposedDetectorTest.kt)
diff --git a/docs/checks/ComposeModifierMissing.md.html b/docs/checks/ComposeModifierMissing.md.html
index 85b47e92..b1fb5ee8 100644
--- a/docs/checks/ComposeModifierMissing.md.html
+++ b/docs/checks/ComposeModifierMissing.md.html
@@ -62,7 +62,7 @@
<option name="content-emitters" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) visibility-threshold
@@ -79,7 +79,7 @@
<option name="visibility-threshold" value=""only_public"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -103,7 +103,7 @@
for more information. [ComposeModifierMissing]
fun Something3(): Unit {
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -135,7 +135,7 @@
Text("Hi!")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ModifierMissingDetectorTest.kt)
diff --git a/docs/checks/ComposeModifierReused.md.html b/docs/checks/ComposeModifierReused.md.html
index 0ddce124..4541592a 100644
--- a/docs/checks/ComposeModifierReused.md.html
+++ b/docs/checks/ComposeModifierReused.md.html
@@ -64,7 +64,7 @@
<option name="content-emitters" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -169,7 +169,7 @@
more information. [ComposeModifierReused]
Box(
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -219,7 +219,7 @@
)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ModifierReusedDetectorTest.kt)
diff --git a/docs/checks/ComposeModifierWithoutDefault.md.html b/docs/checks/ComposeModifierWithoutDefault.md.html
index dfadcba6..a180f8e3 100644
--- a/docs/checks/ComposeModifierWithoutDefault.md.html
+++ b/docs/checks/ComposeModifierWithoutDefault.md.html
@@ -32,61 +32,14 @@
: 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/compose-lints/tree/main/compose-lint-checks/src/main/java/slack/lint/compose/ModifierWithoutDefaultDetector.kt)
Tests
-: [Source Code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ModifierWithoutDefaultDetectorTest.kt)
-Copyright Year
-: 2023
+: [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/LintIssueDocGeneratorTest.kt)
This @Composable function has a modifier parameter but it doesn't have a
default value.See
https://slackhq.github.io/compose-lints/rules/#modifiers-should-have-default-parameters
for more information.
-!!! 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/test.kt:5:Error: This @Composable function has a modifier parameter
-but it doesn't have a default value.See
-https://slackhq.github.io/compose-lints/rules/#modifiers-should-have-default-parameters
-for more information. [ComposeModifierWithoutDefault]
-fun Something(modifier: Modifier) { }
- ------------------
-src/test.kt:7:Error: This @Composable function has a modifier parameter
-but it doesn't have a default value.See
-https://slackhq.github.io/compose-lints/rules/#modifiers-should-have-default-parameters
-for more information. [ComposeModifierWithoutDefault]
-fun Something(modifier: Modifier = Modifier, modifier2: Modifier) { }
- -------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Here is the source file referenced above:
-
-`src/test.kt`:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Modifier
-
-@Composable
-fun Something(modifier: Modifier) { }
-@Composable
-fun Something(modifier: Modifier = Modifier, modifier2: Modifier) { }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can also visit the
-[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ModifierWithoutDefaultDetectorTest.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, `ModifierWithoutDefaultDetector.errors when a Composable has modifiers but without default values`.
-To report a problem with this extracted sample, visit
-https://github.com/slackhq/compose-lints/issues.
-
(##) Including
!!!
diff --git a/docs/checks/ComposeMultipleContentEmitters.md.html b/docs/checks/ComposeMultipleContentEmitters.md.html
index bdeb1562..c2f1f447 100644
--- a/docs/checks/ComposeMultipleContentEmitters.md.html
+++ b/docs/checks/ComposeMultipleContentEmitters.md.html
@@ -64,7 +64,7 @@
<option name="content-emitters" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -84,7 +84,7 @@
for more information. [ComposeMultipleContentEmitters]
@Composable
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -102,7 +102,7 @@
Spacer16()
Text("Hola")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/MultipleContentEmittersDetectorTest.kt)
diff --git a/docs/checks/ComposeMutableParameters.md.html b/docs/checks/ComposeMutableParameters.md.html
index 5eddecb9..9dbbc6a4 100644
--- a/docs/checks/ComposeMutableParameters.md.html
+++ b/docs/checks/ComposeMutableParameters.md.html
@@ -86,7 +86,7 @@
for more information. [ComposeMutableParameters]
fun Something(a: MutableMap<String, String>) {}
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -103,7 +103,7 @@
fun Something(a: HashSet) {}
@Composable
fun Something(a: MutableMap) {}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/MutableParametersDetectorTest.kt)
diff --git a/docs/checks/ComposeNamingLowercase.md.html b/docs/checks/ComposeNamingLowercase.md.html
index d22bb2c3..0b80719c 100644
--- a/docs/checks/ComposeNamingLowercase.md.html
+++ b/docs/checks/ComposeNamingLowercase.md.html
@@ -64,7 +64,7 @@
<option name="allowed-composable-function-names" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -79,7 +79,7 @@
for more information. [ComposeNamingLowercase]
fun MyComposable(): Something { }
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -89,7 +89,7 @@
@Composable
fun MyComposable(): Something { }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ComposableFunctionNamingDetectorTest.kt)
diff --git a/docs/checks/ComposeNamingUppercase.md.html b/docs/checks/ComposeNamingUppercase.md.html
index a480bcd7..a7204410 100644
--- a/docs/checks/ComposeNamingUppercase.md.html
+++ b/docs/checks/ComposeNamingUppercase.md.html
@@ -64,7 +64,7 @@
<option name="allowed-composable-function-names" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -86,7 +86,7 @@
for more information. [ComposeNamingUppercase]
fun myComposable(): Unit { }
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -99,7 +99,7 @@
@Composable
fun myComposable(): Unit { }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ComposableFunctionNamingDetectorTest.kt)
diff --git a/docs/checks/ComposeParameterOrder.md.html b/docs/checks/ComposeParameterOrder.md.html
index 13f0543d..185d232d 100644
--- a/docs/checks/ComposeParameterOrder.md.html
+++ b/docs/checks/ComposeParameterOrder.md.html
@@ -109,7 +109,19 @@
for more information. [ComposeParameterOrder]
fun MyComposable(text1: String, m2: Modifier = Modifier, modifier: Modifier = Modifier, trailing: () -> Unit) { }
---------------------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+src/test.kt:20:Error: Parameters in a composable function should be
+ordered following this pattern: params without defaults, modifiers,
+params with defaults and optionally, a trailing function that might not
+have a default param.
+Current params are: [text: String = "123", modifier: Modifier =
+Modifier, lambda: () -> Unit] but should be [modifier: Modifier =
+Modifier, text: String = "123", lambda: () -> Unit].
+See
+https://slackhq.github.io/compose-lints/rules/#ordering-composable-parameters-properly
+for more information. [ComposeParameterOrder]
+inline fun <reified T> MyComposable(text: String = "123", modifier: Modifier = Modifier, lambda: () -> Unit) : T { }
+ -------------------------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -132,7 +144,10 @@
@Composable
fun MyComposable(text1: String, m2: Modifier = Modifier, modifier: Modifier = Modifier, trailing: () -> Unit) { }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+@Composable
+inline fun MyComposable(text: String = "123", modifier: Modifier = Modifier, lambda: () -> Unit) : T { }
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ParameterOrderDetectorTest.kt)
diff --git a/docs/checks/ComposePreviewNaming.md.html b/docs/checks/ComposePreviewNaming.md.html
index ca95961b..5d120a4c 100644
--- a/docs/checks/ComposePreviewNaming.md.html
+++ b/docs/checks/ComposePreviewNaming.md.html
@@ -66,7 +66,7 @@
for more information. [ComposePreviewNaming]
@BananaPreviews
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -80,7 +80,7 @@
annotation class BananaPreviews
@BananaPreviews
annotation class WithBananaPreviews
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/PreviewNamingDetectorTest.kt)
diff --git a/docs/checks/ComposePreviewPublic.md.html b/docs/checks/ComposePreviewPublic.md.html
index 652e1c9c..cf3c4d9d 100644
--- a/docs/checks/ComposePreviewPublic.md.html
+++ b/docs/checks/ComposePreviewPublic.md.html
@@ -63,7 +63,7 @@
for more information. [ComposePreviewPublic]
@CombinedPreviews
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -77,7 +77,7 @@
class User
class UserProvider : PreviewParameterProvider
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -90,7 +90,7 @@
@CombinedPreviews
@Composable
fun MyComposable() { }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/PreviewPublicDetectorTest.kt)
diff --git a/docs/checks/ComposeRememberMissing.md.html b/docs/checks/ComposeRememberMissing.md.html
index 2cf0d849..7172be54 100644
--- a/docs/checks/ComposeRememberMissing.md.html
+++ b/docs/checks/ComposeRememberMissing.md.html
@@ -63,7 +63,7 @@
for more information. [ComposeRememberMissing]
fun MyComposable(something: State<String> = mutableStateOf("X")) {
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -80,7 +80,7 @@
@Composable
fun MyComposable(something: State = mutableStateOf("X")) {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/RememberMissingDetectorTest.kt)
diff --git a/docs/checks/ComposeUnstableCollections.md.html b/docs/checks/ComposeUnstableCollections.md.html
index 53cd766b..0a8804ac 100644
--- a/docs/checks/ComposeUnstableCollections.md.html
+++ b/docs/checks/ComposeUnstableCollections.md.html
@@ -89,7 +89,7 @@
for more information. [ComposeUnstableCollections]
fun Something(a: Map<String, Int>) {}
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -105,7 +105,7 @@
fun Something(a: Set) {}
@Composable
fun Something(a: Map) {}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/UnstableCollectionsDetectorTest.kt)
diff --git a/docs/checks/ComposeUnstableReceiver.md.html b/docs/checks/ComposeUnstableReceiver.md.html
index ec2ea845..d6753000 100644
--- a/docs/checks/ComposeUnstableReceiver.md.html
+++ b/docs/checks/ComposeUnstableReceiver.md.html
@@ -70,28 +70,21 @@
for more information. [ComposeUnstableReceiver]
fun Example.OtherContent() {}
-------
-src/ExampleInterface.kt:15:Warning: Instance composable functions on
+src/ExampleInterface.kt:16:Warning: Instance composable functions on
non-stable classes will always be recomposed. If possible, make the
receiver type stable or refactor this function if that isn't possible.
See https://slackhq.github.io/compose-lints/rules/#unstable-receivers
for more information. [ComposeUnstableReceiver]
-val Example.OtherContentProperty get() {}
- -------
-src/ExampleInterface.kt:19:Warning: Instance composable functions on
-non-stable classes will always be recomposed. If possible, make the
-receiver type stable or refactor this function if that isn't possible.
-See https://slackhq.github.io/compose-lints/rules/#unstable-receivers
-for more information. [ComposeUnstableReceiver]
- @Composable fun present(): T
+ @Composable fun present()
-------
-src/ExampleInterface.kt:23:Warning: Instance composable functions on
+src/ExampleInterface.kt:20:Warning: Instance composable functions on
non-stable classes will always be recomposed. If possible, make the
receiver type stable or refactor this function if that isn't possible.
See https://slackhq.github.io/compose-lints/rules/#unstable-receivers
for more information. [ComposeUnstableReceiver]
- @Composable override fun present(): String { return "hi" }
+ @Composable override fun present() { println("hi") }
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -110,18 +103,15 @@
@Composable
fun Example.OtherContent() {}
-@get:Composable
-val Example.OtherContentProperty get() {}
-
// Supertypes
-interface Presenter {
- @Composable fun present(): T
+interface Presenter {
+ @Composable fun present()
}
-class HomePresenter : Presenter {
- @Composable override fun present(): String { return "hi" }
+class HomePresenter : Presenter {
+ @Composable override fun present() { println("hi") }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/UnstableReceiverDetectorTest.kt)
diff --git a/docs/checks/ComposeViewModelForwarding.md.html b/docs/checks/ComposeViewModelForwarding.md.html
index 0d416b33..e1d2e81d 100644
--- a/docs/checks/ComposeViewModelForwarding.md.html
+++ b/docs/checks/ComposeViewModelForwarding.md.html
@@ -55,7 +55,7 @@
more information. [ComposeViewModelForwarding]
AnotherComposable(viewModel)
----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -69,7 +69,7 @@
fun MyComposable(viewModel: MyViewModel) {
AnotherComposable(viewModel)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ViewModelForwardingDetectorTest.kt)
diff --git a/docs/checks/ComposeViewModelInjection.md.html b/docs/checks/ComposeViewModelInjection.md.html
index 86b2a058..cd75695b 100644
--- a/docs/checks/ComposeViewModelInjection.md.html
+++ b/docs/checks/ComposeViewModelInjection.md.html
@@ -59,7 +59,7 @@
<option name="viewmodel-factories" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -89,7 +89,7 @@
information. [ComposeViewModelInjection]
val viewModel: MyVM = ()
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -112,7 +112,7 @@
fun MyComposableTrailingLambda(block: () -> Unit) {
val viewModel: MyVM = ()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/ViewModelInjectionDetectorTest.kt)
diff --git a/docs/checks/CompositionLocalNaming.md.html b/docs/checks/CompositionLocalNaming.md.html
index d2b3eb17..3a6dd4f0 100644
--- a/docs/checks/CompositionLocalNaming.md.html
+++ b/docs/checks/CompositionLocalNaming.md.html
@@ -61,7 +61,7 @@
properties should be prefixed with Local [CompositionLocalNaming]
val BazCompositionLocal: ProvidableCompositionLocal<Int> =
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -85,7 +85,7 @@
compositionLocalOf()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CompositionLocalNamingDetectorTest.kt)
@@ -104,17 +104,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[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
index d7a81a0c..b8b4e202 100644
--- a/docs/checks/ConfigurationScreenWidthHeight.md.html
+++ b/docs/checks/ConfigurationScreenWidthHeight.md.html
@@ -91,7 +91,7 @@
[ConfigurationScreenWidthHeight]
val height = configuration.screenHeightDp.dp
----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -126,7 +126,7 @@
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)
@@ -145,17 +145,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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,11 +167,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html).
diff --git a/docs/checks/ConflictingOnColor.md.html b/docs/checks/ConflictingOnColor.md.html
index ebd284c1..89005b7a 100644
--- a/docs/checks/ConflictingOnColor.md.html
+++ b/docs/checks/ConflictingOnColor.md.html
@@ -100,7 +100,7 @@
color for a given background [ConflictingOnColor]
yellow500,
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -162,7 +162,7 @@
yellow500,
false
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/material/material-lint/src/test/java/androidx/compose/material/lint/ColorsDetectorTest.kt)
@@ -181,17 +181,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.material:material-android:1.9.0-alpha01")
+implementation("androidx.compose.material:material-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.material:material-android:1.9.0-alpha01'
+implementation 'androidx.compose.material:material-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.material.android)
# libs.versions.toml
[versions]
-material-android = "1.9.0-alpha01"
+material-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.material:material-lint:1.11.0-alpha06`.
[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 146ebb73..2fc7dd81 100644
--- a/docs/checks/ConstantContentStateKeyInItemsCall.md.html
+++ b/docs/checks/ConstantContentStateKeyInItemsCall.md.html
@@ -103,7 +103,7 @@
to the key. [ConstantContentStateKeyInItemsCall]
state = rememberSharedContentState(0),
-----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -203,7 +203,7 @@
fun MyLayoutComposable(modifier: Modifier = Modifier) {
// Do Nothing
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/SharedTransitionScopeDetectorTest.kt)
@@ -222,17 +222,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.animation:animation-android:1.9.0-alpha01")
+implementation("androidx.compose.animation:animation-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01'
+implementation 'androidx.compose.animation:animation-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.animation.android)
# libs.versions.toml
[versions]
-animation-android = "1.9.0-alpha01"
+animation-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.animation:animation-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html).
diff --git a/docs/checks/ConstantLocale.md.html b/docs/checks/ConstantLocale.md.html
index 4a791888..c52df886 100644
--- a/docs/checks/ConstantLocale.md.html
+++ b/docs/checks/ConstantLocale.md.html
@@ -42,7 +42,7 @@
running [ConstantLocale]
static final Locale errorLocale = Locale.getDefault();
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -62,7 +62,7 @@
}
static final Locale errorLocale = Locale.getDefault();
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/TestLocaleKotlin.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -86,7 +86,7 @@
okLocale5 = Locale.getDefault()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MainActivity.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -113,7 +113,7 @@
Log.d("AppLog", "safe:" + SAFE_DESCRIPTION_DATE_FORMAT.format(today))
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LocaleDetectorTest.kt)
diff --git a/docs/checks/ConstraintLayoutToolsEditorAttribute.md.html b/docs/checks/ConstraintLayoutToolsEditorAttribute.md.html
index f53d0059..4e613aba 100644
--- a/docs/checks/ConstraintLayoutToolsEditorAttribute.md.html
+++ b/docs/checks/ConstraintLayoutToolsEditorAttribute.md.html
@@ -50,7 +50,7 @@
[ConstraintLayoutToolsEditorAttribute]
tools:layout_editor_absoluteX="4dp"/>
-----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
<TextView
xmlns:tools="http://schemas.android.com/tools"
tools:layout_editor_absoluteX="4dp"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/ConstraintLayoutToolsEditorAttributeDetectorTest.kt)
diff --git a/docs/checks/ContentDescription.md.html b/docs/checks/ContentDescription.md.html
index 015c158b..4f47b23b 100644
--- a/docs/checks/ContentDescription.md.html
+++ b/docs/checks/ContentDescription.md.html
@@ -81,7 +81,7 @@
attribute on image [ContentDescription]
<ImageButton android:id="@+id/summary3" android:contentDescription="TODO" />
---------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -102,10 +102,11 @@
<ImageButton android:id="@+id/summary2" android:contentDescription="" />
<ImageButton android:id="@+id/summary3" android:contentDescription="TODO" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/AccessibilityDetectorTest.java)
+You can also visit the source code ([AccessibilityDetectorTest.java](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/AccessibilityDetectorTest.java)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.java)
+[LintBaselineTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/LintBaselineTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/ContextCastToActivity.md.html b/docs/checks/ContextCastToActivity.md.html
index 523d3bdd..879e14b5 100644
--- a/docs/checks/ContextCastToActivity.md.html
+++ b/docs/checks/ContextCastToActivity.md.html
@@ -58,7 +58,7 @@
to Activity, use LocalActivity instead [ContextCastToActivity]
val activity3 = LocalContext.current as? MyActivity
-----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -78,7 +78,7 @@
val activity2 = LocalContext.current as? Activity
val activity3 = LocalContext.current as? MyActivity
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/activity/activity-compose-lint/src/test/java/androidx/activity/compose/lint/LocalContextCastIssueDetectorTest.kt)
@@ -97,17 +97,17 @@
```
// build.gradle.kts
-implementation("androidx.activity:activity-compose:1.11.0-rc01")
+implementation("androidx.activity:activity-compose:1.13.0-rc01")
// build.gradle
-implementation 'androidx.activity:activity-compose:1.11.0-rc01'
+implementation 'androidx.activity:activity-compose:1.13.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.activity.compose)
# libs.versions.toml
[versions]
-activity-compose = "1.11.0-rc01"
+activity-compose = "1.13.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.11.0-rc01 is the version this documentation was generated from;
+1.13.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
index 36d97929..b7d6e063 100644
--- a/docs/checks/CoreLibDesugaringV1.md.html
+++ b/docs/checks/CoreLibDesugaringV1.md.html
@@ -45,7 +45,7 @@
version 2.1.4 [CoreLibDesugaringV1]
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.2.3") // ERROR
------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
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)
diff --git a/docs/checks/CoroutineCreationDuringComposition.md.html b/docs/checks/CoroutineCreationDuringComposition.md.html
index 79349e41..0dd2fba3 100644
--- a/docs/checks/CoroutineCreationDuringComposition.md.html
+++ b/docs/checks/CoroutineCreationDuringComposition.md.html
@@ -157,7 +157,7 @@
[CoroutineCreationDuringComposition]
flowOf(Unit).launchIn(CoroutineScope)
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -218,7 +218,7 @@
flowOf(Unit).launchIn(CoroutineScope)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ComposableCoroutineCreationDetectorTest.kt)
@@ -237,17 +237,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html).
diff --git a/docs/checks/CredManMissingDal.md.html b/docs/checks/CredManMissingDal.md.html
index 0563b165..70745cb8 100644
--- a/docs/checks/CredManMissingDal.md.html
+++ b/docs/checks/CredManMissingDal.md.html
@@ -44,7 +44,7 @@
statements for Credential Manager [CredManMissingDal]
<application>
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -61,7 +61,7 @@
</activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/com/example/app/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -72,7 +72,7 @@
fun foo() {
val createPasswordRequest = CreatePasswordRequest("user", "pass")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CredentialManagerDigitalAssetLinkDetectorTest.kt)
diff --git a/docs/checks/CredentialDependency.md.html b/docs/checks/CredentialDependency.md.html
index b14224c3..5e331308 100644
--- a/docs/checks/CredentialDependency.md.html
+++ b/docs/checks/CredentialDependency.md.html
@@ -42,7 +42,7 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -51,7 +51,7 @@
dependencies {
implementation 'androidx.credentials:credentials:+'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CredentialManagerDependencyDetectorTest.kt)
diff --git a/docs/checks/CredentialManagerMisuse.md.html b/docs/checks/CredentialManagerMisuse.md.html
index f74af78c..b15bd91f 100644
--- a/docs/checks/CredentialManagerMisuse.md.html
+++ b/docs/checks/CredentialManagerMisuse.md.html
@@ -59,7 +59,7 @@
[CredentialManagerMisuse]
credentialManager.getCredentialAsync(context, prepareGetCredentialResponse.pendingGetCredentialHandle!!, cancellationSignal, executor, callback)
------------------------------------------------------------------------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -103,7 +103,7 @@
TODO()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CredentialManagerMisuseDetectorTest.kt)
diff --git a/docs/checks/CredentialManagerSignInWithGoogle.md.html b/docs/checks/CredentialManagerSignInWithGoogle.md.html
index 3fd01180..f9bd0bf9 100644
--- a/docs/checks/CredentialManagerSignInWithGoogle.md.html
+++ b/docs/checks/CredentialManagerSignInWithGoogle.md.html
@@ -47,7 +47,7 @@
[CredentialManagerSignInWithGoogle]
val googleIdOption = GetGoogleIdOption.Builder().build()
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,7 +75,7 @@
fun bar() { TODO() }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CredentialManagerSignInWithGoogleDetectorTest.kt)
diff --git a/docs/checks/CustomPermissionTypo.md.html b/docs/checks/CustomPermissionTypo.md.html
index a9f1dff2..bedeabbe 100644
--- a/docs/checks/CustomPermissionTypo.md.html
+++ b/docs/checks/CustomPermissionTypo.md.html
@@ -45,13 +45,13 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
AndroidManifest.xml:9:Warning: Did you mean my.custom.permission.FOOBAR?
[CustomPermissionTypo]
- <service android:permission="my.custom.permission.FOOBOB" />
- ------------------------------------------------------------
+ <service android:name="service1" android:permission="my.custom.permission.FOOBOB" />
+ ------------------------------------------------------------------------------------
AndroidManifest.xml:11:Warning: Did you mean
my.custom.permission.BAZQUXX? [CustomPermissionTypo]
- <activity android:permission="my.custom.permission.BAZQXX" />
- -------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ <activity android:name="activity1" android:permission="my.custom.permission.BAZQXX" />
+ --------------------------------------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,14 +65,14 @@
<permission android:name="my.custom.permission.BAZQUXX" />
<permission android:name="my.custom.permission.BAZQUZZ" />
<application>
- <service android:permission="my.custom.permission.FOOBOB" />
- <service android:permission="my.custom.permission.FOOBAB" />
- <activity android:permission="my.custom.permission.BAZQXX" />
- <activity android:permission="my.custom.permission.BAZQUZZ" />
- <activity android:permission="my.custom.permission.WAKE_LOCK" />
+ <service android:name="service1" android:permission="my.custom.permission.FOOBOB" />
+ <service android:name="service2" android:permission="my.custom.permission.FOOBAB" />
+ <activity android:name="activity1" android:permission="my.custom.permission.BAZQXX" />
+ <activity android:name="activity2" android:permission="my.custom.permission.BAZQUZZ" />
+ <activity android:name="activity3" android:permission="my.custom.permission.WAKE_LOCK" />
</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/PermissionErrorDetectorTest.kt)
diff --git a/docs/checks/CustomSplashScreen.md.html b/docs/checks/CustomSplashScreen.md.html
index ec284d4d..841f53c0 100644
--- a/docs/checks/CustomSplashScreen.md.html
+++ b/docs/checks/CustomSplashScreen.md.html
@@ -45,7 +45,7 @@
provide its own launch screen [CustomSplashScreen]
class SplashActivity : AppCompatActivity() {
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
class SplashActivity : AppCompatActivity() {
override fun onCreate(savedState: Bundle?) { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SplashScreenDetectorTest.kt)
diff --git a/docs/checks/CustomViewStyleable.md.html b/docs/checks/CustomViewStyleable.md.html
index 4d1fc2b5..41b1d0ab 100644
--- a/docs/checks/CustomViewStyleable.md.html
+++ b/docs/checks/CustomViewStyleable.md.html
@@ -25,9 +25,9 @@
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/CustomViewDetector.java)
+: [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/CustomViewDetector.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/CustomViewDetectorTest.java)
+: [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/CustomViewDetectorTest.kt)
The convention for custom views is to use a `declare-styleable` whose
name matches the custom view class name. The IDE relies on this
@@ -78,7 +78,7 @@
convention.) [CustomViewStyleable]
context.obtainStyledAttributes(R.styleable.MyDeclareStyleable); // Wrong
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -135,17 +135,12 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CustomViewDetectorTest.java)
+[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/CustomViewDetectorTest.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, `CustomViewDetector.test`.
-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:
diff --git a/docs/checks/CustomX509TrustManager.md.html b/docs/checks/CustomX509TrustManager.md.html
index 805461b5..30bdce93 100644
--- a/docs/checks/CustomX509TrustManager.md.html
+++ b/docs/checks/CustomX509TrustManager.md.html
@@ -44,7 +44,7 @@
[CustomX509TrustManager]
TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager() {
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -94,7 +94,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/X509TrustManagerDetectorTest.kt)
diff --git a/docs/checks/CutPasteId.md.html b/docs/checks/CutPasteId.md.html
index cc0547a8..c3974ff6 100644
--- a/docs/checks/CutPasteId.md.html
+++ b/docs/checks/CutPasteId.md.html
@@ -48,7 +48,7 @@
[CutPasteId]
next = (Button) findViewById(R.id.previous); // TYPO, meant R.id.next
---------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -66,15 +66,15 @@
next = (Button) findViewById(R.id.previous); // TYPO, meant R.id.next
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`test.pkg`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text linenumbers
@id/next
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/CutPasteDetectorTest.java)
+You can also visit the source code ([CutPasteDetectorTest.java](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/CutPasteDetectorTest.java)
+[FullyQualifyNamesTestModeTest.kt](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/infrastructure/FullyQualifyNamesTestModeTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/DalvikOverride.md.html b/docs/checks/DalvikOverride.md.html
index 035014cd..2c69f49b 100644
--- a/docs/checks/DalvikOverride.md.html
+++ b/docs/checks/DalvikOverride.md.html
@@ -54,7 +54,7 @@
unintentionally overriding method in pkg1.Class1 [DalvikOverride]
void method() { // Flag this as an accidental override
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -89,7 +89,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/pkg2/Class2.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -126,7 +126,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/OverrideDetectorTest.kt)
diff --git a/docs/checks/DataBindingWithoutKapt.md.html b/docs/checks/DataBindingWithoutKapt.md.html
index 452e0dec..5cfd83eb 100644
--- a/docs/checks/DataBindingWithoutKapt.md.html
+++ b/docs/checks/DataBindingWithoutKapt.md.html
@@ -43,7 +43,7 @@
[DataBindingWithoutKapt]
enabled true
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
enabled true
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/DataExtractionRules.md.html b/docs/checks/DataExtractionRules.md.html
index 0fa0ab95..2d1355d6 100644
--- a/docs/checks/DataExtractionRules.md.html
+++ b/docs/checks/DataExtractionRules.md.html
@@ -58,7 +58,7 @@
[DataExtractionRules]
android:allowBackup="true" >
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -78,7 +78,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -111,8 +111,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ManifestDetectorTest.kt)
diff --git a/docs/checks/DeepLinkInActivityDestination.md.html b/docs/checks/DeepLinkInActivityDestination.md.html
index dd797ed4..c5e1631e 100644
--- a/docs/checks/DeepLinkInActivityDestination.md.html
+++ b/docs/checks/DeepLinkInActivityDestination.md.html
@@ -58,7 +58,7 @@
instead. [DeepLinkInActivityDestination]
<deepLink app:uri="www.example.com" />
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -83,7 +83,7 @@
</activity>
</navigation>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/DeepLinkInActivityDestinationDetectorTest.kt)
@@ -102,17 +102,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-runtime:2.9.0-rc01")
+implementation("androidx.navigation:navigation-runtime:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-runtime:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.runtime)
# libs.versions.toml
[versions]
-navigation-runtime = "2.9.0-rc01"
+navigation-runtime = "2.9.7"
[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-rc01 is the version this documentation was generated from;
+2.9.7 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/DefaultCleartextTraffic.md.html b/docs/checks/DefaultCleartextTraffic.md.html
index 87c7c87b..2036fa2c 100644
--- a/docs/checks/DefaultCleartextTraffic.md.html
+++ b/docs/checks/DefaultCleartextTraffic.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Manifest files
Editing
@@ -54,7 +54,7 @@
to opt out of these insecure connections. [DefaultCleartextTraffic]
<application>
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
<activity android:name='com.example.MainActivity'></activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MissingNetworkSecurityConfigDetectorTest.kt)
@@ -86,17 +86,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/DefaultEncoding.md.html b/docs/checks/DefaultEncoding.md.html
index aef44ccd..91263cea 100644
--- a/docs/checks/DefaultEncoding.md.html
+++ b/docs/checks/DefaultEncoding.md.html
@@ -103,7 +103,7 @@
[DefaultEncoding]
new String(bytes); // ERROR 8
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -150,7 +150,7 @@
new String(bytes, 0, 5, "UTF-8"); // OK 11
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/DefaultEncodingDetectorTest.kt)
diff --git a/docs/checks/DefaultLayoutAttribute.md.html b/docs/checks/DefaultLayoutAttribute.md.html
index 4631f903..808d9fa6 100644
--- a/docs/checks/DefaultLayoutAttribute.md.html
+++ b/docs/checks/DefaultLayoutAttribute.md.html
@@ -49,7 +49,7 @@
need to specify it [DefaultLayoutAttribute]
android:textStyle="normal"/>
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="normal"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/DefaultLayoutAttributeDetectorTest.kt)
diff --git a/docs/checks/DefaultLocale.md.html b/docs/checks/DefaultLocale.md.html
index 4420b36b..29acb2f7 100644
--- a/docs/checks/DefaultLocale.md.html
+++ b/docs/checks/DefaultLocale.md.html
@@ -99,7 +99,7 @@
instead [DefaultLocale]
String.format("WRONG: %1$tm %1$te,%1$tY",
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -142,7 +142,7 @@
new SimpleDateFormat("yyyy-MM-dd", Locale.US); // OK
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LocaleDetectorTest.kt)
diff --git a/docs/checks/DefaultTrustedUserCerts.md.html b/docs/checks/DefaultTrustedUserCerts.md.html
index ab0551b7..6ef83fbe 100644
--- a/docs/checks/DefaultTrustedUserCerts.md.html
+++ b/docs/checks/DefaultTrustedUserCerts.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Manifest files
Editing
@@ -56,7 +56,7 @@
[DefaultTrustedUserCerts]
<application>
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
<activity android:name='com.example.MainActivity'></activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MissingNetworkSecurityConfigDetectorTest.kt)
@@ -88,17 +88,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/DefaultUncaughtExceptionDelegation.md.html b/docs/checks/DefaultUncaughtExceptionDelegation.md.html
index 00846ee0..5bfecc9c 100644
--- a/docs/checks/DefaultUncaughtExceptionDelegation.md.html
+++ b/docs/checks/DefaultUncaughtExceptionDelegation.md.html
@@ -19,7 +19,7 @@
Feedback
: https://issuetracker.google.com/issues/new?component=192708
Since
-: 8.11.0-alpha07 (April 2025)
+: 8.11.0 (June 2025)
Affects
: Kotlin and Java files
Editing
@@ -49,7 +49,7 @@
handler [DefaultUncaughtExceptionDelegation]
setDefaultUncaughtExceptionHandler { thread, throwable ->
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
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)
diff --git a/docs/checks/DeletedProvider.md.html b/docs/checks/DeletedProvider.md.html
index 0eee685b..8498d326 100644
--- a/docs/checks/DeletedProvider.md.html
+++ b/docs/checks/DeletedProvider.md.html
@@ -48,7 +48,7 @@
will crash [DeletedProvider]
SecureRandom instance2 = SecureRandom.getInstance("SHA1PRNG", "Crypto");
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -91,7 +91,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/DeletedProviderDetectorTest.kt)
diff --git a/docs/checks/DenyListedApi.md.html b/docs/checks/DenyListedApi.md.html
index 4e4406e8..12ddc314 100644
--- a/docs/checks/DenyListedApi.md.html
+++ b/docs/checks/DenyListedApi.md.html
@@ -52,7 +52,7 @@
[DenyListedApi]
ContextCompat.getDrawable(context, 42)
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -69,7 +69,7 @@
ContextCompat.getDrawable(context, 42)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/denylistedapis/DenyListedApiDetectorTest.kt)
diff --git a/docs/checks/DenyListedBlockingApi.md.html b/docs/checks/DenyListedBlockingApi.md.html
index 8be1224f..24f393ab 100644
--- a/docs/checks/DenyListedBlockingApi.md.html
+++ b/docs/checks/DenyListedBlockingApi.md.html
@@ -55,7 +55,7 @@
values. [DenyListedBlockingApi]
val result = runBlocking {}
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
class SomeClass {
val result = runBlocking {}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/denylistedapis/DenyListedApiDetectorTest.kt)
diff --git a/docs/checks/Deprecated.md.html b/docs/checks/Deprecated.md.html
index fe9555ad..5e9b6c1d 100644
--- a/docs/checks/Deprecated.md.html
+++ b/docs/checks/Deprecated.md.html
@@ -81,7 +81,7 @@
Use inputType instead [Deprecated]
<EditText android:editable="false" />
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -115,7 +115,7 @@
<EditText android:editable="false" />
</AbsoluteLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/DeprecationDetectorTest.kt)
diff --git a/docs/checks/DeprecatedCall.md.html b/docs/checks/DeprecatedCall.md.html
index 060e135a..fe93dac5 100644
--- a/docs/checks/DeprecatedCall.md.html
+++ b/docs/checks/DeprecatedCall.md.html
@@ -52,7 +52,7 @@
deprecated; consider using an alternative. [DeprecatedCall]
new ThisIsDeprecated();
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -64,7 +64,7 @@
class ThisIsDeprecated {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/slack/test/TestClass.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -78,7 +78,7 @@
new ThisIsDeprecated();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DeprecatedAnnotationDetectorTest.kt)
diff --git a/docs/checks/DeprecatedProvider.md.html b/docs/checks/DeprecatedProvider.md.html
index 8ba987bf..d32550d9 100644
--- a/docs/checks/DeprecatedProvider.md.html
+++ b/docs/checks/DeprecatedProvider.md.html
@@ -64,7 +64,7 @@
a provider and use the default implementation [DeprecatedProvider]
Cipher.getInstance("AES/CBC/PKCS7PADDING", Security.getProvider(BC_PROVIDER)); // Error
---------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -92,7 +92,7 @@
Cipher.getInstance("AES/CBC/PKCS7PADDING", Security.getProvider(BC_PROVIDER)); // 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/CipherGetInstanceDetectorTest.kt)
diff --git a/docs/checks/DeprecatedSinceApi.md.html b/docs/checks/DeprecatedSinceApi.md.html
index 8feb3e94..33eed6e9 100644
--- a/docs/checks/DeprecatedSinceApi.md.html
+++ b/docs/checks/DeprecatedSinceApi.md.html
@@ -63,7 +63,7 @@
level 21 [DeprecatedSinceApi]
val method2 = api2::someMethod2 // WARN 6
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -116,8 +116,7 @@
@DeprecatedSinceApi(api = 21)
fun someMethod2(arg: Int) { }
}
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/DeprecatedSinceApiDetectorTest.kt)
diff --git a/docs/checks/DeprecatedSqlUsage.md.html b/docs/checks/DeprecatedSqlUsage.md.html
index 460a4236..a5764455 100644
--- a/docs/checks/DeprecatedSqlUsage.md.html
+++ b/docs/checks/DeprecatedSqlUsage.md.html
@@ -51,7 +51,7 @@
performed using SqlDelight [DeprecatedSqlUsage]
db.execSQL("DROP TABLE IF EXISTS foo");
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
db.execSQL("DROP TABLE IF EXISTS foo");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DeprecatedSqlUsageDetectorTest.kt)
diff --git a/docs/checks/DetachAndAttachSameFragment.md.html b/docs/checks/DetachAndAttachSameFragment.md.html
index dc9a0348..a7cc79e5 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.6")
+implementation("androidx.fragment:fragment:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment:1.8.6'
+implementation 'androidx.fragment:fragment:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment)
# libs.versions.toml
[versions]
-fragment = "1.8.6"
+fragment = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 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 d2df2794..5d75fb60 100644
--- a/docs/checks/DevModeObsolete.md.html
+++ b/docs/checks/DevModeObsolete.md.html
@@ -57,7 +57,7 @@
[DevModeObsolete]
minSdk = 21
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -78,7 +78,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/DeviceAdmin.md.html b/docs/checks/DeviceAdmin.md.html
index 66c08305..bf885f46 100644
--- a/docs/checks/DeviceAdmin.md.html
+++ b/docs/checks/DeviceAdmin.md.html
@@ -60,7 +60,7 @@
action android.app.action.DEVICE_ADMIN_ENABLED [DeviceAdmin]
<meta-data android:name="android.app.device_admin"
---------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -91,7 +91,7 @@
</receiver>
<!-- Specifies data -->
- <receiver android:name=".DeviceAdminTestReceiver"
+ <receiver android:name=".DeviceAdminTestReceiver2"
android:label="@string/app_name"
android:description="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN">
@@ -104,7 +104,7 @@
</receiver>
<!-- Missing right intent-filter -->
- <receiver android:name=".DeviceAdminTestReceiver"
+ <receiver android:name=".DeviceAdminTestReceiver3"
android:label="@string/app_name"
android:description="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN">
@@ -116,7 +116,7 @@
</receiver>
<!-- Missing intent-filter -->
- <receiver android:name=".DeviceAdminTestReceiver"
+ <receiver android:name=".DeviceAdminTestReceiver4"
android:label="@string/app_name"
android:description="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN">
@@ -125,7 +125,7 @@
</receiver>
<!-- Suppressed -->
- <receiver android:name=".DeviceAdminTestReceiver"
+ <receiver android:name=".DeviceAdminTestReceiver5"
android:label="@string/app_name"
android:description="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN"
@@ -140,7 +140,7 @@
</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/ManifestDetectorTest.kt)
diff --git a/docs/checks/DialogFragmentCallbacksDetector.md.html b/docs/checks/DialogFragmentCallbacksDetector.md.html
index c7499c4c..07383b7a 100644
--- a/docs/checks/DialogFragmentCallbacksDetector.md.html
+++ b/docs/checks/DialogFragmentCallbacksDetector.md.html
@@ -55,7 +55,7 @@
[DialogFragmentCallbacksDetector]
dialog.setOnCancelListener({ });
-------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,10 +75,10 @@
return dialog.create();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can also visit the
-[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/OnCreateDialogIncorrectCallbackDetectorTest.kt)
+You can also visit the source code ([OnCreateDialogIncorrectCallbackDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/OnCreateDialogIncorrectCallbackDetectorTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
@@ -94,17 +94,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment:1.8.6")
+implementation("androidx.fragment:fragment:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment:1.8.6'
+implementation 'androidx.fragment:fragment:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment)
# libs.versions.toml
[versions]
-fragment = "1.8.6"
+fragment = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 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/DiffUtilEquals.md.html b/docs/checks/DiffUtilEquals.md.html
index 78db3853..25ff7464 100644
--- a/docs/checks/DiffUtilEquals.md.html
+++ b/docs/checks/DiffUtilEquals.md.html
@@ -44,7 +44,7 @@
== instead of === ? [DiffUtilEquals]
oldItem === newItem // ERROR
---
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -61,7 +61,7 @@
override fun areContentsTheSame(oldItem: Cheese, newItem: Cheese): Boolean =
oldItem === newItem // ERROR
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyCallback.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -80,7 +80,7 @@
return oldItem == newItem;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/Cheese.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -89,7 +89,7 @@
public class Cheese {
public String id;
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/DiffUtilDetectorTest.kt)
diff --git a/docs/checks/DisableBaselineAlignment.md.html b/docs/checks/DisableBaselineAlignment.md.html
index 1d7c1d91..04c7139d 100644
--- a/docs/checks/DisableBaselineAlignment.md.html
+++ b/docs/checks/DisableBaselineAlignment.md.html
@@ -47,7 +47,7 @@
[DisableBaselineAlignment]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -94,7 +94,7 @@
</FrameLayout>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/InefficientWeightDetectorTest.java)
diff --git a/docs/checks/DisabledAllSafeBrowsing.md.html b/docs/checks/DisabledAllSafeBrowsing.md.html
index 9b41cfe4..e26f1e82 100644
--- a/docs/checks/DisabledAllSafeBrowsing.md.html
+++ b/docs/checks/DisabledAllSafeBrowsing.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Manifest files
Editing
@@ -58,7 +58,7 @@
[DisabledAllSafeBrowsing]
<meta-data android:name='android.webkit.WebView.EnableSafeBrowsing' android:value='false'/>
-------------------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
<activity android:name='com.example.MainActivity'></activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/SafeBrowsingDetectorTest.kt)
@@ -90,17 +90,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/DisallowLookaheadAnimationVisualDebug.md.html b/docs/checks/DisallowLookaheadAnimationVisualDebug.md.html
new file mode 100644
index 00000000..3113cfe0
--- /dev/null
+++ b/docs/checks/DisallowLookaheadAnimationVisualDebug.md.html
@@ -0,0 +1,213 @@
+
+(#) LookaheadAnimationVisualDebugging and CustomizedLookaheadAnimationVisualDebugging are disallowed in production code
+
+!!! ERROR: LookaheadAnimationVisualDebugging and CustomizedLookaheadAnimationVisualDebugging are disallowed in production code
+ This is an error, and is also enforced at build time when
+ supported by the build system. For Android this means it will
+ run during release builds.
+
+Id
+: `DisallowLookaheadAnimationVisualDebug`
+Summary
+: LookaheadAnimationVisualDebugging and CustomizedLookaheadAnimationVisualDebugging are disallowed in production code
+Severity
+: Fatal
+Category
+: Correctness
+Platform
+: Any
+Vendor
+: Jetpack Compose
+Identifier
+: androidx.compose.animation
+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-android](androidx_compose_animation_animation-android.md.html)
+Since
+: 1.11.0-alpha03
+Affects
+: Kotlin and Java files
+Editing
+: This check runs on the fly in the IDE editor
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/LookaheadAnimationVisualDebugHelperDetectorTest.kt)
+
+Remove LookaheadAnimationVisualDebugging and
+CustomizedLookaheadAnimationVisualDebugging. They are debugging tools
+for shared element and animated bounds animations that can introduce
+performance overhead.
+They are not intended for use in release builds.
+
+!!! 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/foo/test.kt:9:Error: LookaheadAnimationVisualDebugging and
+CustomizedLookaheadAnimationVisualDebugging are disallowed in production
+code. [DisallowLookaheadAnimationVisualDebug]
+ LookaheadAnimationVisualDebugging {
+ ^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here are the relevant source files:
+
+`src/foo/test.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package foo
+
+import androidx.compose.animation.*
+import androidx.compose.runtime.*
+
+@Composable
+fun MyScreen() {
+ LookaheadAnimationVisualDebugging {
+ MyComposableContent()
+ }
+}
+
+@Composable
+fun MyComposableContent() {
+ // Content goes here
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`src/androidx/compose/runtime/RuntimeStubs.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package androidx.compose.runtime
+
+annotation class Composable
+
+open class ProvidableCompositionLocal
+fun compositionLocalOf(defaultFactory: () -> T): ProvidableCompositionLocal =
+ ProvidableCompositionLocal()
+
+@Composable
+fun CompositionLocalProvider(
+ provides: ProvidableCompositionLocal,
+ content: @Composable () -> Unit
+) {
+ content()
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/LookaheadAnimationVisualDebugHelperDetectorTest.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, `LookaheadAnimationVisualDebuggingDetector.scopeUsageIsFlagged_withQuickFix`.
+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-android:1.11.0-alpha06")
+
+// build.gradle
+implementation 'androidx.compose.animation:animation-android:1.11.0-alpha06'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.animation.android)
+
+# libs.versions.toml
+[versions]
+animation-android = "1.11.0-alpha06"
+[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-android = {
+ module = "androidx.compose.animation:animation-android",
+ version.ref = "animation-android"
+}
+```
+
+1.11.0-alpha06 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.11.0-alpha06`.
+
+
+[Additional details about androidx.compose.animation:animation-android](androidx_compose_animation_animation-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("DisallowLookaheadAnimationVisualDebug")
+ fun method() {
+ LookaheadAnimationVisualDebugging(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("DisallowLookaheadAnimationVisualDebug")
+ void method() {
+ LookaheadAnimationVisualDebugging(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection DisallowLookaheadAnimationVisualDebug
+ 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="DisallowLookaheadAnimationVisualDebug" 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 'DisallowLookaheadAnimationVisualDebug'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore DisallowLookaheadAnimationVisualDebug ...`
+ ```
+
+* 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/DiscouragedApi.md.html b/docs/checks/DiscouragedApi.md.html
index a2454763..0579cb3e 100644
--- a/docs/checks/DiscouragedApi.md.html
+++ b/docs/checks/DiscouragedApi.md.html
@@ -45,7 +45,7 @@
[DiscouragedApi]
Resources.getValue("name", testValue, false);
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
Resources.getValue(0, testValue, false);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/DiscouragedDetectorTest.kt)
diff --git a/docs/checks/DiscouragedPrivateApi.md.html b/docs/checks/DiscouragedPrivateApi.md.html
index 7526711d..b0f375ef 100644
--- a/docs/checks/DiscouragedPrivateApi.md.html
+++ b/docs/checks/DiscouragedPrivateApi.md.html
@@ -58,7 +58,7 @@
[DiscouragedPrivateApi]
Method m3 = AssetManager.class.getDeclaredMethod("addAssetPath", path.getClass());
---------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -85,7 +85,7 @@
Method m7 = activityClass.getDeclaredMethod("dispatchActivityPostCreated", bundleClass);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/application/ReflectionTestKotlin.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -107,7 +107,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PrivateApiDetectorTest.kt)
diff --git a/docs/checks/DoNotCallProviders.md.html b/docs/checks/DoNotCallProviders.md.html
index 5f5a0bc3..b670d32e 100644
--- a/docs/checks/DoNotCallProviders.md.html
+++ b/docs/checks/DoNotCallProviders.md.html
@@ -65,7 +65,7 @@
called directly by user code. [DoNotCallProviders]
producer()
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -113,7 +113,7 @@
abstract fun moduleInstance(): MyModule
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DoNotCallProvidersDetectorTest.kt)
diff --git a/docs/checks/DoNotExposeEitherNetInRepositories.md.html b/docs/checks/DoNotExposeEitherNetInRepositories.md.html
index b56515df..e3a4b8c5 100644
--- a/docs/checks/DoNotExposeEitherNetInRepositories.md.html
+++ b/docs/checks/DoNotExposeEitherNetInRepositories.md.html
@@ -52,7 +52,7 @@
EitherNet types directly. [DoNotExposeEitherNetInRepositories]
ApiResult<String, Exception> getResult();
----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -61,7 +61,7 @@
package com.slack.eithernet
interface ApiResult
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/MyRepository.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -78,7 +78,7 @@
String getString();
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/MyClassRepository.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -102,7 +102,7 @@
private ApiResult getResultProtected();
public abstract String getString();
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/eithernet/DoNotExposeEitherNetInRepositoriesDetectorTest.kt)
diff --git a/docs/checks/DoNotMock.md.html b/docs/checks/DoNotMock.md.html
index 4278f74d..b30ca7bc 100644
--- a/docs/checks/DoNotMock.md.html
+++ b/docs/checks/DoNotMock.md.html
@@ -65,7 +65,7 @@
<option name="mock-annotations" value=""org.mockito.Mock,org.mockito.Spy"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-factories
@@ -82,7 +82,7 @@
<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>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-report
@@ -99,7 +99,7 @@
<option name="mock-report" value=""none"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -121,7 +121,7 @@
BECAUSE REASONS [DoNotMock]
@Mock lateinit var mock4: TestClass4
------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -148,7 +148,7 @@
interface TestClass4 {
fun fake(): TestClass4? = null
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`test/test/slack/test/TestClass.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -162,7 +162,7 @@
@Mock lateinit var mock3: TestClass3
@Mock lateinit var mock4: TestClass4
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/DoNotMockMockDetectorTest.kt)
diff --git a/docs/checks/DoNotMockAnything.md.html b/docs/checks/DoNotMockAnything.md.html
index 17e0d171..6f67c03a 100644
--- a/docs/checks/DoNotMockAnything.md.html
+++ b/docs/checks/DoNotMockAnything.md.html
@@ -67,7 +67,7 @@
<option name="mock-annotations" value=""org.mockito.Mock,org.mockito.Spy"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-factories
@@ -84,7 +84,7 @@
<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>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-report
@@ -101,7 +101,7 @@
<option name="mock-report" value=""none"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Including
diff --git a/docs/checks/DoNotMockAutoValue.md.html b/docs/checks/DoNotMockAutoValue.md.html
index 31e97a83..90d7a466 100644
--- a/docs/checks/DoNotMockAutoValue.md.html
+++ b/docs/checks/DoNotMockAutoValue.md.html
@@ -63,7 +63,7 @@
<option name="mock-annotations" value=""org.mockito.Mock,org.mockito.Spy"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-factories
@@ -80,7 +80,7 @@
<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>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-report
@@ -97,7 +97,7 @@
<option name="mock-report" value=""none"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Including
diff --git a/docs/checks/DoNotMockDataClass.md.html b/docs/checks/DoNotMockDataClass.md.html
index 61017640..1bf10610 100644
--- a/docs/checks/DoNotMockDataClass.md.html
+++ b/docs/checks/DoNotMockDataClass.md.html
@@ -37,7 +37,7 @@
Implementation
: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/main/java/slack/lint/mocking/MockDetector.kt)
Tests
-: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/DoNotMockMockDetectorTest.kt)
+: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/MockDetectorOptionsTest.kt)
Copyright Year
: 2021
@@ -63,7 +63,7 @@
<option name="mock-annotations" value=""org.mockito.Mock,org.mockito.Spy"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-factories
@@ -80,7 +80,7 @@
<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>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-report
@@ -97,7 +97,128 @@
<option name="mock-report" value=""none"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+test/slack/test/MyTests.kt:11:Error: 'slack.test.DataClass' is a data
+class, so mocking it should not be necessary [DoNotMockDataClass]
+ @MockK lateinit var fieldDataMock: DataClass
+ --------------------------------------------
+test/slack/test/MyTests.kt:12:Error: 'slack.test.DataClass' is a data
+class, so mocking it should not be necessary [DoNotMockDataClass]
+ @SpyK lateinit var fieldDataSpy: DataClass
+ ------------------------------------------
+test/slack/test/MyTests.kt:15:Error: 'slack.test.DataClass' is a data
+class, so mocking it should not be necessary [DoNotMockDataClass]
+ val localMock1: DataClass = mockk()
+ -------
+test/slack/test/MyTests.kt:16:Error: 'slack.test.DataClass' is a data
+class, so mocking it should not be necessary [DoNotMockDataClass]
+ val localMock2 = mockk<DataClass>()
+ ------------------
+test/slack/test/MyTests.kt:18:Error: 'slack.test.DataClass' is a data
+class, so mocking it should not be necessary [DoNotMockDataClass]
+ val localSpy1: DataClass = spyk()
+ ------
+test/slack/test/MyTests.kt:19:Error: 'slack.test.DataClass' is a data
+class, so mocking it should not be necessary [DoNotMockDataClass]
+ val localSpy2 = spyk<DataClass>()
+ -----------------
+test/slack/test/MyTests.kt:20:Error: 'slack.test.DataClass' is a data
+class, so mocking it should not be necessary [DoNotMockDataClass]
+ val localSpy3 = spyk(localMock1)
+ ----------------
+test/slack/test/MyTests.kt:23:Error: 'slack.test.DataClass' is a data
+class, so mocking it should not be necessary [DoNotMockDataClass]
+ val localClassMock = mockkClass<DataClass>(DataClass::class)
+ ---------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`test/slack/test/MyTests.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package slack.test
+
+import io.mockk.impl.annotations.MockK
+import io.mockk.impl.annotations.SpyK
+import io.mockk.mockk
+import io.mockk.mockkClass
+import io.mockk.mockkObject
+import io.mockk.spyk
+
+class MyTests {
+ @MockK lateinit var fieldDataMock: DataClass
+ @SpyK lateinit var fieldDataSpy: DataClass
+
+ fun dataClass() {
+ val localMock1: DataClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: DataClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(DataClass::class)
+ }
+
+ @MockK lateinit var fieldSealedMock: SealedClass
+ @SpyK lateinit var fieldSealedSpy: SealedClass
+
+ fun sealedClass() {
+ val localMock1: SealedClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: SealedClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(SealedClass::class)
+ }
+
+ @MockK lateinit var fieldObjectMock: ObjectClass
+ @SpyK lateinit var fieldObjectSpy: ObjectClass
+
+ fun objectClass() {
+ val localMock1: ObjectClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: ObjectClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(ObjectClass::class)
+
+ // Wrong Error: 'kotlin.Unit' is an object, so mocking it should not be necessary [DoNotMockObjectClass]
+ // Wrong Warning: platform type 'kotlin.Unit' should not be mocked [DoNotMockPlatformTypes]
+ // mockkObject(ObjectClass)
+ }
+
+ fun platformTypes() {
+ // java.
+ mockk>()
+ mockk()
+ // kotlin.
+ mockk()
+ mockk>()
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/MockDetectorOptionsTest.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, `MockDetector.tests`.
+To report a problem with this extracted sample, visit
+https://github.com/slackhq/slack-lints.
(##) Including
diff --git a/docs/checks/DoNotMockObjectClass.md.html b/docs/checks/DoNotMockObjectClass.md.html
index 2bac1692..73bfaa5c 100644
--- a/docs/checks/DoNotMockObjectClass.md.html
+++ b/docs/checks/DoNotMockObjectClass.md.html
@@ -37,7 +37,7 @@
Implementation
: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/main/java/slack/lint/mocking/MockDetector.kt)
Tests
-: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/DoNotMockMockDetectorTest.kt)
+: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/MockDetectorOptionsTest.kt)
Copyright Year
: 2021
@@ -63,7 +63,7 @@
<option name="mock-annotations" value=""org.mockito.Mock,org.mockito.Spy"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-factories
@@ -80,7 +80,7 @@
<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>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-report
@@ -97,7 +97,128 @@
<option name="mock-report" value=""none"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+test/slack/test/MyTests.kt:41:Error: 'slack.test.ObjectClass' is an
+object, so mocking it should not be necessary [DoNotMockObjectClass]
+ @MockK lateinit var fieldObjectMock: ObjectClass
+ ------------------------------------------------
+test/slack/test/MyTests.kt:42:Error: 'slack.test.ObjectClass' is an
+object, so mocking it should not be necessary [DoNotMockObjectClass]
+ @SpyK lateinit var fieldObjectSpy: ObjectClass
+ ----------------------------------------------
+test/slack/test/MyTests.kt:45:Error: 'slack.test.ObjectClass' is an
+object, so mocking it should not be necessary [DoNotMockObjectClass]
+ val localMock1: ObjectClass = mockk()
+ -------
+test/slack/test/MyTests.kt:46:Error: 'slack.test.ObjectClass' is an
+object, so mocking it should not be necessary [DoNotMockObjectClass]
+ val localMock2 = mockk<ObjectClass>()
+ --------------------
+test/slack/test/MyTests.kt:48:Error: 'slack.test.ObjectClass' is an
+object, so mocking it should not be necessary [DoNotMockObjectClass]
+ val localSpy1: ObjectClass = spyk()
+ ------
+test/slack/test/MyTests.kt:49:Error: 'slack.test.ObjectClass' is an
+object, so mocking it should not be necessary [DoNotMockObjectClass]
+ val localSpy2 = spyk<ObjectClass>()
+ -------------------
+test/slack/test/MyTests.kt:50:Error: 'slack.test.ObjectClass' is an
+object, so mocking it should not be necessary [DoNotMockObjectClass]
+ val localSpy3 = spyk(localMock1)
+ ----------------
+test/slack/test/MyTests.kt:53:Error: 'slack.test.ObjectClass' is an
+object, so mocking it should not be necessary [DoNotMockObjectClass]
+ val localClassMock = mockkClass<ObjectClass>(ObjectClass::class)
+ -------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`test/slack/test/MyTests.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package slack.test
+
+import io.mockk.impl.annotations.MockK
+import io.mockk.impl.annotations.SpyK
+import io.mockk.mockk
+import io.mockk.mockkClass
+import io.mockk.mockkObject
+import io.mockk.spyk
+
+class MyTests {
+ @MockK lateinit var fieldDataMock: DataClass
+ @SpyK lateinit var fieldDataSpy: DataClass
+
+ fun dataClass() {
+ val localMock1: DataClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: DataClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(DataClass::class)
+ }
+
+ @MockK lateinit var fieldSealedMock: SealedClass
+ @SpyK lateinit var fieldSealedSpy: SealedClass
+
+ fun sealedClass() {
+ val localMock1: SealedClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: SealedClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(SealedClass::class)
+ }
+
+ @MockK lateinit var fieldObjectMock: ObjectClass
+ @SpyK lateinit var fieldObjectSpy: ObjectClass
+
+ fun objectClass() {
+ val localMock1: ObjectClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: ObjectClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(ObjectClass::class)
+
+ // Wrong Error: 'kotlin.Unit' is an object, so mocking it should not be necessary [DoNotMockObjectClass]
+ // Wrong Warning: platform type 'kotlin.Unit' should not be mocked [DoNotMockPlatformTypes]
+ // mockkObject(ObjectClass)
+ }
+
+ fun platformTypes() {
+ // java.
+ mockk>()
+ mockk()
+ // kotlin.
+ mockk()
+ mockk>()
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/MockDetectorOptionsTest.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, `MockDetector.tests`.
+To report a problem with this extracted sample, visit
+https://github.com/slackhq/slack-lints.
(##) Including
diff --git a/docs/checks/DoNotMockPlatformTypes.md.html b/docs/checks/DoNotMockPlatformTypes.md.html
index 8120480b..465378e5 100644
--- a/docs/checks/DoNotMockPlatformTypes.md.html
+++ b/docs/checks/DoNotMockPlatformTypes.md.html
@@ -37,7 +37,7 @@
Implementation
: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/main/java/slack/lint/mocking/MockDetector.kt)
Tests
-: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/DoNotMockMockDetectorTest.kt)
+: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/MockDetectorOptionsTest.kt)
Copyright Year
: 2021
@@ -67,7 +67,7 @@
<option name="mock-annotations" value=""org.mockito.Mock,org.mockito.Spy"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-factories
@@ -84,7 +84,7 @@
<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>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-report
@@ -101,7 +101,112 @@
<option name="mock-report" value=""none"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+test/slack/test/MyTests.kt:62:Error: platform type
+'java.lang.Comparable' should not be mocked [DoNotMockPlatformTypes]
+ mockk<Comparable<String>>()
+ ---------------------------
+test/slack/test/MyTests.kt:63:Error: platform type 'java.lang.Runnable'
+should not be mocked [DoNotMockPlatformTypes]
+ mockk<Runnable>()
+ -----------------
+test/slack/test/MyTests.kt:65:Error: platform type
+'kotlin.io.FileTreeWalk' should not be mocked [DoNotMockPlatformTypes]
+ mockk<FileTreeWalk>()
+ ---------------------
+test/slack/test/MyTests.kt:66:Error: platform type 'kotlin.Lazy' should
+not be mocked [DoNotMockPlatformTypes]
+ mockk<Lazy<String>>()
+ ---------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`test/slack/test/MyTests.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package slack.test
+
+import io.mockk.impl.annotations.MockK
+import io.mockk.impl.annotations.SpyK
+import io.mockk.mockk
+import io.mockk.mockkClass
+import io.mockk.mockkObject
+import io.mockk.spyk
+
+class MyTests {
+ @MockK lateinit var fieldDataMock: DataClass
+ @SpyK lateinit var fieldDataSpy: DataClass
+
+ fun dataClass() {
+ val localMock1: DataClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: DataClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(DataClass::class)
+ }
+
+ @MockK lateinit var fieldSealedMock: SealedClass
+ @SpyK lateinit var fieldSealedSpy: SealedClass
+
+ fun sealedClass() {
+ val localMock1: SealedClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: SealedClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(SealedClass::class)
+ }
+
+ @MockK lateinit var fieldObjectMock: ObjectClass
+ @SpyK lateinit var fieldObjectSpy: ObjectClass
+
+ fun objectClass() {
+ val localMock1: ObjectClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: ObjectClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(ObjectClass::class)
+
+ // Wrong Error: 'kotlin.Unit' is an object, so mocking it should not be necessary [DoNotMockObjectClass]
+ // Wrong Warning: platform type 'kotlin.Unit' should not be mocked [DoNotMockPlatformTypes]
+ // mockkObject(ObjectClass)
+ }
+
+ fun platformTypes() {
+ // java.
+ mockk>()
+ mockk()
+ // kotlin.
+ mockk()
+ mockk>()
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/MockDetectorOptionsTest.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, `MockDetector.tests`.
+To report a problem with this extracted sample, visit
+https://github.com/slackhq/slack-lints.
(##) Including
diff --git a/docs/checks/DoNotMockRecordClass.md.html b/docs/checks/DoNotMockRecordClass.md.html
index dd681f34..7a07e7a9 100644
--- a/docs/checks/DoNotMockRecordClass.md.html
+++ b/docs/checks/DoNotMockRecordClass.md.html
@@ -63,7 +63,7 @@
<option name="mock-annotations" value=""org.mockito.Mock,org.mockito.Spy"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-factories
@@ -80,7 +80,7 @@
<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>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-report
@@ -97,7 +97,7 @@
<option name="mock-report" value=""none"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Including
diff --git a/docs/checks/DoNotMockSealedClass.md.html b/docs/checks/DoNotMockSealedClass.md.html
index 606113c4..eec7e548 100644
--- a/docs/checks/DoNotMockSealedClass.md.html
+++ b/docs/checks/DoNotMockSealedClass.md.html
@@ -37,7 +37,7 @@
Implementation
: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/main/java/slack/lint/mocking/MockDetector.kt)
Tests
-: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/DoNotMockMockDetectorTest.kt)
+: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/MockDetectorOptionsTest.kt)
Copyright Year
: 2021
@@ -64,7 +64,7 @@
<option name="mock-annotations" value=""org.mockito.Mock,org.mockito.Spy"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-factories
@@ -81,7 +81,7 @@
<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>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) mock-report
@@ -98,7 +98,136 @@
<option name="mock-report" value=""none"" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+test/slack/test/MyTests.kt:26:Error: 'slack.test.SealedClass' is a
+sealed type and has a restricted type hierarchy, use a subtype instead.
+[DoNotMockSealedClass]
+ @MockK lateinit var fieldSealedMock: SealedClass
+ ------------------------------------------------
+test/slack/test/MyTests.kt:27:Error: 'slack.test.SealedClass' is a
+sealed type and has a restricted type hierarchy, use a subtype instead.
+[DoNotMockSealedClass]
+ @SpyK lateinit var fieldSealedSpy: SealedClass
+ ----------------------------------------------
+test/slack/test/MyTests.kt:30:Error: 'slack.test.SealedClass' is a
+sealed type and has a restricted type hierarchy, use a subtype instead.
+[DoNotMockSealedClass]
+ val localMock1: SealedClass = mockk()
+ -------
+test/slack/test/MyTests.kt:31:Error: 'slack.test.SealedClass' is a
+sealed type and has a restricted type hierarchy, use a subtype instead.
+[DoNotMockSealedClass]
+ val localMock2 = mockk<SealedClass>()
+ --------------------
+test/slack/test/MyTests.kt:33:Error: 'slack.test.SealedClass' is a
+sealed type and has a restricted type hierarchy, use a subtype instead.
+[DoNotMockSealedClass]
+ val localSpy1: SealedClass = spyk()
+ ------
+test/slack/test/MyTests.kt:34:Error: 'slack.test.SealedClass' is a
+sealed type and has a restricted type hierarchy, use a subtype instead.
+[DoNotMockSealedClass]
+ val localSpy2 = spyk<SealedClass>()
+ -------------------
+test/slack/test/MyTests.kt:35:Error: 'slack.test.SealedClass' is a
+sealed type and has a restricted type hierarchy, use a subtype instead.
+[DoNotMockSealedClass]
+ val localSpy3 = spyk(localMock1)
+ ----------------
+test/slack/test/MyTests.kt:38:Error: 'slack.test.SealedClass' is a
+sealed type and has a restricted type hierarchy, use a subtype instead.
+[DoNotMockSealedClass]
+ val localClassMock = mockkClass<SealedClass>(SealedClass::class)
+ -------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`test/slack/test/MyTests.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package slack.test
+
+import io.mockk.impl.annotations.MockK
+import io.mockk.impl.annotations.SpyK
+import io.mockk.mockk
+import io.mockk.mockkClass
+import io.mockk.mockkObject
+import io.mockk.spyk
+
+class MyTests {
+ @MockK lateinit var fieldDataMock: DataClass
+ @SpyK lateinit var fieldDataSpy: DataClass
+
+ fun dataClass() {
+ val localMock1: DataClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: DataClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(DataClass::class)
+ }
+
+ @MockK lateinit var fieldSealedMock: SealedClass
+ @SpyK lateinit var fieldSealedSpy: SealedClass
+
+ fun sealedClass() {
+ val localMock1: SealedClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: SealedClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(SealedClass::class)
+ }
+
+ @MockK lateinit var fieldObjectMock: ObjectClass
+ @SpyK lateinit var fieldObjectSpy: ObjectClass
+
+ fun objectClass() {
+ val localMock1: ObjectClass = mockk()
+ val localMock2 = mockk()
+
+ val localSpy1: ObjectClass = spyk()
+ val localSpy2 = spyk()
+ val localSpy3 = spyk(localMock1)
+
+ // KClass is not detected, explicit type needed!
+ val localClassMock = mockkClass(ObjectClass::class)
+
+ // Wrong Error: 'kotlin.Unit' is an object, so mocking it should not be necessary [DoNotMockObjectClass]
+ // Wrong Warning: platform type 'kotlin.Unit' should not be mocked [DoNotMockPlatformTypes]
+ // mockkObject(ObjectClass)
+ }
+
+ fun platformTypes() {
+ // java.
+ mockk>()
+ mockk()
+ // kotlin.
+ mockk()
+ mockk>()
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the source code ([MockDetectorOptionsTest.kt](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/MockDetectorOptionsTest.kt)
+[SealedClassMockDetectorTest.kt](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/SealedClassMockDetectorTest.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, `MockDetector.tests`.
+To report a problem with this extracted sample, visit
+https://github.com/slackhq/slack-lints.
(##) Including
diff --git a/docs/checks/DontUseAccessibilityNodeInfoGetText.md.html b/docs/checks/DontUseAccessibilityNodeInfoGetText.md.html
new file mode 100644
index 00000000..359f88e6
--- /dev/null
+++ b/docs/checks/DontUseAccessibilityNodeInfoGetText.md.html
@@ -0,0 +1,149 @@
+
+(#) Do not use AccessibilityNodeInfo#getText in a UiAutomatorTestScope
+
+!!! WARNING: Do not use AccessibilityNodeInfo#getText in a UiAutomatorTestScope
+ This is a warning.
+
+Id
+: `DontUseAccessibilityNodeInfoGetText`
+Summary
+: Do not use AccessibilityNodeInfo#getText in a UiAutomatorTestScope
+Severity
+: Warning
+Category
+: Correctness
+Platform
+: Any
+Vendor
+: Android Open Source Project
+Identifier
+: androidx.test.uiautomator
+Feedback
+: https://issuetracker.google.com/issues/new?component=1237242
+Min
+: Lint 8.0 and 8.1
+Compiled
+: Lint 8.7+
+Artifact
+: [androidx.test.uiautomator:uiautomator](androidx_test_uiautomator_uiautomator.md.html)
+Since
+: 2.4.0-alpha02
+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:/test/uiautomator/uiautomator-lint/src/main/java/androidx/test/uiautomator/lint/AccessibilityNodeInfoGetTextDetector.kt)
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/test/uiautomator/uiautomator-lint/src/test/java/androidx/test/uiautomator/lint/AccessibilityNodeInfoGetTextDetectorTest.kt)
+Copyright Year
+: 2025
+
+You should not used AccessibilityNodeInfo#getText in a
+UiAutomatorTestScope.
+AccessibilityNodeInfo#getText returns a CharSequence rather than a
+String.
+This can also be a SpannableString that when compared with a String
+always
+returns false. Use AccessibilityNodeInfo#getTextAsString instead.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("androidx.test.uiautomator:uiautomator:2.4.0-beta01")
+
+// build.gradle
+implementation 'androidx.test.uiautomator:uiautomator:2.4.0-beta01'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.uiautomator)
+
+# libs.versions.toml
+[versions]
+uiautomator = "2.4.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
+# line (see https://github.com/toml-lang/toml/issues/516) so adjust
+# when pasting into libs.versions.toml:
+uiautomator = {
+ module = "androidx.test.uiautomator:uiautomator",
+ version.ref = "uiautomator"
+}
+```
+
+2.4.0-beta01 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about androidx.test.uiautomator:uiautomator](androidx_test_uiautomator_uiautomator.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("DontUseAccessibilityNodeInfoGetText")
+ fun method() {
+ onView(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("DontUseAccessibilityNodeInfoGetText")
+ void method() {
+ onView(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection DontUseAccessibilityNodeInfoGetText
+ 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="DontUseAccessibilityNodeInfoGetText" 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 'DontUseAccessibilityNodeInfoGetText'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore DontUseAccessibilityNodeInfoGetText ...`
+ ```
+
+* 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/DotPathAttribute.md.html b/docs/checks/DotPathAttribute.md.html
new file mode 100644
index 00000000..8b2f817e
--- /dev/null
+++ b/docs/checks/DotPathAttribute.md.html
@@ -0,0 +1,160 @@
+
+(#) The "path" attribute should not be set to "." as a path
+
+!!! WARNING: The "path" attribute should not be set to "." as a path
+ This is a warning.
+
+Id
+: `DotPathAttribute`
+Summary
+: The "path" attribute should not be set to "." as a path
+Severity
+: Warning
+Category
+: Security
+Platform
+: Android
+Vendor
+: Google - Android 3P Vulnerability Research
+Contact
+: https://github.com/google/android-security-lints
+Feedback
+: https://github.com/google/android-security-lints/issues
+Min
+: Lint 4.1
+Compiled
+: Lint 8.0 and 8.1
+Artifact
+: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
+Since
+: 1.0.4
+Affects
+: Resource files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://goo.gle/DotPathAttribute
+Implementation
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/main/java/com/example/lint/checks/MisconfiguredFileProviderDetector.kt)
+Tests
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MisconfiguredFileProviderDetectorTest.kt)
+Copyright Year
+: 2023
+
+Using a broad path range like "." can lead to the accidental exposure of
+sensitive files. Ensure that a specific, narrow and limited path is
+shared to prevent mistakenly exposing sensitive data.
+
+!!! 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
+res/xml/file_paths.xml:5:Warning: The "path" attribute should not be set
+to "." [DotPathAttribute]
+ <files-path name="root" path="."/>
+ ----------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`res/xml/file_paths.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+ <paths xmlns:android="http://schemas.android.com/apk/res/android">
+ <files-path name="my_images" path="images/"/>
+ <files-path name="my_docs" path="docs/"/>
+ <files-path name="root" path="."/>
+ </paths>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MisconfiguredFileProviderDetectorTest.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, `MisconfiguredFileProviderDetector.testWhenDotPathUsedInConfig_showsWarningAndQuickFix`.
+To report a problem with this extracted sample, visit
+https://github.com/google/android-security-lints/issues.
+
+(##) 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.android.security.lint:lint:1.0.4")
+
+// build.gradle
+lintChecks 'com.android.security.lint:lint:1.0.4'
+
+// build.gradle.kts with version catalogs:
+lintChecks(libs.com.android.security.lint.lint)
+
+# libs.versions.toml
+[versions]
+com-android-security-lint-lint = "1.0.4"
+[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:
+com-android-security-lint-lint = {
+ module = "com.android.security.lint:lint",
+ version.ref = "com-android-security-lint-lint"
+}
+```
+
+1.0.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute `tools:ignore="DotPathAttribute"`
+ 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="DotPathAttribute" 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 'DotPathAttribute'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore DotPathAttribute ...`
+ ```
+
+* 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/DrawAllocation.md.html b/docs/checks/DrawAllocation.md.html
index b93f25b3..96fbb5bb 100644
--- a/docs/checks/DrawAllocation.md.html
+++ b/docs/checks/DrawAllocation.md.html
@@ -50,7 +50,7 @@
draw/layout operations (preallocate and reuse instead) [DrawAllocation]
bitmap = Bitmap.createBitmap(100, 100, null);
-----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -78,7 +78,7 @@
private Bitmap bitmap;
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/JavaPerformanceDetectorTest.java)
diff --git a/docs/checks/DuplicateActivity.md.html b/docs/checks/DuplicateActivity.md.html
index fda7075c..12a0cf3b 100644
--- a/docs/checks/DuplicateActivity.md.html
+++ b/docs/checks/DuplicateActivity.md.html
@@ -46,7 +46,7 @@
com.example.helloworld.HelloWorld [DuplicateActivity]
<activity android:name="com.example.helloworld.HelloWorld"
------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -73,7 +73,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -106,8 +106,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ManifestDetectorTest.kt)
diff --git a/docs/checks/DuplicateDefinition.md.html b/docs/checks/DuplicateDefinition.md.html
index b58c3f0e..b1c0e539 100644
--- a/docs/checks/DuplicateDefinition.md.html
+++ b/docs/checks/DuplicateDefinition.md.html
@@ -45,7 +45,7 @@
been defined in this folder [DuplicateDefinition]
<string name="wallpaper_instructions">Tap image to set landscape wallpaper</string>
-----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -81,8 +81,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -106,8 +105,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap image to set landscape wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-cs/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -122,7 +120,7 @@
<skip />
<string name="wallpaper_instructions">"Klepnutím na obrázek nastavíte tapetu portrétu"</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/customattr.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -132,7 +130,7 @@
<attr name="contentId" format="reference" />
</declare-styleable>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/customattr2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -142,10 +140,13 @@
<attr name="contentId" format="reference" />
</declare-styleable>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/DuplicateResourceDetectorTest.java)
+You can also visit the source code ([DuplicateResourceDetectorTest.java](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/DuplicateResourceDetectorTest.java)
+[SuppressibleTestModeTest.kt](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/infrastructure/SuppressibleTestModeTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.java)
+[TextReporterTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/TextReporterTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/DuplicateDivider.md.html b/docs/checks/DuplicateDivider.md.html
index 948738b0..9f852033 100644
--- a/docs/checks/DuplicateDivider.md.html
+++ b/docs/checks/DuplicateDivider.md.html
@@ -46,7 +46,7 @@
[DuplicateDivider]
public abstract class DividerItemDecoration extends RecyclerView.ItemDecoration {
---------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,7 +76,7 @@
private int mOrientation;
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ItemDecoratorDetectorTest.kt)
diff --git a/docs/checks/DuplicateIds.md.html b/docs/checks/DuplicateIds.md.html
index 9bf2d504..8f8efd41 100644
--- a/docs/checks/DuplicateIds.md.html
+++ b/docs/checks/DuplicateIds.md.html
@@ -44,7 +44,7 @@
already defined earlier in this layout [DuplicateIds]
<ImageButton android:id="@+id/android_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/android_button" android:focusable="false" android:clickable="false" android:layout_weight="1.0" />
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -56,11 +56,10 @@
<ImageButton android:id="@+id/android_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/android_button" android:focusable="false" android:clickable="false" android:layout_weight="1.0" />
<Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-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/DuplicateIdDetectorTest.kt)
+You can also visit the source code ([DuplicateIdDetectorTest.kt](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/DuplicateIdDetectorTest.kt)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.java)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/DuplicateIncludedIds.md.html b/docs/checks/DuplicateIncludedIds.md.html
index 347edfac..8acc6fb1 100644
--- a/docs/checks/DuplicateIncludedIds.md.html
+++ b/docs/checks/DuplicateIncludedIds.md.html
@@ -46,7 +46,7 @@
layout/layout4.xml defines @+id/button2] [DuplicateIncludedIds]
<include
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -75,7 +75,7 @@
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/layout2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -101,7 +101,7 @@
layout="@layout/layout4" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/layout3.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -124,7 +124,7 @@
android:text="CheckBox" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/layout4.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -146,10 +146,10 @@
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/DuplicateIdDetectorTest.kt)
+You can also visit the source code ([DuplicateIdDetectorTest.kt](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/DuplicateIdDetectorTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/DuplicatePlatformClasses.md.html b/docs/checks/DuplicatePlatformClasses.md.html
index 50748cbd..85605e3b 100644
--- a/docs/checks/DuplicatePlatformClasses.md.html
+++ b/docs/checks/DuplicatePlatformClasses.md.html
@@ -102,7 +102,7 @@
[DuplicatePlatformClasses]
compile group: 'org.apache.httpcomponents',
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -120,7 +120,7 @@
name: 'httpclient',
version: '4.5.3'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/DuplicateStrings.md.html b/docs/checks/DuplicateStrings.md.html
index 65b6a302..e15afe66 100644
--- a/docs/checks/DuplicateStrings.md.html
+++ b/docs/checks/DuplicateStrings.md.html
@@ -55,7 +55,7 @@
avoid string duplication. [DuplicateStrings]
<string name="hello_world">hello world</string>
-----------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
<string name="hello_world">hello world</string>
<string name="title_casing_hello_world">Hello World</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/StringCasingDetectorTest.kt)
diff --git a/docs/checks/DuplicateUsesFeature.md.html b/docs/checks/DuplicateUsesFeature.md.html
index f9e0be48..6854b73a 100644
--- a/docs/checks/DuplicateUsesFeature.md.html
+++ b/docs/checks/DuplicateUsesFeature.md.html
@@ -41,7 +41,7 @@
android.hardware.camera [DuplicateUsesFeature]
<uses-feature android:name="android.hardware.camera"/>
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -63,7 +63,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -96,8 +96,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ManifestDetectorTest.kt)
diff --git a/docs/checks/EagerGradleConfiguration.md.html b/docs/checks/EagerGradleConfiguration.md.html
index da544e11..1bf92e41 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-alpha04")
+implementation("androidx.lint:lint-gradle:1.0.0-alpha05")
// build.gradle
-implementation 'androidx.lint:lint-gradle:1.0.0-alpha04'
+implementation 'androidx.lint:lint-gradle:1.0.0-alpha05'
// build.gradle.kts with version catalogs:
implementation(libs.lint.gradle)
# libs.versions.toml
[versions]
-lint-gradle = "1.0.0-alpha04"
+lint-gradle = "1.0.0-alpha05"
[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-alpha04 is the version this documentation was generated from;
+1.0.0-alpha05 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/EasterEgg.md.html b/docs/checks/EasterEgg.md.html
index f8de6ffd..762302d0 100644
--- a/docs/checks/EasterEgg.md.html
+++ b/docs/checks/EasterEgg.md.html
@@ -51,7 +51,7 @@
code follows [EasterEgg]
/* \u002A\U002F static { System.out.println("I'm executed on class load"); } \u002f\u002a */
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
/* We must STOPSHIP! */
String x = "STOPSHIP"; // OK
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CommentDetectorTest.java)
diff --git a/docs/checks/EditedTargetSdkVersion.md.html b/docs/checks/EditedTargetSdkVersion.md.html
index 494578e4..71193016 100644
--- a/docs/checks/EditedTargetSdkVersion.md.html
+++ b/docs/checks/EditedTargetSdkVersion.md.html
@@ -29,14 +29,13 @@
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)
-Updating the `targetSdkVersion` of an app is seemingly easy: just
-increment the `targetSdkVersion` number in the manifest file!
+Updating the `targetSdk` of an app is seemingly easy: just increment the
+`targetSdk` number in the build script!
-But that's not actually safe. The `targetSdkVersion` controls a wide
-range of behaviors that change from release to release, and to update,
-you should carefully consult the documentation to see what has changed,
-how your app may need to adjust, and then of course, carefully test
-everything.
+But that's not actually safe. The `targetSdk` controls a wide range of
+behaviors that change from release to release, and to update, you should
+carefully consult the documentation to see what has changed, how your
+app may need to adjust, and then of course, carefully test everything.
In new versions of Android Studio, there is a special migration
assistant, available from the tools menu (and as a quickfix from this
@@ -44,15 +43,14 @@
applicable migration steps to those needed for your app.
This lint check does something very simple: it just detects whether it
-looks like you've manually edited the targetSdkVersion field in a
-build.gradle file. Obviously, as part of doing the above careful steps,
-you may end up editing the value, which would trigger the check -- and
-it's safe to ignore it; this lint check *only* runs in the IDE, not from
-the command line; it's sole purpose to bring *awareness* to the (many)
-developers who haven't been aware of this issue and have just bumped the
-targetSdkVersion, recompiled, and uploaded their updated app to the
-Google Play Store, sometimes leading to crashes or other problems on
-newer devices.
+looks like you've manually edited the targetSdk field in a build script.
+Obviously, as part of doing the above careful steps, you may end up
+editing the value, which would trigger the check -- and it's safe to
+ignore it; this lint check *only* runs in the IDE, not from the command
+line; it's sole purpose to bring *awareness* to the (many) developers
+who haven't been aware of this issue and have just bumped the targetSdk,
+recompiled, and uploaded their updated app to the Google Play Store,
+sometimes leading to crashes or other problems on newer devices.
(##) Suppressing
diff --git a/docs/checks/EllipsizeMaxLines.md.html b/docs/checks/EllipsizeMaxLines.md.html
index 6de85fd2..7880e130 100644
--- a/docs/checks/EllipsizeMaxLines.md.html
+++ b/docs/checks/EllipsizeMaxLines.md.html
@@ -51,7 +51,7 @@
can lead to crashes. Use singleLine=true instead. [EllipsizeMaxLines]
android:maxLines="1"
--------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -83,7 +83,7 @@
android:text="long text" />
</RelativeLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/EllipsizeMaxLinesDetectorTest.java)
diff --git a/docs/checks/EmptyNavDeepLink.md.html b/docs/checks/EmptyNavDeepLink.md.html
index 542850ce..1c94bf70 100644
--- a/docs/checks/EmptyNavDeepLink.md.html
+++ b/docs/checks/EmptyNavDeepLink.md.html
@@ -51,7 +51,7 @@
[EmptyNavDeepLink]
navDeepLink { }
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -64,14 +64,14 @@
fun createDeepLink() {
navDeepLink { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/androidx/navigation/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
package androidx.navigation
public fun navDeepLink(deepLinkBuilder: NavDeepLinkDslBuilder.() -> Unit): NavDeepLink {}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/EmptyNavDeepLinkDetectorTest.kt)
@@ -90,17 +90,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-common:2.9.0-rc01")
+implementation("androidx.navigation:navigation-common:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-common:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-common:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.common)
# libs.versions.toml
[versions]
-navigation-common = "2.9.0-rc01"
+navigation-common = "2.9.7"
[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-rc01 is the version this documentation was generated from;
+2.9.7 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/EmptySuperCall.md.html b/docs/checks/EmptySuperCall.md.html
index 3dabc18d..38e292bf 100644
--- a/docs/checks/EmptySuperCall.md.html
+++ b/docs/checks/EmptySuperCall.md.html
@@ -42,7 +42,7 @@
the super method is defined to be empty [EmptySuperCall]
super.someOtherMethod(arg) // ERROR
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -72,7 +72,7 @@
super.someOtherMethod(arg) // 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/EmptySuperDetectorTest.kt)
diff --git a/docs/checks/EnforceUTF8.md.html b/docs/checks/EnforceUTF8.md.html
index 552311db..114c6be9 100644
--- a/docs/checks/EnforceUTF8.md.html
+++ b/docs/checks/EnforceUTF8.md.html
@@ -53,7 +53,7 @@
[EnforceUTF8]
<?xml version="1.0" encoding="iso-latin-1"?>
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
android:orientation="vertical" >
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/Utf8DetectorTest.java)
diff --git a/docs/checks/EnqueueWork.md.html b/docs/checks/EnqueueWork.md.html
index 5c21c3fc..e6c19ac6 100644
--- a/docs/checks/EnqueueWork.md.html
+++ b/docs/checks/EnqueueWork.md.html
@@ -57,7 +57,7 @@
enqueued: did you forget to call enqueue()? [EnqueueWork]
WorkContinuation cont4 = WorkContinuation.combine(workRequest6, cont2, cont3); // ERROR
----------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -176,7 +176,7 @@
private void doSomeOtherStuff() {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WorkManagerDetectorTest.kt)
diff --git a/docs/checks/EnsureInitializerNoArgConstr.md.html b/docs/checks/EnsureInitializerNoArgConstr.md.html
index 6ee46b41..aeb97a3f 100644
--- a/docs/checks/EnsureInitializerNoArgConstr.md.html
+++ b/docs/checks/EnsureInitializerNoArgConstr.md.html
@@ -51,7 +51,7 @@
constructor [EnsureInitializerNoArgConstr]
class TestInitializer(val int: Int): Initializer<Unit> {
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
class TestInitializer(val int: Int): Initializer {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/startup/startup-runtime-lint/src/test/java/androidx/startup/lint/InitializerConstructorTest.kt)
diff --git a/docs/checks/ErroneousLayoutAttribute.md.html b/docs/checks/ErroneousLayoutAttribute.md.html
index 81d27d1d..74cb76d9 100644
--- a/docs/checks/ErroneousLayoutAttribute.md.html
+++ b/docs/checks/ErroneousLayoutAttribute.md.html
@@ -48,7 +48,7 @@
[ErroneousLayoutAttribute]
android:orientation="horizontal"
--------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/ErroneousLayoutAttributeDetectorTest.kt)
diff --git a/docs/checks/ErrorProneDoNotMockUsage.md.html b/docs/checks/ErrorProneDoNotMockUsage.md.html
index 37772d7c..c016db8a 100644
--- a/docs/checks/ErrorProneDoNotMockUsage.md.html
+++ b/docs/checks/ErrorProneDoNotMockUsage.md.html
@@ -60,7 +60,7 @@
annotation. [ErrorProneDoNotMockUsage]
@DoNotMock
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -89,7 +89,7 @@
interface TestClass4 {
fun fake(): TestClass4? = null
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/mocking/DoNotMockUsageDetectorTest.kt)
diff --git a/docs/checks/ExactAlarm.md.html b/docs/checks/ExactAlarm.md.html
index 08e37cdf..18f81932 100644
--- a/docs/checks/ExactAlarm.md.html
+++ b/docs/checks/ExactAlarm.md.html
@@ -44,7 +44,7 @@
targeting API level 33 or higher [ExactAlarm]
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -54,7 +54,7 @@
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
<uses-sdk android:targetSdkVersion="32" />
</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/AlarmDetectorTest.kt)
diff --git a/docs/checks/ExactAlarmPolicy.md.html b/docs/checks/ExactAlarmPolicy.md.html
new file mode 100644
index 00000000..4eb654a1
--- /dev/null
+++ b/docs/checks/ExactAlarmPolicy.md.html
@@ -0,0 +1,183 @@
+
+(#) Exact Alarm Insights
+
+!!! WARNING: Exact Alarm Insights
+ This is a warning.
+
+Id
+: `ExactAlarmPolicy`
+Summary
+: Exact Alarm Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+`USE_EXACT_ALARM` permission on Android 13+ is a highly restricted
+permission used only for apps whose core, user-facing functionality
+genuinely requires precise timing, like dedicated alarm, timer, or
+calendar applications with event notifications. If your app does not
+have this specific core need, consider using `SCHEDULE_EXACT_ALARM`
+permission instead. It provides the same functionality but access must
+be granted by the user. This policy prevents misuse that impacts system
+resources.
+
+**Dos:**
+
+- Request the auto granted version of the permission, `USE_EXACT_ALARM`,
+ only if your app’s core functionality is of alarm or calendar.
+- Use `SCHEDULE_EXACT_ALARM` instead if the above criteria is not met.
+- Complete Play Console declaration to indicate app functionality.
+
+**Don'ts:**
+
+- Use this permission for non-critical features that do not directly
+ contribute to the app's main purpose.
+
+**Helpful Links:**
+
+See Policy page:
+https://support.google.com/googleplay/android-developer/answer/9888170
+See developer guidance:
+https://developer.android.com/about/versions/13/features#use-exact-alarm-permission
+See Declaration form:
+https://support.google.com/googleplay/android-developer/answer/9214102
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:3:Warning: USE_EXACT_ALARM permission is restricted
+and will be automatically granted to apps with core functions needing
+precise timing (alarms, calendars). You’ll need to justify the need for
+this API. [ExactAlarmPolicy]
+ <uses-permission android:name="android.permission.USE_EXACT_ALARM"/>
+ -------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="android.permission.USE_EXACT_ALARM"/>
+ <uses-sdk android:targetSdkVersion="33"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/ExactAlarmPolicyDetectorTest.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, `ExactAlarmPolicyDetector.testFlagsUseExactAlarmPermission`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute `tools:ignore="ExactAlarmPolicy"`
+ 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">
+ ...
+ <uses-permission tools:ignore="ExactAlarmPolicy" .../>
+ ...
+ </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="ExactAlarmPolicy" 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 'ExactAlarmPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore ExactAlarmPolicy ...`
+ ```
+
+* 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/ExceptionMessage.md.html b/docs/checks/ExceptionMessage.md.html
index 57435080..92b2dcb9 100644
--- a/docs/checks/ExceptionMessage.md.html
+++ b/docs/checks/ExceptionMessage.md.html
@@ -59,7 +59,7 @@
[ExceptionMessage]
check(true)
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,10 +70,10 @@
fun content() {
check(true)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can also visit the
-[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/ExceptionMessageDetectorTest.kt)
+You can also visit the source code ([ExceptionMessageDetectorTest.kt](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/ExceptionMessageDetectorTest.kt)
+[ExceptionMessageDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/lint/internal-lint-checks/src/test/java/androidx/compose/lint/ExceptionMessageDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/ExifInterface.md.html b/docs/checks/ExifInterface.md.html
index ac63734a..dec9a896 100644
--- a/docs/checks/ExifInterface.md.html
+++ b/docs/checks/ExifInterface.md.html
@@ -52,7 +52,7 @@
androidx.exifinterface.media.ExifInterface instead [ExifInterface]
new android.media.ExifInterface(path);
---------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,7 +74,7 @@
new android.media.ExifInterface(path);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ExifInterfaceDetectorTest.java)
diff --git a/docs/checks/ExpensiveAssertion.md.html b/docs/checks/ExpensiveAssertion.md.html
index de35e96c..95acebfa 100644
--- a/docs/checks/ExpensiveAssertion.md.html
+++ b/docs/checks/ExpensiveAssertion.md.html
@@ -82,7 +82,7 @@
[ExpensiveAssertion]
assert(expensive()) // WARN
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -127,7 +127,7 @@
assert(x3 != null) // ERROR
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -152,7 +152,7 @@
fun castOkay(foo: Any) {
assert(foo is String) // OK
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/Utils.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -163,7 +163,7 @@
return DIAGNOSE;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AssertDetectorTest.kt)
diff --git a/docs/checks/ExperimentalAnnotationRetention.md.html b/docs/checks/ExperimentalAnnotationRetention.md.html
index c3b2097e..58a994d0 100644
--- a/docs/checks/ExperimentalAnnotationRetention.md.html
+++ b/docs/checks/ExperimentalAnnotationRetention.md.html
@@ -51,17 +51,17 @@
```
// build.gradle.kts
-implementation("androidx.annotation:annotation-experimental:1.5.0-rc01")
+implementation("androidx.annotation:annotation-experimental:1.6.0-rc01")
// build.gradle
-implementation 'androidx.annotation:annotation-experimental:1.5.0-rc01'
+implementation 'androidx.annotation:annotation-experimental:1.6.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.annotation.experimental)
# libs.versions.toml
[versions]
-annotation-experimental = "1.5.0-rc01"
+annotation-experimental = "1.6.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-rc01 is the version this documentation was generated from;
+1.6.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 9d37833d..9e46d1f7 100644
--- a/docs/checks/ExpiredTargetSdkVersion.md.html
+++ b/docs/checks/ExpiredTargetSdkVersion.md.html
@@ -55,7 +55,7 @@
target API level 33 or higher. [ExpiredTargetSdkVersion]
targetSdk = "30" # ERROR 1
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -63,7 +63,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
android {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`../gradle/libs.versions.toml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~toml linenumbers
@@ -74,10 +74,10 @@
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)
+You can also visit the source code ([GradleDetectorTest.kt](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)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/ExpiringTargetSdkVersion.md.html b/docs/checks/ExpiringTargetSdkVersion.md.html
index 74bbbe9d..019c9d9b 100644
--- a/docs/checks/ExpiringTargetSdkVersion.md.html
+++ b/docs/checks/ExpiringTargetSdkVersion.md.html
@@ -38,8 +38,8 @@
while still allowing your app or sdk to run on older Android versions
(down to the `minSdkVersion`).
-To update your `targetSdkVersion`, follow the steps from "Meeting Google
-Play requirements for target API level",
+To update your `targetSdk`, follow the steps from "Meeting Google Play
+requirements for target API level",
https://developer.android.com/distribute/best-practices/develop/target-sdk.html.
!!! Tip
@@ -54,7 +54,7 @@
starting on August 31, 2023. [ExpiringTargetSdkVersion]
targetSdkVersion 31
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
targetSdkVersion 2024 // OK
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/ExportedContentProvider.md.html b/docs/checks/ExportedContentProvider.md.html
index 85398661..54ba6127 100644
--- a/docs/checks/ExportedContentProvider.md.html
+++ b/docs/checks/ExportedContentProvider.md.html
@@ -54,7 +54,7 @@
access to potentially sensitive data [ExportedContentProvider]
<provider
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -93,7 +93,7 @@
</provider>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -127,8 +127,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SecurityDetectorTest.java)
diff --git a/docs/checks/ExportedPreferenceActivity.md.html b/docs/checks/ExportedPreferenceActivity.md.html
index a0d127ae..c5501af2 100644
--- a/docs/checks/ExportedPreferenceActivity.md.html
+++ b/docs/checks/ExportedPreferenceActivity.md.html
@@ -47,7 +47,7 @@
exported [ExportedPreferenceActivity]
<activity
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -91,7 +91,7 @@
</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/PreferenceActivityDetectorTest.java)
diff --git a/docs/checks/ExportedReceiver.md.html b/docs/checks/ExportedReceiver.md.html
index 84fa79a8..eb90964f 100644
--- a/docs/checks/ExportedReceiver.md.html
+++ b/docs/checks/ExportedReceiver.md.html
@@ -50,7 +50,7 @@
permission [ExportedReceiver]
<receiver
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -78,8 +78,7 @@
</application>
</manifest>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -113,8 +112,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SecurityDetectorTest.java)
diff --git a/docs/checks/ExportedService.md.html b/docs/checks/ExportedService.md.html
index ab9b62d6..20917801 100644
--- a/docs/checks/ExportedService.md.html
+++ b/docs/checks/ExportedService.md.html
@@ -49,7 +49,7 @@
permission [ExportedService]
<service
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -79,8 +79,7 @@
</application>
</manifest>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -114,8 +113,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SecurityDetectorTest.java)
diff --git a/docs/checks/ExposedRootPath.md.html b/docs/checks/ExposedRootPath.md.html
index 265fef08..0525525f 100644
--- a/docs/checks/ExposedRootPath.md.html
+++ b/docs/checks/ExposedRootPath.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Resource files
Editing
@@ -56,7 +56,7 @@
arbitrary access to device files and folders [ExposedRootPath]
<root-path name="root" path="/"/>
---------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
<files-path name="my_docs" path="docs/"/>
<root-path name="root" path="/"/>
</paths>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MisconfiguredFileProviderDetectorTest.kt)
@@ -88,17 +88,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/ExtendedBluetoothDiscoveryDuration.md.html b/docs/checks/ExtendedBluetoothDiscoveryDuration.md.html
new file mode 100644
index 00000000..77fc9b1a
--- /dev/null
+++ b/docs/checks/ExtendedBluetoothDiscoveryDuration.md.html
@@ -0,0 +1,182 @@
+
+(#) The EXTRA_DISCOVERABLE_DURATION parameter is unsafely high
+
+!!! WARNING: The EXTRA_DISCOVERABLE_DURATION parameter is unsafely high
+ This is a warning.
+
+Id
+: `ExtendedBluetoothDiscoveryDuration`
+Summary
+: The EXTRA_DISCOVERABLE_DURATION parameter is unsafely high
+Severity
+: Warning
+Category
+: Security
+Platform
+: Any
+Vendor
+: Google - Android 3P Vulnerability Research
+Contact
+: https://github.com/google/android-security-lints
+Feedback
+: https://github.com/google/android-security-lints/issues
+Min
+: Lint 4.1
+Compiled
+: Lint 8.0 and 8.1
+Artifact
+: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
+Since
+: 1.0.4
+Affects
+: Kotlin and Java files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://goo.gle/ExtendedBluetoothDiscoveryDuration
+Implementation
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/main/java/com/example/lint/checks/BluetoothAdapterDetector.kt)
+Tests
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/BluetoothAdapterDetectorTest.kt)
+Copyright Year
+: 2024
+
+Setting the EXTRA_DISCOVERABLE_DURATION parameter to more than
+ 120 seconds can cause the device to be discoverable for an
+unsafe amount of time. This could increase the
+timeframe in which attackers can conduct Bluetooth attacks.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/MainActivity.java:6:Warning: The EXTRA_DISCOVERABLE_DURATION time
+should be set to a shorter amount of time
+[ExtendedBluetoothDiscoveryDuration]
+ private Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE).putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 121);
+ --------------------------------------------------------------------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/MainActivity.java`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
+import android.app.Activity;
+ import android.bluetooth.BluetoothAdapter;
+ import android.content.Intent;
+
+ public class MainActivity extends Activity {
+ private Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE).putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 121);
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/BluetoothAdapterDetectorTest.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, `BluetoothAdapterDetector.extraDiscoverableDurationMoreThan120Seconds_showsWarning`.
+To report a problem with this extracted sample, visit
+https://github.com/google/android-security-lints/issues.
+
+(##) 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.android.security.lint:lint:1.0.4")
+
+// build.gradle
+lintChecks 'com.android.security.lint:lint:1.0.4'
+
+// build.gradle.kts with version catalogs:
+lintChecks(libs.com.android.security.lint.lint)
+
+# libs.versions.toml
+[versions]
+com-android-security-lint-lint = "1.0.4"
+[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:
+com-android-security-lint-lint = {
+ module = "com.android.security.lint:lint",
+ version.ref = "com-android-security-lint-lint"
+}
+```
+
+1.0.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.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("ExtendedBluetoothDiscoveryDuration")
+ fun method() {
+ putExtra(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("ExtendedBluetoothDiscoveryDuration")
+ void method() {
+ putExtra(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection ExtendedBluetoothDiscoveryDuration
+ 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="ExtendedBluetoothDiscoveryDuration" 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 'ExtendedBluetoothDiscoveryDuration'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore ExtendedBluetoothDiscoveryDuration ...`
+ ```
+
+* 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/ExtraText.md.html b/docs/checks/ExtraText.md.html
index 522bba73..48ab974e 100644
--- a/docs/checks/ExtraText.md.html
+++ b/docs/checks/ExtraText.md.html
@@ -49,7 +49,7 @@
">" [ExtraText]
<shape>>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -67,28 +67,28 @@
</application>
`
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/drawable/icon.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<shape>>
<item></item>>
</shape>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="test">Test</string> <!-- Text is allowed in value resource files -->
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml/myfile.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<foo>
Test <!-- Text is allowed in xml and raw folder files -->
</foo>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ExtraTextDetectorTest.kt)
diff --git a/docs/checks/ExtraTranslation.md.html b/docs/checks/ExtraTranslation.md.html
index 2eb9515d..2a76a702 100644
--- a/docs/checks/ExtraTranslation.md.html
+++ b/docs/checks/ExtraTranslation.md.html
@@ -54,7 +54,7 @@
translated here but not found in default locale [ExtraTranslation]
<string name="continue_skip_label">"Weiter"</string>
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -90,8 +90,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-cs/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -106,7 +105,7 @@
<skip />
<string name="wallpaper_instructions">"Klepnutím na obrázek nastavíte tapetu portrétu"</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-de-rDE/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -122,7 +121,7 @@
<string name="wallpaper_instructions">"Tippen Sie auf Bild, um Porträt-Bildschirmhintergrund einzustellen"</string>
<string name="continue_skip_label">"Weiter"</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-es/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -144,7 +143,7 @@
<item>"Nombre de tu colegio"</item>
</string-array>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-es-rUS/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -153,7 +152,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="menu_search">"Búsqueda"</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-land/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -177,8 +176,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap image to set landscape wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-cs/arrays.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -191,7 +189,7 @@
<item>"Název střední školy"</item>
</string-array>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-es/donottranslate.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -199,7 +197,7 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-nl-rNL/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -216,22 +214,22 @@
<skip />
<string name="wallpaper_instructions">"Tik op afbeelding om portretachtergrond in te stellen"</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/public.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources><public /></resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/foo.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<LinearLayout/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout-ja/foo.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<LinearLayout/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TranslationDetectorTest.kt)
diff --git a/docs/checks/FieldSiteTargetOnQualifierAnnotation.md.html b/docs/checks/FieldSiteTargetOnQualifierAnnotation.md.html
index 8fc95bda..be9e1f17 100644
--- a/docs/checks/FieldSiteTargetOnQualifierAnnotation.md.html
+++ b/docs/checks/FieldSiteTargetOnQualifierAnnotation.md.html
@@ -34,149 +34,9 @@
: Kotlin and Java files and test sources
Editing
: This check runs on the fly in the IDE editor
-Implementation
-: [Source Code](https://github.com/google/dagger/tree/master/java/dagger/lint/DaggerKotlinIssueDetector.kt)
-Tests
-: [Source Code](https://github.com/google/dagger/tree/master/javatests/dagger/lint/DaggerKotlinIssueDetectorTest.kt)
-Copyright Year
-: 2020
It's redundant to use 'field:' site-targets for qualifier annotations.
-(##) Example
-
-Here is an example of lint warnings produced by this check:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/MyQualifier.kt:14:Warning: Redundant 'field:' used for Dagger
-qualifier annotation. [FieldSiteTargetOnQualifierAnnotation]
- @field:MyQualifier
- ------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Here is the source file referenced above:
-
-`src/foo/MyQualifier.kt`:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-package foo
-import javax.inject.Inject
-import javax.inject.Qualifier
-import kotlin.jvm.JvmStatic
-import dagger.Provides
-import dagger.Module
-
-@Qualifier
-annotation class MyQualifier
-
-class InjectedTest {
- // This should fail because of `:field`
- @Inject
- @field:MyQualifier
- lateinit var prop: String
-
- // This is fine!
- @Inject
- @MyQualifier
- lateinit var prop2: String
-}
-
-@Module
-object ObjectModule {
- // This should fail because it uses `@JvmStatic`
- @JvmStatic
- @Provides
- fun provideFoo(): String {
-
- }
-
- // This is fine!
- @Provides
- fun provideBar(): String {
-
- }
-}
-
-@Module
-class ClassModule {
- companion object {
- // This should fail because the companion object is part of ClassModule, so this is unnecessary.
- @JvmStatic
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-@Module
-class ClassModuleQualified {
- companion object {
- // This should fail because the companion object is part of ClassModule, so this is unnecessary.
- // This specifically tests a fully qualified annotation
- @kotlin.jvm.JvmStatic
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-@Module
-class ClassModule2 {
- // This should fail because the companion object is part of ClassModule
- @Module
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-@Module
-class ClassModule2Qualified {
- // This should fail because the companion object is part of ClassModule
- // This specifically tests a fully qualified annotation
- @dagger.Module
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-// This is correct as of Dagger 2.26!
-@Module
-class ClassModule3 {
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-class ClassModule4 {
- // This is should fail because this should be extracted to a standalone object.
- @Module
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can also visit the
-[source code](https://github.com/google/dagger/tree/master/javatests/dagger/lint/DaggerKotlinIssueDetectorTest.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, `DaggerKotlinIssueDetector.simpleSmokeTestForQualifiersAndProviders`.
-To report a problem with this extracted sample, visit
-https://github.com/google/dagger/issues.
-
(##) Including
!!!
diff --git a/docs/checks/FileEndsWithExt.md.html b/docs/checks/FileEndsWithExt.md.html
index ea48d515..d08c2aa6 100644
--- a/docs/checks/FileEndsWithExt.md.html
+++ b/docs/checks/FileEndsWithExt.md.html
@@ -51,7 +51,7 @@
did you mean "webp" ? [FileEndsWithExt]
fun isWebp(path: File) = path.extension.startsWith(".webp")
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
fun File.isText() = path.endsWith(".txt") // OK
fun File.isPng() = extension == "png" // OK
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/FileEndsWithDetectorTest.kt)
diff --git a/docs/checks/FilePropertyDetector.md.html b/docs/checks/FilePropertyDetector.md.html
index ddcbeeac..f2cd7299 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-alpha04")
+implementation("androidx.lint:lint-gradle:1.0.0-alpha05")
// build.gradle
-implementation 'androidx.lint:lint-gradle:1.0.0-alpha04'
+implementation 'androidx.lint:lint-gradle:1.0.0-alpha05'
// build.gradle.kts with version catalogs:
implementation(libs.lint.gradle)
# libs.versions.toml
[versions]
-lint-gradle = "1.0.0-alpha04"
+lint-gradle = "1.0.0-alpha05"
[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-alpha04 is the version this documentation was generated from;
+1.0.0-alpha05 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/FindViewByIdCast.md.html b/docs/checks/FindViewByIdCast.md.html
index cb9bde6b..809d344c 100644
--- a/docs/checks/FindViewByIdCast.md.html
+++ b/docs/checks/FindViewByIdCast.md.html
@@ -51,7 +51,7 @@
[FindViewByIdCast]
checkNotNull1(findViewById(R.id.textView)).setAlpha(0.5f); // WARN
---------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -104,7 +104,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
@@ -114,7 +114,7 @@
targetCompatibility JavaVersion.VERSION_1_8
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ViewTypeDetectorTest.kt)
diff --git a/docs/checks/FlowOperatorInvokedInComposition.md.html b/docs/checks/FlowOperatorInvokedInComposition.md.html
index 330e385e..6f469168 100644
--- a/docs/checks/FlowOperatorInvokedInComposition.md.html
+++ b/docs/checks/FlowOperatorInvokedInComposition.md.html
@@ -149,7 +149,7 @@
[FlowOperatorInvokedInComposition]
.drop(0)
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -220,7 +220,7 @@
.drop(0)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ComposableFlowOperatorDetectorTest.kt)
@@ -239,17 +239,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html).
diff --git a/docs/checks/FontValidation.md.html b/docs/checks/FontValidation.md.html
index d93e4daa..522da162 100644
--- a/docs/checks/FontValidation.md.html
+++ b/docs/checks/FontValidation.md.html
@@ -44,7 +44,7 @@
tag [FontValidation]
<font
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -58,10 +58,10 @@
android:fontWeight="400"
android:font="@font/monserrat" />
</font-family>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/FontDetectorTest.java)
+You can also visit the source code ([FontDetectorTest.java](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/FontDetectorTest.java)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.java)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/ForegroundServicePermission.md.html b/docs/checks/ForegroundServicePermission.md.html
index 6398827f..87c1a129 100644
--- a/docs/checks/ForegroundServicePermission.md.html
+++ b/docs/checks/ForegroundServicePermission.md.html
@@ -45,7 +45,7 @@
android.permission.SYSTEM_CAMERA] [ForegroundServicePermission]
<service
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -77,8 +77,7 @@
</application>
</manifest>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -112,8 +111,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ForegroundServicePermissionDetectorTest.kt)
diff --git a/docs/checks/ForegroundServiceType.md.html b/docs/checks/ForegroundServiceType.md.html
index 3eac4fb1..16577fca 100644
--- a/docs/checks/ForegroundServiceType.md.html
+++ b/docs/checks/ForegroundServiceType.md.html
@@ -42,7 +42,7 @@
foregroundServiceType attribute specified [ForegroundServiceType]
startForeground(1, null);
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -60,8 +60,7 @@
</service>
</application>
</manifest>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyService.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -80,7 +79,7 @@
return null;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ForegroundServiceTypesDetectorTest.kt)
diff --git a/docs/checks/ForegroundServicesPolicy.md.html b/docs/checks/ForegroundServicesPolicy.md.html
new file mode 100644
index 00000000..9aeaf1a1
--- /dev/null
+++ b/docs/checks/ForegroundServicesPolicy.md.html
@@ -0,0 +1,180 @@
+
+(#) Foreground Services Insights
+
+!!! WARNING: Foreground Services Insights
+ This is a warning.
+
+Id
+: `ForegroundServicesPolicy`
+Summary
+: Foreground Services Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+For apps targeting Android 14+ you must declare valid Foreground Service
+(FGS) types in the manifest and Play Console, providing descriptions,
+user impact, and a demo video justifying their use based on
+user-initiated, perceptible actions.
+
+**Dos:**
+
+- Run FGS only for as long as necessary to complete the task.
+- Ensure FGS provides a user-beneficial core app feature, is initiated
+ by the user, is visible in notifications or is user perceptible (for
+ example, audio from playing a song).
+- Submit a declaration form in your Play Console if targeting Android
+ 14+ and describe the use case for each Foreground Services (FGS)
+ permission used. Ensure the appropriate FGS type is selected.
+ Examples listed here.
+
+**Don'ts:**
+
+- Use FGS if system management of your task doesn’t break the user
+ experience in your app. Consider alternatives like WorkManager
+- Declare invalid or inaccurate FGS types in your app’s manifest.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-foreground-service
+See Help Center article: https://goo.gle/play-help-foreground-service
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:3:Warning: Android 14+ requires Foreground Service
+types declaration and justification. [ForegroundServicesPolicy]
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
+ ----------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
+ <uses-sdk android:targetSdkVersion="34"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/ForegroundServicesPolicyDetectorTest.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, `ForegroundServicesPolicyDetector.testFlagsForegroundServiceConnectedPermission`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="ForegroundServicesPolicy"` 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">
+ ...
+ <uses-permission tools:ignore="ForegroundServicesPolicy" .../>
+ ...
+ </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="ForegroundServicesPolicy" 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 'ForegroundServicesPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore ForegroundServicesPolicy ...`
+ ```
+
+* 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/FormalGerman.md.html b/docs/checks/FormalGerman.md.html
index d140bebe..2d8fe013 100644
--- a/docs/checks/FormalGerman.md.html
+++ b/docs/checks/FormalGerman.md.html
@@ -44,24 +44,24 @@
res/values/config.xml:2:Warning: Formal language "Ihr" detected
[FormalGerman]
<string name="my_string_1">Wie lautet Ihr Name?</string>
- ^
+ ---
res/values/config.xml:3:Warning: Formal language "Sie?" detected
[FormalGerman]
<string name="my_string_2">Wie heissen Sie?</string>
- ^
+ ---
res/values/config.xml:4:Warning: Formal language "Ihrem" detected
[FormalGerman]
<string name="my_string_3">Frag nach Ihrem Namen.</string>
- ^
+ -----
res/values/config.xml:5:Warning: Formal language "Sie" detected
[FormalGerman]
<string name="my_string_4">Wie Sie möchten</string>
- ^
+ ---
res/values/config.xml:6:Warning: Formal language "Ihre" detected
[FormalGerman]
<string name="my_string_5">Ihre Historie</string>
- ^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ----
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,7 +74,7 @@
<string name="my_string_4">Wie Sie möchten</string>
<string name="my_string_5">Ihre Historie</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/FormalGermanDetectorTest.kt)
diff --git a/docs/checks/FragmentAddMenuProvider.md.html b/docs/checks/FragmentAddMenuProvider.md.html
index 835a0cd0..df50ad48 100644
--- a/docs/checks/FragmentAddMenuProvider.md.html
+++ b/docs/checks/FragmentAddMenuProvider.md.html
@@ -35,7 +35,9 @@
Implementation
: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/main/java/androidx/fragment/lint/UnsafeFragmentLifecycleObserverDetector.kt)
Tests
-: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/AddMenuProviderDetectorTest.kt)
+: [LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
+Tests
+: [AddMenuProviderDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/AddMenuProviderDetectorTest.kt)
Copyright Year
: 2019
@@ -56,17 +58,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment:1.8.6")
+implementation("androidx.fragment:fragment:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment:1.8.6'
+implementation 'androidx.fragment:fragment:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment)
# libs.versions.toml
[versions]
-fragment = "1.8.6"
+fragment = "1.8.9"
[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 +80,7 @@
}
```
-1.8.6 is the version this documentation was generated from;
+1.8.9 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 3360c695..91cb034f 100644
--- a/docs/checks/FragmentBackPressedCallback.md.html
+++ b/docs/checks/FragmentBackPressedCallback.md.html
@@ -35,7 +35,9 @@
Implementation
: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/main/java/androidx/fragment/lint/UnsafeFragmentLifecycleObserverDetector.kt)
Tests
-: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/BackPressedDispatcherCallbackDetectorTest.kt)
+: [LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
+Tests
+: [BackPressedDispatcherCallbackDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/BackPressedDispatcherCallbackDetectorTest.kt)
Copyright Year
: 2019
@@ -56,17 +58,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment:1.8.6")
+implementation("androidx.fragment:fragment:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment:1.8.6'
+implementation 'androidx.fragment:fragment:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment)
# libs.versions.toml
[versions]
-fragment = "1.8.6"
+fragment = "1.8.9"
[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 +80,7 @@
}
```
-1.8.6 is the version this documentation was generated from;
+1.8.9 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 fa7c557d..aca21b42 100644
--- a/docs/checks/FragmentConstructorInjection.md.html
+++ b/docs/checks/FragmentConstructorInjection.md.html
@@ -65,7 +65,7 @@
using constructor injections only. [FragmentConstructorInjection]
@Inject
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -110,7 +110,7 @@
notAnnotated = "fast"
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/FragmentDaggerFieldInjectionDetectorTest.kt)
diff --git a/docs/checks/FragmentFieldInjection.md.html b/docs/checks/FragmentFieldInjection.md.html
index 20dedecf..fdf88e33 100644
--- a/docs/checks/FragmentFieldInjection.md.html
+++ b/docs/checks/FragmentFieldInjection.md.html
@@ -62,7 +62,7 @@
using the Fragment's constructor. [FragmentFieldInjection]
@Inject
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -87,7 +87,7 @@
notAnnotated = "fast"
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/FragmentDaggerFieldInjectionDetectorTest.kt)
diff --git a/docs/checks/FragmentGradleConfiguration-2.md.html b/docs/checks/FragmentGradleConfiguration-2.md.html
index d48efc07..a36cc707 100644
--- a/docs/checks/FragmentGradleConfiguration-2.md.html
+++ b/docs/checks/FragmentGradleConfiguration-2.md.html
@@ -54,7 +54,7 @@
[FragmentGradleConfiguration]
androidTestImplementation("androidx.fragment:fragment-testing-manifest:1.2.0-beta02")
-------------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,10 +63,10 @@
dependencies {
androidTestImplementation("androidx.fragment:fragment-testing-manifest:1.2.0-beta02")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can also visit the
-[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-testing-manifest-lint/src/test/java/androidx/fragment/testing/manifest/lint/GradleConfigurationDetectorTest.kt)
+You can also visit the source code ([GradleConfigurationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-testing-manifest-lint/src/test/java/androidx/fragment/testing/manifest/lint/GradleConfigurationDetectorTest.kt)
+[GradleConfigurationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-testing-lint/src/test/java/androidx/fragment/testing/lint/GradleConfigurationDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
@@ -82,17 +82,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment-testing-manifest:1.8.6")
+implementation("androidx.fragment:fragment-testing-manifest:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment-testing-manifest:1.8.6'
+implementation 'androidx.fragment:fragment-testing-manifest:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment.testing.manifest)
# libs.versions.toml
[versions]
-fragment-testing-manifest = "1.8.6"
+fragment-testing-manifest = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 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 8f95f0f3..4e95d6aa 100644
--- a/docs/checks/FragmentGradleConfiguration.md.html
+++ b/docs/checks/FragmentGradleConfiguration.md.html
@@ -55,7 +55,7 @@
[FragmentGradleConfiguration]
androidTestImplementation("androidx.fragment:fragment-testing-manifest:1.2.0-beta02")
-------------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,10 +64,10 @@
dependencies {
androidTestImplementation("androidx.fragment:fragment-testing-manifest:1.2.0-beta02")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can also visit the
-[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-testing-manifest-lint/src/test/java/androidx/fragment/testing/manifest/lint/GradleConfigurationDetectorTest.kt)
+You can also visit the source code ([GradleConfigurationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-testing-manifest-lint/src/test/java/androidx/fragment/testing/manifest/lint/GradleConfigurationDetectorTest.kt)
+[GradleConfigurationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-testing-lint/src/test/java/androidx/fragment/testing/lint/GradleConfigurationDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
@@ -83,17 +83,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment-testing:1.8.6")
+implementation("androidx.fragment:fragment-testing:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment-testing:1.8.6'
+implementation 'androidx.fragment:fragment-testing:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment.testing)
# libs.versions.toml
[versions]
-fragment-testing = "1.8.6"
+fragment-testing = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 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 f7fa7979..aa6dd8a3 100644
--- a/docs/checks/FragmentLiveDataObserve.md.html
+++ b/docs/checks/FragmentLiveDataObserve.md.html
@@ -35,7 +35,9 @@
Implementation
: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/main/java/androidx/fragment/lint/UnsafeFragmentLifecycleObserverDetector.kt)
Tests
-: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/FragmentLiveDataObserveDetectorTest.kt)
+: [LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
+Tests
+: [FragmentLiveDataObserveDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/FragmentLiveDataObserveDetectorTest.kt)
Copyright Year
: 2019
@@ -56,17 +58,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment:1.8.6")
+implementation("androidx.fragment:fragment:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment:1.8.6'
+implementation 'androidx.fragment:fragment:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment)
# libs.versions.toml
[versions]
-fragment = "1.8.6"
+fragment = "1.8.9"
[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 +80,7 @@
}
```
-1.8.6 is the version this documentation was generated from;
+1.8.9 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 16e9a4c7..9d69ab57 100644
--- a/docs/checks/FragmentTagUsage.md.html
+++ b/docs/checks/FragmentTagUsage.md.html
@@ -57,7 +57,7 @@
FragmentContainerView. [FragmentTagUsage]
<fragment android:name="androidx.fragment.app.Test'$'InflatedFragment"
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,10 +71,10 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can also visit the
-[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/FragmentTagDetectorTest.kt)
+You can also visit the source code ([FragmentTagDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/FragmentTagDetectorTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
@@ -90,17 +90,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment:1.8.6")
+implementation("androidx.fragment:fragment:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment:1.8.6'
+implementation 'androidx.fragment:fragment:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment)
# libs.versions.toml
[versions]
-fragment = "1.8.6"
+fragment = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 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/FrequentlyChangingValue.md.html b/docs/checks/FrequentlyChangingValue.md.html
index ed77dc9d..eae4814c 100644
--- a/docs/checks/FrequentlyChangingValue.md.html
+++ b/docs/checks/FrequentlyChangingValue.md.html
@@ -27,7 +27,7 @@
Artifact
: [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html)
Since
-: 1.9.0-alpha01
+: 1.9.0
Affects
: Kotlin and Java files and test sources
Editing
@@ -286,7 +286,7 @@
[FrequentlyChangingValue]
val barImplValue = barImpl.value
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -391,7 +391,7 @@
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)
@@ -410,17 +410,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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
@@ -432,11 +432,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html).
diff --git a/docs/checks/FullBackupContent.md.html b/docs/checks/FullBackupContent.md.html
index 328003d4..ee1e54dc 100644
--- a/docs/checks/FullBackupContent.md.html
+++ b/docs/checks/FullBackupContent.md.html
@@ -36,6 +36,9 @@
Ensures that ` and ``
files, which configure backup options, are valid.
+!!! Tip
+ This lint check has an associated quickfix available in the IDE.
+
(##) Example
Here is an example of lint warnings produced by this check:
@@ -48,7 +51,7 @@
path [FullBackupContent]
<exclude domain="sharedpref" path="foo.xml"/>
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -56,13 +59,12 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="my.pkg" >
<application
- android:fullBackupContent="@xml/full_backup_content">
+ android:fullBackupContent="@xml/full_backup_content"
android:dataExtractionRules="@xml/data_extraction_rules"
android:label="@string/app_name">
- ...
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml/data_extraction_rules.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -79,7 +81,7 @@
<include domain="sharedpref" path="something"/>
</device-transfer>
</data-extraction-rules>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml/full_backup_content.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -89,7 +91,7 @@
<exclude domain="file" path="dd/ss/foo.txt"/>
<exclude domain="sharedpref" path="foo.xml"/>
</full-backup-content>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/FullBackupContentDetectorTest.kt)
diff --git a/docs/checks/FullScreenIntentPolicy.md.html b/docs/checks/FullScreenIntentPolicy.md.html
new file mode 100644
index 00000000..93a13c45
--- /dev/null
+++ b/docs/checks/FullScreenIntentPolicy.md.html
@@ -0,0 +1,210 @@
+
+(#) Full Screen Intent Insights
+
+!!! WARNING: Full Screen Intent Insights
+ This is a warning.
+
+Id
+: `FullScreenIntentPolicy`
+Summary
+: Full Screen Intent Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Kotlin and Java files and manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+On Android 14+, the `USE_FULL_SCREEN_INTENT` permission is auto-granted
+*only* for apps whose core function is setting alarms or handling calls.
+For any other use case, you must obtain explicit user consent and
+clearly explain your need. This policy prevents the misuse of
+full-screen intents for non-critical purposes and requires that your use
+does not interfere with or disrupt the user's device, other apps, or
+overall usability.
+
+**Dos:**
+
+- Request user consent for the permission and provide a clear
+ explanation for the request if not auto-granted.
+- Limit use to necessary high-priority notifications/alerts.
+- Submit a declaration form in your Play Console to establish pre-grant
+ eligibility for the full-screen intent permission if targeting
+ Android 14+.
+
+**Don'ts:**
+
+- Use this permission for non-core or low-priority features.
+- Use this permission to interfere with devices or other apps.
+- Use this permission for disruptive ads or disruptive notifications.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-full-screen-intent
+See Help Center article: https://goo.gle/play-help-full-screen-intent
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:3:Warning: USE_FULL_SCREEN_INTENT permission is
+auto-granted to core alarm or call functions on Android 14+ but other
+use cases require user consent. [FullScreenIntentPolicy]
+ <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
+ --------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
+ <uses-sdk android:targetSdkVersion="34"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/FullScreenIntentPolicyDetectorTest.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, `FullScreenIntentPolicyDetector.testFlagsUseFullScreenIntent`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="FullScreenIntentPolicy"` 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">
+ ...
+ <uses-permission tools:ignore="FullScreenIntentPolicy" .../>
+ ...
+ </manifest>
+ ```
+
+* Using a suppression annotation like this on the enclosing
+ element:
+
+ ```kt
+ // Kotlin
+ @Suppress("FullScreenIntentPolicy")
+ fun method() {
+ setFullScreenIntent(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("FullScreenIntentPolicy")
+ void method() {
+ setFullScreenIntent(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection FullScreenIntentPolicy
+ 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="FullScreenIntentPolicy" 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 'FullScreenIntentPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore FullScreenIntentPolicy ...`
+ ```
+
+* 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 a5de0f0d..1d3e7eba 100644
--- a/docs/checks/FullyQualifiedResource.md.html
+++ b/docs/checks/FullyQualifiedResource.md.html
@@ -68,7 +68,7 @@
<option name="import-aliases" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -78,7 +78,7 @@
alias instead [FullyQualifiedResource]
val appName = getString(slack.l10n.R.string.app_name)
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -93,7 +93,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/resources/FullyQualifiedResourceDetectorTest.kt)
diff --git a/docs/checks/GestureBackNavigation.md.html b/docs/checks/GestureBackNavigation.md.html
index 775d3a0d..52217df0 100644
--- a/docs/checks/GestureBackNavigation.md.html
+++ b/docs/checks/GestureBackNavigation.md.html
@@ -52,7 +52,7 @@
compatible OnBackPressedDispatcher [GestureBackNavigation]
public void onBackPressed() {
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -79,7 +79,7 @@
</activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/KeyEventKeyCodeBackTest.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -103,7 +103,7 @@
// handle back
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/GestureBackNavDetectorTest.kt)
diff --git a/docs/checks/GetContentDescriptionOverride.md.html b/docs/checks/GetContentDescriptionOverride.md.html
index 51630a32..61266b6c 100644
--- a/docs/checks/GetContentDescriptionOverride.md.html
+++ b/docs/checks/GetContentDescriptionOverride.md.html
@@ -42,7 +42,7 @@
a View is not recommended [GetContentDescriptionOverride]
public CharSequence getContentDescription() {
---------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
return "";
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/GetContentDescriptionOverrideDetectorTest.kt)
diff --git a/docs/checks/GetInstance.md.html b/docs/checks/GetInstance.md.html
index 900f198f..6392bfd4 100644
--- a/docs/checks/GetInstance.md.html
+++ b/docs/checks/GetInstance.md.html
@@ -46,7 +46,7 @@
[GetInstance]
Cipher.getInstance("AES");
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,7 +62,7 @@
Cipher.getInstance("AES");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CipherGetInstanceDetectorTest.kt)
diff --git a/docs/checks/GetLocales.md.html b/docs/checks/GetLocales.md.html
index 921679fc..17cdf3de 100644
--- a/docs/checks/GetLocales.md.html
+++ b/docs/checks/GetLocales.md.html
@@ -44,7 +44,7 @@
[GetLocales]
String[] locales = assets.getLocales();
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -61,25 +61,25 @@
String[] locales = assets.getLocales();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-no/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-fil/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-b+kok+IN/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LocaleFolderDetectorTest.kt)
diff --git a/docs/checks/GlobalOptionInConsumerRules.md.html b/docs/checks/GlobalOptionInConsumerRules.md.html
new file mode 100644
index 00000000..a74fe61b
--- /dev/null
+++ b/docs/checks/GlobalOptionInConsumerRules.md.html
@@ -0,0 +1,134 @@
+
+(#) Library has global options in consumer rules
+
+!!! WARNING: Library has global options in consumer rules
+ This is a warning.
+
+Id
+: `GlobalOptionInConsumerRules`
+Summary
+: Library has global options in consumer rules
+Severity
+: Warning
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 9.0.0 (January 2026)
+Affects
+: Gradle build files and TOML files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://developer.android.com/topic/performance/app-optimization/choose-libraries-wisely
+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/ProguardConsumerRulesDetector.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/ProguardConsumerRulesDetectorTest.kt)
+
+Libraries often include consumer keep rules to instruct R8 how to
+optimize the library, especially if the library uses reflection. These
+keep rules typically indicate to R8 of which classes, methods and fields
+shouldn't be fully optimized so e.g. reflection continues to work.
+
+Global keep rules can be used by an application to disable significant
+optimization features, debug R8 behavior, suppress warnings, etc.
+However, these global options should not be included in library consumer
+rules -- those distributed with a library.
+
+Starting in Android Gradle Plugin version 9.0, all such rules are not
+supported in library builds, and ignored by application builds if
+included in a library. Libraries should not rely on these global options
+in consumer rules to function, and should remove them.
+
+If you see a flagged library, first try to update to a newer version
+that doesn't have the embedded global rule. If an updated version
+without these global options is not available, contact the library
+vendor to ask about their plans to remove global options, and thus
+support better R8 configuration.
+
+As an application developer using Android Gradle Plugin 9.0, verify that
+Android Gradle Plugin removing these global options isn't causing issues
+in your application. If they are, you can add them temporarily to a
+local keep rule file.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+build.gradle:2:Warning: The consumer keep rules at 1.0.1/proguard.pro
+(from com.example.badkeep:badkeep:1.0.1) contains a global option which
+should not be specified in library consumer rules: -dontoptimize
+[GlobalOptionInConsumerRules]
+ implementation("com.example.badkeep:badkeep:1.0.1")
+ -----------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here are the relevant source files:
+
+`build.gradle`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
+dependencies {
+ implementation("com.example.badkeep:badkeep:1.0.1")
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`build/intermediates/exploded-aar/com.example.badkeep/badkeep/1.0.1/proguard.pro`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text linenumbers
+-dontoptimize
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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/ProguardConsumerRulesDetectorTest.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 GlobalOptionInConsumerRules
+ 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="GlobalOptionInConsumerRules" 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 'GlobalOptionInConsumerRules'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore GlobalOptionInConsumerRules ...`
+ ```
+
+* 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/GradleCompatible.md.html b/docs/checks/GradleCompatible.md.html
index 9cbd894d..091654a9 100644
--- a/docs/checks/GradleCompatible.md.html
+++ b/docs/checks/GradleCompatible.md.html
@@ -37,7 +37,7 @@
are incompatible, or can lead to bugs. One such incompatibility is
compiling with a version of the Android support libraries that is not
the latest version (or in particular, a version lower than your
-`targetSdkVersion`).
+`targetSdk`).
!!! Tip
This lint check has an associated quickfix available in the IDE.
@@ -52,7 +52,7 @@
[GradleCompatible]
compile 'com.google.android.support:wearable:1.2.0'
-----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
apply plugin: 'android'
android {
- compileSdkVersion 36
+ compileSdkVersion
buildToolsVersion "19.0.0"
defaultConfig {
@@ -88,7 +88,7 @@
androidTestCompile 'com.android.support.test:runner:0.3'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/GradleDependency.md.html b/docs/checks/GradleDependency.md.html
index fd50c613..155dd42e 100644
--- a/docs/checks/GradleDependency.md.html
+++ b/docs/checks/GradleDependency.md.html
@@ -67,7 +67,7 @@
[GradleDependency]
androidTestCompile 'com.android.support.test:runner:0.3'
-------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,7 +76,7 @@
apply plugin: 'android'
android {
- compileSdkVersion 36
+ compileSdkVersion
buildToolsVersion "19.0.0"
defaultConfig {
@@ -103,10 +103,10 @@
androidTestCompile 'com.android.support.test:runner:0.3'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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)
+You can also visit the source code ([GradleDetectorTest.kt](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)
+[PropertyFileDetectorTest.kt](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/PropertyFileDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/GradleDeprecated.md.html b/docs/checks/GradleDeprecated.md.html
index 07964fc0..df2340f7 100644
--- a/docs/checks/GradleDeprecated.md.html
+++ b/docs/checks/GradleDeprecated.md.html
@@ -45,7 +45,7 @@
'com.android.application' instead [GradleDeprecated]
apply plugin: 'android'
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -54,7 +54,7 @@
apply plugin: 'android'
android {
- compileSdkVersion 36
+ compileSdkVersion
buildToolsVersion "19.0.0"
defaultConfig {
@@ -81,7 +81,7 @@
androidTestCompile 'com.android.support.test:runner:0.3'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/GradleDeprecatedConfiguration.md.html b/docs/checks/GradleDeprecatedConfiguration.md.html
index 61a284c1..2a622360 100644
--- a/docs/checks/GradleDeprecatedConfiguration.md.html
+++ b/docs/checks/GradleDeprecatedConfiguration.md.html
@@ -54,7 +54,7 @@
[GradleDeprecatedConfiguration]
debugCompile 'androidx.appcompat:appcompat:1.0.0'
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
compile 'androidx.appcompat:appcompat:1.0.0'
debugCompile 'androidx.appcompat:appcompat:1.0.0'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/GradleDynamicVersion.md.html b/docs/checks/GradleDynamicVersion.md.html
index a590a600..6513b68f 100644
--- a/docs/checks/GradleDynamicVersion.md.html
+++ b/docs/checks/GradleDynamicVersion.md.html
@@ -50,7 +50,7 @@
(com.android.support:appcompat-v7:+) [GradleDynamicVersion]
compile 'com.android.support:appcompat-v7:+'
------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
apply plugin: 'android'
android {
- compileSdkVersion 36
+ compileSdkVersion
buildToolsVersion "19.0.0"
defaultConfig {
@@ -86,7 +86,7 @@
androidTestCompile 'com.android.support.test:runner:0.3'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/GradleGetter.md.html b/docs/checks/GradleGetter.md.html
index e92002d4..89bfc924 100644
--- a/docs/checks/GradleGetter.md.html
+++ b/docs/checks/GradleGetter.md.html
@@ -60,7 +60,7 @@
[GradleGetter]
versionName getVersionName
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -87,7 +87,7 @@
versionName getVersionName
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/GradleLikelyBug.md.html b/docs/checks/GradleLikelyBug.md.html
index ff33a816..d94f1f67 100644
--- a/docs/checks/GradleLikelyBug.md.html
+++ b/docs/checks/GradleLikelyBug.md.html
@@ -51,17 +51,17 @@
```
// build.gradle.kts
-implementation("androidx.lint:lint-gradle:1.0.0-alpha04")
+implementation("androidx.lint:lint-gradle:1.0.0-alpha05")
// build.gradle
-implementation 'androidx.lint:lint-gradle:1.0.0-alpha04'
+implementation 'androidx.lint:lint-gradle:1.0.0-alpha05'
// build.gradle.kts with version catalogs:
implementation(libs.lint.gradle)
# libs.versions.toml
[versions]
-lint-gradle = "1.0.0-alpha04"
+lint-gradle = "1.0.0-alpha05"
[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-alpha04 is the version this documentation was generated from;
+1.0.0-alpha05 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/GradleOverrides.md.html b/docs/checks/GradleOverrides.md.html
index ae52b8e3..afdcad3a 100644
--- a/docs/checks/GradleOverrides.md.html
+++ b/docs/checks/GradleOverrides.md.html
@@ -45,7 +45,7 @@
[GradleOverrides]
package="${packageName}" >
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -59,13 +59,13 @@
android:label="@string/app_name" >
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
android {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ManifestDetectorTest.kt)
diff --git a/docs/checks/GradlePath.md.html b/docs/checks/GradlePath.md.html
index c5e5b74c..2e95f297 100644
--- a/docs/checks/GradlePath.md.html
+++ b/docs/checks/GradlePath.md.html
@@ -53,7 +53,7 @@
[GradlePath]
compile files('/libs/android-support-v4.jar')
-------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
compile files('my\\libs\\http.jar')
compile files('/libs/android-support-v4.jar')
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/GradlePluginVersion.md.html b/docs/checks/GradlePluginVersion.md.html
index d7c50db1..797e25d8 100644
--- a/docs/checks/GradlePluginVersion.md.html
+++ b/docs/checks/GradlePluginVersion.md.html
@@ -42,11 +42,11 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
build.gradle:6:Error: You must use a newer version of the Android Gradle
-plugin. The minimum supported version is 3.2.0 and the recommended
-version is 7.0.3 [GradlePluginVersion]
+plugin. The minimum supported version is and the recommended version is
+ [GradlePluginVersion]
classpath 'com.android.tools.build:gradle:0.1.0'
------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
mavenCentral()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/GradleProjectIsolation.md.html b/docs/checks/GradleProjectIsolation.md.html
index 4f53dc67..48d6f3a8 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-alpha04")
+implementation("androidx.lint:lint-gradle:1.0.0-alpha05")
// build.gradle
-implementation 'androidx.lint:lint-gradle:1.0.0-alpha04'
+implementation 'androidx.lint:lint-gradle:1.0.0-alpha05'
// build.gradle.kts with version catalogs:
implementation(libs.lint.gradle)
# libs.versions.toml
[versions]
-lint-gradle = "1.0.0-alpha04"
+lint-gradle = "1.0.0-alpha05"
[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-alpha04 is the version this documentation was generated from;
+1.0.0-alpha05 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/GrantAllUris.md.html b/docs/checks/GrantAllUris.md.html
index c55febe5..9f51eb96 100644
--- a/docs/checks/GrantAllUris.md.html
+++ b/docs/checks/GrantAllUris.md.html
@@ -49,7 +49,7 @@
is potentially dangerous [GrantAllUris]
<grant-uri-permission android:pathPrefix="/"/>
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -85,7 +85,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -119,8 +119,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SecurityDetectorTest.java)
diff --git a/docs/checks/GridLayout.md.html b/docs/checks/GridLayout.md.html
index 087eee4b..530caf77 100644
--- a/docs/checks/GridLayout.md.html
+++ b/docs/checks/GridLayout.md.html
@@ -48,7 +48,7 @@
declared grid column count (2) [GridLayout]
android:layout_column="3"
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -93,9 +93,7 @@
/>
</GridLayout>
-
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/GridLayoutDetectorTest.java)
diff --git a/docs/checks/GuavaChecksUsed.md.html b/docs/checks/GuavaChecksUsed.md.html
index c081c084..92f95d5c 100644
--- a/docs/checks/GuavaChecksUsed.md.html
+++ b/docs/checks/GuavaChecksUsed.md.html
@@ -71,7 +71,7 @@
Guava's Preconditions checks [GuavaChecksUsed]
Preconditions.checkElementIndex(0, 1);
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -92,7 +92,7 @@
Preconditions.checkElementIndex(0, 1);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/GuavaPreconditionsDetectorTest.kt)
diff --git a/docs/checks/GuavaPreconditionsUsedInKotlin.md.html b/docs/checks/GuavaPreconditionsUsedInKotlin.md.html
index 2d6b3981..1b204e9c 100644
--- a/docs/checks/GuavaPreconditionsUsedInKotlin.md.html
+++ b/docs/checks/GuavaPreconditionsUsedInKotlin.md.html
@@ -72,7 +72,7 @@
Kotlin standard library checks [GuavaPreconditionsUsedInKotlin]
Preconditions.checkElementIndex(0, 1)
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -93,7 +93,7 @@
Preconditions.checkElementIndex(0, 1)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/GuavaPreconditionsDetectorTest.kt)
diff --git a/docs/checks/HalfFloat.md.html b/docs/checks/HalfFloat.md.html
index 71dd6cb7..937ed0c5 100644
--- a/docs/checks/HalfFloat.md.html
+++ b/docs/checks/HalfFloat.md.html
@@ -65,7 +65,7 @@
widened to int [HalfFloat]
Math.round(float1); // Error: should use Half.round
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -138,7 +138,7 @@
// TODO: Arrays
// TODO: Add cast
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ResourceTypeDetectorTest.kt)
diff --git a/docs/checks/HandlerLeak.md.html b/docs/checks/HandlerLeak.md.html
index 190d1fd8..554c4e73 100644
--- a/docs/checks/HandlerLeak.md.html
+++ b/docs/checks/HandlerLeak.md.html
@@ -55,7 +55,7 @@
[HandlerLeak]
Handler anonymous = new Handler() { // ERROR
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -102,7 +102,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/HandlerDetectorTest.java)
diff --git a/docs/checks/HardcodedAbsolutePath.md.html b/docs/checks/HardcodedAbsolutePath.md.html
new file mode 100644
index 00000000..4e4fb228
--- /dev/null
+++ b/docs/checks/HardcodedAbsolutePath.md.html
@@ -0,0 +1,161 @@
+
+(#) The "path" attribute should not be an absolute path
+
+!!! WARNING: The "path" attribute should not be an absolute path
+ This is a warning.
+
+Id
+: `HardcodedAbsolutePath`
+Summary
+: The "path" attribute should not be an absolute path
+Severity
+: Warning
+Category
+: Security
+Platform
+: Android
+Vendor
+: Google - Android 3P Vulnerability Research
+Contact
+: https://github.com/google/android-security-lints
+Feedback
+: https://github.com/google/android-security-lints/issues
+Min
+: Lint 4.1
+Compiled
+: Lint 8.0 and 8.1
+Artifact
+: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
+Since
+: 1.0.4
+Affects
+: Resource files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://goo.gle/HardcodedAbsolutePath
+Implementation
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/main/java/com/example/lint/checks/MisconfiguredFileProviderDetector.kt)
+Tests
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MisconfiguredFileProviderDetectorTest.kt)
+Copyright Year
+: 2023
+
+Avoid hardcoding absolute paths into your app. Ensure that a specific,
+narrow and limited path is shared to prevent mistakenly exposing
+sensitive data.
+
+!!! 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
+res/xml/file_paths.xml:5:Warning: The "path" attribute should not be an
+absolute path [HardcodedAbsolutePath]
+ <external-media-path name="files" path="/Documents"/>
+ -----------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`res/xml/file_paths.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+ <paths xmlns:android="http://schemas.android.com/apk/res/android">
+ <files-path name="my_images" path="images/"/>
+ <files-path name="my_docs" path="docs/"/>
+ <external-media-path name="files" path="/Documents"/>
+ </paths>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MisconfiguredFileProviderDetectorTest.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, `MisconfiguredFileProviderDetector.testWhenAbsolutePathUsedInConfig_showsWarningAndQuickFix`.
+To report a problem with this extracted sample, visit
+https://github.com/google/android-security-lints/issues.
+
+(##) 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.android.security.lint:lint:1.0.4")
+
+// build.gradle
+lintChecks 'com.android.security.lint:lint:1.0.4'
+
+// build.gradle.kts with version catalogs:
+lintChecks(libs.com.android.security.lint.lint)
+
+# libs.versions.toml
+[versions]
+com-android-security-lint-lint = "1.0.4"
+[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:
+com-android-security-lint-lint = {
+ module = "com.android.security.lint:lint",
+ version.ref = "com-android-security-lint-lint"
+}
+```
+
+1.0.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="HardcodedAbsolutePath"` 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="HardcodedAbsolutePath" 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 'HardcodedAbsolutePath'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore HardcodedAbsolutePath ...`
+ ```
+
+* 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/HardcodedDebugMode.md.html b/docs/checks/HardcodedDebugMode.md.html
index 72ef6098..849fd73f 100644
--- a/docs/checks/HardcodedDebugMode.md.html
+++ b/docs/checks/HardcodedDebugMode.md.html
@@ -54,7 +54,7 @@
[HardcodedDebugMode]
android:debuggable="true"
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -84,7 +84,7 @@
</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/HardcodedDebugModeDetectorTest.kt)
diff --git a/docs/checks/HardcodedText.md.html b/docs/checks/HardcodedText.md.html
index 658156ff..ae04a475 100644
--- a/docs/checks/HardcodedText.md.html
+++ b/docs/checks/HardcodedText.md.html
@@ -56,7 +56,7 @@
should use @string resource [HardcodedText]
<Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
---------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,10 +70,10 @@
<Button android:id="@+android:id/summary" android:contentDescription="@string/label" />
<ImageButton android:importantForAccessibility="no" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/android_button" android:focusable="false" android:clickable="false" android:layout_weight="1.0" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/HardcodedValuesDetectorTest.kt)
+You can also visit the source code ([HardcodedValuesDetectorTest.kt](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/HardcodedValuesDetectorTest.kt)
+[TextReporterTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/TextReporterTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/HardwareIds.md.html b/docs/checks/HardwareIds.md.html
index 7afef299..ae0bfb1f 100644
--- a/docs/checks/HardwareIds.md.html
+++ b/docs/checks/HardwareIds.md.html
@@ -44,7 +44,7 @@
identifiers is not recommended [HardwareIds]
return adapter.getAddress();
--------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
return adapter.getAddress();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/HardwareIdDetectorTest.kt)
diff --git a/docs/checks/HealthConnectPolicy.md.html b/docs/checks/HealthConnectPolicy.md.html
new file mode 100644
index 00000000..09dc632b
--- /dev/null
+++ b/docs/checks/HealthConnectPolicy.md.html
@@ -0,0 +1,193 @@
+
+(#) Health Connect Insights
+
+!!! WARNING: Health Connect Insights
+ This is a warning.
+
+Id
+: `HealthConnectPolicy`
+Summary
+: Health Connect Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+Access to Health Connect data is restricted to apps with approved
+health, fitness, medical care, or health research core use cases. You
+must strictly limit data access to the minimum scope necessary for these
+approved functions and obtain explicit user consent before sharing any
+health data with third parties. Transparency is key, so provide clear
+disclosures and a comprehensive privacy policy explaining data
+collection, use, management, and deletion. Secure user data against
+unauthorized access and comply with all applicable laws and regulations
+(e.g., HIPAA, GDPR).
+
+**Dos:**
+
+- Your app must also comply with the Health apps policy if it qualifies
+ as a health app or has health-related features and accesses health
+ data including Health Connect data.
+- See Health Connect policy requirement FAQs to request access to Health
+ Connect data types and other FAQs.
+- Submit a declaration form in your Play Console. For each permission
+ requested, provide a clear and detailed justification explaining how
+ your app will use the data to benefit the user.
+- Request only the minimum necessary data types.
+- Securely handle user data (e.g., use modern cryptography).
+
+**Don'ts:**
+
+- Use Health Connect in high-risk apps (e.g., aviation, control of
+ life-critical systems such as pacemakers) or for children.
+- Sell or transfer user data for advertising, creditworthiness, or data
+ brokers.
+- Use with medical devices without required regulatory
+ compliance/clearances.
+- Access Health Connect data for secondary or unapproved purposes.
+- Request data permissions beyond your app's core functionality.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-health-connect
+See Help Center article: https://goo.gle/play-help-health-connect
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:3:Warning: Health Connect permission is restricted
+to approved core Health or Fitness functions use only and requires
+strict data access and handling, user consent and transparency.
+[HealthConnectPolicy]
+ <uses-permission android:name="android.permission.health.READ_ACTIVE_CALORIES_BURNED"/>
+ --------------------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="android.permission.health.READ_ACTIVE_CALORIES_BURNED"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/HealthConnectPolicyDetectorTest.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, `HealthConnectPolicyDetector.testFlagsHealthPermission`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="HealthConnectPolicy"` 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">
+ ...
+ <uses-permission tools:ignore="HealthConnectPolicy" .../>
+ ...
+ </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="HealthConnectPolicy" 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 'HealthConnectPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore HealthConnectPolicy ...`
+ ```
+
+* 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/HighAppVersionCode.md.html b/docs/checks/HighAppVersionCode.md.html
index 6247c792..ca7f8e06 100644
--- a/docs/checks/HighAppVersionCode.md.html
+++ b/docs/checks/HighAppVersionCode.md.html
@@ -44,7 +44,7 @@
max allowed value [HighAppVersionCode]
versionCode 2146435071
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
versionCode 2146435071
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/HighSamplingRate.md.html b/docs/checks/HighSamplingRate.md.html
index da7c449f..9afd2f8e 100644
--- a/docs/checks/HighSamplingRate.md.html
+++ b/docs/checks/HighSamplingRate.md.html
@@ -43,7 +43,7 @@
sensor sampling rate. [HighSamplingRate]
<uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS"/>
---------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
</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/HighSensorSamplingRateDetectorTest.kt)
diff --git a/docs/checks/IconDipSize.md.html b/docs/checks/IconDipSize.md.html
index b890d181..8b5b17c4 100644
--- a/docs/checks/IconDipSize.md.html
+++ b/docs/checks/IconDipSize.md.html
@@ -45,7 +45,7 @@
size (pixel size 58×56 in a drawable-mdpi folder computes to 58×56 dp)
[IconDipSize]
0 errors, 3 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant test files:
diff --git a/docs/checks/IconExtension.md.html b/docs/checks/IconExtension.md.html
index f8c8979e..3a844eca 100644
--- a/docs/checks/IconExtension.md.html
+++ b/docs/checks/IconExtension.md.html
@@ -42,7 +42,7 @@
res/drawable-mdpi/foo.png:Warning: Misleading file extension; named .png
but the file format is webp [IconExtension]
0 errors, 1 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant test files:
diff --git a/docs/checks/IconMissingDensityFolder.md.html b/docs/checks/IconMissingDensityFolder.md.html
index b8ccb15c..17773b69 100644
--- a/docs/checks/IconMissingDensityFolder.md.html
+++ b/docs/checks/IconMissingDensityFolder.md.html
@@ -51,7 +51,7 @@
in res: drawable-hdpi, drawable-xhdpi, drawable-xxhdpi
[IconMissingDensityFolder]
0 errors, 3 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,10 +64,10 @@
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
</selector>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/IconDetectorTest.java)
+You can also visit the source code ([IconDetectorTest.java](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/IconDetectorTest.java)
+[LintBaselineTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/LintBaselineTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/IconXmlAndPng.md.html b/docs/checks/IconXmlAndPng.md.html
index 915d2b60..dda43e77 100644
--- a/docs/checks/IconXmlAndPng.md.html
+++ b/docs/checks/IconXmlAndPng.md.html
@@ -46,14 +46,14 @@
[IconXmlAndPng]
res/drawable-mdpi/background.png: <No location-specific message>
0 errors, 1 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
`res/drawable/background.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<tag/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/IconDetectorTest.java)
diff --git a/docs/checks/IdleBatteryChargingConstraints.md.html b/docs/checks/IdleBatteryChargingConstraints.md.html
index 2551c222..1d3a008b 100644
--- a/docs/checks/IdleBatteryChargingConstraints.md.html
+++ b/docs/checks/IdleBatteryChargingConstraints.md.html
@@ -50,7 +50,7 @@
devices [IdleBatteryChargingConstraints]
builder.setRequiresDeviceIdle(true)
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -67,7 +67,7 @@
.setRequiresCharging(true)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/work/work-lint/src/test/java/androidx/work/lint/IdleBatteryChargingConstraintsDetectorTest.kt)
@@ -86,17 +86,17 @@
```
// build.gradle.kts
-implementation("androidx.work:work-runtime:2.10.1")
+implementation("androidx.work:work-runtime:2.11.1")
// build.gradle
-implementation 'androidx.work:work-runtime:2.10.1'
+implementation 'androidx.work:work-runtime:2.11.1'
// build.gradle.kts with version catalogs:
implementation(libs.work.runtime)
# libs.versions.toml
[versions]
-work-runtime = "2.10.1"
+work-runtime = "2.11.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.1 is the version this documentation was generated from;
+2.11.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/IgnoreWithoutReason.md.html b/docs/checks/IgnoreWithoutReason.md.html
index 6df95a14..81f4abda 100644
--- a/docs/checks/IgnoreWithoutReason.md.html
+++ b/docs/checks/IgnoreWithoutReason.md.html
@@ -55,7 +55,7 @@
<option name="allow-comments" value="true" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -65,7 +65,7 @@
explanation [IgnoreWithoutReason]
@Ignore class MyTest {
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -81,7 +81,7 @@
@Test public void something() {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/IgnoreWithoutReasonDetectorTest.kt)
diff --git a/docs/checks/IllegalResourceRef.md.html b/docs/checks/IllegalResourceRef.md.html
index d194e5c8..7cc14edf 100644
--- a/docs/checks/IllegalResourceRef.md.html
+++ b/docs/checks/IllegalResourceRef.md.html
@@ -49,7 +49,7 @@
codename) [IllegalResourceRef]
<uses-sdk android:minSdkVersion="@dimen/minSdkVersion" android:targetSdkVersion="@dimen/targetSdkVersion" />
--------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -67,7 +67,8 @@
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
- android:name=".Foo2Activity" >
+ android:name=".Foo2Activity"
+ android:exported="true">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
@@ -77,7 +78,7 @@
</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/ManifestDetectorTest.kt)
diff --git a/docs/checks/ImplicitSamInstance.md.html b/docs/checks/ImplicitSamInstance.md.html
index 0f79ebb5..9ef17066 100644
--- a/docs/checks/ImplicitSamInstance.md.html
+++ b/docs/checks/ImplicitSamInstance.md.html
@@ -73,7 +73,7 @@
to subtle bugs [ImplicitSamInstance]
handler.delete(lambda3) // ERROR 5
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -124,7 +124,7 @@
fun viewpost(view: android.view.View) {
view.postDelayed({ println ("Hello") }, 50)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/JavaTest.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -138,7 +138,7 @@
handler.stash(() -> System.out.println("hello"), list); // OK
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyInterface.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -147,7 +147,7 @@
public interface MyInterface {
void act();
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyHandler.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -215,7 +215,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SamDetectorTest.kt)
diff --git a/docs/checks/ImplicitStringPlaceholder.md.html b/docs/checks/ImplicitStringPlaceholder.md.html
index 6f38a644..83f4a311 100644
--- a/docs/checks/ImplicitStringPlaceholder.md.html
+++ b/docs/checks/ImplicitStringPlaceholder.md.html
@@ -47,8 +47,8 @@
res/values/strings.xml:2:Warning: Implicit placeholder
[ImplicitStringPlaceholder]
<string name="my_string">Hello %s</string>
- ^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ --
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
<resources>
<string name="my_string">Hello %s</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/ImplicitStringPlaceholderDetectorTest.kt)
diff --git a/docs/checks/ImpliedQuantity.md.html b/docs/checks/ImpliedQuantity.md.html
index 92e842e9..875c8e4b 100644
--- a/docs/checks/ImpliedQuantity.md.html
+++ b/docs/checks/ImpliedQuantity.md.html
@@ -55,7 +55,7 @@
issue explanation for more. [ImpliedQuantity]
<item quantity="one">Znaleziono jedną piosenkę.</item>
------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -69,7 +69,7 @@
<item quantity="other">@string/hello</item>
</plurals>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/plurals2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -80,7 +80,7 @@
<item quantity="other">%d songs found.</item>
</plurals>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-pl/plurals2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -92,7 +92,7 @@
<item quantity="other">Znaleziono %d piosenek.</item>
</plurals>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-sl/plurals2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -104,7 +104,7 @@
<item quantity="other">Znaleziono %d piosenek.</item>
</plurals>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PluralsDetectorTest.java)
diff --git a/docs/checks/ImpliedTouchscreenHardware.md.html b/docs/checks/ImpliedTouchscreenHardware.md.html
index 462cd0fd..ce064a65 100644
--- a/docs/checks/ImpliedTouchscreenHardware.md.html
+++ b/docs/checks/ImpliedTouchscreenHardware.md.html
@@ -46,7 +46,7 @@
[ImpliedTouchscreenHardware]
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -58,7 +58,7 @@
<uses-feature android:name="android.software.leanback"/>
<uses-feature android:name="android.hardware.telephony"/>
</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/AndroidTvDetectorTest.java)
diff --git a/docs/checks/InOrMmUsage.md.html b/docs/checks/InOrMmUsage.md.html
index f2e28ef0..bfb9ffb8 100644
--- a/docs/checks/InOrMmUsage.md.html
+++ b/docs/checks/InOrMmUsage.md.html
@@ -53,7 +53,7 @@
[InOrMmUsage]
android:layout_height="120in"
-----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -113,7 +113,7 @@
android:maxHeight="1px"
android:scaleType="center" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PxUsageDetectorTest.java)
diff --git a/docs/checks/IncludeLayoutParam.md.html b/docs/checks/IncludeLayoutParam.md.html
index 216cbbcd..58595fa3 100644
--- a/docs/checks/IncludeLayoutParam.md.html
+++ b/docs/checks/IncludeLayoutParam.md.html
@@ -74,7 +74,7 @@
[IncludeLayoutParam]
android:layout_height="fill_parent"
-----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -155,7 +155,7 @@
android:visibility="visible" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/IncludeDetectorTest.java)
diff --git a/docs/checks/InclusiveNaming.md.html b/docs/checks/InclusiveNaming.md.html
index a68e4494..43d91fe3 100644
--- a/docs/checks/InclusiveNaming.md.html
+++ b/docs/checks/InclusiveNaming.md.html
@@ -36,6 +36,8 @@
: 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/inclusive/InclusiveNamingResourceScanner.kt)
+Tests
+: [Source Code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/inclusive/InclusiveNamingDetectorTest.kt)
Copyright Year
: 2021
@@ -61,7 +63,59 @@
<option name="block-list" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+test/ForkHandler.kt:1:Error: Use inclusive naming. Matched string is
+'spork' in property name 'sporkBranch' [InclusiveNaming]
+class Spork(val sporkBranch: String, sporkParam: String) {
+ -----------------------
+test/ForkHandler.kt:2:Error: Use inclusive naming. Matched string is
+'knife' in property name 'knife' [InclusiveNaming]
+ val knife = ""
+ --------------
+test/ForkHandler.kt:4:Error: Use inclusive naming. Matched string is
+'spoon' in parameter name 'spoonRef' [InclusiveNaming]
+ fun spoonBranch(val spoonRef: String) {
+ --------------------
+test/ForkHandler.kt:5:Error: Use inclusive naming. Matched string is
+'fork' in local variable name 'localFork' [InclusiveNaming]
+ val localFork = ""
+ ------------------
+test/ForkHandler.kt:7:Error: Use inclusive naming. Matched string is
+'spoon' in label name 'spoonRefs' [InclusiveNaming]
+ .forEach spoonRefs@ {
+ ^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`test/ForkHandler.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+class Spork(val sporkBranch: String, sporkParam: String) {
+ val knife = ""
+
+ fun spoonBranch(val spoonRef: String) {
+ val localFork = ""
+ emptyList()
+ .forEach spoonRefs@ {
+
+ }
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/inclusive/InclusiveNamingDetectorTest.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, `InclusiveNamingResourceScanner.kotlin`.
+To report a problem with this extracted sample, visit
+https://github.com/slackhq/slack-lints.
(##) Conflicts
diff --git a/docs/checks/IncompatibleMediaBrowserServiceCompatVersion.md.html b/docs/checks/IncompatibleMediaBrowserServiceCompatVersion.md.html
index f9731305..5fe7b7d7 100644
--- a/docs/checks/IncompatibleMediaBrowserServiceCompatVersion.md.html
+++ b/docs/checks/IncompatibleMediaBrowserServiceCompatVersion.md.html
@@ -42,7 +42,7 @@
compatible [IncompatibleMediaBrowserServiceCompatVersion]
compile 'com.android.support:support-v4:23.4.0'
-------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -68,7 +68,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
@@ -77,7 +77,7 @@
dependencies {
compile 'com.android.support:support-v4:23.4.0'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MediaBrowserServiceCompatVersionDetectorTest.kt)
diff --git a/docs/checks/InconsistentArrays.md.html b/docs/checks/InconsistentArrays.md.html
index f6af0927..23b1cfb1 100644
--- a/docs/checks/InconsistentArrays.md.html
+++ b/docs/checks/InconsistentArrays.md.html
@@ -59,7 +59,7 @@
values-land/arrays.xml) [InconsistentArrays]
<array name="signal_strength">
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -82,8 +82,7 @@
<item>@drawable/ic_setups_signal_4</item>
</array>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-cs/arrays.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -96,7 +95,7 @@
<item>"Název střední školy"</item>
</string-array>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-land/arrays.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -110,8 +109,7 @@
<item>@drawable/extra</item>
</array>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-nl-rNL/arrays.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -123,7 +121,7 @@
<item>"Naam van middelbare school?"</item>
</string-array>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-es/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -145,7 +143,7 @@
<item>"Nombre de tu colegio"</item>
</string-array>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ArraySizeDetectorTest.kt)
diff --git a/docs/checks/InconsistentLayout.md.html b/docs/checks/InconsistentLayout.md.html
index 750ea37e..14fc0a47 100644
--- a/docs/checks/InconsistentLayout.md.html
+++ b/docs/checks/InconsistentLayout.md.html
@@ -59,7 +59,7 @@
(present in layout) [InconsistentLayout]
android:id="@+id/button4"
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -72,7 +72,7 @@
parent.foo(R.id.button4);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/layout1.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -121,7 +121,7 @@
android:text="Button" />
</RelativeLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout-xlarge/layout1.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -138,7 +138,7 @@
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LayoutConsistencyDetectorTest.java)
diff --git a/docs/checks/IncorrectReferencesDeclaration.md.html b/docs/checks/IncorrectReferencesDeclaration.md.html
index 28ad1ced..ef50930b 100644
--- a/docs/checks/IncorrectReferencesDeclaration.md.html
+++ b/docs/checks/IncorrectReferencesDeclaration.md.html
@@ -65,7 +65,7 @@
match assigned variables (2) [IncorrectReferencesDeclaration]
val (box2, text2) = createRefsFor("box", "text", "image")
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -96,7 +96,7 @@
val (box3, text3, image3) = createRefsFor(*ids)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/constraintlayout/constraintlayout-compose-lint/src/test/java/androidx/constraintlayout/compose/lint/ConstraintLayoutDslDetectorTest.kt)
diff --git a/docs/checks/InefficientWeight.md.html b/docs/checks/InefficientWeight.md.html
index 2cbc8364..a478e662 100644
--- a/docs/checks/InefficientWeight.md.html
+++ b/docs/checks/InefficientWeight.md.html
@@ -51,7 +51,7 @@
instead of wrap_content for better performance [InefficientWeight]
android:layout_height="wrap_content"
------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -117,7 +117,7 @@
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/InefficientWeightDetectorTest.java)
diff --git a/docs/checks/InflateParams.md.html b/docs/checks/InflateParams.md.html
index 37eb24ce..cbc45318 100644
--- a/docs/checks/InflateParams.md.html
+++ b/docs/checks/InflateParams.md.html
@@ -51,7 +51,7 @@
layout's root element) [InflateParams]
convertView = mInflater.inflate(R.layout.your_layout, null, true);
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -97,7 +97,7 @@
public static View inflate(View view, Object params) { return null; }
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/your_layout.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -107,14 +107,14 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout-port/your_layout.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@id/text1"
style="?android:attr/listSeparatorTextViewStyle" />
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LayoutInflationDetectorTest.java)
diff --git a/docs/checks/InjectInJava.md.html b/docs/checks/InjectInJava.md.html
index 3882a2ff..9529bd09 100644
--- a/docs/checks/InjectInJava.md.html
+++ b/docs/checks/InjectInJava.md.html
@@ -73,7 +73,7 @@
injected in order for Anvil to work. [InjectInJava]
@Module static abstract class ExampleModule {
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -113,8 +113,7 @@
}
}
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/InjectInJavaDetectorTest.kt)
diff --git a/docs/checks/InlinedApi.md.html b/docs/checks/InlinedApi.md.html
index 16ea1fc9..1d489cad 100644
--- a/docs/checks/InlinedApi.md.html
+++ b/docs/checks/InlinedApi.md.html
@@ -63,7 +63,7 @@
android.media.MediaFormat#MIMETYPE_AUDIO_AC4 [InlinedApi]
val format: String = MediaFormat.MIMETYPE_AUDIO_AC4
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -74,7 +74,7 @@
android:minSdkVersion="21"
android:targetSdkVersion="30" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -88,10 +88,11 @@
val format: String = MediaFormat.MIMETYPE_AUDIO_AC4
encode(format) // might crash!
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/ApiDetectorTest.java)
+You can also visit the source code ([ApiDetectorTest.java](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/ApiDetectorTest.java)
+[VersionChecksTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/detector/api/VersionChecksTest.kt)
+[LintBaselineTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/LintBaselineTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/InnerclassSeparator.md.html b/docs/checks/InnerclassSeparator.md.html
index d08f1dcf..e6b9c992 100644
--- a/docs/checks/InnerclassSeparator.md.html
+++ b/docs/checks/InnerclassSeparator.md.html
@@ -50,7 +50,7 @@
replace ".Foo.Bar" with ".Foo$Bar" [InnerclassSeparator]
android:name=".Foo.Bar"
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -65,7 +65,7 @@
</activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/Foo.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -77,7 +77,7 @@
public static class Bar extends Activity {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MissingClassDetectorTest.kt)
diff --git a/docs/checks/InsecureBaseConfiguration.md.html b/docs/checks/InsecureBaseConfiguration.md.html
index d1c84664..6676af19 100644
--- a/docs/checks/InsecureBaseConfiguration.md.html
+++ b/docs/checks/InsecureBaseConfiguration.md.html
@@ -49,7 +49,7 @@
[InsecureBaseConfiguration]
<base-config cleartextTrafficPermitted="true">
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
<base-config cleartextTrafficPermitted="true">
</base-config>
</network-security-config>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NetworkSecurityConfigDetectorTest.java)
diff --git a/docs/checks/InsecureDnsSdkLevel.md.html b/docs/checks/InsecureDnsSdkLevel.md.html
index 0ed54b40..3f1e3797 100644
--- a/docs/checks/InsecureDnsSdkLevel.md.html
+++ b/docs/checks/InsecureDnsSdkLevel.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Manifest files
Editing
@@ -56,7 +56,7 @@
transport security features [InsecureDnsSdkLevel]
<uses-sdk android:targetSdkVersion='27'/>
--
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
<activity android:name='com.example.MainActivity'></activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/DnsConfigDetectorTest.kt)
@@ -88,17 +88,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/InsecureLegacyExternalStorage.md.html b/docs/checks/InsecureLegacyExternalStorage.md.html
new file mode 100644
index 00000000..defacd72
--- /dev/null
+++ b/docs/checks/InsecureLegacyExternalStorage.md.html
@@ -0,0 +1,172 @@
+
+(#) The `requestLegacyExternalStorage` attribute is set to true, opting the app out of scoped storage
+
+!!! WARNING: The `requestLegacyExternalStorage` attribute is set to true, opting the app out of scoped storage
+ This is a warning.
+
+Id
+: `InsecureLegacyExternalStorage`
+Summary
+: The `requestLegacyExternalStorage` attribute is set to true, opting the app out of scoped storage
+Severity
+: Warning
+Category
+: Security
+Platform
+: Android
+Vendor
+: Google - Android 3P Vulnerability Research
+Contact
+: https://github.com/google/android-security-lints
+Feedback
+: https://github.com/google/android-security-lints/issues
+Min
+: Lint 4.1
+Compiled
+: Lint 8.0 and 8.1
+Artifact
+: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
+Since
+: 1.0.4
+Affects
+: Manifest files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://goo.gle/InsecureLegacyExternalStorage
+Implementation
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/main/java/com/example/lint/checks/InsecureStorageDetector.kt)
+Tests
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/InsecureStorageDetectorTest.kt)
+Copyright Year
+: 2024
+
+Applications targeting Android 10 can set the
+`requestLegacyExternalStorage` flag to `true`, but this configuration
+opts the app out of Android Scoped Storage, making application-related
+files in external storage accessible to other applications.
+
+!!! 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
+AndroidManifest.xml:3:Warning: Setting requestLegacyExternalStorage to
+true will disable Android Scoped Storage
+[InsecureLegacyExternalStorage]
+<application android:requestLegacyExternalStorage="true">
+ -------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<manifest xmlns:android='http://schemas.android.com/apk/res/android' package='test.pkg'>
+<uses-sdk android:targetSdkVersion="29"/>
+<application android:requestLegacyExternalStorage="true">
+ <activity android:name='com.example.MainActivity'></activity>
+</application>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/InsecureStorageDetectorTest.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, `InsecureStorageDetector.testWhenRequestLegacyExternalStorageDeclared_whenBelowPatchedSdkLevel_showsWarning`.
+To report a problem with this extracted sample, visit
+https://github.com/google/android-security-lints/issues.
+
+(##) 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.android.security.lint:lint:1.0.4")
+
+// build.gradle
+lintChecks 'com.android.security.lint:lint:1.0.4'
+
+// build.gradle.kts with version catalogs:
+lintChecks(libs.com.android.security.lint.lint)
+
+# libs.versions.toml
+[versions]
+com-android-security-lint-lint = "1.0.4"
+[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:
+com-android-security-lint-lint = {
+ module = "com.android.security.lint:lint",
+ version.ref = "com-android-security-lint-lint"
+}
+```
+
+1.0.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="InsecureLegacyExternalStorage"` 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">
+ ...
+ <application tools:ignore="InsecureLegacyExternalStorage" .../>
+ ...
+ </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="InsecureLegacyExternalStorage" 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 'InsecureLegacyExternalStorage'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore InsecureLegacyExternalStorage ...`
+ ```
+
+* 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/InsecurePermissionProtectionLevel.md.html b/docs/checks/InsecurePermissionProtectionLevel.md.html
index 29147a02..f518d0a2 100644
--- a/docs/checks/InsecurePermissionProtectionLevel.md.html
+++ b/docs/checks/InsecurePermissionProtectionLevel.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Manifest files
Editing
@@ -55,11 +55,11 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-AndroidManifest.xml:2:Warning: Custom permissions should have signature
-`protectionLevel`s or higher [InsecurePermissionProtectionLevel]
+AndroidManifest.xml:2:Warning: Custom permissions should have a
+signature protectionLevel or higher [InsecurePermissionProtectionLevel]
<permission android:name="com.android.example.permission.CUSTOM_PERMISSION" />
------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
<activity android:name='com.example.MainActivity'></activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/PermissionDetectorTest.kt)
@@ -91,17 +91,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/InsecureStickyBroadcastsMethod.md.html b/docs/checks/InsecureStickyBroadcastsMethod.md.html
index 6f5ce93f..475e5076 100644
--- a/docs/checks/InsecureStickyBroadcastsMethod.md.html
+++ b/docs/checks/InsecureStickyBroadcastsMethod.md.html
@@ -55,7 +55,7 @@
[InsecureStickyBroadcastsMethod]
sendStickyOrderedBroadcast();
----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,7 +75,7 @@
sendStickyOrderedBroadcast();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/StickyBroadcastsDetectorTest.kt)
@@ -95,17 +95,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/InsecureStickyBroadcastsPermission.md.html b/docs/checks/InsecureStickyBroadcastsPermission.md.html
index 398ed902..b9ea953c 100644
--- a/docs/checks/InsecureStickyBroadcastsPermission.md.html
+++ b/docs/checks/InsecureStickyBroadcastsPermission.md.html
@@ -55,7 +55,7 @@
[InsecureStickyBroadcastsPermission]
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>
---------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -67,7 +67,7 @@
<activity android:name='com.example.MainActivity'></activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/StickyBroadcastsDetectorTest.kt)
@@ -87,17 +87,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/InstantAppCall.md.html b/docs/checks/InstantAppCall.md.html
new file mode 100644
index 00000000..20276b99
--- /dev/null
+++ b/docs/checks/InstantAppCall.md.html
@@ -0,0 +1,131 @@
+
+(#) Instant App call
+
+!!! WARNING: Instant App call
+ This is a warning.
+
+Id
+: `InstantAppCall`
+Summary
+: Instant App call
+Severity
+: Warning
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 8.12.0 (July 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/InstantAppDetector.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/InstantAppDetectorTest.kt)
+
+Instant Apps support will be removed by Google Play in December 2025.
+Publishing and all Google Play Instant APIs will no longer work. Tooling
+support will be removed in Android Studio Otter Feature Drop.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/com/example/app/MyApp.kt:8:Warning: Instant Apps support will be
+removed by Google Play in December 2025 [InstantAppCall]
+ InstantApps.showInstallPrompt(activity, null, 0, null)
+ ------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/com/example/app/MyApp.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package com.example.app
+
+import android.app.Activity
+import com.google.android.gms.instantapps.InstantApps
+
+class MyApp {
+ fun go(activity: Activity) {
+ InstantApps.showInstallPrompt(activity, null, 0, null)
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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.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("InstantAppCall")
+ fun method() {
+ showInstallPrompt(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("InstantAppCall")
+ void method() {
+ showInstallPrompt(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection InstantAppCall
+ 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="InstantAppCall" 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 'InstantAppCall'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore InstantAppCall ...`
+ ```
+
+* 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/InstantAppDeprecation.md.html b/docs/checks/InstantAppDeprecation.md.html
new file mode 100644
index 00000000..375ea94e
--- /dev/null
+++ b/docs/checks/InstantAppDeprecation.md.html
@@ -0,0 +1,110 @@
+
+(#) Instant App Deprecation
+
+!!! WARNING: Instant App Deprecation
+ This is a warning.
+
+Id
+: `InstantAppDeprecation`
+Summary
+: Instant App Deprecation
+Severity
+: Warning
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 8.12.0 (July 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)
+
+Instant Apps support will be removed by Google Play in December 2025.
+Publishing and all Google Play Instant APIs will no longer work. Tooling
+support will be removed in Android Studio Otter Feature Drop.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+build.gradle:2:Warning: Instant Apps support will be removed by Google
+Play in December 2025. Publishing and all Google Play Instant APIs will
+no longer work. Tooling support will be removed in Android Studio Otter
+Feature Drop. [InstantAppDeprecation]
+ implementation 'com.google.android.gms:play-services-instantapps:18.1.0'
+ ------------------------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`build.gradle`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
+dependencies {
+ implementation 'com.google.android.gms:play-services-instantapps:18.1.0'
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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.testInstntAppDeprectedDependencies`.
+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 InstantAppDeprecation
+ 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="InstantAppDeprecation" 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 'InstantAppDeprecation'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore InstantAppDeprecation ...`
+ ```
+
+* 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/Instantiatable.md.html b/docs/checks/Instantiatable.md.html
index ac5600db..70a06ab1 100644
--- a/docs/checks/Instantiatable.md.html
+++ b/docs/checks/Instantiatable.md.html
@@ -51,7 +51,7 @@
[Instantiatable]
android:actionViewClass="test.pkg.NotView" />
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -71,20 +71,20 @@
android:showAsAction="always|collapseActionView"
android:actionViewClass="test.pkg.NotView" />
</menu>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/SearchView.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
package test.pkg
import android.widget.TextView
abstract class SearchView : TextView(null)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/NotView.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
package test.pkg
abstract class NotView : android.app.Fragment()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MissingClassDetectorTest.kt)
diff --git a/docs/checks/IntentFilterExportedReceiver.md.html b/docs/checks/IntentFilterExportedReceiver.md.html
index ddf206e6..eff14edc 100644
--- a/docs/checks/IntentFilterExportedReceiver.md.html
+++ b/docs/checks/IntentFilterExportedReceiver.md.html
@@ -67,7 +67,7 @@
otherwise. [IntentFilterExportedReceiver]
<receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver">
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -87,7 +87,7 @@
</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/ExportedFlagDetectorTest.kt)
diff --git a/docs/checks/IntentFilterUniqueDataAttributes.md.html b/docs/checks/IntentFilterUniqueDataAttributes.md.html
index 59c66a4e..29e01dd1 100644
--- a/docs/checks/IntentFilterUniqueDataAttributes.md.html
+++ b/docs/checks/IntentFilterUniqueDataAttributes.md.html
@@ -87,7 +87,7 @@
[IntentFilterUniqueDataAttributes]
<data alt-android:scheme="http" alt-android:host="example.org"/>
----------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -102,7 +102,7 @@
</intent-filter>
</activity>
</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/AppLinksValidDetectorTest.kt)
diff --git a/docs/checks/IntentReset.md.html b/docs/checks/IntentReset.md.html
index 74c35927..05deba89 100644
--- a/docs/checks/IntentReset.md.html
+++ b/docs/checks/IntentReset.md.html
@@ -46,7 +46,7 @@
setType will clear the type: Call setDataAndType instead? [IntentReset]
intent.setData(uri); // ERROR 2.1
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -124,7 +124,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/IntentDetectorTest.kt)
diff --git a/docs/checks/IntentWithNullActionLaunch.md.html b/docs/checks/IntentWithNullActionLaunch.md.html
index 4ee39ff7..a3063c8b 100644
--- a/docs/checks/IntentWithNullActionLaunch.md.html
+++ b/docs/checks/IntentWithNullActionLaunch.md.html
@@ -51,7 +51,7 @@
filter. [IntentWithNullActionLaunch]
Intent intent = new Intent();
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
startActivity(intent);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/IntentWillNullActionDetectorTest.kt)
diff --git a/docs/checks/InternalAgpApiUsage.md.html b/docs/checks/InternalAgpApiUsage.md.html
index edb0f919..458456de 100644
--- a/docs/checks/InternalAgpApiUsage.md.html
+++ b/docs/checks/InternalAgpApiUsage.md.html
@@ -45,32 +45,6 @@
up these
APIs if you find them useful.
-(##) Example
-
-Here is an example of lint warnings produced by this check:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/test.kt:1:Error: Avoid using internal Android Gradle Plugin APIs
-[InternalAgpApiUsage]
-import com.android.build.gradle.internal.lint.VariantInputs
------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Here is the source file referenced above:
-
-`src/test.kt`:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-import com.android.build.gradle.internal.lint.VariantInputs
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can also visit the
-[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lint/lint-gradle/src/test/java/androidx/lint/gradle/InternalApiUsageDetectorTest.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, `InternalApiUsageDetector.Test usage of internal Android Gradle API`.
-To report a problem with this extracted sample, visit
-https://issuetracker.google.com/issues/new?component=1147525.
-
(##) Including
!!!
@@ -79,17 +53,17 @@
```
// build.gradle.kts
-implementation("androidx.lint:lint-gradle:1.0.0-alpha04")
+implementation("androidx.lint:lint-gradle:1.0.0-alpha05")
// build.gradle
-implementation 'androidx.lint:lint-gradle:1.0.0-alpha04'
+implementation 'androidx.lint:lint-gradle:1.0.0-alpha05'
// build.gradle.kts with version catalogs:
implementation(libs.lint.gradle)
# libs.versions.toml
[versions]
-lint-gradle = "1.0.0-alpha04"
+lint-gradle = "1.0.0-alpha05"
[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 +75,7 @@
}
```
-1.0.0-alpha04 is the version this documentation was generated from;
+1.0.0-alpha05 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 e5bf7e01..a8187021 100644
--- a/docs/checks/InternalGradleApiUsage.md.html
+++ b/docs/checks/InternalGradleApiUsage.md.html
@@ -53,7 +53,11 @@
[InternalGradleApiUsage]
import org.gradle.api.internal.component.SoftwareComponentInternal
------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+src/test.kt:4:Error: Avoid using internal Gradle APIs
+[InternalGradleApiUsage]
+import org.gradle.api.internal.component.SoftwareComponentInternal as IMPORT_ALIAS_2_SOFTWARECOMPONENTINTERNAL
+--------------------------------------------------------------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -69,7 +73,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lint/lint-gradle/src/test/java/androidx/lint/gradle/InternalApiUsageDetectorTest.kt)
@@ -88,17 +92,17 @@
```
// build.gradle.kts
-implementation("androidx.lint:lint-gradle:1.0.0-alpha04")
+implementation("androidx.lint:lint-gradle:1.0.0-alpha05")
// build.gradle
-implementation 'androidx.lint:lint-gradle:1.0.0-alpha04'
+implementation 'androidx.lint:lint-gradle:1.0.0-alpha05'
// build.gradle.kts with version catalogs:
implementation(libs.lint.gradle)
# libs.versions.toml
[versions]
-lint-gradle = "1.0.0-alpha04"
+lint-gradle = "1.0.0-alpha05"
[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 +114,7 @@
}
```
-1.0.0-alpha04 is the version this documentation was generated from;
+1.0.0-alpha05 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/InternalInsetResource.md.html b/docs/checks/InternalInsetResource.md.html
index f877a998..2044ff81 100644
--- a/docs/checks/InternalInsetResource.md.html
+++ b/docs/checks/InternalInsetResource.md.html
@@ -44,7 +44,7 @@
status_bar_height is not supported [InternalInsetResource]
getIdentifier("status_bar_height", "dimen", "android")
------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -56,7 +56,7 @@
fun Resources.getStatusBarHeightIdentifier(): Int =
getIdentifier("status_bar_height", "dimen", "android")
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/InternalInsetResourceDetectorTest.kt)
diff --git a/docs/checks/InternalKgpApiUsage.md.html b/docs/checks/InternalKgpApiUsage.md.html
new file mode 100644
index 00000000..7127b1a2
--- /dev/null
+++ b/docs/checks/InternalKgpApiUsage.md.html
@@ -0,0 +1,147 @@
+
+(#) Avoid using internal Kotlin Gradle Plugin APIs
+
+!!! ERROR: Avoid using internal Kotlin Gradle Plugin APIs
+ This is an error.
+
+Id
+: `InternalKgpApiUsage`
+Summary
+: Avoid using internal Kotlin Gradle Plugin APIs
+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-alpha05
+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/InternalApiUsageDetector.kt)
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lint/lint-gradle/src/test/java/androidx/lint/gradle/InternalApiUsageDetectorTest.kt)
+Copyright Year
+: 2024
+
+Using internal APIs results in fragile plugin behavior as these types
+have no binary
+compatibility guarantees. It is best to create a feature request to open
+up these
+APIs if you find them useful.
+
+(##) 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-alpha05")
+
+// build.gradle
+implementation 'androidx.lint:lint-gradle:1.0.0-alpha05'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.lint.gradle)
+
+# libs.versions.toml
+[versions]
+lint-gradle = "1.0.0-alpha05"
+[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-alpha05 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("InternalKgpApiUsage")
+ fun method() {
+ problematicStatement()
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("InternalKgpApiUsage")
+ void method() {
+ problematicStatement();
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection InternalKgpApiUsage
+ 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="InternalKgpApiUsage" 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 'InternalKgpApiUsage'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore InternalKgpApiUsage ...`
+ ```
+
+* 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/InvalidAccessibility.md.html b/docs/checks/InvalidAccessibility.md.html
index 5713a093..bb09b348 100644
--- a/docs/checks/InvalidAccessibility.md.html
+++ b/docs/checks/InvalidAccessibility.md.html
@@ -48,7 +48,7 @@
use importantForAccessibility [InvalidAccessibility]
android:contentDescription="@null"/>
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/InvalidAccessibilityDetectorTest.kt)
diff --git a/docs/checks/InvalidAnalyticsName.md.html b/docs/checks/InvalidAnalyticsName.md.html
index e074271b..c18641fe 100644
--- a/docs/checks/InvalidAnalyticsName.md.html
+++ b/docs/checks/InvalidAnalyticsName.md.html
@@ -43,7 +43,7 @@
[InvalidAnalyticsName]
FirebaseAnalytics.getInstance(this).logEvent("a;", new Bundle());
----------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
FirebaseAnalytics.getInstance(this).logEvent("a;", new Bundle());
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/FirebaseAnalyticsDetectorTest.java)
diff --git a/docs/checks/InvalidColorHexValue.md.html b/docs/checks/InvalidColorHexValue.md.html
index 966632d9..95848de2 100644
--- a/docs/checks/InvalidColorHexValue.md.html
+++ b/docs/checks/InvalidColorHexValue.md.html
@@ -62,7 +62,7 @@
[InvalidColorHexValue]
val color3 = Color(0x00_0_0_0L)
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,7 +75,7 @@
val color = Color(0x00000)
val color2 = Color(0xEEEEE)
val color3 = Color(0x00_0_0_0L)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-graphics-lint/src/test/java/androidx/compose/ui/graphics/lint/ColorDetectorTest.kt)
@@ -94,17 +94,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-graphics-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-graphics-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-graphics-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-graphics-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.graphics.android)
# libs.versions.toml
[versions]
-ui-graphics-android = "1.9.0-alpha01"
+ui-graphics-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.ui:ui-graphics-lint:1.11.0-alpha06`.
[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 ee40536f..b769470a 100644
--- a/docs/checks/InvalidFragmentVersionForActivityResult.md.html
+++ b/docs/checks/InvalidFragmentVersionForActivityResult.md.html
@@ -53,10 +53,10 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
src/main/kotlin/com/example/test.kt:6:Error: Upgrade Fragment version to
-at least . [InvalidFragmentVersionForActivityResult]
+at least 1.3.0. [InvalidFragmentVersionForActivityResult]
val launcher = ActivityResultCaller().registerForActivityResult(ActivityResultContract())
--------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -65,7 +65,7 @@
dependencies {
api("androidx.fragment:fragment:1.2.4")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/main/kotlin/com/example/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -75,7 +75,7 @@
import androidx.activity.result.contract.ActivityResultContract
val launcher = ActivityResultCaller().registerForActivityResult(ActivityResultContract())
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/activity/activity-lint/src/test/java/androidx/activity/lint/ActivityResultFragmentVersionDetectorTest.kt)
@@ -94,17 +94,17 @@
```
// build.gradle.kts
-implementation("androidx.activity:activity:1.11.0-rc01")
+implementation("androidx.activity:activity:1.13.0-rc01")
// build.gradle
-implementation 'androidx.activity:activity:1.11.0-rc01'
+implementation 'androidx.activity:activity:1.13.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.activity)
# libs.versions.toml
[versions]
-activity = "1.11.0-rc01"
+activity = "1.13.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.11.0-rc01 is the version this documentation was generated from;
+1.13.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/InvalidId.md.html b/docs/checks/InvalidId.md.html
index c580250e..a40f6db1 100644
--- a/docs/checks/InvalidId.md.html
+++ b/docs/checks/InvalidId.md.html
@@ -61,7 +61,7 @@
@+id/name; try using @+id/string_whatevs [InvalidId]
android:id="@+string/whatevs"
-----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -116,7 +116,7 @@
</LinearLayout>
</RelativeLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongIdDetectorTest.kt)
diff --git a/docs/checks/InvalidImeActionId.md.html b/docs/checks/InvalidImeActionId.md.html
index b02a34c3..63ef46d2 100644
--- a/docs/checks/InvalidImeActionId.md.html
+++ b/docs/checks/InvalidImeActionId.md.html
@@ -43,7 +43,7 @@
integer value [InvalidImeActionId]
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:imeActionId="@+id/login"/>
--------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -52,7 +52,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:imeActionId="@+id/login"/>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/InvalidImeActionIdDetectorTest.kt)
diff --git a/docs/checks/InvalidImport.md.html b/docs/checks/InvalidImport.md.html
index 6dba29fb..855d72b5 100644
--- a/docs/checks/InvalidImport.md.html
+++ b/docs/checks/InvalidImport.md.html
@@ -46,7 +46,7 @@
src/foo/Example.java:3:Warning: Forbidden import [InvalidImport]
import foo.R.drawable;
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -58,7 +58,7 @@
class Example {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/InvalidImportDetectorTest.kt)
diff --git a/docs/checks/InvalidLanguageTagDelimiter.md.html b/docs/checks/InvalidLanguageTagDelimiter.md.html
index dd1461f8..93a9166a 100644
--- a/docs/checks/InvalidLanguageTagDelimiter.md.html
+++ b/docs/checks/InvalidLanguageTagDelimiter.md.html
@@ -51,7 +51,7 @@
should be used in a language tag [InvalidLanguageTagDelimiter]
bar(Locale("en_UK"))
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
fun foo() {
bar(Locale("en_UK"))
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-text-lint/src/test/java/androidx/compose/ui/text/lint/LocaleInvalidLanguageTagDetectorTest.kt)
@@ -84,17 +84,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-text-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-text-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-text-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-text-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.text.android)
# libs.versions.toml
[versions]
-ui-text-android = "1.9.0-alpha01"
+ui-text-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.ui:ui-text-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.ui:ui-text-android](androidx_compose_ui_ui-text-android.md.html).
diff --git a/docs/checks/InvalidManifestAttribute.md.html b/docs/checks/InvalidManifestAttribute.md.html
new file mode 100644
index 00000000..f4e1ac76
--- /dev/null
+++ b/docs/checks/InvalidManifestAttribute.md.html
@@ -0,0 +1,172 @@
+
+(#) Invalid manifest attribute
+
+!!! WARNING: Invalid manifest attribute
+ This is a warning.
+
+Id
+: `InvalidManifestAttribute`
+Summary
+: Invalid manifest attribute
+Severity
+: Warning
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 9.0.0 (January 2026)
+Affects
+: 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/ManifestAttributeDetector.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/ManifestAttributeDetectorTest.kt)
+
+Most manifest attributes can be added to any tag without triggering any
+build-time warnings or errors, but those attributes may be invalid, and
+will be silently ignored.
+
+For example, only a very specific subset of `` attributes are
+valid on an ``; the rest are ignored, which can be
+confusing.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:7:Warning: Attribute process on
+com.example.ActivityAlias is invalid, and will be silently ignored. This
+attribute is always ignored on .
+[InvalidManifestAttribute]
+ android:process=":process"
+ --------------------------
+AndroidManifest.xml:27:Warning: Attribute theme on
+com.example.ActivityAlias2 is invalid, and will be silently ignored.
+This attribute is always ignored on .
+[InvalidManifestAttribute]
+ android:theme="@style/Theme.NoDisplay"
+ --------------------------------------
+AndroidManifest.xml:33:Warning: Attribute visibleToInstantApps on
+ com.example.ActivityAlias3 is invalid, and will be
+silently ignored. This attribute is always ignored on .
+[InvalidManifestAttribute]
+ android:visibleToInstantApps="true"
+ -----------------------------------
+AndroidManifest.xml:35:Warning: Attribute theme on
+com.example.ActivityAlias3 is invalid, and will be silently ignored.
+This attribute is always ignored on .
+[InvalidManifestAttribute]
+ android:theme="@style/Theme.NoDisplay"
+ --------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.example.app">
+ <application>
+ <activity-alias
+ android:name="com.example.ActivityAlias"
+ android:targetActivity="com.example.Activity"
+ android:process=":process"
+ android:label="@string/activity_name"
+ android:exported="true"
+ android:icon="@drawable/activity_alias_icon"
+ android:attributionTags="activity_alias"
+ android:permission="com.example.permission.PERMISSION"
+ android:banner="@string/activity_alias_banner"
+ android:description="@string/activity_alias_description"
+ android:logo="@drawable/activity_alias_logo"
+ android:roundIcon="@drawable/activity_alias_round_icon"
+ >
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity-alias>
+ <activity-alias
+ android:name="com.example.ActivityAlias2"
+ android:targetActivity="com.example.Activity"
+ android:permission="com.example.permission.PERMISSION"
+ android:theme="@style/Theme.NoDisplay"
+ >
+ </activity-alias>
+ <activity-alias
+ android:name="com.example.ActivityAlias3"
+ android:targetActivity="com.example.Activity"
+ android:visibleToInstantApps="true"
+ android:permission="com.example.permission.PERMISSION"
+ android:theme="@style/Theme.NoDisplay"
+ >
+ </activity-alias>
+ </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/ManifestAttributeDetectorTest.kt)
+for the unit tests for this check to see additional scenarios.
+
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="InvalidManifestAttribute"` 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">
+ ...
+ <activity-alias tools:ignore="InvalidManifestAttribute" .../>
+ ...
+ </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="InvalidManifestAttribute" 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 'InvalidManifestAttribute'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore InvalidManifestAttribute ...`
+ ```
+
+* 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/InvalidNavigation.md.html b/docs/checks/InvalidNavigation.md.html
index d8c8b0eb..cbbcd886 100644
--- a/docs/checks/InvalidNavigation.md.html
+++ b/docs/checks/InvalidNavigation.md.html
@@ -40,7 +40,7 @@
@id/includedId [InvalidNavigation]
app:startDestination="@id/includedId">
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -53,7 +53,7 @@
app:startDestination="@id/includedId">
<include app:graph="@navigation/foo"/>
</navigation>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/navigation/foo.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -65,7 +65,7 @@
app:startDestination="@id/foo2">
<fragment android:id="@+id/foo2"/>
</navigation>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/StartDestinationDetectorTest.kt)
diff --git a/docs/checks/InvalidPackage.md.html b/docs/checks/InvalidPackage.md.html
index 2f053a02..78629d55 100644
--- a/docs/checks/InvalidPackage.md.html
+++ b/docs/checks/InvalidPackage.md.html
@@ -56,7 +56,7 @@
included in Android: javax.swing. Referenced from test.pkg.LibraryClass.
[InvalidPackage]
2 errors, 0 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant test files:
@@ -94,7 +94,7 @@
</GridLayout>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/themes.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -114,7 +114,7 @@
</style>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/color/colors.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -134,7 +134,7 @@
</style>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[libs/unsupported.jar](examples/libs/unsupported.jar)
diff --git a/docs/checks/InvalidPeriodicWorkRequestInterval.md.html b/docs/checks/InvalidPeriodicWorkRequestInterval.md.html
index 986cda09..10f5fbb2 100644
--- a/docs/checks/InvalidPeriodicWorkRequestInterval.md.html
+++ b/docs/checks/InvalidPeriodicWorkRequestInterval.md.html
@@ -53,7 +53,7 @@
[InvalidPeriodicWorkRequestInterval]
val builder = PeriodicWorkRequest.Builder(TestWorker::class.java, 15L, TimeUnit.MILLISECONDS)
-------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -64,7 +64,7 @@
import androidx.work.ListenableWorker
class TestWorker: ListenableWorker()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`com/example/Test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -79,7 +79,7 @@
val builder = PeriodicWorkRequest.Builder(TestWorker::class.java, 15L, TimeUnit.MILLISECONDS)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/work/work-lint/src/test/java/androidx/work/lint/InvalidPeriodicWorkRequestIntervalDetectorTest.kt)
@@ -98,17 +98,17 @@
```
// build.gradle.kts
-implementation("androidx.work:work-runtime:2.10.1")
+implementation("androidx.work:work-runtime:2.11.1")
// build.gradle
-implementation 'androidx.work:work-runtime:2.10.1'
+implementation 'androidx.work:work-runtime:2.11.1'
// build.gradle.kts with version catalogs:
implementation(libs.work.runtime)
# libs.versions.toml
[versions]
-work-runtime = "2.10.1"
+work-runtime = "2.11.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.1 is the version this documentation was generated from;
+2.11.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/InvalidPermission.md.html b/docs/checks/InvalidPermission.md.html
index 1e43e41c..c7982844 100644
--- a/docs/checks/InvalidPermission.md.html
+++ b/docs/checks/InvalidPermission.md.html
@@ -46,7 +46,7 @@
permission is a no-op and potentially dangerous [InvalidPermission]
android:permission="android.permission.SET_WALLPAPER"/>
-----------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -79,8 +79,7 @@
</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/ManifestPermissionAttributeDetectorTest.kt)
diff --git a/docs/checks/InvalidPurposeString.md.html b/docs/checks/InvalidPurposeString.md.html
new file mode 100644
index 00000000..7109ac90
--- /dev/null
+++ b/docs/checks/InvalidPurposeString.md.html
@@ -0,0 +1,120 @@
+
+(#) Invalid purpose string for permission
+
+!!! ERROR: Invalid purpose string for permission
+ This is an error, and is also enforced at build time when
+ supported by the build system. For Android this means it will
+ run during release builds.
+
+Id
+: `InvalidPurposeString`
+Summary
+: Invalid purpose string for permission
+Severity
+: Fatal
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 9.0.0 (January 2026)
+Affects
+: 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/PurposeDeclarationDetector.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/PurposeDeclarationDetectorTest.kt)
+
+If a permission requires a purpose string, a valid
+`android:purposeString` attribute should be declared. This attribute
+must reference a localized string resource that's no more than 300
+characters (150 recommended) for all locales the app supports as the
+text is displayed on user-facing surfaces.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:4:Error: The referenced purposeString must be
+non-blank and have no more than 300 characters. Invalid example(s)
+include: myPurposeString (Default) [InvalidPurposeString]
+ <uses-permission android:name="USE_FOO" android:purposeString="@string/myPurposeString" />
+ -----------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here are the relevant source files:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.example.helloworld">
+ <uses-sdk android:minSdkVersion="30" android:targetSdkVersion="38" />
+ <uses-permission android:name="USE_FOO" android:purposeString="@string/myPurposeString" />
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`res/values/strings.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<resources><string name="myPurposeString"></string></resources>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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/PurposeDeclarationDetectorTest.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, `PurposeDeclarationDetector.testRequestingPermissionWithLongPurposeStringFail`.
+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="InvalidPurposeString"` 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="InvalidPurposeString" 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 'InvalidPurposeString'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore InvalidPurposeString ...`
+ ```
+
+* 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/InvalidResourceFolder.md.html b/docs/checks/InvalidResourceFolder.md.html
index b793fdea..296fbea7 100644
--- a/docs/checks/InvalidResourceFolder.md.html
+++ b/docs/checks/InvalidResourceFolder.md.html
@@ -52,7 +52,7 @@
res/values-ldtrl-mnc123/strings.xml:Error: Invalid resource folder: make
sure qualifiers appear in the correct order, are spelled correctly, etc.
[InvalidResourceFolder]
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -60,25 +60,25 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-ldtrl-mnc123/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-kok-rIN/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-no-rNOR/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LocaleFolderDetectorTest.kt)
diff --git a/docs/checks/InvalidSetHasFixedSize.md.html b/docs/checks/InvalidSetHasFixedSize.md.html
index 61d7b0eb..35cd78f1 100644
--- a/docs/checks/InvalidSetHasFixedSize.md.html
+++ b/docs/checks/InvalidSetHasFixedSize.md.html
@@ -53,7 +53,7 @@
scrolling direction. [InvalidSetHasFixedSize]
recyclerView?.setHasFixedSize(true)
-----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -65,7 +65,7 @@
android:id="@+id/my_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`com/example/R.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -76,7 +76,7 @@
const val my_recycler_view = 0
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`com/example/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -92,7 +92,7 @@
recyclerView?.setHasFixedSize(true)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/recyclerview/recyclerview-lint/src/test/java/androidx/recyclerview/lint/InvalidSetHasFixedSizeTest.kt)
diff --git a/docs/checks/InvalidSingleLineComment.md.html b/docs/checks/InvalidSingleLineComment.md.html
index b0959813..c8ead309 100644
--- a/docs/checks/InvalidSingleLineComment.md.html
+++ b/docs/checks/InvalidSingleLineComment.md.html
@@ -49,7 +49,7 @@
beginning [InvalidSingleLineComment]
//Something.
---
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,7 +62,7 @@
//Something.
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/InvalidSingleLineCommentDetectorTest.kt)
diff --git a/docs/checks/InvalidString.md.html b/docs/checks/InvalidString.md.html
index 2cb78097..50a4f918 100644
--- a/docs/checks/InvalidString.md.html
+++ b/docs/checks/InvalidString.md.html
@@ -49,7 +49,7 @@
[InvalidString]
<string name="my_string">My string"
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
<string name="my_string">My string"
</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/InvalidStringDetectorTest.kt)
diff --git a/docs/checks/InvalidUseOfOnBackPressed.md.html b/docs/checks/InvalidUseOfOnBackPressed.md.html
index 01998e86..190a82ea 100644
--- a/docs/checks/InvalidUseOfOnBackPressed.md.html
+++ b/docs/checks/InvalidUseOfOnBackPressed.md.html
@@ -59,7 +59,7 @@
[InvalidUseOfOnBackPressed]
dispatcher.onBackPressed()
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -81,7 +81,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/activity/activity-lint/src/test/java/androidx/activity/lint/OnBackPressedDispatcherTest.kt)
@@ -100,17 +100,17 @@
```
// build.gradle.kts
-implementation("androidx.activity:activity:1.11.0-rc01")
+implementation("androidx.activity:activity:1.13.0-rc01")
// build.gradle
-implementation 'androidx.activity:activity:1.11.0-rc01'
+implementation 'androidx.activity:activity:1.13.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.activity)
# libs.versions.toml
[versions]
-activity = "1.11.0-rc01"
+activity = "1.13.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.11.0-rc01 is the version this documentation was generated from;
+1.13.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/InvalidUsesTagAttribute.md.html b/docs/checks/InvalidUsesTagAttribute.md.html
index 980b4c90..589996e7 100644
--- a/docs/checks/InvalidUsesTagAttribute.md.html
+++ b/docs/checks/InvalidUsesTagAttribute.md.html
@@ -47,7 +47,7 @@
[InvalidUsesTagAttribute]
<uses name="medias"/>
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -83,7 +83,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml/automotive_app_desc.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -91,7 +91,7 @@
<automotiveApp>
<uses name="medias"/>
</automotiveApp>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AndroidAutoDetectorTest.java)
diff --git a/docs/checks/InvalidVectorPath.md.html b/docs/checks/InvalidVectorPath.md.html
index b53e5dd9..695ebc4a 100644
--- a/docs/checks/InvalidVectorPath.md.html
+++ b/docs/checks/InvalidVectorPath.md.html
@@ -49,7 +49,7 @@
0.000105 instead. [InvalidVectorPath]
android:pathData="m 1.05e-4,2.75448" />
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
android:fillColor="@android:color/white"
android:pathData="m 1.05e-4,2.75448" />
</vector>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/VectorPathDetectorTest.java)
diff --git a/docs/checks/InvalidWakeLockTag.md.html b/docs/checks/InvalidWakeLockTag.md.html
index 05e1af87..9acc9f9e 100644
--- a/docs/checks/InvalidWakeLockTag.md.html
+++ b/docs/checks/InvalidWakeLockTag.md.html
@@ -42,7 +42,7 @@
empty to make wake lock problems easier to debug [InvalidWakeLockTag]
mWakeLock = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
-------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,7 +62,7 @@
mWakeLock = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PowerManagerDetectorTest.java)
diff --git a/docs/checks/InvalidWearFeatureAttribute.md.html b/docs/checks/InvalidWearFeatureAttribute.md.html
index 95f52432..5909173d 100644
--- a/docs/checks/InvalidWearFeatureAttribute.md.html
+++ b/docs/checks/InvalidWearFeatureAttribute.md.html
@@ -43,7 +43,7 @@
for this feature [InvalidWearFeatureAttribute]
<uses-feature android:name="android.hardware.type.watch" android:required="false"/>
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
android:value="true"
/> </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/WearStandaloneAppDetectorTest.java)
diff --git a/docs/checks/JCenter.md.html b/docs/checks/JCenter.md.html
index baca7f0c..9e33db77 100644
--- a/docs/checks/JCenter.md.html
+++ b/docs/checks/JCenter.md.html
@@ -49,7 +49,7 @@
build.gradle:3:Warning: Don't use jcenter() [JCenter]
jcenter()
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
jcenter()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/JcenterDetectorTest.kt)
diff --git a/docs/checks/JavaOnlyDetector.md.html b/docs/checks/JavaOnlyDetector.md.html
index 48f8a0ea..b80a2cf6 100644
--- a/docs/checks/JavaOnlyDetector.md.html
+++ b/docs/checks/JavaOnlyDetector.md.html
@@ -62,7 +62,7 @@
Kotlin, see its documentation for details. [JavaOnlyDetector]
val r = this::g
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -79,7 +79,7 @@
val r = this::g
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/JavaOnlyDetectorTest.kt)
diff --git a/docs/checks/JavaPluginLanguageLevel.md.html b/docs/checks/JavaPluginLanguageLevel.md.html
index 012018cd..9674eb60 100644
--- a/docs/checks/JavaPluginLanguageLevel.md.html
+++ b/docs/checks/JavaPluginLanguageLevel.md.html
@@ -50,7 +50,7 @@
[JavaPluginLanguageLevel]
id 'java'
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
plugins {
id 'java'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/JavascriptInterface.md.html b/docs/checks/JavascriptInterface.md.html
index 3d91dde9..b23d4559 100644
--- a/docs/checks/JavascriptInterface.md.html
+++ b/docs/checks/JavascriptInterface.md.html
@@ -67,7 +67,7 @@
[JavascriptInterface]
webview.addJavascriptInterface(t, "myobj");
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -90,7 +90,7 @@
public void test3() {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritsFromAnnotated.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -110,7 +110,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/NonAnnotatedObject.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -123,7 +123,7 @@
public void test2() {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/JavaScriptTest.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -162,7 +162,7 @@
o = new AnnotatedObject();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/JavaScriptInterfaceDetectorTest.kt)
diff --git a/docs/checks/JcenterRepositoryObsolete.md.html b/docs/checks/JcenterRepositoryObsolete.md.html
index 935e431f..3712cdf2 100644
--- a/docs/checks/JcenterRepositoryObsolete.md.html
+++ b/docs/checks/JcenterRepositoryObsolete.md.html
@@ -52,7 +52,7 @@
[JcenterRepositoryObsolete]
jcenter()
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,7 +74,7 @@
jcenter()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/JobSchedulerService.md.html b/docs/checks/JobSchedulerService.md.html
index 35425e71..1f8d0748 100644
--- a/docs/checks/JobSchedulerService.md.html
+++ b/docs/checks/JobSchedulerService.md.html
@@ -50,7 +50,7 @@
[JobSchedulerService]
new ComponentName(this, NotAJobService.class));
---------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -90,7 +90,7 @@
.build());
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyJobService.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -113,7 +113,7 @@
return false;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/NotAJobService.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -123,7 +123,7 @@
public abstract class NotAJobService extends Service {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -139,7 +139,7 @@
</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/JobSchedulerDetectorTest.java)
diff --git a/docs/checks/JvmStaticProvidesInObjectDetector.md.html b/docs/checks/JvmStaticProvidesInObjectDetector.md.html
index dbfcb5ec..7078bc81 100644
--- a/docs/checks/JvmStaticProvidesInObjectDetector.md.html
+++ b/docs/checks/JvmStaticProvidesInObjectDetector.md.html
@@ -34,158 +34,10 @@
: Kotlin and Java files and test sources
Editing
: This check runs on the fly in the IDE editor
-Implementation
-: [Source Code](https://github.com/google/dagger/tree/master/java/dagger/lint/DaggerKotlinIssueDetector.kt)
-Tests
-: [Source Code](https://github.com/google/dagger/tree/master/javatests/dagger/lint/DaggerKotlinIssueDetectorTest.kt)
-Copyright Year
-: 2020
It's redundant to annotate @Provides functions in object classes with
@JvmStatic.
-(##) Example
-
-Here is an example of lint warnings produced by this check:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/MyQualifier.kt:26:Warning: @JvmStatic used for @Provides
-function in an object class [JvmStaticProvidesInObjectDetector]
- @JvmStatic
- ----------
-src/foo/MyQualifier.kt:43:Warning: @JvmStatic used for @Provides
-function in an object class [JvmStaticProvidesInObjectDetector]
- @JvmStatic
- ----------
-src/foo/MyQualifier.kt:56:Warning: @JvmStatic used for @Provides
-function in an object class [JvmStaticProvidesInObjectDetector]
- @kotlin.jvm.JvmStatic
- ---------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Here is the source file referenced above:
-
-`src/foo/MyQualifier.kt`:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-package foo
-import javax.inject.Inject
-import javax.inject.Qualifier
-import kotlin.jvm.JvmStatic
-import dagger.Provides
-import dagger.Module
-
-@Qualifier
-annotation class MyQualifier
-
-class InjectedTest {
- // This should fail because of `:field`
- @Inject
- @field:MyQualifier
- lateinit var prop: String
-
- // This is fine!
- @Inject
- @MyQualifier
- lateinit var prop2: String
-}
-
-@Module
-object ObjectModule {
- // This should fail because it uses `@JvmStatic`
- @JvmStatic
- @Provides
- fun provideFoo(): String {
-
- }
-
- // This is fine!
- @Provides
- fun provideBar(): String {
-
- }
-}
-
-@Module
-class ClassModule {
- companion object {
- // This should fail because the companion object is part of ClassModule, so this is unnecessary.
- @JvmStatic
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-@Module
-class ClassModuleQualified {
- companion object {
- // This should fail because the companion object is part of ClassModule, so this is unnecessary.
- // This specifically tests a fully qualified annotation
- @kotlin.jvm.JvmStatic
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-@Module
-class ClassModule2 {
- // This should fail because the companion object is part of ClassModule
- @Module
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-@Module
-class ClassModule2Qualified {
- // This should fail because the companion object is part of ClassModule
- // This specifically tests a fully qualified annotation
- @dagger.Module
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-// This is correct as of Dagger 2.26!
-@Module
-class ClassModule3 {
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-class ClassModule4 {
- // This is should fail because this should be extracted to a standalone object.
- @Module
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can also visit the
-[source code](https://github.com/google/dagger/tree/master/javatests/dagger/lint/DaggerKotlinIssueDetectorTest.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, `DaggerKotlinIssueDetector.simpleSmokeTestForQualifiersAndProviders`.
-To report a problem with this extracted sample, visit
-https://github.com/google/dagger/issues.
-
(##) Including
!!!
diff --git a/docs/checks/KaptUsageInsteadOfKsp.md.html b/docs/checks/KaptUsageInsteadOfKsp.md.html
index c02c93b7..01b66e4d 100644
--- a/docs/checks/KaptUsageInsteadOfKsp.md.html
+++ b/docs/checks/KaptUsageInsteadOfKsp.md.html
@@ -65,7 +65,7 @@
[KaptUsageInsteadOfKsp]
kapt("com.github.bumptech.glide:compiler:glide_version")
--------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -86,7 +86,7 @@
kapt 'com.github.bumptech.glide:compiler:4.14.2'
kapt("com.github.bumptech.glide:compiler:glide_version")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/KeyboardInaccessibleWidget.md.html b/docs/checks/KeyboardInaccessibleWidget.md.html
index 44c261a8..5bedfd62 100644
--- a/docs/checks/KeyboardInaccessibleWidget.md.html
+++ b/docs/checks/KeyboardInaccessibleWidget.md.html
@@ -44,7 +44,7 @@
also add 'focusable' [KeyboardInaccessibleWidget]
android:clickable="true" />
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -52,7 +52,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:clickable="true" />
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/KeyboardNavigationDetectorTest.java)
diff --git a/docs/checks/KnownPermissionError.md.html b/docs/checks/KnownPermissionError.md.html
index 2229de66..f1d32196 100644
--- a/docs/checks/KnownPermissionError.md.html
+++ b/docs/checks/KnownPermissionError.md.html
@@ -51,25 +51,25 @@
----
AndroidManifest.xml:5:Error: TRUE is not a valid permission value
[KnownPermissionError]
- <activity android:permission="TRUE" />
- ----
+ <activity android:name="name1" android:permission="TRUE" />
+ ----
AndroidManifest.xml:6:Error: True is not a valid permission value
[KnownPermissionError]
- <activity-alias android:permission="True" />
- ----
+ <activity-alias android:name="name2" android:permission="True" />
+ ----
AndroidManifest.xml:7:Error: true is not a valid permission value
[KnownPermissionError]
- <receiver android:permission="true" />
- ----
+ <receiver android:name="name3" android:permission="true" />
+ ----
AndroidManifest.xml:8:Error: false is not a valid permission value
[KnownPermissionError]
- <service android:permission="false" />
- -----
+ <service android:name="name4" android:permission="false" />
+ -----
AndroidManifest.xml:9:Error: false is not a valid permission value
[KnownPermissionError]
- <provider android:permission="false" />
- -----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ <provider android:name="name5" android:permission="false" />
+ -----
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -79,14 +79,14 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.example.helloworld">
<application android:permission="true">
- <activity android:permission="TRUE" />
- <activity-alias android:permission="True" />
- <receiver android:permission="true" />
- <service android:permission="false" />
- <provider android:permission="false" />
+ <activity android:name="name1" android:permission="TRUE" />
+ <activity-alias android:name="name2" android:permission="True" />
+ <receiver android:name="name3" android:permission="true" />
+ <service android:name="name4" android:permission="false" />
+ <provider android:name="name5" android:permission="false" />
</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/PermissionErrorDetectorTest.kt)
diff --git a/docs/checks/KotlinNullnessAnnotation.md.html b/docs/checks/KotlinNullnessAnnotation.md.html
index 28f3ec24..ce4e3442 100644
--- a/docs/checks/KotlinNullnessAnnotation.md.html
+++ b/docs/checks/KotlinNullnessAnnotation.md.html
@@ -58,7 +58,7 @@
[KotlinNullnessAnnotation]
fun testError(@NonNull number: Number?) { }
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -79,7 +79,7 @@
// Here we have a nullable string which has been annotated with @NonNull,
// which is totally misleading; the annotation is wrong.
fun testError(@NonNull number: Number?) { }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/KotlinNullnessAnnotationDetectorTest.kt)
diff --git a/docs/checks/KotlinPairNotCreated.md.html b/docs/checks/KotlinPairNotCreated.md.html
index df07a83b..d3760cb7 100644
--- a/docs/checks/KotlinPairNotCreated.md.html
+++ b/docs/checks/KotlinPairNotCreated.md.html
@@ -55,7 +55,7 @@
commons [KotlinPairNotCreated]
Pair pair = Pair.create("first", "second");
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,7 +74,7 @@
pair.first.toString();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/NonKotlinPairDetectorTest.kt)
diff --git a/docs/checks/KotlinPropertyAccess.md.html b/docs/checks/KotlinPropertyAccess.md.html
index 1ca4f3be..52def4df 100644
--- a/docs/checks/KotlinPropertyAccess.md.html
+++ b/docs/checks/KotlinPropertyAccess.md.html
@@ -92,7 +92,7 @@
[KotlinPropertyAccess]
@Override public Float getNumber3() { return 0.0f; } // ERROR (even though we have corresponding setter)
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -173,7 +173,7 @@
public void setNumber4(Float number) { } // OK
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/InteroperabilityDetectorTest.kt)
diff --git a/docs/checks/KotlinRequireNotNullUseMessage.md.html b/docs/checks/KotlinRequireNotNullUseMessage.md.html
index 76853c8f..2955f572 100644
--- a/docs/checks/KotlinRequireNotNullUseMessage.md.html
+++ b/docs/checks/KotlinRequireNotNullUseMessage.md.html
@@ -46,7 +46,7 @@
[KotlinRequireNotNullUseMessage]
requireNotNull(value)
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -55,7 +55,7 @@
fun test(value: Int?) {
requireNotNull(value)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-kotlin-lint/src/test/kotlin/com/vanniktech/lintrules/rxjava2/KotlinRequireNotNullUseMessageDetectorTest.kt)
diff --git a/docs/checks/KotlincFE10.md.html b/docs/checks/KotlincFE10.md.html
index da349885..2743a42b 100644
--- a/docs/checks/KotlincFE10.md.html
+++ b/docs/checks/KotlincFE10.md.html
@@ -81,7 +81,7 @@
possible; K1 will be going away soon. [KotlincFE10]
val effectiveVisibility = descriptor.visibility.effectiveVisibility(descriptor, false) // ERROR
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -143,7 +143,7 @@
private const val PACKAGE_PRIVATE = 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/KotlincFE10DetectorTest.kt)
diff --git a/docs/checks/KtxExtensionAvailable.md.html b/docs/checks/KtxExtensionAvailable.md.html
index 38fd7336..7ecbde02 100644
--- a/docs/checks/KtxExtensionAvailable.md.html
+++ b/docs/checks/KtxExtensionAvailable.md.html
@@ -50,7 +50,7 @@
this library [KtxExtensionAvailable]
implementation "androidx.core:core:1.2.0"
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
implementation "androidx.core:core:999.2.0" // No KTX extensions for this version.
implementation "androidx.core:fake-artifact:1.2.0" // No KTX extensions for this artifact.
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/LabelFor.md.html b/docs/checks/LabelFor.md.html
index 8b4805d7..b03df944 100644
--- a/docs/checks/LabelFor.md.html
+++ b/docs/checks/LabelFor.md.html
@@ -60,7 +60,7 @@
attribute [LabelFor]
android:hint=""
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -97,7 +97,7 @@
android:hint=""
android:text="MultiAutoCompleteTextView"/>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LabelForDetectorTest.kt)
diff --git a/docs/checks/LambdaLast.md.html b/docs/checks/LambdaLast.md.html
index debda033..51ef68ec 100644
--- a/docs/checks/LambdaLast.md.html
+++ b/docs/checks/LambdaLast.md.html
@@ -54,7 +54,7 @@
[LambdaLast]
public void error2(SamInterface sam, int x) { }
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -79,7 +79,7 @@
default void other() { }
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -92,10 +92,10 @@
// Lamda not last, but we're not flagging issues in Kotlin files for the
// interoperability issue
fun error(bar: (Int) -> Int, foo: Int) { }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/InteroperabilityDetectorTest.kt)
+You can also visit the source code ([InteroperabilityDetectorTest.kt](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/InteroperabilityDetectorTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/LaunchActivityFromNotification.md.html b/docs/checks/LaunchActivityFromNotification.md.html
index e92b19f3..5df5c25b 100644
--- a/docs/checks/LaunchActivityFromNotification.md.html
+++ b/docs/checks/LaunchActivityFromNotification.md.html
@@ -52,7 +52,7 @@
[LaunchActivityFromNotification]
.setContentIntent(serviceIntent)
-------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -74,7 +74,7 @@
context.startActivity(i);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/NotificationTest.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -105,7 +105,7 @@
notificationManager.notify(id, notification);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NotificationTrampolineDetectorTest.kt)
diff --git a/docs/checks/LaunchDuringComposition.md.html b/docs/checks/LaunchDuringComposition.md.html
index 35a257a5..e66a2202 100644
--- a/docs/checks/LaunchDuringComposition.md.html
+++ b/docs/checks/LaunchDuringComposition.md.html
@@ -76,7 +76,7 @@
of a SideEffect and not during composition [LaunchDuringComposition]
launcher.launch("test")
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -129,7 +129,7 @@
launcher.launch("test")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/activity/activity-compose-lint/src/test/java/androidx/activity/compose/lint/ActivityResultLaunchDetectorTest.kt)
@@ -148,17 +148,17 @@
```
// build.gradle.kts
-implementation("androidx.activity:activity-compose:1.11.0-rc01")
+implementation("androidx.activity:activity-compose:1.13.0-rc01")
// build.gradle
-implementation 'androidx.activity:activity-compose:1.11.0-rc01'
+implementation 'androidx.activity:activity-compose:1.13.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.activity.compose)
# libs.versions.toml
[versions]
-activity-compose = "1.11.0-rc01"
+activity-compose = "1.13.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.11.0-rc01 is the version this documentation was generated from;
+1.13.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/LayoutFileNameMatchesClass.md.html b/docs/checks/LayoutFileNameMatchesClass.md.html
index 126aee32..6ecf2977 100644
--- a/docs/checks/LayoutFileNameMatchesClass.md.html
+++ b/docs/checks/LayoutFileNameMatchesClass.md.html
@@ -49,7 +49,7 @@
R.layout.unit_test_activity_foo [LayoutFileNameMatchesClass]
setContentView(R.layout.activity_bar);
---------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -60,7 +60,7 @@
public abstract class Activity {
public void setContentView(int viewId) { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/main/java/foo/FooActivity.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -71,12 +71,12 @@
setContentView(R.layout.activity_bar);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`null`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text linenumbers
unit_test_
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/LayoutFileNameMatchesClassDetectorTest.kt)
diff --git a/docs/checks/LeanbackUsesWifi.md.html b/docs/checks/LeanbackUsesWifi.md.html
index 2aaa12c1..f19c576b 100644
--- a/docs/checks/LeanbackUsesWifi.md.html
+++ b/docs/checks/LeanbackUsesWifi.md.html
@@ -49,7 +49,7 @@
availability on TVs that support only Ethernet [LeanbackUsesWifi]
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
----------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
android:label="@string/app_name" >
</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/LeanbackWifiUsageDetectorTest.kt)
diff --git a/docs/checks/LibraryCustomView.md.html b/docs/checks/LibraryCustomView.md.html
index 81b95611..74c74c46 100644
--- a/docs/checks/LibraryCustomView.md.html
+++ b/docs/checks/LibraryCustomView.md.html
@@ -49,7 +49,7 @@
"http://schemas.android.com/apk/res-auto" instead [LibraryCustomView]
xmlns:foo="http://schemas.android.com/apk/res/foo"
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -85,7 +85,7 @@
</foo.bar.Baz>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NamespaceDetectorTest.kt)
diff --git a/docs/checks/LifecycleAnnotationProcessorWithJava8.md.html b/docs/checks/LifecycleAnnotationProcessorWithJava8.md.html
index a5d87098..6ceac43c 100644
--- a/docs/checks/LifecycleAnnotationProcessorWithJava8.md.html
+++ b/docs/checks/LifecycleAnnotationProcessorWithJava8.md.html
@@ -55,7 +55,7 @@
incremental build. [LifecycleAnnotationProcessorWithJava8]
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
---------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
targetCompatibility JavaVersion.VERSION_1_8
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/LifecycleCurrentStateInComposition.md.html b/docs/checks/LifecycleCurrentStateInComposition.md.html
index c603d657..2cc812f6 100644
--- a/docs/checks/LifecycleCurrentStateInComposition.md.html
+++ b/docs/checks/LifecycleCurrentStateInComposition.md.html
@@ -27,7 +27,7 @@
Artifact
: [androidx.lifecycle:lifecycle-runtime-compose-android](androidx_lifecycle_lifecycle-runtime-compose-android.md.html)
Since
-: 2.9.0-alpha10
+: 2.9.0
Affects
: Kotlin and Java files and test sources
Editing
@@ -86,7 +86,7 @@
[LifecycleCurrentStateInComposition]
lifecycle.currentState
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -136,7 +136,7 @@
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)
@@ -155,17 +155,17 @@
```
// build.gradle.kts
-implementation("androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-rc01")
+implementation("androidx.lifecycle:lifecycle-runtime-compose-android:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-runtime-compose-android:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.runtime.compose.android)
# libs.versions.toml
[versions]
-lifecycle-runtime-compose-android = "2.9.0-rc01"
+lifecycle-runtime-compose-android = "2.11.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
@@ -177,7 +177,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 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).
diff --git a/docs/checks/LintDocExample.md.html b/docs/checks/LintDocExample.md.html
index cecc7dd8..328384fa 100644
--- a/docs/checks/LintDocExample.md.html
+++ b/docs/checks/LintDocExample.md.html
@@ -53,7 +53,7 @@
extracted into lint's per-issue documentation pages [LintDocExample]
fun testBasic() {
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -139,7 +139,7 @@
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -239,7 +239,7 @@
println("Debugging code")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -251,7 +251,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyVendorIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -266,7 +266,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritingRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -280,7 +280,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetectorTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -334,7 +334,7 @@
).run().expect(expected)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LintDetectorDetectorTest.kt)
diff --git a/docs/checks/LintImplBadUrl.md.html b/docs/checks/LintImplBadUrl.md.html
index e932a807..9dd85042 100644
--- a/docs/checks/LintImplBadUrl.md.html
+++ b/docs/checks/LintImplBadUrl.md.html
@@ -49,7 +49,7 @@
in file://explanation.doc [LintImplBadUrl]
.addMoreInfo("file://explanation.doc")
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -135,7 +135,7 @@
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -235,7 +235,7 @@
println("Debugging code")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -247,7 +247,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyVendorIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -262,7 +262,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritingRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -276,7 +276,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetectorTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -330,7 +330,7 @@
).run().expect(expected)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LintDetectorDetectorTest.kt)
diff --git a/docs/checks/LintImplDollarEscapes.md.html b/docs/checks/LintImplDollarEscapes.md.html
index 6e98b7e2..219eed83 100644
--- a/docs/checks/LintImplDollarEscapes.md.html
+++ b/docs/checks/LintImplDollarEscapes.md.html
@@ -55,7 +55,7 @@
cumbersome escapes. Lint will treat a $ as a $. [LintImplDollarEscapes]
println("Value=${"$"}")
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -141,7 +141,7 @@
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -241,7 +241,7 @@
println("Debugging code")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -253,7 +253,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyVendorIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -268,7 +268,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritingRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -282,7 +282,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetectorTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -336,7 +336,7 @@
).run().expect(expected)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LintDetectorDetectorTest.kt)
diff --git a/docs/checks/LintImplIdFormat.md.html b/docs/checks/LintImplIdFormat.md.html
index 6fb3b93a..09eb40ec 100644
--- a/docs/checks/LintImplIdFormat.md.html
+++ b/docs/checks/LintImplIdFormat.md.html
@@ -57,7 +57,7 @@
capitalized camel case, such as MyIssueId [LintImplIdFormat]
id = "badlyCapitalized id",
---------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -143,7 +143,7 @@
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -243,7 +243,7 @@
println("Debugging code")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -255,7 +255,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyVendorIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -270,7 +270,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritingRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -284,7 +284,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetectorTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -338,7 +338,7 @@
).run().expect(expected)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LintDetectorDetectorTest.kt)
diff --git a/docs/checks/LintImplPsiEquals.md.html b/docs/checks/LintImplPsiEquals.md.html
index f1a8f5a1..bcf4b0f8 100644
--- a/docs/checks/LintImplPsiEquals.md.html
+++ b/docs/checks/LintImplPsiEquals.md.html
@@ -47,7 +47,7 @@
with equals, use isEquivalentTo(PsiElement) instead [LintImplPsiEquals]
if (element2.equals(element1)) { }
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -133,7 +133,7 @@
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -233,7 +233,7 @@
println("Debugging code")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -245,7 +245,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyVendorIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -260,7 +260,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritingRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -274,7 +274,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetectorTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -328,7 +328,7 @@
).run().expect(expected)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LintDetectorDetectorTest.kt)
diff --git a/docs/checks/LintImplTextFormat.md.html b/docs/checks/LintImplTextFormat.md.html
index 0de1cdd4..d9a6076d 100644
--- a/docs/checks/LintImplTextFormat.md.html
+++ b/docs/checks/LintImplTextFormat.md.html
@@ -66,7 +66,7 @@
not be separated by a space [LintImplTextFormat]
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -152,7 +152,7 @@
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -252,7 +252,7 @@
println("Debugging code")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -264,7 +264,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyVendorIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -279,7 +279,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritingRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -293,7 +293,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetectorTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -347,7 +347,7 @@
).run().expect(expected)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LintDetectorDetectorTest.kt)
diff --git a/docs/checks/LintImplTrimIndent.md.html b/docs/checks/LintImplTrimIndent.md.html
index 7da57ea1..da4f293e 100644
--- a/docs/checks/LintImplTrimIndent.md.html
+++ b/docs/checks/LintImplTrimIndent.md.html
@@ -58,7 +58,7 @@
indent by lint when displaying to users [LintImplTrimIndent]
""".trimIndent(),
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -144,7 +144,7 @@
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -244,7 +244,7 @@
println("Debugging code")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -256,7 +256,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyVendorIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -271,7 +271,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritingRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -285,7 +285,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetectorTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -339,7 +339,7 @@
).run().expect(expected)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LintDetectorDetectorTest.kt)
diff --git a/docs/checks/LintImplUnexpectedDomain.md.html b/docs/checks/LintImplUnexpectedDomain.md.html
index f9747f7c..a5aa992e 100644
--- a/docs/checks/LintImplUnexpectedDomain.md.html
+++ b/docs/checks/LintImplUnexpectedDomain.md.html
@@ -44,7 +44,7 @@
(http://my.personal.blogger.com/aboutme.htm) [LintImplUnexpectedDomain]
.addMoreInfo("http://my.personal.blogger.com/aboutme.htm")
------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -130,7 +130,7 @@
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -230,7 +230,7 @@
println("Debugging code")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -242,7 +242,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyVendorIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -257,7 +257,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritingRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -271,7 +271,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetectorTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -325,7 +325,7 @@
).run().expect(expected)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LintDetectorDetectorTest.kt)
diff --git a/docs/checks/LintImplUseKotlin.md.html b/docs/checks/LintImplUseKotlin.md.html
index 07d0cdbd..84f83fc8 100644
--- a/docs/checks/LintImplUseKotlin.md.html
+++ b/docs/checks/LintImplUseKotlin.md.html
@@ -45,7 +45,7 @@
mechanisms in the Lint API [LintImplUseKotlin]
public class MyJavaLintDetector extends Detector {
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -131,7 +131,7 @@
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -231,7 +231,7 @@
println("Debugging code")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -243,7 +243,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyVendorIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -258,7 +258,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritingRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -272,7 +272,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetectorTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -326,7 +326,7 @@
).run().expect(expected)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LintDetectorDetectorTest.kt)
diff --git a/docs/checks/LintImplUseUast.md.html b/docs/checks/LintImplUseUast.md.html
index 47478f5c..b0a9956d 100644
--- a/docs/checks/LintImplUseUast.md.html
+++ b/docs/checks/LintImplUseUast.md.html
@@ -82,7 +82,7 @@
UElement.parentOfType [LintImplUseUast]
PsiTreeUtil.getParentOfType(method, PsiClass.class); // ERROR
---------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -168,7 +168,7 @@
"Should you use `x ?: y` instead of ```foo ? 1 : 0``` ?");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -268,7 +268,7 @@
println("Debugging code")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -280,7 +280,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyVendorIssueRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -295,7 +295,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/InheritingRegistry.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -309,7 +309,7 @@
MyKotlinLintDetector.Companion.ISSUE
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetectorTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -363,7 +363,7 @@
).run().expect(expected)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LintDetectorDetectorTest.kt)
diff --git a/docs/checks/LocalContextConfigurationRead.md.html b/docs/checks/LocalContextConfigurationRead.md.html
index a468bf2e..1a505287 100644
--- a/docs/checks/LocalContextConfigurationRead.md.html
+++ b/docs/checks/LocalContextConfigurationRead.md.html
@@ -59,7 +59,7 @@
[LocalContextConfigurationRead]
LocalContext.current.getResources().getConfiguration()
------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,8 +76,14 @@
LocalContext.current.getResources()
LocalContext.current.resources.configuration
LocalContext.current.getResources().getConfiguration()
+ LocalContext.current.getText(-1)
+ LocalContext.current.getString(-1)
+ LocalContext.current.getString(-1, Any())
+ LocalContext.current.getColor(-1)
+ LocalContext.current.getDrawable(-1)
+ LocalContext.current.getColorStateList(-1)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
@@ -96,17 +102,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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
@@ -118,11 +124,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html).
diff --git a/docs/checks/LocalContextGetResourceValueCall.md.html b/docs/checks/LocalContextGetResourceValueCall.md.html
new file mode 100644
index 00000000..f8c99dcb
--- /dev/null
+++ b/docs/checks/LocalContextGetResourceValueCall.md.html
@@ -0,0 +1,217 @@
+
+(#) Querying resource properties using LocalContext.current
+
+!!! ERROR: Querying resource properties using LocalContext.current
+ This is an error.
+
+Id
+: `LocalContextGetResourceValueCall`
+Summary
+: Querying resource properties using LocalContext.current
+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.10.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.current
+reads to be invalidated, so calls to APIs such as Context.getString()
+will not be updated when the Configuration changes, and so stale values
+might be used. Instead, you can use Compose APIs such as stringResource,
+colorResource, and painterResource - or LocalResources.current and query
+properties from Resources directly. Using these APIs 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:13:Error: Querying resource values using
+LocalContext.current [LocalContextGetResourceValueCall]
+ LocalContext.current.getText(-1)
+ --------------------------------
+src/test/test.kt:14:Error: Querying resource values using
+LocalContext.current [LocalContextGetResourceValueCall]
+ LocalContext.current.getString(-1)
+ ----------------------------------
+src/test/test.kt:15:Error: Querying resource values using
+LocalContext.current [LocalContextGetResourceValueCall]
+ LocalContext.current.getString(-1, Any())
+ -----------------------------------------
+src/test/test.kt:16:Error: Querying resource values using
+LocalContext.current [LocalContextGetResourceValueCall]
+ LocalContext.current.getColor(-1)
+ ---------------------------------
+src/test/test.kt:17:Error: Querying resource values using
+LocalContext.current [LocalContextGetResourceValueCall]
+ LocalContext.current.getDrawable(-1)
+ ------------------------------------
+src/test/test.kt:18:Error: Querying resource values using
+LocalContext.current [LocalContextGetResourceValueCall]
+ LocalContext.current.getColorStateList(-1)
+ ------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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()
+ LocalContext.current.getText(-1)
+ LocalContext.current.getString(-1)
+ LocalContext.current.getString(-1, Any())
+ LocalContext.current.getColor(-1)
+ LocalContext.current.getDrawable(-1)
+ LocalContext.current.getColorStateList(-1)
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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.11.0-alpha06")
+
+// build.gradle
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.ui.android)
+
+# libs.versions.toml
+[versions]
+ui-android = "1.11.0-alpha06"
+[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.11.0-alpha06 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.11.0-alpha06`.
+
+
+[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("LocalContextGetResourceValueCall")
+ fun method() {
+ problematicStatement()
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("LocalContextGetResourceValueCall")
+ void method() {
+ problematicStatement();
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection LocalContextGetResourceValueCall
+ 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="LocalContextGetResourceValueCall" 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 'LocalContextGetResourceValueCall'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore LocalContextGetResourceValueCall ...`
+ ```
+
+* 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
index 50fd1fe5..f8c93d78 100644
--- a/docs/checks/LocalContextResourcesRead.md.html
+++ b/docs/checks/LocalContextResourcesRead.md.html
@@ -27,7 +27,7 @@
Artifact
: [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html)
Since
-: 1.9.0-alpha01
+: 1.9.0
Affects
: Kotlin and Java files and test sources
Editing
@@ -41,7 +41,7 @@
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
+such as 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.
@@ -58,7 +58,7 @@
LocalContext.current.resources [LocalContextResourcesRead]
LocalContext.current.getResources()
-----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,8 +75,14 @@
LocalContext.current.getResources()
LocalContext.current.resources.configuration
LocalContext.current.getResources().getConfiguration()
+ LocalContext.current.getText(-1)
+ LocalContext.current.getString(-1)
+ LocalContext.current.getString(-1, Any())
+ LocalContext.current.getColor(-1)
+ LocalContext.current.getDrawable(-1)
+ LocalContext.current.getColorStateList(-1)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
@@ -95,17 +101,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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 +123,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html).
diff --git a/docs/checks/LocalSuppress.md.html b/docs/checks/LocalSuppress.md.html
index d89c4b50..037e22c0 100644
--- a/docs/checks/LocalSuppress.md.html
+++ b/docs/checks/LocalSuppress.md.html
@@ -74,7 +74,7 @@
out to the surrounding method [LocalSuppress]
@SuppressLint("NewApi") // Invalid
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -117,7 +117,7 @@
int a = View.MEASURED_STATE_MASK;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AnnotationDetectorTest.kt)
diff --git a/docs/checks/LocaleFolder.md.html b/docs/checks/LocaleFolder.md.html
index 9d42a4b7..3b90fb3a 100644
--- a/docs/checks/LocaleFolder.md.html
+++ b/docs/checks/LocaleFolder.md.html
@@ -54,7 +54,7 @@
res/values-he/strings.xml:Warning: The locale folder "he" should be
called "iw" instead; see the java.util.Locale documentation
[LocaleFolder]
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -62,31 +62,31 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-no/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-he/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-id/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-yi/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LocaleFolderDetectorTest.kt)
diff --git a/docs/checks/LockedOrientationActivity.md.html b/docs/checks/LockedOrientationActivity.md.html
index 81111c30..50f09927 100644
--- a/docs/checks/LockedOrientationActivity.md.html
+++ b/docs/checks/LockedOrientationActivity.md.html
@@ -51,7 +51,7 @@
[LockedOrientationActivity]
<activity android:name=".MainActivity" android:screenOrientation="portrait"/>
------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
<activity android:name=".MainActivity" android:screenOrientation="portrait"/>
</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/ChromeOsDetectorTest.java)
diff --git a/docs/checks/LogConditional.md.html b/docs/checks/LogConditional.md.html
index 1a09b6e7..986c52f8 100644
--- a/docs/checks/LogConditional.md.html
+++ b/docs/checks/LogConditional.md.html
@@ -51,7 +51,7 @@
(BuildConfig.DEBUG) { ... } [LogConditional]
Log.i(TAG, "message" + m) // string is not constant; computed each time
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
Log.i(TAG, "message" + m) // string is not constant; computed each time
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LogDetectorTest.kt)
diff --git a/docs/checks/LogInfoDisclosure.md.html b/docs/checks/LogInfoDisclosure.md.html
new file mode 100644
index 00000000..a246d0a3
--- /dev/null
+++ b/docs/checks/LogInfoDisclosure.md.html
@@ -0,0 +1,186 @@
+
+(#) Potentially sensitive information logged to Logcat
+
+!!! WARNING: Potentially sensitive information logged to Logcat
+ This is a warning.
+
+Id
+: `LogInfoDisclosure`
+Summary
+: Potentially sensitive information logged to Logcat
+Severity
+: Warning
+Category
+: Security
+Platform
+: Any
+Vendor
+: Google - Android 3P Vulnerability Research
+Contact
+: https://github.com/google/android-security-lints
+Feedback
+: https://github.com/google/android-security-lints/issues
+Min
+: Lint 4.1
+Compiled
+: Lint 8.0 and 8.1
+Artifact
+: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
+Since
+: 1.0.4
+Affects
+: Kotlin and Java files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://goo.gle/LogInfoDisclosure
+Implementation
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/main/java/com/example/lint/checks/LogcatDetector.kt)
+Tests
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/LogcatDetectorTest.kt)
+Copyright Year
+: 2024
+
+Sensitive information such as application secrets should never be logged
+to logcat. Any sensitive data should therefore be removed from logcat
+logs. Ensure all logging to logcat is sanitized in non-debug versions of
+your application.
+
+!!! 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/MainActivity.java:7:Warning: Sensitive data should never be logged
+to logcat [LogInfoDisclosure]
+ Log.wtf("testpasswdtest", "test");
+ ---------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/MainActivity.java`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
+import android.app.Activity;
+import android.util.Log;
+
+public class MainActivity extends Activity {
+
+ private void testLogs() {
+ Log.wtf("testpasswdtest", "test");
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/LogcatDetectorTest.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, `LogcatDetector.logInfoDisclosureMethod_whenSuspiciousStringPresent_showsWarning`.
+To report a problem with this extracted sample, visit
+https://github.com/google/android-security-lints/issues.
+
+(##) 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.android.security.lint:lint:1.0.4")
+
+// build.gradle
+lintChecks 'com.android.security.lint:lint:1.0.4'
+
+// build.gradle.kts with version catalogs:
+lintChecks(libs.com.android.security.lint.lint)
+
+# libs.versions.toml
+[versions]
+com-android-security-lint-lint = "1.0.4"
+[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:
+com-android-security-lint-lint = {
+ module = "com.android.security.lint:lint",
+ version.ref = "com-android-security-lint-lint"
+}
+```
+
+1.0.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.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("LogInfoDisclosure")
+ fun method() {
+ d(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("LogInfoDisclosure")
+ void method() {
+ d(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection LogInfoDisclosure
+ 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="LogInfoDisclosure" 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 'LogInfoDisclosure'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore LogInfoDisclosure ...`
+ ```
+
+* 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/LogNotTimber.md.html b/docs/checks/LogNotTimber.md.html
index 3251ab3d..0e478b89 100644
--- a/docs/checks/LogNotTimber.md.html
+++ b/docs/checks/LogNotTimber.md.html
@@ -51,7 +51,7 @@
[LogNotTimber]
Log.d("TAG", "msg");
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -64,7 +64,7 @@
Log.d("TAG", "msg");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -75,7 +75,7 @@
Log.d("TAG", "msg")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/JakeWharton/timber/tree/trunk/timber-lint/src/test/java/timber/lint/WrongTimberUsageDetectorTest.kt)
diff --git a/docs/checks/LogTagMismatch.md.html b/docs/checks/LogTagMismatch.md.html
index 333d0829..df8f0c53 100644
--- a/docs/checks/LogTagMismatch.md.html
+++ b/docs/checks/LogTagMismatch.md.html
@@ -44,7 +44,7 @@
[LogTagMismatch]
Log.d(TAG2, "message") // warn: mismatched tags - TAG1 and TAG2
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,7 +62,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LogDetectorTest.kt)
diff --git a/docs/checks/LongLogTag.md.html b/docs/checks/LongLogTag.md.html
index cef6216d..c2dc87c7 100644
--- a/docs/checks/LongLogTag.md.html
+++ b/docs/checks/LongLogTag.md.html
@@ -40,7 +40,7 @@
(SuperSuperLongLogTagWhichExceedsMax) [LongLogTag]
Log.d(TAG, "message")
---
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,10 +57,10 @@
Log.d(TAG, "message")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/LogDetectorTest.kt)
+You can also visit the source code ([LogDetectorTest.kt](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/LogDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/MainScopeUsage.md.html b/docs/checks/MainScopeUsage.md.html
index 8b04087c..77fd84ba 100644
--- a/docs/checks/MainScopeUsage.md.html
+++ b/docs/checks/MainScopeUsage.md.html
@@ -55,7 +55,7 @@
slack.foundation.coroutines.android.MainScope. [MainScopeUsage]
val scope = MainScope()
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
fun example() {
val scope = MainScope()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MainScopeUsageDetectorTest.kt)
diff --git a/docs/checks/MangledCRLF.md.html b/docs/checks/MangledCRLF.md.html
index ce6cd6ac..ee8a3bbb 100644
--- a/docs/checks/MangledCRLF.md.html
+++ b/docs/checks/MangledCRLF.md.html
@@ -51,7 +51,7 @@
return (\r) without corresponding newline (\n) [MangledCRLF]
android:layout_height="match_parent" >
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
diff --git a/docs/checks/ManifestOrder.md.html b/docs/checks/ManifestOrder.md.html
index 6198da3e..854a728e 100644
--- a/docs/checks/ManifestOrder.md.html
+++ b/docs/checks/ManifestOrder.md.html
@@ -46,7 +46,7 @@
tag [ManifestOrder]
<uses-sdk android:minSdkVersion="Froyo" />
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -69,7 +69,7 @@
<uses-sdk android:minSdkVersion="Froyo" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -102,11 +102,11 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-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/ManifestDetectorTest.kt)
+You can also visit the source code ([ManifestDetectorTest.kt](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/ManifestDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
+[ConfigurationHierarchyTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/ConfigurationHierarchyTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/ManifestResource.md.html b/docs/checks/ManifestResource.md.html
index 511ecd33..1da58d52 100644
--- a/docs/checks/ManifestResource.md.html
+++ b/docs/checks/ManifestResource.md.html
@@ -55,7 +55,7 @@
Found variation in watch-v20 [ManifestResource]
android:enabled="@bool/enable_wearable_location_service">
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -73,35 +73,35 @@
</service> </application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/values.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="location_process">Location Process</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/bools.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<bool name="enable_wearable_location_service">true</bool>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-en-rUS/values.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="location_process">Location Process (English)</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-watch/bools.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<bool name="enable_wearable_location_service">false</bool>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml/backup.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -110,14 +110,14 @@
<exclude domain="file" path="dd/fo3o.txt"/>
<exclude domain="file" path="dd/ss/foo.txt"/>
</full-backup-content>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml-mcc/backup.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<full-backup-content>
<include domain="file" path="mcc"/>
</full-backup-content>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ManifestResourceDetectorTest.kt)
diff --git a/docs/checks/ManifestTypo.md.html b/docs/checks/ManifestTypo.md.html
index ccb7e5b8..63dec9b8 100644
--- a/docs/checks/ManifestTypo.md.html
+++ b/docs/checks/ManifestTypo.md.html
@@ -44,7 +44,7 @@
? [ManifestTypo]
<use-sdk android:minSdkVersion="14" />
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -78,7 +78,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -112,8 +112,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ManifestTypoDetectorTest.java)
diff --git a/docs/checks/MatchingMenuId.md.html b/docs/checks/MatchingMenuId.md.html
index b8297f04..2b799b6c 100644
--- a/docs/checks/MatchingMenuId.md.html
+++ b/docs/checks/MatchingMenuId.md.html
@@ -50,7 +50,7 @@
[MatchingMenuId]
<item android:id="@+id/something"/>
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/something"/>
</menu>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/MatchingMenuIdDetectorTest.kt)
diff --git a/docs/checks/MatchingViewId.md.html b/docs/checks/MatchingViewId.md.html
index dc177b76..2f26ed4d 100644
--- a/docs/checks/MatchingViewId.md.html
+++ b/docs/checks/MatchingViewId.md.html
@@ -50,14 +50,14 @@
activityMain [MatchingViewId]
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text"/>
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
`res/layout/activity_main.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/MatchingViewIdDetectorTest.kt)
diff --git a/docs/checks/MemberExtensionConflict.md.html b/docs/checks/MemberExtensionConflict.md.html
index d140606c..5429a1c5 100644
--- a/docs/checks/MemberExtensionConflict.md.html
+++ b/docs/checks/MemberExtensionConflict.md.html
@@ -21,7 +21,7 @@
Feedback
: https://issuetracker.google.com/issues/new?component=192708
Since
-: 8.11.0-alpha03 (March 2025)
+: 8.11.0 (June 2025)
Affects
: Kotlin and Java files
Editing
@@ -62,7 +62,7 @@
[MemberExtensionConflict]
l.removeMiddle() // WARNING 2
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -73,7 +73,7 @@
val magicCount: Int
fun removeMiddle()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/users/own/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -85,7 +85,7 @@
get() = 42
fun MyList.removeMiddle() {}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/ListWrapper.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -101,7 +101,7 @@
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)
diff --git a/docs/checks/MenuTitle.md.html b/docs/checks/MenuTitle.md.html
index 6a3d8458..cfe5684f 100644
--- a/docs/checks/MenuTitle.md.html
+++ b/docs/checks/MenuTitle.md.html
@@ -62,7 +62,7 @@
[MenuTitle]
<item android:id="@+id/menu_plus_one"
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -83,7 +83,7 @@
android:showAsAction="always"
android:icon="@drawable/ic_menu_plus1"/>
</menu>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TitleDetectorTest.java)
diff --git a/docs/checks/MergeMarker.md.html b/docs/checks/MergeMarker.md.html
index 1191ad0b..e4887ec8 100644
--- a/docs/checks/MergeMarker.md.html
+++ b/docs/checks/MergeMarker.md.html
@@ -45,7 +45,7 @@
res/values/strings.xml:9:Error: Missing merge marker? [MergeMarker]
>>>>>>> branch-a
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
<string name="string3">String 3</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MergeMarkerDetectorTest.kt)
diff --git a/docs/checks/MergeRootFrame.md.html b/docs/checks/MergeRootFrame.md.html
index a06459ec..38656e5f 100644
--- a/docs/checks/MergeRootFrame.md.html
+++ b/docs/checks/MergeRootFrame.md.html
@@ -46,7 +46,7 @@
a tag [MergeRootFrame]
<FrameLayout
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -56,7 +56,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" />
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/ImportFrameActivity.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -72,7 +72,7 @@
setContentView(R.layout.simple);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MergeRootFrameLayoutDetectorTest.kt)
diff --git a/docs/checks/MinSdkTooLow.md.html b/docs/checks/MinSdkTooLow.md.html
index b2934a13..b9ac72e9 100644
--- a/docs/checks/MinSdkTooLow.md.html
+++ b/docs/checks/MinSdkTooLow.md.html
@@ -47,7 +47,7 @@
supported devices. [MinSdkTooLow]
minSdk = libs.versions.keys.msv.get().toInt() // ERROR 14
---------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -61,7 +61,7 @@
targetSdk = libs.versions.keys.tsv.get().toInt() // ERROR 15
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`../gradle/libs.versions.toml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~toml linenumbers
@@ -89,7 +89,7 @@
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)
diff --git a/docs/checks/MipmapIcons.md.html b/docs/checks/MipmapIcons.md.html
index 3fdbb0e3..82127f72 100644
--- a/docs/checks/MipmapIcons.md.html
+++ b/docs/checks/MipmapIcons.md.html
@@ -61,7 +61,7 @@
@drawable for launcher icons [MipmapIcons]
android:icon="@drawable/activity1"
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -101,12 +101,13 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
android {
defaultConfig {
+ applicationId "test.mipmap"
resConfigs "cs"
}
flavorDimensions "pricing", "releaseType"
@@ -121,7 +122,7 @@
paid { dimension "pricing" }
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ManifestDetectorTest.kt)
diff --git a/docs/checks/MissingApplicationIcon.md.html b/docs/checks/MissingApplicationIcon.md.html
index 4dafc5a5..bef4bdcc 100644
--- a/docs/checks/MissingApplicationIcon.md.html
+++ b/docs/checks/MissingApplicationIcon.md.html
@@ -48,7 +48,7 @@
is no default [MissingApplicationIcon]
<application
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -75,7 +75,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -108,11 +108,10 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-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/ManifestDetectorTest.kt)
+You can also visit the source code ([ManifestDetectorTest.kt](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/ManifestDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/MissingAutoVerifyAttribute.md.html b/docs/checks/MissingAutoVerifyAttribute.md.html
index c9a8a9e3..4d528c79 100644
--- a/docs/checks/MissingAutoVerifyAttribute.md.html
+++ b/docs/checks/MissingAutoVerifyAttribute.md.html
@@ -1,13 +1,13 @@
-(#) Application has custom scheme intent filters with missing `autoVerify` attributes
+(#) Application has http/https scheme intent filters with missing `autoVerify` attributes
-!!! WARNING: Application has custom scheme intent filters with missing `autoVerify` attributes
+!!! WARNING: Application has http/https scheme intent filters with missing `autoVerify` attributes
This is a warning.
Id
: `MissingAutoVerifyAttribute`
Summary
-: Application has custom scheme intent filters with missing `autoVerify` attributes
+: Application has http/https scheme intent filters with missing `autoVerify` attributes
Severity
: Warning
Category
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Manifest files
Editing
@@ -35,15 +35,18 @@
See
: https://goo.gle/MissingAutoVerifyAttribute
Implementation
-: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/main/java/com/example/lint/checks/CustomSchemeDetector.kt)
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/main/java/com/example/lint/checks/MissingAutoVerifyDetector.kt)
Tests
-: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/CustomSchemeDetectorTest.kt)
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MissingAutoVerifyDetectorTest.kt)
Copyright Year
: 2024
-Intent filters should contain the `autoVerify` attribute and explicitly
-set it to true, in order to signal to the system to automatically verify
-the associated hosts in your app's intent filters.
+Intent filters that handle `http` or `https` schemes and include
+`android.intent.action.VIEW`, `android.intent.category.BROWSABLE`, and
+`android.intent.category.DEFAULT` should also include
+`android:autoVerify="true"`. This enables Android App Links, which
+securely associates your app with your domain. See
+https://developer.android.com/training/app-links/verify-android-applinks.
!!! Tip
This lint check has an associated quickfix available in the IDE.
@@ -52,12 +55,14 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-AndroidManifest.xml:5:Warning: Custom scheme intent filters should
-explicitly set the autoVerify attribute to true
+AndroidManifest.xml:5:Warning: This intent filter matches App Links
+(VIEW, BROWSABLE, DEFAULT, http/https), but is missing the
+android:autoVerify="true" attribute. See
+https://developer.android.com/training/app-links/verify-android-applinks
[MissingAutoVerifyAttribute]
- <intent-filter android:autoVerify='false'>
- ^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ <intent-filter>
+ -------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -67,21 +72,24 @@
<application android:debuggable='false'>
<meta-data android:name='android.webkit.WebView.EnableSafeBrowsing'/>
<activity android:name='com.example.MainActivity'>
- <intent-filter android:autoVerify='false'>
+ <intent-filter>
<action android:name='android.intent.action.VIEW' />
- <data android:scheme='telegram://' />
+ <category android:name='android.intent.category.BROWSABLE' />
+ <category android:name='android.intent.category.DEFAULT' />
+ <data android:scheme='http' />
+ <data android:scheme='https' />
</intent-filter>
</activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
-[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/CustomSchemeDetectorTest.kt)
+[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MissingAutoVerifyDetectorTest.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, `CustomSchemeDetector.testWhenFalseAutoVerifyAttributeSpecifiedOnCustomSchemeIntentFilter_showsWarning`.
+found for this lint check, `MissingAutoVerifyDetector.testWhenAppLinkMissingAutoVerify_showsWarning`.
To report a problem with this extracted sample, visit
https://github.com/google/android-security-lints/issues.
@@ -94,17 +102,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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 +124,7 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/MissingBackupPin.md.html b/docs/checks/MissingBackupPin.md.html
index 72316bef..dd1fefd6 100644
--- a/docs/checks/MissingBackupPin.md.html
+++ b/docs/checks/MissingBackupPin.md.html
@@ -43,7 +43,7 @@
highly recommended [MissingBackupPin]
<pin-set>
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
</pin-set>
</domain-config>
</network-security-config>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NetworkSecurityConfigDetectorTest.java)
diff --git a/docs/checks/MissingClass.md.html b/docs/checks/MissingClass.md.html
index d8c2f4f4..955cb045 100644
--- a/docs/checks/MissingClass.md.html
+++ b/docs/checks/MissingClass.md.html
@@ -46,7 +46,7 @@
[MissingClass]
<foo.bar.Baz />
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -60,7 +60,7 @@
<test.pkg.MyView />
<test.pkg.NotView />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyView.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -69,16 +69,16 @@
abstract class MyView : I, androic.view.View(null)
interface I
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/NotView.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
package test.pkg
abstract class NotView : android.app.Fragment()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/MissingClassDetectorTest.kt)
+You can also visit the source code ([MissingClassDetectorTest.kt](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/MissingClassDetectorTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/MissingColorAlphaChannel.md.html b/docs/checks/MissingColorAlphaChannel.md.html
index 42671e8d..03428fe5 100644
--- a/docs/checks/MissingColorAlphaChannel.md.html
+++ b/docs/checks/MissingColorAlphaChannel.md.html
@@ -72,7 +72,7 @@
[MissingColorAlphaChannel]
val color4 = Color(0x00_00_00L)
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -91,7 +91,7 @@
val color3 = Color(0xeEeeEE)
// separators and L suffix
val color4 = Color(0x00_00_00L)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-graphics-lint/src/test/java/androidx/compose/ui/graphics/lint/ColorDetectorTest.kt)
@@ -110,17 +110,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-graphics-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-graphics-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-graphics-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-graphics-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.graphics.android)
# libs.versions.toml
[versions]
-ui-graphics-android = "1.9.0-alpha01"
+ui-graphics-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.ui:ui-graphics-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.ui:ui-graphics-android](androidx_compose_ui_ui-graphics-android.md.html).
diff --git a/docs/checks/MissingConstraints.md.html b/docs/checks/MissingConstraints.md.html
index 8b2eccb1..8e2fb3f5 100644
--- a/docs/checks/MissingConstraints.md.html
+++ b/docs/checks/MissingConstraints.md.html
@@ -61,7 +61,7 @@
horizontal constraint [MissingConstraints]
<TextView
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -132,7 +132,7 @@
app:relativeBegin="20dp" />
<requestFocus/>
</androidx.constraintlayout.widget.ConstraintLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ConstraintLayoutDetectorTest.kt)
diff --git a/docs/checks/MissingDefaultResource.md.html b/docs/checks/MissingDefaultResource.md.html
index 46d686f9..90bdc154 100644
--- a/docs/checks/MissingDefaultResource.md.html
+++ b/docs/checks/MissingDefaultResource.md.html
@@ -70,7 +70,7 @@
match this qualifier [MissingDefaultResource]
<dimen name="extra_dimen1">1pt</dimen> <!-- error -->
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -80,7 +80,7 @@
<dimen name="ok_dimen">base</dimen> <!-- ok -->
<style name="ok_style"></style> <!-- ok -->
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-land/dimen.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -90,7 +90,7 @@
<dimen name="extra_dimen1">1pt</dimen> <!-- error -->
<style name="extra_style1"></style> <!-- ok -->
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-v21/dimen.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -99,7 +99,7 @@
resources for API levels, often used for theming -->
<dimen name="ok_extra_dimen">1pt</dimen> <!-- ok -->
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-land-v21/dimen.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -107,29 +107,29 @@
<dimen name="ok_extra_dimen">2pt</dimen> <!-- ok -->
<dimen name="extra_dimen2">1pt</dimen> <!-- error -->
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/drawable-mdpi/ok_drawable.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<drawable name="color_drawable">#ffffffff</drawable>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/color/ok_color.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<color xmlns:android="http://schemas.android.com/apk/res/android" android:color="#ff0000" />
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/color-port/extra_color.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<color xmlns:android="http://schemas.android.com/apk/res/android" android:color="#ff0000" />
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout-land/extra_layout.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<merge/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TranslationDetectorTest.kt)
diff --git a/docs/checks/MissingFirebaseInstanceTokenRefresh.md.html b/docs/checks/MissingFirebaseInstanceTokenRefresh.md.html
index 396960c0..7e41cfd1 100644
--- a/docs/checks/MissingFirebaseInstanceTokenRefresh.md.html
+++ b/docs/checks/MissingFirebaseInstanceTokenRefresh.md.html
@@ -44,7 +44,7 @@
order to observe token changes [MissingFirebaseInstanceTokenRefresh]
public class MessagingService extends FirebaseMessagingService {
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -56,7 +56,7 @@
public class MessagingService extends FirebaseMessagingService {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/FirebaseMessagingDetectorTest.java)
diff --git a/docs/checks/MissingId.md.html b/docs/checks/MissingId.md.html
index 7a060370..08d828c0 100644
--- a/docs/checks/MissingId.md.html
+++ b/docs/checks/MissingId.md.html
@@ -59,7 +59,7 @@
id or a tag to preserve state across activity restarts [MissingId]
<fragment
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -89,7 +89,7 @@
android:layout_height="wrap_content" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MissingIdDetectorTest.java)
diff --git a/docs/checks/MissingInflatedId.md.html b/docs/checks/MissingInflatedId.md.html
index f19ee7a4..a4ec3624 100644
--- a/docs/checks/MissingInflatedId.md.html
+++ b/docs/checks/MissingInflatedId.md.html
@@ -45,7 +45,7 @@
a declaration with id image_view [MissingInflatedId]
val imgView = rootView.findViewById<ImageView>(R.id.image_view)
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -76,24 +76,24 @@
return rootView
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/activity_main.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent" />
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/list_item.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent" />
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`test.pkg`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text linenumbers
@id/text_field
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MissingInflatedIdDetectorTest.kt)
diff --git a/docs/checks/MissingIntentFilterForMediaSearch.md.html b/docs/checks/MissingIntentFilterForMediaSearch.md.html
index ced8da8b..5c75b9d2 100644
--- a/docs/checks/MissingIntentFilterForMediaSearch.md.html
+++ b/docs/checks/MissingIntentFilterForMediaSearch.md.html
@@ -52,7 +52,7 @@
[MissingIntentFilterForMediaSearch]
<application
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -84,7 +84,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml/automotive_app_desc.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -92,7 +92,7 @@
<automotiveApp>
<uses name="media"/>
</automotiveApp>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AndroidAutoDetectorTest.java)
diff --git a/docs/checks/MissingKeepAnnotation-2.md.html b/docs/checks/MissingKeepAnnotation-2.md.html
index 098b3403..fe0a44a7 100644
--- a/docs/checks/MissingKeepAnnotation-2.md.html
+++ b/docs/checks/MissingKeepAnnotation-2.md.html
@@ -32,20 +32,64 @@
: 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-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt)
+Tests
+: [MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingKeepAnnotationDetectorTest.kt)
+Tests
+: [MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingKeepAnnotationDetectorTest.kt)
+Tests
+: [MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingKeepAnnotationDetectorTest.kt)
Copyright Year
: 2024
Type-safe nav arguments such as Enum types can get incorrectly
obfuscated in minified builds when not referenced directly.
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/com/example/TestEnum.kt:6:Warning: To prevent this Enum's serializer
+from being obfuscated in minified builds, annotate it with
+@androidx.annotation.Keep [MissingKeepAnnotation]
+enum class TestEnum { ONE, TWO }
+ --------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/com/example/TestEnum.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package com.example
+
+import androidx.navigation.*
+import androidx.navigation.compose.*
+
+enum class TestEnum { ONE, TWO }
+class TestClass(val arg: TestEnum)
+
+fun navigation() {
+ ComposeNavigatorDestinationBuilder(route = TestClass::class)
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the source code ([MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingKeepAnnotationDetectorTest.kt)
+[MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingKeepAnnotationDetectorTest.kt)
+[MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingKeepAnnotationDetectorTest.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, `TypeSafeDestinationMissingAnnotationDetector.testComposeNavigatorDestinationBuilderConstructor_hasError`.
+To report a problem with this extracted sample, contact
+Jetpack Navigation Compose.
+
(##) Conflicts
This issue id has also been used by other, unrelated lint checks. Issue
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-common:2.9.0-rc01](MissingKeepAnnotation.md.html)
-* [MissingKeepAnnotation from androidx.navigation:navigation-runtime:2.9.0-rc01](MissingKeepAnnotation-3.md.html)
+* [MissingKeepAnnotation from androidx.navigation:navigation-common:2.9.7](MissingKeepAnnotation.md.html)
+* [MissingKeepAnnotation from androidx.navigation:navigation-runtime:2.9.7](MissingKeepAnnotation-3.md.html)
(##) Including
@@ -56,17 +100,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-compose:2.9.0-rc01")
+implementation("androidx.navigation:navigation-compose:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-compose:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-compose:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.compose)
# libs.versions.toml
[versions]
-navigation-compose = "2.9.0-rc01"
+navigation-compose = "2.9.7"
[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 +122,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.9.7 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/MissingKeepAnnotation-3.md.html b/docs/checks/MissingKeepAnnotation-3.md.html
index 7d3ae75f..1b5a7517 100644
--- a/docs/checks/MissingKeepAnnotation-3.md.html
+++ b/docs/checks/MissingKeepAnnotation-3.md.html
@@ -34,20 +34,64 @@
: 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-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt)
+Tests
+: [MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingKeepAnnotationDetectorTest.kt)
+Tests
+: [MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingKeepAnnotationDetectorTest.kt)
+Tests
+: [MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingKeepAnnotationDetectorTest.kt)
Copyright Year
: 2024
Type-safe nav arguments such as Enum types can get incorrectly
obfuscated in minified builds when not referenced directly.
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/com/example/TestEnum.kt:6:Warning: To prevent this Enum's serializer
+from being obfuscated in minified builds, annotate it with
+@androidx.annotation.Keep [MissingKeepAnnotation]
+enum class TestEnum { ONE, TWO }
+ --------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/com/example/TestEnum.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package com.example
+
+import androidx.navigation.*
+import androidx.navigation.compose.*
+
+enum class TestEnum { ONE, TWO }
+class TestClass(val arg: TestEnum)
+
+fun navigation() {
+ ComposeNavigatorDestinationBuilder(route = TestClass::class)
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the source code ([MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingKeepAnnotationDetectorTest.kt)
+[MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingKeepAnnotationDetectorTest.kt)
+[MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingKeepAnnotationDetectorTest.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, `TypeSafeDestinationMissingAnnotationDetector.testComposeNavigatorDestinationBuilderConstructor_hasError`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=409828.
+
(##) Conflicts
This issue id has also been used by other, unrelated lint checks. Issue
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-common:2.9.0-rc01](MissingKeepAnnotation.md.html)
-* [MissingKeepAnnotation from androidx.navigation:navigation-compose:2.9.0-rc01](MissingKeepAnnotation-2.md.html)
+* [MissingKeepAnnotation from androidx.navigation:navigation-common:2.9.7](MissingKeepAnnotation.md.html)
+* [MissingKeepAnnotation from androidx.navigation:navigation-compose:2.9.7](MissingKeepAnnotation-2.md.html)
(##) Including
@@ -58,17 +102,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-runtime:2.9.0-rc01")
+implementation("androidx.navigation:navigation-runtime:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-runtime:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.runtime)
# libs.versions.toml
[versions]
-navigation-runtime = "2.9.0-rc01"
+navigation-runtime = "2.9.7"
[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
@@ -80,7 +124,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.9.7 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/MissingKeepAnnotation.md.html b/docs/checks/MissingKeepAnnotation.md.html
index 051629bf..1a3eebc9 100644
--- a/docs/checks/MissingKeepAnnotation.md.html
+++ b/docs/checks/MissingKeepAnnotation.md.html
@@ -34,20 +34,64 @@
: 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-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt)
+Tests
+: [MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingKeepAnnotationDetectorTest.kt)
+Tests
+: [MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingKeepAnnotationDetectorTest.kt)
+Tests
+: [MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingKeepAnnotationDetectorTest.kt)
Copyright Year
: 2024
Type-safe nav arguments such as Enum types can get incorrectly
obfuscated in minified builds when not referenced directly.
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/com/example/TestEnum.kt:6:Warning: To prevent this Enum's serializer
+from being obfuscated in minified builds, annotate it with
+@androidx.annotation.Keep [MissingKeepAnnotation]
+enum class TestEnum { ONE, TWO }
+ --------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/com/example/TestEnum.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package com.example
+
+import androidx.navigation.*
+import androidx.navigation.compose.*
+
+enum class TestEnum { ONE, TWO }
+class TestClass(val arg: TestEnum)
+
+fun navigation() {
+ ComposeNavigatorDestinationBuilder(route = TestClass::class)
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the source code ([MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingKeepAnnotationDetectorTest.kt)
+[MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingKeepAnnotationDetectorTest.kt)
+[MissingKeepAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingKeepAnnotationDetectorTest.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, `TypeSafeDestinationMissingAnnotationDetector.testComposeNavigatorDestinationBuilderConstructor_hasError`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=409828.
+
(##) Conflicts
This issue id has also been used by other, unrelated lint checks. Issue
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-rc01](MissingKeepAnnotation-2.md.html)
-* [MissingKeepAnnotation from androidx.navigation:navigation-runtime:2.9.0-rc01](MissingKeepAnnotation-3.md.html)
+* [MissingKeepAnnotation from androidx.navigation:navigation-compose:2.9.7](MissingKeepAnnotation-2.md.html)
+* [MissingKeepAnnotation from androidx.navigation:navigation-runtime:2.9.7](MissingKeepAnnotation-3.md.html)
(##) Including
@@ -58,17 +102,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-common:2.9.0-rc01")
+implementation("androidx.navigation:navigation-common:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-common:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-common:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.common)
# libs.versions.toml
[versions]
-navigation-common = "2.9.0-rc01"
+navigation-common = "2.9.7"
[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
@@ -80,7 +124,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.9.7 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/MissingLeanbackLauncher.md.html b/docs/checks/MissingLeanbackLauncher.md.html
index 1cea1404..3ac15164 100644
--- a/docs/checks/MissingLeanbackLauncher.md.html
+++ b/docs/checks/MissingLeanbackLauncher.md.html
@@ -44,7 +44,7 @@
[MissingLeanbackLauncher]
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
</activity>
</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/AndroidTvDetectorTest.java)
diff --git a/docs/checks/MissingLeanbackSupport.md.html b/docs/checks/MissingLeanbackSupport.md.html
index 2421c690..c99e8fa3 100644
--- a/docs/checks/MissingLeanbackSupport.md.html
+++ b/docs/checks/MissingLeanbackSupport.md.html
@@ -53,7 +53,7 @@
[MissingLeanbackSupport]
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
</activity>
</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/AndroidTvDetectorTest.java)
diff --git a/docs/checks/MissingMediaBrowserServiceIntentFilter.md.html b/docs/checks/MissingMediaBrowserServiceIntentFilter.md.html
index 825b40b6..fb37ae08 100644
--- a/docs/checks/MissingMediaBrowserServiceIntentFilter.md.html
+++ b/docs/checks/MissingMediaBrowserServiceIntentFilter.md.html
@@ -53,7 +53,7 @@
auto support [MissingMediaBrowserServiceIntentFilter]
<application
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -82,7 +82,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml/automotive_app_desc.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -90,7 +90,7 @@
<automotiveApp>
<uses name="media"/>
</automotiveApp>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AndroidAutoDetectorTest.java)
diff --git a/docs/checks/MissingOnPlayFromSearch.md.html b/docs/checks/MissingOnPlayFromSearch.md.html
index 8e05eb7e..d278a1e8 100644
--- a/docs/checks/MissingOnPlayFromSearch.md.html
+++ b/docs/checks/MissingOnPlayFromSearch.md.html
@@ -45,7 +45,7 @@
Auto. [MissingOnPlayFromSearch]
public class MSessionCallback extends Callback {
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -81,7 +81,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml/automotive_app_desc.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -89,7 +89,7 @@
<automotiveApp>
<uses name="media"/>
</automotiveApp>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/com/example/android/uamp/MSessionCallback.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -103,7 +103,7 @@
// custom impl
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AndroidAutoDetectorTest.java)
diff --git a/docs/checks/MissingPermission.md.html b/docs/checks/MissingPermission.md.html
index 80c2fe9f..30643407 100644
--- a/docs/checks/MissingPermission.md.html
+++ b/docs/checks/MissingPermission.md.html
@@ -50,7 +50,7 @@
android.permission.ACCESS_COARSE_LOCATION [MissingPermission]
LocationManager.Location location = locationManager.myMethod(provider);
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
LocationManager.Location location = locationManager.myMethod(provider);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PermissionDetectorTest.kt)
diff --git a/docs/checks/MissingPrefix.md.html b/docs/checks/MissingPrefix.md.html
index d0a009e1..aa2f9cb3 100644
--- a/docs/checks/MissingPrefix.md.html
+++ b/docs/checks/MissingPrefix.md.html
@@ -52,7 +52,7 @@
namespace prefix [MissingPrefix]
<Button style="@style/setupWizardOuterFrame" android.text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
---------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
<ImageView android:style="@style/bogus" android:id="@+id/android_logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/android_button" android:focusable="false" android:clickable="false" android:layout_weight="1.0" />
<LinearLayout other:orientation="horizontal"/>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MissingPrefixDetectorTest.kt)
diff --git a/docs/checks/MissingPurpose.md.html b/docs/checks/MissingPurpose.md.html
new file mode 100644
index 00000000..1cd27b2c
--- /dev/null
+++ b/docs/checks/MissingPurpose.md.html
@@ -0,0 +1,123 @@
+
+(#) Missing purpose for permission
+
+!!! ERROR: Missing purpose for permission
+ This is an error, and is also enforced at build time when
+ supported by the build system. For Android this means it will
+ run during release builds.
+
+Id
+: `MissingPurpose`
+Summary
+: Missing purpose for permission
+Severity
+: Fatal
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 9.0.0 (January 2026)
+Affects
+: 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/PurposeDeclarationDetector.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/PurposeDeclarationDetectorTest.kt)
+
+When requesting a permission that requires purpose declaration,
+appropriate tags and/or attributes must be defined based on the required
+purpose types. Failure to do so will lead to unexpected runtime issues.
+
+Purpose: If a permission requires purpose, at least one ``
+child tag must be declared. This tag must use appropriate preset valid
+purpose string found in the permission's documentation. The declared
+purpose(s) must cover all API levels for which the permission requires
+purpose.
+
+Purpose String: If a permission requires a purpose string,
+`android:purposeString` attribute must be declared with a string
+resource referencing appropriate localized string(s) including the
+reason for why the permission is required by the app.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:4:Error: USE_FOO permission is missing required
+purpose attributes/elements: missing one or more tags required
+for API level(s) 38 [MissingPurpose]
+ <uses-permission android:name="USE_FOO" />
+ ------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.example.helloworld">
+ <uses-sdk android:minSdkVersion="30" android:targetSdkVersion="38" />
+ <uses-permission android:name="USE_FOO" />
+</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/PurposeDeclarationDetectorTest.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, `PurposeDeclarationDetector.testDocumentationExampleRequestingPermissionWithNoPurposeFail`.
+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="MissingPurpose"` 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="MissingPurpose" 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 'MissingPurpose'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore MissingPurpose ...`
+ ```
+
+* 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/MissingQuantity.md.html b/docs/checks/MissingQuantity.md.html
index cc763f3c..c7ac4859 100644
--- a/docs/checks/MissingQuantity.md.html
+++ b/docs/checks/MissingQuantity.md.html
@@ -56,7 +56,7 @@
[MissingQuantity]
<plurals name="numberOfSongsAvailable">
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -70,7 +70,7 @@
<item quantity="other">@string/hello</item>
</plurals>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/plurals2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -81,7 +81,7 @@
<item quantity="other">%d songs found.</item>
</plurals>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-pl/plurals2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -93,7 +93,7 @@
<item quantity="other">Znaleziono %d piosenek.</item>
</plurals>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PluralsDetectorTest.java)
diff --git a/docs/checks/MissingResourceImportAlias.md.html b/docs/checks/MissingResourceImportAlias.md.html
index 8bf67c9e..5dd68b06 100644
--- a/docs/checks/MissingResourceImportAlias.md.html
+++ b/docs/checks/MissingResourceImportAlias.md.html
@@ -66,7 +66,7 @@
<option name="import-aliases" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -76,7 +76,7 @@
from other modules [MissingResourceImportAlias]
import slack.l10n.R
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -87,7 +87,7 @@
import slack.l10n.R
class MyClass
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/resources/MissingResourceImportAliasDetectorTest.kt)
diff --git a/docs/checks/MissingResourcesProperties.md.html b/docs/checks/MissingResourcesProperties.md.html
index 2108e532..bfcb3ec1 100644
--- a/docs/checks/MissingResourcesProperties.md.html
+++ b/docs/checks/MissingResourcesProperties.md.html
@@ -42,7 +42,7 @@
[MissingResourcesProperties]
generateLocaleConfig true
--------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -55,7 +55,7 @@
generateLocaleConfig true
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MissingResourcesPropertiesDetectorTest.kt)
diff --git a/docs/checks/MissingScrollbars.md.html b/docs/checks/MissingScrollbars.md.html
index e8811395..dbd125a8 100644
--- a/docs/checks/MissingScrollbars.md.html
+++ b/docs/checks/MissingScrollbars.md.html
@@ -49,7 +49,7 @@
[MissingScrollbars]
<ScrollView
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/MissingScrollbarsDetectorTest.kt)
diff --git a/docs/checks/MissingSerializableAnnotation-2.md.html b/docs/checks/MissingSerializableAnnotation-2.md.html
index ad5ad41a..b99b4926 100644
--- a/docs/checks/MissingSerializableAnnotation-2.md.html
+++ b/docs/checks/MissingSerializableAnnotation-2.md.html
@@ -32,6 +32,12 @@
: 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-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt)
+Tests
+: [MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingSerializableAnnotationDetectorTest.kt)
+Tests
+: [MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingSerializableAnnotationDetectorTest.kt)
+Tests
+: [MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingSerializableAnnotationDetectorTest.kt)
Copyright Year
: 2024
@@ -39,14 +45,53 @@
Navigation library to convert the class or object declaration into a
NavDestination.
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/com/example/TestClass.kt:7:Error: To use this class or object as a
+type-safe destination, annotate it with @Serializable
+[MissingSerializableAnnotation]
+class DeepLink
+ --------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/com/example/TestClass.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package com.example
+
+import androidx.navigation.*
+import kotlinx.serialization.*
+
+@Serializable class TestClass
+class DeepLink
+
+fun navigation() {
+ val builder = NavDestinationBuilder(route = TestClass::class)
+ builder.deepLink()
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the source code ([MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingSerializableAnnotationDetectorTest.kt)
+[MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingSerializableAnnotationDetectorTest.kt)
+[MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingSerializableAnnotationDetectorTest.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, `TypeSafeDestinationMissingAnnotationDetector.testDeeplink_hasError`.
+To report a problem with this extracted sample, contact
+Jetpack Navigation Compose.
+
(##) Conflicts
This issue id has also been used by other, unrelated lint checks. Issue
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-common:2.9.0-rc01](MissingSerializableAnnotation.md.html)
-* [MissingSerializableAnnotation from androidx.navigation:navigation-runtime:2.9.0-rc01](MissingSerializableAnnotation-3.md.html)
+* [MissingSerializableAnnotation from androidx.navigation:navigation-common:2.9.7](MissingSerializableAnnotation.md.html)
+* [MissingSerializableAnnotation from androidx.navigation:navigation-runtime:2.9.7](MissingSerializableAnnotation-3.md.html)
(##) Including
@@ -57,17 +102,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-compose:2.9.0-rc01")
+implementation("androidx.navigation:navigation-compose:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-compose:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-compose:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.compose)
# libs.versions.toml
[versions]
-navigation-compose = "2.9.0-rc01"
+navigation-compose = "2.9.7"
[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 +124,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.9.7 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/MissingSerializableAnnotation-3.md.html b/docs/checks/MissingSerializableAnnotation-3.md.html
index 1d0e458c..80389763 100644
--- a/docs/checks/MissingSerializableAnnotation-3.md.html
+++ b/docs/checks/MissingSerializableAnnotation-3.md.html
@@ -34,6 +34,12 @@
: 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-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt)
+Tests
+: [MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingSerializableAnnotationDetectorTest.kt)
+Tests
+: [MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingSerializableAnnotationDetectorTest.kt)
+Tests
+: [MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingSerializableAnnotationDetectorTest.kt)
Copyright Year
: 2024
@@ -41,14 +47,53 @@
Navigation library to convert the class or object declaration into a
NavDestination.
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/com/example/TestClass.kt:7:Error: To use this class or object as a
+type-safe destination, annotate it with @Serializable
+[MissingSerializableAnnotation]
+class DeepLink
+ --------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/com/example/TestClass.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package com.example
+
+import androidx.navigation.*
+import kotlinx.serialization.*
+
+@Serializable class TestClass
+class DeepLink
+
+fun navigation() {
+ val builder = NavDestinationBuilder(route = TestClass::class)
+ builder.deepLink()
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the source code ([MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingSerializableAnnotationDetectorTest.kt)
+[MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingSerializableAnnotationDetectorTest.kt)
+[MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingSerializableAnnotationDetectorTest.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, `TypeSafeDestinationMissingAnnotationDetector.testDeeplink_hasError`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=409828.
+
(##) Conflicts
This issue id has also been used by other, unrelated lint checks. Issue
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-common:2.9.0-rc01](MissingSerializableAnnotation.md.html)
-* [MissingSerializableAnnotation from androidx.navigation:navigation-compose:2.9.0-rc01](MissingSerializableAnnotation-2.md.html)
+* [MissingSerializableAnnotation from androidx.navigation:navigation-common:2.9.7](MissingSerializableAnnotation.md.html)
+* [MissingSerializableAnnotation from androidx.navigation:navigation-compose:2.9.7](MissingSerializableAnnotation-2.md.html)
(##) Including
@@ -59,17 +104,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-runtime:2.9.0-rc01")
+implementation("androidx.navigation:navigation-runtime:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-runtime:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.runtime)
# libs.versions.toml
[versions]
-navigation-runtime = "2.9.0-rc01"
+navigation-runtime = "2.9.7"
[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
@@ -81,7 +126,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.9.7 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/MissingSerializableAnnotation.md.html b/docs/checks/MissingSerializableAnnotation.md.html
index 41946204..5249c42e 100644
--- a/docs/checks/MissingSerializableAnnotation.md.html
+++ b/docs/checks/MissingSerializableAnnotation.md.html
@@ -34,6 +34,12 @@
: 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-runtime-lint/src/main/java/androidx/navigation/runtime/lint/TypeSafeDestinationMissingAnnotationDetector.kt)
+Tests
+: [MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingSerializableAnnotationDetectorTest.kt)
+Tests
+: [MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingSerializableAnnotationDetectorTest.kt)
+Tests
+: [MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingSerializableAnnotationDetectorTest.kt)
Copyright Year
: 2024
@@ -41,14 +47,53 @@
Navigation library to convert the class or object declaration into a
NavDestination.
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/com/example/TestClass.kt:7:Error: To use this class or object as a
+type-safe destination, annotate it with @Serializable
+[MissingSerializableAnnotation]
+class DeepLink
+ --------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/com/example/TestClass.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package com.example
+
+import androidx.navigation.*
+import kotlinx.serialization.*
+
+@Serializable class TestClass
+class DeepLink
+
+fun navigation() {
+ val builder = NavDestinationBuilder(route = TestClass::class)
+ builder.deepLink()
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the source code ([MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/MissingSerializableAnnotationDetectorTest.kt)
+[MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/lint/MissingSerializableAnnotationDetectorTest.kt)
+[MissingSerializableAnnotationDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/MissingSerializableAnnotationDetectorTest.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, `TypeSafeDestinationMissingAnnotationDetector.testDeeplink_hasError`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=409828.
+
(##) Conflicts
This issue id has also been used by other, unrelated lint checks. Issue
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-rc01](MissingSerializableAnnotation-2.md.html)
-* [MissingSerializableAnnotation from androidx.navigation:navigation-runtime:2.9.0-rc01](MissingSerializableAnnotation-3.md.html)
+* [MissingSerializableAnnotation from androidx.navigation:navigation-compose:2.9.7](MissingSerializableAnnotation-2.md.html)
+* [MissingSerializableAnnotation from androidx.navigation:navigation-runtime:2.9.7](MissingSerializableAnnotation-3.md.html)
(##) Including
@@ -59,17 +104,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-common:2.9.0-rc01")
+implementation("androidx.navigation:navigation-common:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-common:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-common:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.common)
# libs.versions.toml
[versions]
-navigation-common = "2.9.0-rc01"
+navigation-common = "2.9.7"
[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
@@ -81,7 +126,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.9.7 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/MissingSuperCall.md.html b/docs/checks/MissingSuperCall.md.html
index 73b36641..810bbabd 100644
--- a/docs/checks/MissingSuperCall.md.html
+++ b/docs/checks/MissingSuperCall.md.html
@@ -45,7 +45,7 @@
super.someMethod [MissingSuperCall]
override fun someMethod(arg: Int) {
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,10 +65,10 @@
// Bug: required to call super.someMethod(arg)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/CallSuperDetectorTest.kt)
+You can also visit the source code ([CallSuperDetectorTest.kt](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/CallSuperDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/MissingTranslation.md.html b/docs/checks/MissingTranslation.md.html
index 92a533f9..fb6f3934 100644
--- a/docs/checks/MissingTranslation.md.html
+++ b/docs/checks/MissingTranslation.md.html
@@ -67,7 +67,7 @@
[MissingTranslation]
<string name="menu_settings">Settings</string>
--------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -103,8 +103,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-cs/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -119,7 +118,7 @@
<skip />
<string name="wallpaper_instructions">"Klepnutím na obrázek nastavíte tapetu portrétu"</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-de-rDE/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -135,7 +134,7 @@
<string name="wallpaper_instructions">"Tippen Sie auf Bild, um Porträt-Bildschirmhintergrund einzustellen"</string>
<string name="continue_skip_label">"Weiter"</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-es/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -157,7 +156,7 @@
<item>"Nombre de tu colegio"</item>
</string-array>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-es-rUS/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -166,7 +165,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="menu_search">"Búsqueda"</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-land/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -190,8 +189,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap image to set landscape wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-cs/arrays.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -204,7 +202,7 @@
<item>"Název střední školy"</item>
</string-array>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-es/donottranslate.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -212,7 +210,7 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="full_wday_month_day_no_year">EEEE, d MMMM</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-nl-rNL/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -229,22 +227,22 @@
<skip />
<string name="wallpaper_instructions">"Tik op afbeelding om portretachtergrond in te stellen"</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/public.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources><public /></resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/foo.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<LinearLayout/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout-ja/foo.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<LinearLayout/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TranslationDetectorTest.kt)
diff --git a/docs/checks/MissingTvBanner.md.html b/docs/checks/MissingTvBanner.md.html
index cd667135..b074d1e3 100644
--- a/docs/checks/MissingTvBanner.md.html
+++ b/docs/checks/MissingTvBanner.md.html
@@ -47,7 +47,7 @@
tag or each Leanback launcher activity [MissingTvBanner]
<application>
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
</activity>
</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/AndroidTvDetectorTest.java)
diff --git a/docs/checks/MissingVersion.md.html b/docs/checks/MissingVersion.md.html
index f9e04dea..94eacdcb 100644
--- a/docs/checks/MissingVersion.md.html
+++ b/docs/checks/MissingVersion.md.html
@@ -52,7 +52,7 @@
the application version [MissingVersion]
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -78,10 +78,10 @@
</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/ManifestDetectorTest.kt)
+You can also visit the source code ([ManifestDetectorTest.kt](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/ManifestDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/MissingXmlHeader.md.html b/docs/checks/MissingXmlHeader.md.html
index 136c9832..6acfd99a 100644
--- a/docs/checks/MissingXmlHeader.md.html
+++ b/docs/checks/MissingXmlHeader.md.html
@@ -49,14 +49,14 @@
[MissingXmlHeader]
<resources/>
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/MissingXmlHeaderDetectorTest.kt)
diff --git a/docs/checks/MockLocation.md.html b/docs/checks/MockLocation.md.html
index 4e075a68..56826933 100644
--- a/docs/checks/MockLocation.md.html
+++ b/docs/checks/MockLocation.md.html
@@ -55,7 +55,7 @@
src/debug/AndroidManifest.xml) [MockLocation]
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -71,7 +71,7 @@
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/debug/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -85,7 +85,7 @@
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -99,7 +99,7 @@
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
@@ -107,13 +107,13 @@
compileSdkVersion 25
defaultConfig {
applicationId "com.android.tools.test"
- minSdkVersion 5
+ minSdkVersion 14
targetSdkVersion 16
versionCode 2
versionName "MyName"
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ManifestDetectorTest.kt)
diff --git a/docs/checks/ModifierFactoryExtensionFunction.md.html b/docs/checks/ModifierFactoryExtensionFunction.md.html
index b9456d7c..3955b6e2 100644
--- a/docs/checks/ModifierFactoryExtensionFunction.md.html
+++ b/docs/checks/ModifierFactoryExtensionFunction.md.html
@@ -69,7 +69,7 @@
[ModifierFactoryExtensionFunction]
val fooModifier3: Modifier get() = Modifier
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -92,7 +92,7 @@
}
val fooModifier3: Modifier get() = Modifier
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ModifierDeclarationDetectorTest.kt)
@@ -111,17 +111,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[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 a0e9149c..bd9959ae 100644
--- a/docs/checks/ModifierFactoryReturnType.md.html
+++ b/docs/checks/ModifierFactoryReturnType.md.html
@@ -51,7 +51,7 @@
[ModifierFactoryReturnType]
fun Modifier.fooModifier(): Modifier.Element {
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
fun Modifier.fooModifier(): Modifier.Element {
return TestModifier
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ModifierDeclarationDetectorTest.kt)
@@ -85,17 +85,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[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 687cc0aa..bcf1dba2 100644
--- a/docs/checks/ModifierFactoryUnreferencedReceiver.md.html
+++ b/docs/checks/ModifierFactoryUnreferencedReceiver.md.html
@@ -58,7 +58,7 @@
[ModifierFactoryUnreferencedReceiver]
fun Modifier.fooModifier(): Modifier.Element {
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -73,7 +73,7 @@
fun Modifier.fooModifier(): Modifier.Element {
return TestModifier
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ModifierDeclarationDetectorTest.kt)
@@ -92,17 +92,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[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 2dc83874..31c79696 100644
--- a/docs/checks/ModifierNodeInspectableProperties.md.html
+++ b/docs/checks/ModifierNodeInspectableProperties.md.html
@@ -49,7 +49,7 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/test/Element.kt:8:Information: Element does not override
+src/test/Element.kt:8:Hint: Element does not override
inspectableProperties(). The layout inspector will use the default
implementation of this function, which will attempt to read Element's
properties reflectively. Override inspectableProperties() if you'd like
@@ -57,7 +57,7 @@
[ModifierNodeInspectableProperties]
class Element : ModifierNodeElement<Modifier.Node>() {
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -73,7 +73,7 @@
override fun create() = object : Modifier.Node() {}
override fun update(node: Modifier.Node) = node
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ModifierNodeInspectablePropertiesDetectorTest.kt)
@@ -92,17 +92,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[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 5960babe..b93574ab 100644
--- a/docs/checks/ModifierParameter.md.html
+++ b/docs/checks/ModifierParameter.md.html
@@ -57,7 +57,7 @@
should be named modifier [ModifierParameter]
buttonModifier: Modifier = Modifier,
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,7 +75,7 @@
elevation: Float = 5,
content: @Composable () -> Unit
) {}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ModifierParameterDetectorTest.kt)
@@ -94,17 +94,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[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 e6ed3885..37720f8a 100644
--- a/docs/checks/ModuleCompanionObjects.md.html
+++ b/docs/checks/ModuleCompanionObjects.md.html
@@ -34,158 +34,10 @@
: Kotlin and Java files and test sources
Editing
: This check runs on the fly in the IDE editor
-Implementation
-: [Source Code](https://github.com/google/dagger/tree/master/java/dagger/lint/DaggerKotlinIssueDetector.kt)
-Tests
-: [Source Code](https://github.com/google/dagger/tree/master/javatests/dagger/lint/DaggerKotlinIssueDetectorTest.kt)
-Copyright Year
-: 2020
Companion objects in @Module-annotated classes are considered part of
the API.
-(##) Example
-
-Here is an example of lint warnings produced by this check:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/MyQualifier.kt:66:Warning: Module companion objects should not
-be annotated with @Module. [ModuleCompanionObjects]
- // This should fail because the companion object is part of ClassModule
- ^
-src/foo/MyQualifier.kt:78:Warning: Module companion objects should not
-be annotated with @Module. [ModuleCompanionObjects]
- // This should fail because the companion object is part of ClassModule
- ^
-src/foo/MyQualifier.kt:101:Warning: Module companion objects should not
-be annotated with @Module. [ModuleCompanionObjects]
- // This is should fail because this should be extracted to a standalone object.
- ^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Here is the source file referenced above:
-
-`src/foo/MyQualifier.kt`:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-package foo
-import javax.inject.Inject
-import javax.inject.Qualifier
-import kotlin.jvm.JvmStatic
-import dagger.Provides
-import dagger.Module
-
-@Qualifier
-annotation class MyQualifier
-
-class InjectedTest {
- // This should fail because of `:field`
- @Inject
- @field:MyQualifier
- lateinit var prop: String
-
- // This is fine!
- @Inject
- @MyQualifier
- lateinit var prop2: String
-}
-
-@Module
-object ObjectModule {
- // This should fail because it uses `@JvmStatic`
- @JvmStatic
- @Provides
- fun provideFoo(): String {
-
- }
-
- // This is fine!
- @Provides
- fun provideBar(): String {
-
- }
-}
-
-@Module
-class ClassModule {
- companion object {
- // This should fail because the companion object is part of ClassModule, so this is unnecessary.
- @JvmStatic
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-@Module
-class ClassModuleQualified {
- companion object {
- // This should fail because the companion object is part of ClassModule, so this is unnecessary.
- // This specifically tests a fully qualified annotation
- @kotlin.jvm.JvmStatic
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-@Module
-class ClassModule2 {
- // This should fail because the companion object is part of ClassModule
- @Module
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-@Module
-class ClassModule2Qualified {
- // This should fail because the companion object is part of ClassModule
- // This specifically tests a fully qualified annotation
- @dagger.Module
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-// This is correct as of Dagger 2.26!
-@Module
-class ClassModule3 {
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-
-class ClassModule4 {
- // This is should fail because this should be extracted to a standalone object.
- @Module
- companion object {
- @Provides
- fun provideBaz(): String {
-
- }
- }
-}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can also visit the
-[source code](https://github.com/google/dagger/tree/master/javatests/dagger/lint/DaggerKotlinIssueDetectorTest.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, `DaggerKotlinIssueDetector.simpleSmokeTestForQualifiersAndProviders`.
-To report a problem with this extracted sample, visit
-https://github.com/google/dagger/issues.
-
(##) Including
!!!
diff --git a/docs/checks/ModuleCompanionObjectsNotInModuleParent.md.html b/docs/checks/ModuleCompanionObjectsNotInModuleParent.md.html
index 86ed952a..5bdf5297 100644
--- a/docs/checks/ModuleCompanionObjectsNotInModuleParent.md.html
+++ b/docs/checks/ModuleCompanionObjectsNotInModuleParent.md.html
@@ -34,12 +34,6 @@
: Kotlin and Java files and test sources
Editing
: This check runs on the fly in the IDE editor
-Implementation
-: [Source Code](https://github.com/google/dagger/tree/master/java/dagger/lint/DaggerKotlinIssueDetector.kt)
-Tests
-: [Source Code](https://github.com/google/dagger/tree/master/javatests/dagger/lint/DaggerKotlinIssueDetectorTest.kt)
-Copyright Year
-: 2020
Companion objects in @Module-annotated classes are considered part of
the API. This
diff --git a/docs/checks/MonochromeLauncherIcon.md.html b/docs/checks/MonochromeLauncherIcon.md.html
index 2cff9ecd..cfb2d0fd 100644
--- a/docs/checks/MonochromeLauncherIcon.md.html
+++ b/docs/checks/MonochromeLauncherIcon.md.html
@@ -29,16 +29,13 @@
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/MonochromeLauncherIconDetectorTest.kt)
-If `android:roundIcon` and `android:icon` are both in your manifest, you
-must either remove the reference to `android:roundIcon` if it is not
-needed; or, supply the monochrome icon in the drawable defined by the
-`android:roundIcon` and `android:icon` attribute.
-
-For example, if `android:roundIcon` and `android:icon` are both in the
-manifest, a launcher might choose to use `android:roundIcon` over
-`android:icon` to display the adaptive app icon. Therefore, your themed
-application iconwill not show if your monochrome attribute is not also
-specified in `android:roundIcon`.
+The system may use the coloring of the user's chosen wallpaper and theme
+to tint app icons. Providing a `` layer (which will be used
+for tinting) for every adaptive icon is strongly recommended, otherwise
+Android 16 QPR 2 and above will simply tint the color version of the
+icon, which may look unusual. Devices running earlier Android versions
+will (with no monochrome layer) show the untinted color icon for your
+app, which will look inconsistent.
(##) Example
@@ -52,7 +49,7 @@
roundIcon is missing a monochrome tag [MonochromeLauncherIcon]
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -62,7 +59,7 @@
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/drawable-ldpi/ic_round_icon.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -70,7 +67,7 @@
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -81,7 +78,7 @@
android:label="@string/app_name" >
</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/MonochromeLauncherIconDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageAdaptedByRequiresAdapter.md.html b/docs/checks/MoshiUsageAdaptedByRequiresAdapter.md.html
index 774b5275..30d008d9 100644
--- a/docs/checks/MoshiUsageAdaptedByRequiresAdapter.md.html
+++ b/docs/checks/MoshiUsageAdaptedByRequiresAdapter.md.html
@@ -58,7 +58,7 @@
[MoshiUsageAdaptedByRequiresAdapter]
@AdaptedBy(NotAnAdapter::class) val value2: String
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -81,13 +81,13 @@
class Example3
@JsonClass(generateAdapter = true)
-data class Example3(
+data class Example4(
@AdaptedBy(CustomAdapter::class) val value1: String,
@AdaptedBy(NotAnAdapter::class) val value2: String
)
@AdaptedBy(CustomAdapterMissingKeep::class)
-class Example4
+class Example5
@Keep
abstract class CustomFactory : JsonAdapter.Factory
@@ -95,7 +95,7 @@
abstract class CustomAdapter : JsonAdapter()
class NotAnAdapter
abstract class CustomAdapterMissingKeep : JsonAdapter()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageAdaptedByRequiresKeep.md.html b/docs/checks/MoshiUsageAdaptedByRequiresKeep.md.html
index c88b0d01..ea2a940f 100644
--- a/docs/checks/MoshiUsageAdaptedByRequiresKeep.md.html
+++ b/docs/checks/MoshiUsageAdaptedByRequiresKeep.md.html
@@ -52,7 +52,7 @@
must have @Keep. [MoshiUsageAdaptedByRequiresKeep]
@AdaptedBy(CustomAdapterMissingKeep::class)
-------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,13 +75,13 @@
class Example3
@JsonClass(generateAdapter = true)
-data class Example3(
+data class Example4(
@AdaptedBy(CustomAdapter::class) val value1: String,
@AdaptedBy(NotAnAdapter::class) val value2: String
)
@AdaptedBy(CustomAdapterMissingKeep::class)
-class Example4
+class Example5
@Keep
abstract class CustomFactory : JsonAdapter.Factory
@@ -89,7 +89,7 @@
abstract class CustomAdapter : JsonAdapter()
class NotAnAdapter
abstract class CustomAdapterMissingKeep : JsonAdapter()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageArray.md.html b/docs/checks/MoshiUsageArray.md.html
index 2d03812d..8d1e6c1d 100644
--- a/docs/checks/MoshiUsageArray.md.html
+++ b/docs/checks/MoshiUsageArray.md.html
@@ -68,7 +68,7 @@
[MoshiUsageArray]
val complexArray: Array<List<String>>,
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -77,7 +77,7 @@
package external
class ExternalType
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/external/ExternalTypeAnnotated.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -87,7 +87,7 @@
@JsonClass(generateAdapter = true)
data class ExternalTypeAnnotated(val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/slack/model/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -154,7 +154,7 @@
@JsonClass(generateAdapter = true)
data class CustomGenericType(val value: T)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageBlankGenerator.md.html b/docs/checks/MoshiUsageBlankGenerator.md.html
index 94b5a8e6..d5ec098c 100644
--- a/docs/checks/MoshiUsageBlankGenerator.md.html
+++ b/docs/checks/MoshiUsageBlankGenerator.md.html
@@ -52,7 +52,7 @@
values. [MoshiUsageBlankGenerator]
@JsonClass(generateAdapter = true, generator = "")
--
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
@JsonClass(generateAdapter = true, generator = "")
data class Example(val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageBlankJsonName.md.html b/docs/checks/MoshiUsageBlankJsonName.md.html
index 0c573097..7396b0d7 100644
--- a/docs/checks/MoshiUsageBlankJsonName.md.html
+++ b/docs/checks/MoshiUsageBlankJsonName.md.html
@@ -53,7 +53,7 @@
[MoshiUsageBlankJsonName]
data class Example(@Json(name = "") val value: String)
--
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
@JsonClass(generateAdapter = true)
data class Example(@Json(name = "") val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageBlankTypeLabel.md.html b/docs/checks/MoshiUsageBlankTypeLabel.md.html
index fab1192d..bcfa00c3 100644
--- a/docs/checks/MoshiUsageBlankTypeLabel.md.html
+++ b/docs/checks/MoshiUsageBlankTypeLabel.md.html
@@ -51,8 +51,8 @@
src/slack/model/BaseType.kt:5:Error: Moshi-sealed requires a type label
specified after the 'sealed:' prefix. [MoshiUsageBlankTypeLabel]
@JsonClass(generateAdapter = true, generator = "sealed:")
- -------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ---------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
@JsonClass(generateAdapter = true, generator = "sealed:")
sealed class BaseType
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageClassVisibility.md.html b/docs/checks/MoshiUsageClassVisibility.md.html
index 2bae1d28..ebca36ad 100644
--- a/docs/checks/MoshiUsageClassVisibility.md.html
+++ b/docs/checks/MoshiUsageClassVisibility.md.html
@@ -61,7 +61,7 @@
[MoshiUsageClassVisibility]
protected data class ProtectedClass(val value: String)
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -78,7 +78,7 @@
@JsonClass(generateAdapter = true)
protected data class ProtectedClass(val value: String)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageDoubleClassAnnotation.md.html b/docs/checks/MoshiUsageDoubleClassAnnotation.md.html
index 4d53bd38..7f4933b1 100644
--- a/docs/checks/MoshiUsageDoubleClassAnnotation.md.html
+++ b/docs/checks/MoshiUsageDoubleClassAnnotation.md.html
@@ -59,7 +59,7 @@
@JsonClass. [MoshiUsageDoubleClassAnnotation]
@AdaptedBy(CustomFactory::class)
--------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -78,7 +78,7 @@
@Keep
abstract class CustomFactory : JsonAdapter.Factory
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageDoubleTypeLabel.md.html b/docs/checks/MoshiUsageDoubleTypeLabel.md.html
index 4e40cd58..19008c4d 100644
--- a/docs/checks/MoshiUsageDoubleTypeLabel.md.html
+++ b/docs/checks/MoshiUsageDoubleTypeLabel.md.html
@@ -59,7 +59,7 @@
@DefaultObject. [MoshiUsageDoubleTypeLabel]
@DefaultObject
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -77,7 +77,7 @@
@TypeLabel(label = "one")
@DefaultObject
object Default : BaseType()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageDuplicateJsonName.md.html b/docs/checks/MoshiUsageDuplicateJsonName.md.html
index ac8c9c94..b3298d34 100644
--- a/docs/checks/MoshiUsageDuplicateJsonName.md.html
+++ b/docs/checks/MoshiUsageDuplicateJsonName.md.html
@@ -64,7 +64,7 @@
member 'anotherValue2'. [MoshiUsageDuplicateJsonName]
@Json(name = "value2") val anotherValue3: String
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -82,7 +82,7 @@
@Json(name = "value2") val anotherValue2: String,
@Json(name = "value2") val anotherValue3: String
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageEnumPropertyCouldBeMoshi.md.html b/docs/checks/MoshiUsageEnumPropertyCouldBeMoshi.md.html
index 8dd678d0..bdb06638 100644
--- a/docs/checks/MoshiUsageEnumPropertyCouldBeMoshi.md.html
+++ b/docs/checks/MoshiUsageEnumPropertyCouldBeMoshi.md.html
@@ -54,7 +54,7 @@
also use Moshi. [MoshiUsageEnumPropertyCouldBeMoshi]
data class Example(val value: TestEnum)
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
enum class TestEnum {
VALUE
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageEnumPropertyDefaultUnknown.md.html b/docs/checks/MoshiUsageEnumPropertyDefaultUnknown.md.html
index 73573297..6a0de578 100644
--- a/docs/checks/MoshiUsageEnumPropertyDefaultUnknown.md.html
+++ b/docs/checks/MoshiUsageEnumPropertyDefaultUnknown.md.html
@@ -66,7 +66,7 @@
'UNKNOWN' for a Moshi enum. [MoshiUsageEnumPropertyDefaultUnknown]
val value5: TestEnum = TestEnum.UNKNOWN,
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -89,7 +89,7 @@
enum class TestEnum {
UNKNOWN, VALUE
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageGenerateAdapterShouldBeTrue.md.html b/docs/checks/MoshiUsageGenerateAdapterShouldBeTrue.md.html
index 35a30bf3..dd243d74 100644
--- a/docs/checks/MoshiUsageGenerateAdapterShouldBeTrue.md.html
+++ b/docs/checks/MoshiUsageGenerateAdapterShouldBeTrue.md.html
@@ -53,7 +53,7 @@
[MoshiUsageGenerateAdapterShouldBeTrue]
@JsonClass(generateAdapter = false)
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
@JsonClass(generateAdapter = false)
data class Example(val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageGenericSealedSubtype.md.html b/docs/checks/MoshiUsageGenericSealedSubtype.md.html
index 5a56edca..86dc1bb4 100644
--- a/docs/checks/MoshiUsageGenericSealedSubtype.md.html
+++ b/docs/checks/MoshiUsageGenericSealedSubtype.md.html
@@ -53,7 +53,7 @@
moshi-sealed cannot be generic. [MoshiUsageGenericSealedSubtype]
data class Subtype<T>(val foo: T) : BaseType<T>()
---
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,7 +75,7 @@
@TypeLabel(label = "two")
@JsonClass(generateAdapter = true)
data class SubtypeTwo(val foo: String) : BaseType()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageInappropriateTypeLabel.md.html b/docs/checks/MoshiUsageInappropriateTypeLabel.md.html
index 9878a87f..1461f3a3 100644
--- a/docs/checks/MoshiUsageInappropriateTypeLabel.md.html
+++ b/docs/checks/MoshiUsageInappropriateTypeLabel.md.html
@@ -64,7 +64,7 @@
@DefaultObject annotation. [MoshiUsageInappropriateTypeLabel]
@DefaultObject
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -85,7 +85,7 @@
@DefaultObject
object Default
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageMissingPrimary.md.html b/docs/checks/MoshiUsageMissingPrimary.md.html
index a0210d83..b19b373b 100644
--- a/docs/checks/MoshiUsageMissingPrimary.md.html
+++ b/docs/checks/MoshiUsageMissingPrimary.md.html
@@ -54,7 +54,7 @@
a primary constructor or be sealed. [MoshiUsageMissingPrimary]
class Example
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
@JsonClass(generateAdapter = true)
class Example
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageMissingTypeLabel.md.html b/docs/checks/MoshiUsageMissingTypeLabel.md.html
index 34899556..355b0a5e 100644
--- a/docs/checks/MoshiUsageMissingTypeLabel.md.html
+++ b/docs/checks/MoshiUsageMissingTypeLabel.md.html
@@ -58,7 +58,7 @@
[MoshiUsageMissingTypeLabel]
object ObjectSubType : BaseType()
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -75,7 +75,7 @@
data class Subtype(val foo: String) : BaseType()
object ObjectSubType : BaseType()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageMutableCollections.md.html b/docs/checks/MoshiUsageMutableCollections.md.html
index cd57d683..f26df019 100644
--- a/docs/checks/MoshiUsageMutableCollections.md.html
+++ b/docs/checks/MoshiUsageMutableCollections.md.html
@@ -65,7 +65,7 @@
than mutable versions. [MoshiUsageMutableCollections]
val mutableMap: MutableMap<String, String>
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -74,7 +74,7 @@
package external
class ExternalType
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/external/ExternalTypeAnnotated.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -84,7 +84,7 @@
@JsonClass(generateAdapter = true)
data class ExternalTypeAnnotated(val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/slack/model/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -151,7 +151,7 @@
@JsonClass(generateAdapter = true)
data class CustomGenericType(val value: T)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageNonMoshiClassCollection.md.html b/docs/checks/MoshiUsageNonMoshiClassCollection.md.html
index a046009c..db926cf9 100644
--- a/docs/checks/MoshiUsageNonMoshiClassCollection.md.html
+++ b/docs/checks/MoshiUsageNonMoshiClassCollection.md.html
@@ -51,17 +51,15 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/slack/model/Example.kt:25:Information: Concrete Collection type
-'ArrayList' is not natively supported by Moshi.
-[MoshiUsageNonMoshiClassCollection]
+src/slack/model/Example.kt:25:Hint: Concrete Collection type 'ArrayList'
+is not natively supported by Moshi. [MoshiUsageNonMoshiClassCollection]
val concreteList: ArrayList<Int>,
--------------
-src/slack/model/Example.kt:26:Information: Concrete Collection type
-'HashSet' is not natively supported by Moshi.
-[MoshiUsageNonMoshiClassCollection]
+src/slack/model/Example.kt:26:Hint: Concrete Collection type 'HashSet'
+is not natively supported by Moshi. [MoshiUsageNonMoshiClassCollection]
val concreteSet: HashSet<Int>,
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -70,7 +68,7 @@
package external
class ExternalType
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/external/ExternalTypeAnnotated.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -80,7 +78,7 @@
@JsonClass(generateAdapter = true)
data class ExternalTypeAnnotated(val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/slack/model/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -147,7 +145,7 @@
@JsonClass(generateAdapter = true)
data class CustomGenericType(val value: T)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageNonMoshiClassExternal.md.html b/docs/checks/MoshiUsageNonMoshiClassExternal.md.html
index f9b3bee4..1a80a437 100644
--- a/docs/checks/MoshiUsageNonMoshiClassExternal.md.html
+++ b/docs/checks/MoshiUsageNonMoshiClassExternal.md.html
@@ -69,7 +69,7 @@
natively supported by Moshi. [MoshiUsageNonMoshiClassExternal]
val badNestedGeneric: CustomGenericType<List<ExternalType>>,
-------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -78,7 +78,7 @@
package external
class ExternalType
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/external/ExternalTypeAnnotated.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -88,7 +88,7 @@
@JsonClass(generateAdapter = true)
data class ExternalTypeAnnotated(val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/slack/model/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -155,7 +155,7 @@
@JsonClass(generateAdapter = true)
data class CustomGenericType(val value: T)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageNonMoshiClassInternal.md.html b/docs/checks/MoshiUsageNonMoshiClassInternal.md.html
index 57000e93..c8272c73 100644
--- a/docs/checks/MoshiUsageNonMoshiClassInternal.md.html
+++ b/docs/checks/MoshiUsageNonMoshiClassInternal.md.html
@@ -50,12 +50,12 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/slack/model/Example.kt:35:Information: Non-Moshi internal type
+src/slack/model/Example.kt:35:Hint: Non-Moshi internal type
'InternalType' is not natively supported by Moshi.
[MoshiUsageNonMoshiClassInternal]
val internalType: InternalType,
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -64,7 +64,7 @@
package external
class ExternalType
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/external/ExternalTypeAnnotated.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -74,7 +74,7 @@
@JsonClass(generateAdapter = true)
data class ExternalTypeAnnotated(val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/slack/model/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -141,7 +141,7 @@
@JsonClass(generateAdapter = true)
data class CustomGenericType(val value: T)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageNonMoshiClassMap.md.html b/docs/checks/MoshiUsageNonMoshiClassMap.md.html
index 674ffb5f..a15b9840 100644
--- a/docs/checks/MoshiUsageNonMoshiClassMap.md.html
+++ b/docs/checks/MoshiUsageNonMoshiClassMap.md.html
@@ -50,11 +50,11 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/slack/model/Example.kt:27:Information: Concrete Map type 'HashMap'
-is not natively supported by Moshi. [MoshiUsageNonMoshiClassMap]
+src/slack/model/Example.kt:27:Hint: Concrete Map type 'HashMap' is not
+natively supported by Moshi. [MoshiUsageNonMoshiClassMap]
val concreteMap: HashMap<String, String>,
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -63,7 +63,7 @@
package external
class ExternalType
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/external/ExternalTypeAnnotated.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -73,7 +73,7 @@
@JsonClass(generateAdapter = true)
data class ExternalTypeAnnotated(val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/slack/model/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -140,7 +140,7 @@
@JsonClass(generateAdapter = true)
data class CustomGenericType(val value: T)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageNonMoshiClassPlatform.md.html b/docs/checks/MoshiUsageNonMoshiClassPlatform.md.html
index 7cfca1dd..b6f395b2 100644
--- a/docs/checks/MoshiUsageNonMoshiClassPlatform.md.html
+++ b/docs/checks/MoshiUsageNonMoshiClassPlatform.md.html
@@ -56,7 +56,7 @@
natively supported by Moshi. [MoshiUsageNonMoshiClassPlatform]
val platformType: Date,
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -65,7 +65,7 @@
package external
class ExternalType
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/external/ExternalTypeAnnotated.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -75,7 +75,7 @@
@JsonClass(generateAdapter = true)
data class ExternalTypeAnnotated(val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/slack/model/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -142,7 +142,7 @@
@JsonClass(generateAdapter = true)
data class CustomGenericType(val value: T)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageObject.md.html b/docs/checks/MoshiUsageObject.md.html
index 263daa3d..f4d389fc 100644
--- a/docs/checks/MoshiUsageObject.md.html
+++ b/docs/checks/MoshiUsageObject.md.html
@@ -57,7 +57,7 @@
with @JsonClass. [MoshiUsageObject]
@JsonClass(generateAdapter = true)
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -69,7 +69,7 @@
@JsonClass(generateAdapter = true)
object Example
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageParamNeedsInit.md.html b/docs/checks/MoshiUsageParamNeedsInit.md.html
index 31f60e5f..9ecd48fa 100644
--- a/docs/checks/MoshiUsageParamNeedsInit.md.html
+++ b/docs/checks/MoshiUsageParamNeedsInit.md.html
@@ -53,7 +53,7 @@
in Moshi classes must have default values. [MoshiUsageParamNeedsInit]
class Example(val value: String, nonProp: String, @Transient val transientProp: String)
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
@JsonClass(generateAdapter = true)
class Example(val value: String, nonProp: String, @Transient val transientProp: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsagePrivateConstructor.md.html b/docs/checks/MoshiUsagePrivateConstructor.md.html
index ddc0458b..debb365b 100644
--- a/docs/checks/MoshiUsagePrivateConstructor.md.html
+++ b/docs/checks/MoshiUsagePrivateConstructor.md.html
@@ -59,7 +59,7 @@
be private. [MoshiUsagePrivateConstructor]
data class Example2 protected constructor(val value: String)
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,7 +74,7 @@
@JsonClass(generateAdapter = true)
data class Example2 protected constructor(val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsagePrivateConstructorProperty.md.html b/docs/checks/MoshiUsagePrivateConstructorProperty.md.html
index 63306831..01d57083 100644
--- a/docs/checks/MoshiUsagePrivateConstructorProperty.md.html
+++ b/docs/checks/MoshiUsagePrivateConstructorProperty.md.html
@@ -55,7 +55,7 @@
Moshi classes cannot be private. [MoshiUsagePrivateConstructorProperty]
data class Example(private val value: String, protected val value2: String)
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -67,7 +67,7 @@
@JsonClass(generateAdapter = true)
data class Example(private val value: String, protected val value2: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageQualifierRetention.md.html b/docs/checks/MoshiUsageQualifierRetention.md.html
index 14619c07..ccc91576 100644
--- a/docs/checks/MoshiUsageQualifierRetention.md.html
+++ b/docs/checks/MoshiUsageQualifierRetention.md.html
@@ -54,7 +54,7 @@
RUNTIME retention. [MoshiUsageQualifierRetention]
@Retention(AnnotationRetention.BINARY)
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -99,7 +99,7 @@
@Retention(AnnotationRetention.BINARY)
@JsonQualifier
annotation class WrongRetention
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageQualifierTarget.md.html b/docs/checks/MoshiUsageQualifierTarget.md.html
index 6ea5bb99..f256d1cb 100644
--- a/docs/checks/MoshiUsageQualifierTarget.md.html
+++ b/docs/checks/MoshiUsageQualifierTarget.md.html
@@ -53,7 +53,7 @@
include FIELD targeting. [MoshiUsageQualifierTarget]
@Target(PROPERTY)
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -98,7 +98,7 @@
@Retention(AnnotationRetention.BINARY)
@JsonQualifier
annotation class WrongRetention
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageRedundantJsonName.md.html b/docs/checks/MoshiUsageRedundantJsonName.md.html
index a1ca2695..365c6e71 100644
--- a/docs/checks/MoshiUsageRedundantJsonName.md.html
+++ b/docs/checks/MoshiUsageRedundantJsonName.md.html
@@ -56,8 +56,8 @@
the property/enum member name is redundant.
[MoshiUsageRedundantJsonName]
data class Example(@Json(name = "value") val value: String)
- -----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ -------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
@JsonClass(generateAdapter = true)
data class Example(@Json(name = "value") val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageRedundantSiteTarget.md.html b/docs/checks/MoshiUsageRedundantSiteTarget.md.html
index e6754c38..b685d1af 100644
--- a/docs/checks/MoshiUsageRedundantSiteTarget.md.html
+++ b/docs/checks/MoshiUsageRedundantSiteTarget.md.html
@@ -55,7 +55,7 @@
redundant. [MoshiUsageRedundantSiteTarget]
@field:Json(name = "foo") val value: String
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
data class Example(
@field:Json(name = "foo") val value: String
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageSealedMustBeSealed.md.html b/docs/checks/MoshiUsageSealedMustBeSealed.md.html
index 8b21cd72..f937e621 100644
--- a/docs/checks/MoshiUsageSealedMustBeSealed.md.html
+++ b/docs/checks/MoshiUsageSealedMustBeSealed.md.html
@@ -51,7 +51,7 @@
'sealed' types. [MoshiUsageSealedMustBeSealed]
abstract class BaseType
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
@JsonClass(generateAdapter = true, generator = "sealed:type")
abstract class BaseType
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageSerializedName.md.html b/docs/checks/MoshiUsageSerializedName.md.html
index 33b21834..085c186c 100644
--- a/docs/checks/MoshiUsageSerializedName.md.html
+++ b/docs/checks/MoshiUsageSerializedName.md.html
@@ -72,7 +72,7 @@
Gson's @SerializedName. [MoshiUsageSerializedName]
@Json(name = "mixed_alts") @SerializedName("mixed_alts", alternate = ["foo"]) val mixedAlternates: String,
--------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -94,7 +94,7 @@
@Json(name = "mixed_diff") @SerializedName("mixed_diff_2") val mixedDiff: String,
@Json(name = "mixed_alts") @SerializedName("mixed_alts", alternate = ["foo"]) val mixedAlternates: String,
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageSnakeCase.md.html b/docs/checks/MoshiUsageSnakeCase.md.html
index 0a9cfa3f..37dc93b7 100644
--- a/docs/checks/MoshiUsageSnakeCase.md.html
+++ b/docs/checks/MoshiUsageSnakeCase.md.html
@@ -56,7 +56,7 @@
rather than direct snake casing. [MoshiUsageSnakeCase]
val snake_case: String,
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -72,7 +72,7 @@
val snake_case: String,
@Json(name = "taken") val already_annotated_is_ignored: String
)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageTransientNeedsInit.md.html b/docs/checks/MoshiUsageTransientNeedsInit.md.html
index 0dd8cac6..3c5f29f8 100644
--- a/docs/checks/MoshiUsageTransientNeedsInit.md.html
+++ b/docs/checks/MoshiUsageTransientNeedsInit.md.html
@@ -53,7 +53,7 @@
must have default values. [MoshiUsageTransientNeedsInit]
class Example(val value: String, nonProp: String, @Transient val transientProp: String)
------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
@JsonClass(generateAdapter = true)
class Example(val value: String, nonProp: String, @Transient val transientProp: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageUnsupportedType.md.html b/docs/checks/MoshiUsageUnsupportedType.md.html
index 9adb548e..5c953ab3 100644
--- a/docs/checks/MoshiUsageUnsupportedType.md.html
+++ b/docs/checks/MoshiUsageUnsupportedType.md.html
@@ -68,7 +68,7 @@
@JsonClass. [MoshiUsageUnsupportedType]
@JsonClass(generateAdapter = true)
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -90,8 +90,11 @@
@JsonClass(generateAdapter = true)
interface UnsupportedInterface
+
+ @JsonClass(generateAdapter = false)
+ interface UnsupportedInterfaceButGenerateAdapterIsFalseIsOk
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageUseData.md.html b/docs/checks/MoshiUsageUseData.md.html
index c8531a69..0295b8ec 100644
--- a/docs/checks/MoshiUsageUseData.md.html
+++ b/docs/checks/MoshiUsageUseData.md.html
@@ -55,7 +55,7 @@
data classes. [MoshiUsageUseData]
class Example(val value: String, nonProp: String, @Transient val transientProp: String)
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
@JsonClass(generateAdapter = true)
class Example(val value: String, nonProp: String, @Transient val transientProp: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MoshiUsageVarProperty.md.html b/docs/checks/MoshiUsageVarProperty.md.html
index 0fbc2939..90411d31 100644
--- a/docs/checks/MoshiUsageVarProperty.md.html
+++ b/docs/checks/MoshiUsageVarProperty.md.html
@@ -56,7 +56,7 @@
immutable. [MoshiUsageVarProperty]
data class Example(var value: String)
---
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
@JsonClass(generateAdapter = true)
data class Example(var value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MoshiUsageDetectorTest.kt)
diff --git a/docs/checks/MotionLayoutInvalidSceneFileReference.md.html b/docs/checks/MotionLayoutInvalidSceneFileReference.md.html
index 46d9f168..b7fbb555 100644
--- a/docs/checks/MotionLayoutInvalidSceneFileReference.md.html
+++ b/docs/checks/MotionLayoutInvalidSceneFileReference.md.html
@@ -44,7 +44,7 @@
@xml/motion_scene doesn't exist [MotionLayoutInvalidSceneFileReference]
app:layoutDescription="@xml/motion_scene"
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -58,7 +58,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.constraintlayout.motion.widget.MotionLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MotionLayoutDetectorTest.kt)
diff --git a/docs/checks/MotionLayoutMissingId.md.html b/docs/checks/MotionLayoutMissingId.md.html
index 5af48547..9229a895 100644
--- a/docs/checks/MotionLayoutMissingId.md.html
+++ b/docs/checks/MotionLayoutMissingId.md.html
@@ -42,14 +42,14 @@
android:id attribute [MotionLayoutMissingId]
<View
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
`res/xml/motion_scene.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<MotionScene/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/motion_test.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -68,7 +68,7 @@
android:text="Button" />
</androidx.constraintlayout.motion.widget.MotionLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MotionLayoutIdDetectorTest.kt)
diff --git a/docs/checks/MotionSceneFileValidationError.md.html b/docs/checks/MotionSceneFileValidationError.md.html
index edd40473..3667ffdf 100644
--- a/docs/checks/MotionSceneFileValidationError.md.html
+++ b/docs/checks/MotionSceneFileValidationError.md.html
@@ -44,7 +44,7 @@
be defined [MotionSceneFileValidationError]
<CustomAttribute app:customPixelDimension="2sp"/>
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
</Constraint>
</ConstraintSet>
</MotionScene>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MotionSceneDetectorTest.kt)
diff --git a/docs/checks/MultipleAwaitPointerEventScopes.md.html b/docs/checks/MultipleAwaitPointerEventScopes.md.html
index 0fb1decd..b6e3132f 100644
--- a/docs/checks/MultipleAwaitPointerEventScopes.md.html
+++ b/docs/checks/MultipleAwaitPointerEventScopes.md.html
@@ -53,17 +53,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html).
diff --git a/docs/checks/MultipleUsesSdk.md.html b/docs/checks/MultipleUsesSdk.md.html
index b3472055..e1d406e2 100644
--- a/docs/checks/MultipleUsesSdk.md.html
+++ b/docs/checks/MultipleUsesSdk.md.html
@@ -49,7 +49,7 @@
element in the manifest: merge these together [MultipleUsesSdk]
<uses-sdk android:targetSdkVersion="14" />
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -79,7 +79,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -112,11 +112,10 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-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/ManifestDetectorTest.kt)
+You can also visit the source code ([ManifestDetectorTest.kt](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/ManifestDetectorTest.kt)
+[ConfigurationHierarchyTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/ConfigurationHierarchyTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/MustBeInModule.md.html b/docs/checks/MustBeInModule.md.html
index 1769eba3..9ae3aaa3 100644
--- a/docs/checks/MustBeInModule.md.html
+++ b/docs/checks/MustBeInModule.md.html
@@ -63,7 +63,7 @@
modules [MustBeInModule]
@Provides fun invalidBind(): Int = 3
------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -107,7 +107,7 @@
@Provides fun validBind(): Int = 3
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DaggerIssuesDetectorTest.kt)
diff --git a/docs/checks/MustUseNamedParams.md.html b/docs/checks/MustUseNamedParams.md.html
index 600e805a..759bc643 100644
--- a/docs/checks/MustUseNamedParams.md.html
+++ b/docs/checks/MustUseNamedParams.md.html
@@ -52,7 +52,7 @@
methods must name all parameters. [MustUseNamedParams]
methodWithAnnotation("Zac")
---------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -80,7 +80,7 @@
methodWithoutAnnotation(name = "Sean2")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/MustUseNamedParamsDetectorTest.kt)
diff --git a/docs/checks/MutableCollectionMutableState.md.html b/docs/checks/MutableCollectionMutableState.md.html
index be4fa6a4..fa88836a 100644
--- a/docs/checks/MutableCollectionMutableState.md.html
+++ b/docs/checks/MutableCollectionMutableState.md.html
@@ -91,7 +91,7 @@
mutable collection type [MutableCollectionMutableState]
val collectionProperty = mutableStateOf(collectionParam)
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -128,7 +128,7 @@
val mapParameter = mutableStateOf(mapParam)
val collectionProperty = mutableStateOf(collectionParam)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/MutableCollectionMutableStateDetectorTest.kt)
@@ -147,17 +147,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html).
diff --git a/docs/checks/MutableImplicitPendingIntent.md.html b/docs/checks/MutableImplicitPendingIntent.md.html
index fa902c5e..aef0eb19 100644
--- a/docs/checks/MutableImplicitPendingIntent.md.html
+++ b/docs/checks/MutableImplicitPendingIntent.md.html
@@ -100,7 +100,7 @@
within explicit [MutableImplicitPendingIntent]
PendingIntent.getActivities(null, 0, listOf(Intent(), mIntent), PendingIntent.FLAG_MUTABLE)
-------------------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -122,7 +122,7 @@
PendingIntent.getActivities(null, 0, { new Intent(), mIntent }, PendingIntent.FLAG_MUTABLE);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/PendingIntentKotlinTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -142,7 +142,7 @@
PendingIntent.getActivities(null, 0, listOf(Intent(), mIntent), PendingIntent.FLAG_MUTABLE)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PendingIntentMutableImplicitDetectorTest.kt)
diff --git a/docs/checks/MutatingSharedPrefs.md.html b/docs/checks/MutatingSharedPrefs.md.html
index 183537f3..4e6c9b84 100644
--- a/docs/checks/MutatingSharedPrefs.md.html
+++ b/docs/checks/MutatingSharedPrefs.md.html
@@ -48,7 +48,7 @@
SharedPreferences.getStringSet()` [MutatingSharedPrefs]
s.add("error")
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
val t = mutableSetOf()
t.add("ok")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SharedPrefsDetectorTest.kt)
diff --git a/docs/checks/NamespaceTypo.md.html b/docs/checks/NamespaceTypo.md.html
index d8c90dda..142d9c38 100644
--- a/docs/checks/NamespaceTypo.md.html
+++ b/docs/checks/NamespaceTypo.md.html
@@ -49,7 +49,7 @@
expected http://schemas.android.com/apk/res/android [NamespaceTypo]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/andriod"
------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -79,10 +79,10 @@
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/NamespaceDetectorTest.kt)
+You can also visit the source code ([NamespaceDetectorTest.kt](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/NamespaceDetectorTest.kt)
+[SuppressibleTestModeTest.kt](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/infrastructure/SuppressibleTestModeTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/NamingPattern.md.html b/docs/checks/NamingPattern.md.html
index fc0101f0..062ddb6f 100644
--- a/docs/checks/NamingPattern.md.html
+++ b/docs/checks/NamingPattern.md.html
@@ -48,7 +48,7 @@
case [NamingPattern]
String iOSVersion;
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
String iOSVersion;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/NamingPatternDetectorTest.kt)
diff --git a/docs/checks/NegativeMargin.md.html b/docs/checks/NegativeMargin.md.html
index 927f1423..8c23ab00 100644
--- a/docs/checks/NegativeMargin.md.html
+++ b/docs/checks/NegativeMargin.md.html
@@ -48,7 +48,7 @@
negative [NegativeMargin]
<TextView android:layout_marginTop="-1dp"/> <!-- WARNING -->
-------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
<TextView android:layout_marginTop="-1dp" tools:ignore="NegativeMargin"/> <!-- SUPPRESSED -->
</GridLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NegativeMarginDetectorTest.kt)
diff --git a/docs/checks/NestedScrolling.md.html b/docs/checks/NestedScrolling.md.html
index b1ae05de..ee0ad27d 100644
--- a/docs/checks/NestedScrolling.md.html
+++ b/docs/checks/NestedScrolling.md.html
@@ -43,7 +43,7 @@
[NestedScrolling]
<ListView
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
</LinearLayout>
</ScrollView>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NestedScrollingWidgetDetectorTest.kt)
diff --git a/docs/checks/NestedWeights.md.html b/docs/checks/NestedWeights.md.html
index 78b32772..36b4b7b5 100644
--- a/docs/checks/NestedWeights.md.html
+++ b/docs/checks/NestedWeights.md.html
@@ -44,7 +44,7 @@
performance [NestedWeights]
android:layout_weight="1"
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -90,7 +90,7 @@
</FrameLayout>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/InefficientWeightDetectorTest.java)
diff --git a/docs/checks/NetworkSecurityConfig.md.html b/docs/checks/NetworkSecurityConfig.md.html
index 3c2d6512..4cb95d78 100644
--- a/docs/checks/NetworkSecurityConfig.md.html
+++ b/docs/checks/NetworkSecurityConfig.md.html
@@ -56,7 +56,7 @@
[NetworkSecurityConfig]
<domain-config>
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,7 +76,7 @@
<domain-config>
</domain-config>
</network-security-config>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NetworkSecurityConfigDetectorTest.java)
diff --git a/docs/checks/NewApi.md.html b/docs/checks/NewApi.md.html
index ae38be06..8452f778 100644
--- a/docs/checks/NewApi.md.html
+++ b/docs/checks/NewApi.md.html
@@ -67,7 +67,7 @@
android.net.ConnectivityManager#getActiveNetwork [NewApi]
val network = cm.activeNetwork // Error: Requires API 23
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -78,7 +78,7 @@
android:minSdkVersion="21"
android:targetSdkVersion="30" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -92,10 +92,16 @@
val network2 = cm.activeNetwork // OK
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-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/ApiDetectorTest.java)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the source code ([ApiDetectorTest.java](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/ApiDetectorTest.java)
+[ApiDetectorDesugaringTest.kt](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/ApiDetectorDesugaringTest.kt)
+[FlaggedApiDetectorTest.kt](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/optional/FlaggedApiDetectorTest.kt)
+[ApiDetectorProvisionalTest.kt](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/ApiDetectorProvisionalTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
+[VersionChecksTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/detector/api/VersionChecksTest.kt)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.java)
+[ConfigurationHierarchyTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/ConfigurationHierarchyTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/NewerVersionAvailable.md.html b/docs/checks/NewerVersionAvailable.md.html
index b4c3c65e..5f47ccfd 100644
--- a/docs/checks/NewerVersionAvailable.md.html
+++ b/docs/checks/NewerVersionAvailable.md.html
@@ -55,7 +55,7 @@
[NewerVersionAvailable]
gradlePlugins-dependency-analysis = "1.0.0"
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -92,7 +92,7 @@
android-application3 = { id = "com.android.application", version.ref = "gradlePlugins-agp-dev" }
crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "gradlePlugins-crashlytics" }
dependency-analysis = { id = "com.autonomousapps.dependency-analysis", version.ref = "gradlePlugins-dependency-analysis" }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/NfcTechWhitespace.md.html b/docs/checks/NfcTechWhitespace.md.html
index 5702ed70..22239514 100644
--- a/docs/checks/NfcTechWhitespace.md.html
+++ b/docs/checks/NfcTechWhitespace.md.html
@@ -58,7 +58,7 @@
whitespace inside elements [NfcTechWhitespace]
android.nfc.tech.ndefformatable
-------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -86,10 +86,10 @@
</tech-list>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/NfcTechListDetectorTest.kt)
+You can also visit the source code ([NfcTechListDetectorTest.kt](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/NfcTechListDetectorTest.kt)
+[SuppressibleTestModeTest.kt](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/infrastructure/SuppressibleTestModeTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/NoCollectCallFound.md.html b/docs/checks/NoCollectCallFound.md.html
index 9a993b7c..e4342a12 100644
--- a/docs/checks/NoCollectCallFound.md.html
+++ b/docs/checks/NoCollectCallFound.md.html
@@ -77,7 +77,7 @@
progress [NoCollectCallFound]
PredictiveBackHandler { progress -> }
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -123,7 +123,7 @@
PredictiveBackHandler { progress -> }
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/activity/activity-compose-lint/src/test/java/androidx/activity/compose/lint/CollectProgressDetectorTest.kt)
@@ -142,17 +142,17 @@
```
// build.gradle.kts
-implementation("androidx.activity:activity-compose:1.11.0-rc01")
+implementation("androidx.activity:activity-compose:1.13.0-rc01")
// build.gradle
-implementation 'androidx.activity:activity-compose:1.11.0-rc01'
+implementation 'androidx.activity:activity-compose:1.13.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.activity.compose)
# libs.versions.toml
[versions]
-activity-compose = "1.11.0-rc01"
+activity-compose = "1.13.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.11.0-rc01 is the version this documentation was generated from;
+1.13.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/NoHardKeywords.md.html b/docs/checks/NoHardKeywords.md.html
index 0568c8f6..f596310b 100644
--- a/docs/checks/NoHardKeywords.md.html
+++ b/docs/checks/NoHardKeywords.md.html
@@ -59,7 +59,7 @@
[NoHardKeywords]
public Object object = null;
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -73,7 +73,7 @@
public void foo(int fun, int internalName) { }
public Object object = null;
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/Keywords.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -90,7 +90,7 @@
return super.object();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/InteroperabilityDetectorTest.kt)
diff --git a/docs/checks/NoOp.md.html b/docs/checks/NoOp.md.html
index 4fd3e77e..c91ee01a 100644
--- a/docs/checks/NoOp.md.html
+++ b/docs/checks/NoOp.md.html
@@ -55,7 +55,7 @@
<option name="pure-getters" value="false" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -70,7 +70,7 @@
src/Test.kt:5:Warning: This reference is unused: length [NoOp]
s.length // ERROR 3
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -83,7 +83,7 @@
s.length // ERROR 3
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NoOpDetectorTest.kt)
diff --git a/docs/checks/NonConstantResourceId.md.html b/docs/checks/NonConstantResourceId.md.html
index 0229b578..f404fc22 100644
--- a/docs/checks/NonConstantResourceId.md.html
+++ b/docs/checks/NonConstantResourceId.md.html
@@ -50,7 +50,7 @@
switch case statements [NonConstantResourceId]
case R.id.text: someValue = 3; break;
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -80,7 +80,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NonConstantResourceIdDetectorTest.kt)
diff --git a/docs/checks/NonObservableLocale.md.html b/docs/checks/NonObservableLocale.md.html
new file mode 100644
index 00000000..710fc673
--- /dev/null
+++ b/docs/checks/NonObservableLocale.md.html
@@ -0,0 +1,194 @@
+
+(#) Reading locale in a non-observable way in a composable function
+
+!!! ERROR: Reading locale in a non-observable way in a composable function
+ This is an error.
+
+Id
+: `NonObservableLocale`
+Summary
+: Reading locale in a non-observable way in a composable function
+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.11.0-alpha03
+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/NonObservableLocaleDetector.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/NonObservableLocaleDetectorTest.kt)
+Copyright Year
+: 2025
+
+Calling `java.util.Locale.getDefault()`,
+`android.os.LocaleList.getAdjustedDefault()` or
+`androidx.core.os.LocaleListCompat.getAdjustedDefault()` within a
+composable function is not recommended. Calling these functions does not
+read observable state and will not be updated if the user changes the
+locale. This can lead to subtle bugs in your UI where the wrong locale
+is used for formatting dates, times, numbers, and other locale-sensitive
+information. To fix this, you should use
+`androidx.compose.ui.platform.LocalLocale.current.platformLocale`
+instead. This will ensure that your UI is always up-to-date with the
+current locale.
+
+!!! 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/test/test.kt:9:Error: Reading locale in a non-observable way in a
+composable function [NonObservableLocale]
+ val locale = Locale.getDefault()
+ -------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/test/test.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package test
+
+import androidx.compose.runtime.Composable
+import java.util.Locale
+
+@Composable
+fun MyComposable() {
+ val locale = Locale.getDefault()
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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/NonObservableLocaleDetectorTest.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, `NonObservableLocaleDetector.testJavaLocale_inComposable_showsWarning`.
+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.11.0-alpha06")
+
+// build.gradle
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.ui.android)
+
+# libs.versions.toml
+[versions]
+ui-android = "1.11.0-alpha06"
+[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.11.0-alpha06 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.11.0-alpha06`.
+
+
+[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("NonObservableLocale")
+ fun method() {
+ problematicStatement()
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("NonObservableLocale")
+ void method() {
+ problematicStatement();
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection NonObservableLocale
+ 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="NonObservableLocale" 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 'NonObservableLocale'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore NonObservableLocale ...`
+ ```
+
+* 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/NonResizeableActivity.md.html b/docs/checks/NonResizeableActivity.md.html
index fe6c5980..6ca2e9da 100644
--- a/docs/checks/NonResizeableActivity.md.html
+++ b/docs/checks/NonResizeableActivity.md.html
@@ -52,7 +52,7 @@
screen devices. [NonResizeableActivity]
<activity android:name=".MainActivity" android:resizeableActivity="false"/>
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
<activity android:name=".MainActivity" android:resizeableActivity="false"/>
</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/ChromeOsDetectorTest.java)
diff --git a/docs/checks/NotConstructor.md.html b/docs/checks/NotConstructor.md.html
index fe1e4178..d6e53f15 100644
--- a/docs/checks/NotConstructor.md.html
+++ b/docs/checks/NotConstructor.md.html
@@ -40,7 +40,7 @@
constructor but is a normal method [NotConstructor]
public PnrUtils PnrUtils() {
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -53,7 +53,7 @@
return this;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongConstructorDetectorTest.kt)
diff --git a/docs/checks/NotInterpolated.md.html b/docs/checks/NotInterpolated.md.html
index 9e4ac7bc..6395fd08 100644
--- a/docs/checks/NotInterpolated.md.html
+++ b/docs/checks/NotInterpolated.md.html
@@ -46,7 +46,7 @@
interpolation you must use double quotes ("). [NotInterpolated]
compile 'com.android.support:design:${supportLibVersion}'
---------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
compile 'com.android.support:design:${supportLibVersion}'
compile "com.android.support:appcompat-v7:${supportLibVersion}"
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/NotSibling.md.html b/docs/checks/NotSibling.md.html
index ce1a41a2..b36ecdef 100644
--- a/docs/checks/NotSibling.md.html
+++ b/docs/checks/NotSibling.md.html
@@ -45,7 +45,7 @@
RelativeLayout [NotSibling]
android:layout_alignTop="@id/my_id1"
------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -96,7 +96,7 @@
android:text="Button" />
</RelativeLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/layout2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -112,7 +112,7 @@
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/ids.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -123,7 +123,7 @@
<item name="my_id1" type="id"/>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongIdDetectorTest.kt)
diff --git a/docs/checks/NotificationIconCompatibility.md.html b/docs/checks/NotificationIconCompatibility.md.html
index 796d6af6..f7832ba3 100644
--- a/docs/checks/NotificationIconCompatibility.md.html
+++ b/docs/checks/NotificationIconCompatibility.md.html
@@ -43,7 +43,7 @@
raster image to support Android versions below 5.0 (API 21)
[NotificationIconCompatibility]
0 errors, 1 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -88,12 +88,12 @@
.setLargeIcon(bitmap).build();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/drawable/icon1.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<vector/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/IconDetectorTest.java)
diff --git a/docs/checks/NotificationId0.md.html b/docs/checks/NotificationId0.md.html
index 642a1581..797a727b 100644
--- a/docs/checks/NotificationId0.md.html
+++ b/docs/checks/NotificationId0.md.html
@@ -44,7 +44,7 @@
[NotificationId0]
service.startForeground(MY_ID, notification, 1) // ERROR 2: cannot be zero
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
service.startForeground(MY_ID, notification, 1) // ERROR 2: cannot be zero
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/InvalidNotificationIdDetectorTest.kt)
diff --git a/docs/checks/NotificationPermission.md.html b/docs/checks/NotificationPermission.md.html
index d5217bc4..e225d5d9 100644
--- a/docs/checks/NotificationPermission.md.html
+++ b/docs/checks/NotificationPermission.md.html
@@ -44,7 +44,7 @@
POST_NOTIFICATIONS permission [NotificationPermission]
notificationManager.notify(id, notification);
--------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -54,7 +54,7 @@
<uses-sdk android:minSdkVersion="17" android:targetSdkVersion="33" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/NotificationTestAndroidx.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -81,7 +81,7 @@
notificationManager.notify(id, notification);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NotificationPermissionDetectorTest.kt)
diff --git a/docs/checks/NotificationTrampoline.md.html b/docs/checks/NotificationTrampoline.md.html
index bef3c2ee..e65d38b8 100644
--- a/docs/checks/NotificationTrampoline.md.html
+++ b/docs/checks/NotificationTrampoline.md.html
@@ -52,7 +52,7 @@
directly from the notification [NotificationTrampoline]
.addAction(android.R.drawable.ic_dialog_email, "Launch Receiver From Action",
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -74,7 +74,7 @@
context.startActivity(i);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/NotificationTest.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -123,7 +123,7 @@
notificationManager.notify(id, notification);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NotificationTrampolineDetectorTest.kt)
diff --git a/docs/checks/NotifyDataSetChanged.md.html b/docs/checks/NotifyDataSetChanged.md.html
index ee61cbc8..5a75d38c 100644
--- a/docs/checks/NotifyDataSetChanged.md.html
+++ b/docs/checks/NotifyDataSetChanged.md.html
@@ -44,7 +44,7 @@
notifyDataSetChanged as a last resort. [NotifyDataSetChanged]
notifyDataSetChanged();
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -80,7 +80,7 @@
public void onBindViewHolder(ViewHolder holder, int position) { }
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RecyclerViewDetectorTest.kt)
diff --git a/docs/checks/NullSafeMutableLiveData-2.md.html b/docs/checks/NullSafeMutableLiveData-2.md.html
index f4d95a27..5b652f8a 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-rc01](NullSafeMutableLiveData.md.html)
+* [NullSafeMutableLiveData from androidx.lifecycle:lifecycle-livedata-core:2.11.0-alpha01](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 129653a8..795a8f65 100644
--- a/docs/checks/NullSafeMutableLiveData.md.html
+++ b/docs/checks/NullSafeMutableLiveData.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-rc01](NullSafeMutableLiveData.md.html)
+* [NullSafeMutableLiveData from androidx.lifecycle:lifecycle-livedata-core:2.11.0-alpha01](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-rc01")
+implementation("androidx.lifecycle:lifecycle-livedata-core:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-livedata-core:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.livedata.core)
# libs.versions.toml
[versions]
-lifecycle-livedata-core = "2.9.0-rc01"
+lifecycle-livedata-core = "2.11.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
@@ -95,7 +95,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 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
index 75aef5f9..d3a93e8a 100644
--- a/docs/checks/NullableConcurrentHashMap.md.html
+++ b/docs/checks/NullableConcurrentHashMap.md.html
@@ -56,7 +56,7 @@
[NullableConcurrentHashMap]
val map2: java.util.concurrent.ConcurrentHashMap<String?, Int> = java.util.concurrent.ConcurrentHashMap()
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
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)
diff --git a/docs/checks/ObjectAnimatorBinding.md.html b/docs/checks/ObjectAnimatorBinding.md.html
index bd67a23c..15c1cb23 100644
--- a/docs/checks/ObjectAnimatorBinding.md.html
+++ b/docs/checks/ObjectAnimatorBinding.md.html
@@ -43,7 +43,7 @@
arg) [ObjectAnimatorBinding]
ObjectAnimator animator2 = ObjectAnimator.ofInt(myObject, "prop2", 0, 1, 2, 5);
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ObjectAnimatorDetectorTest.kt)
diff --git a/docs/checks/ObsoleteLayoutParam.md.html b/docs/checks/ObsoleteLayoutParam.md.html
index 7e3e37ce..187a6002 100644
--- a/docs/checks/ObsoleteLayoutParam.md.html
+++ b/docs/checks/ObsoleteLayoutParam.md.html
@@ -72,7 +72,7 @@
LinearLayout: layout_below [ObsoleteLayoutParam]
android:layout_below="@+id/button1"
-----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -165,8 +165,7 @@
</GridLayout>
</FrameLayout>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ObsoleteLayoutParamsDetectorTest.java)
diff --git a/docs/checks/ObsoleteSdkInt.md.html b/docs/checks/ObsoleteSdkInt.md.html
index 48e8e9a2..cec750ff 100644
--- a/docs/checks/ObsoleteSdkInt.md.html
+++ b/docs/checks/ObsoleteSdkInt.md.html
@@ -53,7 +53,7 @@
[ObsoleteSdkInt]
if (Build.VERSION.SDK_INT < 21) { // UNNECESSARY, never true
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -63,7 +63,7 @@
package="test.pkg">
<uses-sdk android:minSdkVersion="23"/>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/ObsoleteSdkInt.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -78,10 +78,12 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/ApiDetectorTest.java)
+You can also visit the source code ([ApiDetectorTest.java](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/ApiDetectorTest.java)
+[AnnotationDetectorTest.kt](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/AnnotationDetectorTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
+[VersionChecksTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/detector/api/VersionChecksTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/OldTargetApi.md.html b/docs/checks/OldTargetApi.md.html
index 6b0615f9..f3bef2a0 100644
--- a/docs/checks/OldTargetApi.md.html
+++ b/docs/checks/OldTargetApi.md.html
@@ -34,16 +34,16 @@
: [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)
When your application or sdk runs on a version of Android that is more
-recent than your `targetSdkVersion` specifies that it has been tested
-with, various compatibility modes kick in. This ensures that your
-application continues to work, but it may look out of place. For
-example, if the `targetSdkVersion` is less than 14, your app may get an
-option button in the UI.
-
-To fix this issue, set the `targetSdkVersion` to the highest available
-value. Then test your app to make sure everything works correctly. You
-may want to consult the compatibility notes to see what changes apply to
-each version you are adding support for:
+recent than your `targetSdk` specifies that it has been tested with,
+various compatibility modes kick in. This ensures that your application
+continues to work, but it may look out of place. For example, if the
+`targetSdk` is less than 14, your app may get an option button in the
+UI.
+
+To fix this issue, set the `targetSdk` to the highest available value.
+Then test your app to make sure everything works correctly. You may want
+to consult the compatibility notes to see what changes apply to each
+version you are adding support for:
https://developer.android.com/reference/android/os/Build.VERSION_CODES.html
as well as follow this guide:
https://developer.android.com/distribute/best-practices/develop/target-sdk.html.
@@ -61,7 +61,7 @@
[OldTargetApi]
targetSdk = libs.versions.keys.tsv.get().toInt() // ERROR 15
------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -75,7 +75,7 @@
targetSdk = libs.versions.keys.tsv.get().toInt() // ERROR 15
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`../gradle/libs.versions.toml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~toml linenumbers
@@ -103,7 +103,7 @@
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)
diff --git a/docs/checks/OnClick.md.html b/docs/checks/OnClick.md.html
index 0ca1b62f..ecf5d58c 100644
--- a/docs/checks/OnClick.md.html
+++ b/docs/checks/OnClick.md.html
@@ -80,7 +80,7 @@
a Java keyword [OnClick]
android:onClick="new"
---
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -189,7 +189,7 @@
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/OnClickActivity.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -241,7 +241,7 @@
Log.i("x", "wrong7: called");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/OnClickDetectorTest.java)
diff --git a/docs/checks/OpaqueUnitKey.md.html b/docs/checks/OpaqueUnitKey.md.html
index 80d04f78..d610d1be 100644
--- a/docs/checks/OpaqueUnitKey.md.html
+++ b/docs/checks/OpaqueUnitKey.md.html
@@ -64,7 +64,7 @@
[OpaqueUnitKey]
val x = remember(unitProperty) { listOf(1, 2, 3) }
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -80,7 +80,7 @@
fun Test() {
val x = remember(unitProperty) { listOf(1, 2, 3) }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/OpaqueUnitKeyDetectorTest.kt)
@@ -99,17 +99,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html).
diff --git a/docs/checks/OpenForTesting.md.html b/docs/checks/OpenForTesting.md.html
index c75c48fa..8cb3f9c8 100644
--- a/docs/checks/OpenForTesting.md.html
+++ b/docs/checks/OpenForTesting.md.html
@@ -48,7 +48,7 @@
from tests [OpenForTesting]
class MyBuilder3 extends Builder1 { // ERROR 3
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -78,7 +78,7 @@
override fun someMethod(arg: Int) { } // ERROR 2
override fun someOtherMethod(arg: Int) { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyBuilder3.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -86,7 +86,7 @@
class MyBuilder3 extends Builder1 { // ERROR 3
@Override void someMethod(int arg) { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`test/test/pkg/MyBuilder4.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -94,7 +94,7 @@
class MyBuilder4 extends Builder1 { // OK: In unit test
@Override void someMethod(int arg) { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`test/test/pkg/MyBuilder5.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -102,7 +102,7 @@
class MyBuilder5 extends Builder2 { // OK: In unit test
@Override void someMethod(int arg) { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/OpenForTestingDetectorTest.kt)
diff --git a/docs/checks/Orientation.md.html b/docs/checks/Orientation.md.html
index b96749ce..5ceb46a4 100644
--- a/docs/checks/Orientation.md.html
+++ b/docs/checks/Orientation.md.html
@@ -56,7 +56,7 @@
[Orientation]
<LinearLayout
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -122,7 +122,7 @@
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/InefficientWeightDetectorTest.java)
diff --git a/docs/checks/OutdatedLibrary.md.html b/docs/checks/OutdatedLibrary.md.html
index ae70c374..59ec7dd9 100644
--- a/docs/checks/OutdatedLibrary.md.html
+++ b/docs/checks/OutdatedLibrary.md.html
@@ -77,7 +77,7 @@
- 1.1.0 or higher [OutdatedLibrary]
compile 'com.example.issues:latest-is-preview:1.0.0' // Outdated non-blocking
--------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -119,7 +119,7 @@
compile 'com.another.example:example' // Ok (not in Index)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/Overdraw.md.html b/docs/checks/Overdraw.md.html
index 1796d645..36fb41f7 100644
--- a/docs/checks/Overdraw.md.html
+++ b/docs/checks/Overdraw.md.html
@@ -61,7 +61,7 @@
(inferred theme is @style/MyTheme) [Overdraw]
android:background="@drawable/custombg"
---------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -105,7 +105,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/drawable/custombg.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -114,7 +114,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_launcher"
android:tileMode="clamp" />
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/drawable/custombg2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -122,8 +122,7 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_launcher" />
</selector>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/sixth.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -140,7 +139,7 @@
android:text="@string/hello" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/fifth.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -157,7 +156,7 @@
android:text="@string/hello" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/fourth.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -174,7 +173,7 @@
android:text="@string/hello" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/main.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -191,7 +190,7 @@
android:text="@string/hello" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/second.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -208,7 +207,7 @@
android:text="@string/hello" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/third.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -225,7 +224,7 @@
android:text="@string/hello" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -236,7 +235,7 @@
<string name="app_name">Overdraw</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/styles.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -265,7 +264,7 @@
</style>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/FourthActivity.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -282,7 +281,7 @@
setContentView(R.layout.fourth);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/OverdrawActivity.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -299,7 +298,7 @@
setContentView(R.layout.main);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/SecondActivity.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -316,7 +315,7 @@
setContentView(R.layout.second);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/ThirdActivity.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -334,7 +333,7 @@
setContentView(R.layout.third);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/OverdrawDetectorTest.java)
diff --git a/docs/checks/OverrideAbstract.md.html b/docs/checks/OverrideAbstract.md.html
index 1426cdcc..42e722c8 100644
--- a/docs/checks/OverrideAbstract.md.html
+++ b/docs/checks/OverrideAbstract.md.html
@@ -67,7 +67,7 @@
[OverrideAbstract]
private static class MyNotificationListenerService7 extends MyNotificationListenerService3 {
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -142,7 +142,7 @@
private static class MyNotificationListenerService9 extends MyNotificationListenerService1 {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/OverrideConcreteDetectorTest.java)
diff --git a/docs/checks/PackageVisibilityPolicy.md.html b/docs/checks/PackageVisibilityPolicy.md.html
new file mode 100644
index 00000000..b219d3d9
--- /dev/null
+++ b/docs/checks/PackageVisibilityPolicy.md.html
@@ -0,0 +1,187 @@
+
+(#) Package/App Visibility Insights
+
+!!! WARNING: Package/App Visibility Insights
+ This is a warning.
+
+Id
+: `PackageVisibilityPolicy`
+Summary
+: Package/App Visibility Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+Accessing a user's installed app inventory is sensitive data. Google
+Play policy strictly limits broad visibility (`QUERY_ALL_PACKAGES`),
+allowing it only for core app functionality that requires extensive
+knowledge of installed apps for interoperability. You must prioritize
+using finite, targeted queries to access specific apps when possible,
+which can be more privacy-friendly. Under no circumstances can data from
+the installed app inventory be sold or shared for advertising or
+analytics monetization.
+
+**Dos:**
+
+- Submit a declaration form in your Play Console for
+ `QUERY_ALL_PACKAGES` and any other high-risk permissions.
+- For your app review, clearly document why your app needs app
+ visibility whether broad or more targeted.
+- Access only the minimum data needed.
+- Follow the specific allowable use cases for `QUERY_ALL_PACKAGES.`
+
+**Don'ts:**
+
+- Request `QUERY_ALL_PACKAGES` if your need can be met with finite,
+ targeted queries.
+- Gain broad app visibility via methods not explicitly allowed by
+ policy.
+- Provide false information about your app's core functionality or data
+ needs.
+- Collect or use unnecessary data from installed app data.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-package-visibility
+See Help Center article:
+https://goo.gle/play-help-broad-package-visibility
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:3:Warning: Protect user privacy by limiting all app
+visibility, especially QUERY_ALL_PACKAGES to essential core functions.
+[PackageVisibilityPolicy]
+ <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
+ ----------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/PackageVisibilityPolicyDetectorTest.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, `PackageVisibilityPolicyDetector.testFlagsQueryAllPackages`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="PackageVisibilityPolicy"` 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">
+ ...
+ <uses-permission tools:ignore="PackageVisibilityPolicy" .../>
+ ...
+ </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="PackageVisibilityPolicy" 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 'PackageVisibilityPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore PackageVisibilityPolicy ...`
+ ```
+
+* 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/PackagedPrivateKey.md.html b/docs/checks/PackagedPrivateKey.md.html
index 5acd499b..44edd230 100644
--- a/docs/checks/PackagedPrivateKey.md.html
+++ b/docs/checks/PackagedPrivateKey.md.html
@@ -43,7 +43,7 @@
private key file. Please make sure not to embed this in your APK file.
[PackagedPrivateKey]
1 errors, 0 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -67,7 +67,7 @@
9MDXXVaY6rqx1yfZYDcWVgKGXTJhBXALCeGMWF43bvAmPq3M13QJA0rlO7lAUUF2
5INqBUeJxZWYxn6tRr9WMty/UcYnPR3YHgt0RDZycvbcqPsU5tHk9Q==
-----END RSA PRIVATE KEY-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PrivateKeyDetectorTest.kt)
diff --git a/docs/checks/ParcelClassLoader.md.html b/docs/checks/ParcelClassLoader.md.html
index b34b3f15..b0b68a47 100644
--- a/docs/checks/ParcelClassLoader.md.html
+++ b/docs/checks/ParcelClassLoader.md.html
@@ -102,7 +102,7 @@
instead. [ParcelClassLoader]
Parcelable error9 = in.readPersistableBundle();
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -130,7 +130,7 @@
Parcelable ok = in.readParcelable(getClass().getClassLoader());
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ReadParcelableDetectorTest.java)
diff --git a/docs/checks/ParcelCreator.md.html b/docs/checks/ParcelCreator.md.html
index ad38f480..1be10308 100644
--- a/docs/checks/ParcelCreator.md.html
+++ b/docs/checks/ParcelCreator.md.html
@@ -49,7 +49,7 @@
Parcelable but does not provide a CREATOR field [ParcelCreator]
public class MyParcelable1 implements Parcelable {
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -70,7 +70,7 @@
public void writeToParcel(Parcel arg0, int arg1) {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/bytecode/MyParcelable2.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -99,7 +99,7 @@
public void writeToParcel(Parcel arg0, int arg1) {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/bytecode/MyParcelable3.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -120,7 +120,7 @@
public void writeToParcel(Parcel arg0, int arg1) {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/bytecode/MyParcelable4.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -139,7 +139,7 @@
public void writeToParcel(Parcel arg0, int arg1) {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/bytecode/MyParcelable5.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -151,10 +151,10 @@
@Override
public int describeContents();
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/ParcelDetectorTest.java)
+You can also visit the source code ([ParcelDetectorTest.java](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/ParcelDetectorTest.java)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/ParcelizeFunctionProperty.md.html b/docs/checks/ParcelizeFunctionProperty.md.html
index 8346be68..36beb8b8 100644
--- a/docs/checks/ParcelizeFunctionProperty.md.html
+++ b/docs/checks/ParcelizeFunctionProperty.md.html
@@ -92,7 +92,7 @@
[ParcelizeFunctionProperty]
val aliasedFunction: FunctionType,
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -119,7 +119,7 @@
@IgnoredOnParcel
val ignoredFunction: () -> Unit = {}, // This is allowed
) : Parcelable
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/parcel/ParcelizeFunctionPropertyDetectorTest.kt)
diff --git a/docs/checks/PendingBindings.md.html b/docs/checks/PendingBindings.md.html
index 8b6eb890..32f9dc6d 100644
--- a/docs/checks/PendingBindings.md.html
+++ b/docs/checks/PendingBindings.md.html
@@ -74,7 +74,7 @@
resizes. [PendingBindings]
holder.dataBinder.someMethod(); // ERROR: no fallthrough
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -249,7 +249,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RecyclerViewDetectorTest.kt)
diff --git a/docs/checks/PermissionImpliesUnsupportedChromeOsHardware.md.html b/docs/checks/PermissionImpliesUnsupportedChromeOsHardware.md.html
index 825c7658..e9a9beba 100644
--- a/docs/checks/PermissionImpliesUnsupportedChromeOsHardware.md.html
+++ b/docs/checks/PermissionImpliesUnsupportedChromeOsHardware.md.html
@@ -36,7 +36,7 @@
assumes that certain hardware related permissions indicate that the
underlying hardware features are required by default. To fix the issue,
consider declaring the corresponding element with
-`required="false"` attribute.
+`android:required="false"` attribute.
!!! Tip
This lint check has an associated quickfix available in the IDE.
@@ -47,10 +47,11 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
AndroidManifest.xml:4:Error: Permission exists without corresponding
hardware tag [PermissionImpliesUnsupportedChromeOsHardware]
+android:required="false" /> tag
+[PermissionImpliesUnsupportedChromeOsHardware]
<uses-permission android:name="android.permission.CALL_PHONE"/>
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +62,7 @@
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.CALL_PHONE"/>
</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/ChromeOsDetectorTest.java)
diff --git a/docs/checks/PermissionImpliesUnsupportedHardware.md.html b/docs/checks/PermissionImpliesUnsupportedHardware.md.html
index 4b0fdef1..fd8cb8e1 100644
--- a/docs/checks/PermissionImpliesUnsupportedHardware.md.html
+++ b/docs/checks/PermissionImpliesUnsupportedHardware.md.html
@@ -50,7 +50,7 @@
required="false"> tag [PermissionImpliesUnsupportedHardware]
<uses-permission android:name="android.permission.CALL_PHONE"/>
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,7 +62,7 @@
<uses-feature android:name="android.software.leanback"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
</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/AndroidTvDetectorTest.java)
diff --git a/docs/checks/PermissionNamingConvention.md.html b/docs/checks/PermissionNamingConvention.md.html
index 40568535..fe8c2504 100644
--- a/docs/checks/PermissionNamingConvention.md.html
+++ b/docs/checks/PermissionNamingConvention.md.html
@@ -69,7 +69,7 @@
naming convention [PermissionNamingConvention]
<permission android:name="FOO_BAR" />
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -87,7 +87,7 @@
<permission android:name="android.permission.FOO_BAR" />
<permission android:name="FOO_BAR" />
</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/PermissionErrorDetectorTest.kt)
diff --git a/docs/checks/PhotoAndVideoPolicy.md.html b/docs/checks/PhotoAndVideoPolicy.md.html
new file mode 100644
index 00000000..1569cc44
--- /dev/null
+++ b/docs/checks/PhotoAndVideoPolicy.md.html
@@ -0,0 +1,191 @@
+
+(#) Photos & Video Insights
+
+!!! WARNING: Photos & Video Insights
+ This is a warning.
+
+Id
+: `PhotoAndVideoPolicy`
+Summary
+: Photos & Video Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+To protect user privacy and security, Google Play requires apps that
+request `READ_MEDIA_IMAGES` or `READ_MEDIA_VIDEO` permissions to show
+strong, legitimate core use cases for persistent or frequent access to
+photos and videos. If your app does *not* qualify for this access, you
+should remove the permissions. Instead, use a system picker like the
+more privacy-preserving Android Photo Picker for one-time or infrequent
+needs.
+
+**Dos:**
+
+- Submit a declaration form in your Play Console.
+- Use a system picker such as the photo picker if you don’t need broad
+ access
+- Provide evidence to justify your use case during app review.
+- Clearly explain to users why your app needs these permissions.
+
+**Don'ts:**
+
+- Collect more photo or video data than necessary.
+- Attempt to bypass or manipulate user consent.
+- Block or gate functionality if a user declines a non-critical
+ permission. Instead, use a system picker to gracefully handle the
+ file request.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-photo-video
+See Help Center article: https://goo.gle/play-help-photo-video
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:3:Warning: To get broad access to photos and videos,
+apps must have core use case that requires persistent or frequent
+photo/video access of files located in shared storage
+[PhotoAndVideoPolicy]
+ <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
+ ---------------------------------------------------
+AndroidManifest.xml:4:Warning: To get broad access to photos and videos,
+apps must have core use case that requires persistent or frequent
+photo/video access of files located in shared storage
+[PhotoAndVideoPolicy]
+ <uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
+ --------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
+ <uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
+ <uses-sdk android:targetSdkVersion="33"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/PhotoAndVideoPolicyDetectorTest.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, `PhotoAndVideoPolicyDetector.testFlagsPermissions`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="PhotoAndVideoPolicy"` 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">
+ ...
+ <uses-permission tools:ignore="PhotoAndVideoPolicy" .../>
+ ...
+ </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="PhotoAndVideoPolicy" 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 'PhotoAndVideoPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore PhotoAndVideoPolicy ...`
+ ```
+
+* 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/PictureInPictureIssue.md.html b/docs/checks/PictureInPictureIssue.md.html
index 326c0bf1..8427165b 100644
--- a/docs/checks/PictureInPictureIssue.md.html
+++ b/docs/checks/PictureInPictureIssue.md.html
@@ -47,7 +47,7 @@
and setSourceRectHint(...) [PictureInPictureIssue]
<application
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -81,7 +81,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/TestActivity.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -94,7 +94,7 @@
enterPictureInPictureMode()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PictureInPictureDetectorTest.kt)
diff --git a/docs/checks/PinSetExpiry.md.html b/docs/checks/PinSetExpiry.md.html
index 79ba6c06..0950c06a 100644
--- a/docs/checks/PinSetExpiry.md.html
+++ b/docs/checks/PinSetExpiry.md.html
@@ -42,7 +42,7 @@
[PinSetExpiry]
<pin-set expiration="%1$s">
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
</pin-set>
</domain-config>
</network-security-config>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NetworkSecurityConfigDetectorTest.java)
diff --git a/docs/checks/PlaySdkIndexDeprecated.md.html b/docs/checks/PlaySdkIndexDeprecated.md.html
index c5dee555..785e4e4c 100644
--- a/docs/checks/PlaySdkIndexDeprecated.md.html
+++ b/docs/checks/PlaySdkIndexDeprecated.md.html
@@ -47,7 +47,7 @@
[PlaySdkIndexDeprecated]
compile 'com.example.issues:deprecated:2.0.0' // Deprecated
-------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -89,7 +89,7 @@
compile 'com.another.example:example' // Ok (not in Index)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/PlaySdkIndexNonCompliant.md.html b/docs/checks/PlaySdkIndexNonCompliant.md.html
index 88c16d4a..017665ea 100644
--- a/docs/checks/PlaySdkIndexNonCompliant.md.html
+++ b/docs/checks/PlaySdkIndexNonCompliant.md.html
@@ -87,22 +87,24 @@
compile 'com.example.ads.third.party:example:7.1.6' // Policy (Malware), non-blocking
-------------------------------------------
build.gradle:21:Warning: com.example.ads.third.party:example version
-7.1.7 has User Data policy issues that will block publishing of your app
-to Play Console in the future [PlaySdkIndexNonCompliant]
+7.1.7 has Malware policy, Permissions policy, User Data policy issues
+that will block publishing of your app to Play Console in the future
+[PlaySdkIndexNonCompliant]
compile 'com.example.ads.third.party:example:7.1.7' // Policy (multiple types), non-blocking
-------------------------------------------
build.gradle:22:Error: [Prevents app release in Google Play Console]
-com.example.ads.third.party:example version 7.1.8 has User Data policy
-issues that will block publishing of your app to Play Console
-[PlaySdkIndexNonCompliant]
+com.example.ads.third.party:example version 7.1.8 has Malware policy,
+User Data policy issues that will block publishing of your app to Play
+Console [PlaySdkIndexNonCompliant]
compile 'com.example.ads.third.party:example:7.1.8' // Policy (multiple types), blocking
-------------------------------------------
build.gradle:23:Warning: com.example.ads.third.party:example version
-7.1.9 has Permissions policy issues that will block publishing of your
-app to Play Console in the future [PlaySdkIndexNonCompliant]
+7.1.9 has Malware policy, Permissions policy issues that will block
+publishing of your app to Play Console in the future
+[PlaySdkIndexNonCompliant]
compile 'com.example.ads.third.party:example:7.1.9' // Policy (multiple types), no severity
-------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -144,7 +146,7 @@
compile 'com.another.example:example' // Ok (not in Index)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/PlaySdkIndexVulnerability.md.html b/docs/checks/PlaySdkIndexVulnerability.md.html
index 0fcd5750..2a2562cd 100644
--- a/docs/checks/PlaySdkIndexVulnerability.md.html
+++ b/docs/checks/PlaySdkIndexVulnerability.md.html
@@ -58,7 +58,7 @@
[PlaySdkIndexVulnerability]
compile 'com.example.ads.third.party:example:7.1.12' // Vulnerability multiple (non-blocking)
--------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -100,7 +100,7 @@
compile 'com.another.example:example' // Ok (not in Index)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/PluralsCandidate.md.html b/docs/checks/PluralsCandidate.md.html
index b8855a0e..bd63088f 100644
--- a/docs/checks/PluralsCandidate.md.html
+++ b/docs/checks/PluralsCandidate.md.html
@@ -62,7 +62,7 @@
[PluralsCandidate]
<string name="lockscreen_too_many_failed_attempts_dialog_message1">
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,7 +76,7 @@
\n\nTry again in >%d seconds.
</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/StringFormatDetectorTest.java)
diff --git a/docs/checks/PrivateApi.md.html b/docs/checks/PrivateApi.md.html
index 95c75dcd..a91325c4 100644
--- a/docs/checks/PrivateApi.md.html
+++ b/docs/checks/PrivateApi.md.html
@@ -55,7 +55,7 @@
devices or in the future [PrivateApi]
Class SystemProperties = cl.loadClass("android.os.SystemProperties");
-------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,7 +74,7 @@
Class SystemProperties = cl.loadClass("android.os.SystemProperties");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PrivateApiDetectorTest.kt)
diff --git a/docs/checks/PrivateResource.md.html b/docs/checks/PrivateResource.md.html
index 82e98ab2..2be618f2 100644
--- a/docs/checks/PrivateResource.md.html
+++ b/docs/checks/PrivateResource.md.html
@@ -25,7 +25,7 @@
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/PrivateResourceDetector.java)
+: [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/PrivateResourceDetector.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/PrivateResourceDetectorTest.kt)
Copyright Year
@@ -45,7 +45,7 @@
com.android.tools:test-library:1.0.0 [PrivateResource]
android:text="@string/my_private_string" />
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -67,10 +67,10 @@
android:layout_height="wrap_content"
android:text="@string/my_public_string" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/PrivateResourceDetectorTest.kt)
+You can also visit the source code ([PrivateResourceDetectorTest.kt](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/PrivateResourceDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/ProduceStateDoesNotAssignValue.md.html b/docs/checks/ProduceStateDoesNotAssignValue.md.html
index a4f1ddf1..402753a2 100644
--- a/docs/checks/ProduceStateDoesNotAssignValue.md.html
+++ b/docs/checks/ProduceStateDoesNotAssignValue.md.html
@@ -69,7 +69,7 @@
[ProduceStateDoesNotAssignValue]
produceState(true, true) {
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -103,7 +103,7 @@
fun State.doSomethingWithState() {}
fun doSomethingElseWithState(state: State) {}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ProduceStateDetectorTest.kt)
@@ -122,17 +122,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html).
diff --git a/docs/checks/Proguard.md.html b/docs/checks/Proguard.md.html
index 700ca2b9..83790dcb 100644
--- a/docs/checks/Proguard.md.html
+++ b/docs/checks/Proguard.md.html
@@ -53,7 +53,7 @@
[Proguard]
-keepclasseswithmembernames class * {
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -95,10 +95,10 @@
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/ProguardDetectorTest.kt)
+You can also visit the source code ([ProguardDetectorTest.kt](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/ProguardDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/ProguardAndroidTxtUsage.md.html b/docs/checks/ProguardAndroidTxtUsage.md.html
new file mode 100644
index 00000000..3ef347da
--- /dev/null
+++ b/docs/checks/ProguardAndroidTxtUsage.md.html
@@ -0,0 +1,118 @@
+
+(#) Use proguard-android-optimize.txt to enable optimizations
+
+!!! WARNING: Use proguard-android-optimize.txt to enable optimizations
+ This is a warning.
+
+Id
+: `ProguardAndroidTxtUsage`
+Summary
+: Use proguard-android-optimize.txt to enable optimizations
+Severity
+: Warning
+Category
+: Performance
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 9.0.0 (January 2026)
+Affects
+: Gradle build files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://developer.android.com/topic/performance/app-optimization/enable-app-optimization
+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/ProguardAndroidTxtDetector.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/ProguardAndroidTxtDetectorTest.kt)
+
+Support for `getDefaultProguardFile('proguard-android.txt')` will be
+removed in AGP 9.0 since it includes `-dontoptimize`, which prevents R8
+from performing many optimizations. Instead use
+`getDefaultProguardFile('proguard-android-optimize.txt)`, and if needed,
+temporarily use `-dontoptimize` in a custom keep rule file while fixing
+breakages.
+
+!!! 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:6:Warning: Avoid
+getDefaultProguardFile('proguard-android.txt')
+[ProguardAndroidTxtUsage]
+ proguardFiles(getDefaultProguardFile('proguard-android.txt'), 'custom.pro')
+ ----------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`build.gradle`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
+apply plugin: 'com.android.application'
+
+android {
+ buildTypes {
+ release {
+ proguardFiles(getDefaultProguardFile('proguard-android.txt'), 'custom.pro')
+ }
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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/ProguardAndroidTxtDetectorTest.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 ProguardAndroidTxtUsage
+ 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="ProguardAndroidTxtUsage" 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 'ProguardAndroidTxtUsage'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore ProguardAndroidTxtUsage ...`
+ ```
+
+* 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/ProguardSplit.md.html b/docs/checks/ProguardSplit.md.html
index 592bd1bc..bb23b931 100644
--- a/docs/checks/ProguardSplit.md.html
+++ b/docs/checks/ProguardSplit.md.html
@@ -69,7 +69,7 @@
and then keep only project-specific configuration here [ProguardSplit]
-keep public class * extends android.app.Activity
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -111,14 +111,13 @@
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`project.properties`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~properties linenumbers
target=android-14
proguard.config=${sdk.dir}/foo.cfg:${user.home}/bar.pro;myfile.txt
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ProguardDetectorTest.kt)
diff --git a/docs/checks/PropertyEscape.md.html b/docs/checks/PropertyEscape.md.html
index 6ab4bb34..a1903dfb 100644
--- a/docs/checks/PropertyEscape.md.html
+++ b/docs/checks/PropertyEscape.md.html
@@ -54,7 +54,7 @@
Data\\Android\\android-studio\\sdk [PropertyEscape]
ok.sdk.dir=C:\\Documents and Settings\\UserName\\Local Settings\\Application Data\\Android\\android-studio\\sdk
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,7 +74,7 @@
windows2.dir=C\:\\my\\path\\to\\sdk
not.a.path.prop=Hello \my\path\to\sdk
ok.sdk.dir=C:\\Documents and Settings\\UserName\\Local Settings\\Application Data\\Android\\android-studio\\sdk
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PropertyFileDetectorTest.kt)
diff --git a/docs/checks/ProtectedPermissions.md.html b/docs/checks/ProtectedPermissions.md.html
index f588f446..a874d091 100644
--- a/docs/checks/ProtectedPermissions.md.html
+++ b/docs/checks/ProtectedPermissions.md.html
@@ -44,7 +44,7 @@
[ProtectedPermissions]
<uses-permission android:name="android.permission.BACKUP" />
----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
<uses-permission android:name="android.permission.BACKUP" />
</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/SystemPermissionsDetectorTest.java)
diff --git a/docs/checks/ProtoLayoutEdgeContentLayoutResponsive-2.md.html b/docs/checks/ProtoLayoutEdgeContentLayoutResponsive-2.md.html
new file mode 100644
index 00000000..a4d61442
--- /dev/null
+++ b/docs/checks/ProtoLayoutEdgeContentLayoutResponsive-2.md.html
@@ -0,0 +1,330 @@
+
+(#) ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales
+
+!!! WARNING: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales
+ This is a warning.
+
+Id
+: `ProtoLayoutEdgeContentLayoutResponsive`
+Summary
+: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales
+Severity
+: Warning
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Identifier
+: androidx.wear.protolayout
+Feedback
+: https://issuetracker.google.com/issues/new?component=1112273
+Min
+: Lint 8.7+
+Compiled
+: Lint 8.7+
+Artifact
+: [androidx.wear.protolayout:protolayout](androidx_wear_protolayout_protolayout.md.html)
+Since
+: 1.2.0
+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:/wear/protolayout/protolayout-lint/src/main/java/androidx/wear/protolayout/lint/ResponsiveLayoutDetector.kt)
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/EdgeContentLayoutResponsiveDetectorTest.kt)
+Copyright Year
+: 2024
+
+It is highly recommended to use the latest
+setResponsiveInsetEnabled(true) when you're
+using the ProtoLayout's EdgeContentLayout.
+
+This is will take care of all outer margins and inner padding to ensure
+that content of
+labels doesn't go off the screen (especially with different locales) and
+that primary
+label is placed in the consistent place.
+
+!!! 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/foo/Bar.kt:4:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+val layout = EdgeContentLayout.Builder(null)
+ -------------------------
+src/foo/Bar.kt:9:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ val layout = EdgeContentLayout.Builder(null)
+ -------------------------
+src/foo/Bar.kt:12:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ val layoutFalse = EdgeContentLayout.Builder(null)
+ -------------------------
+src/foo/Bar.kt:17:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ val l = EdgeContentLayout.Builder(null)
+ -------------------------
+src/foo/Bar.kt:24:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ EdgeContentLayout.Builder().setResponsiveContentInsetEnabled(enabled)
+ -------------------------
+src/foo/Bar.kt:32:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ return EdgeContentLayout.Builder().build()
+ -------------------------
+src/foo/Bar.kt:36:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ EdgeContentLayout.Builder()
+ -------------------------
+src/foo/Bar.kt:42:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ random(EdgeContentLayout.Builder())
+ -------------------------
+src/foo/Bar.kt:47:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ val e = EdgeContentLayout.Builder()
+ -------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here are the relevant source files:
+
+`src/androidx/wear/protolayout/material/layouts/EdgeContentLayout.java`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
+package androidx.wear.protolayout.material.layouts;
+
+import androidx.wear.protolayout.DeviceParameters;
+
+public class EdgeContentLayout {
+ public static class Builder {
+ public Builder(DeviceParameters deviceParameters) {}
+ public Builder() {}
+
+ public Builder setResponsiveContentInsetEnabled(boolean enabled) {
+ return this;
+ }
+
+ public EdgeContentLayout build() {
+ return new EdgeContentLayout();
+ }
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`src/foo/Bar.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package foo
+import androidx.wear.protolayout.material.layouts.EdgeContentLayout
+
+val layout = EdgeContentLayout.Builder(null)
+ .setResponsiveContentInsetEnabled(false)
+ .build()
+
+class Bar {
+ val layout = EdgeContentLayout.Builder(null)
+ .build()
+
+ val layoutFalse = EdgeContentLayout.Builder(null)
+ .setResponsiveContentInsetEnabled(false)
+ .build()
+
+ fun buildFalse() {
+ val l = EdgeContentLayout.Builder(null)
+ .setResponsiveContentInsetEnabled(false)
+ return l.build()
+ }
+
+ fun update() {
+ val enabled = false
+ EdgeContentLayout.Builder().setResponsiveContentInsetEnabled(enabled)
+ }
+
+ fun build() {
+ update().build()
+ }
+
+ fun build2() {
+ return EdgeContentLayout.Builder().build()
+ }
+
+ fun doubleFalse() {
+ EdgeContentLayout.Builder()
+ .setResponsiveContentInsetEnabled(true)
+ .setResponsiveContentInsetEnabled(false)
+ }
+
+ fun callRandom() {
+ random(EdgeContentLayout.Builder())
+ }
+ fun random(val l: EdgeContentLayout.Builder) {}
+
+ fun condition(val cond: Boolean) {
+ val e = EdgeContentLayout.Builder()
+ if (cond) {
+ e.setResponsiveContentInsetEnabled(false)
+ } else {
+ e.setResponsiveContentInsetEnabled(true)
+ }
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/EdgeContentLayoutResponsiveDetectorTest.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, `ResponsiveLayoutDetector.edgeContentLayout without responsiveness requires and fixes setter`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=1112273.
+
+(##) Repackaged
+
+This lint check appears to have been packaged in other artifacts as
+well. Issue id's must be unique, so you cannot combine these libraries.
+Also defined in:
+* ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales (this issue)
+* [ProtoLayoutEdgeContentLayoutResponsive from androidx.wear.protolayout:protolayout-expression:1.4.0-rc01](ProtoLayoutEdgeContentLayoutResponsive.md.html)
+* [ProtoLayoutEdgeContentLayoutResponsive from androidx.wear.protolayout:protolayout:1.3.0-beta01](ProtoLayoutEdgeContentLayoutResponsive-2.md.html)
+
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("androidx.wear.protolayout:protolayout:1.3.0-beta01")
+
+// build.gradle
+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-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
+# line (see https://github.com/toml-lang/toml/issues/516) so adjust
+# when pasting into libs.versions.toml:
+protolayout = {
+ module = "androidx.wear.protolayout:protolayout",
+ version.ref = "protolayout"
+}
+```
+
+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-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).
+(##) 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("ProtoLayoutEdgeContentLayoutResponsive")
+ fun method() {
+ Builder(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("ProtoLayoutEdgeContentLayoutResponsive")
+ void method() {
+ new Builder(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection ProtoLayoutEdgeContentLayoutResponsive
+ 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="ProtoLayoutEdgeContentLayoutResponsive" 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 'ProtoLayoutEdgeContentLayoutResponsive'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore ProtoLayoutEdgeContentLayoutResponsive ...`
+ ```
+
+* 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/ProtoLayoutEdgeContentLayoutResponsive.md.html b/docs/checks/ProtoLayoutEdgeContentLayoutResponsive.md.html
index 20c9411a..f0e3bec0 100644
--- a/docs/checks/ProtoLayoutEdgeContentLayoutResponsive.md.html
+++ b/docs/checks/ProtoLayoutEdgeContentLayoutResponsive.md.html
@@ -25,7 +25,7 @@
Compiled
: Lint 8.7+
Artifact
-: [androidx.wear.protolayout:protolayout](androidx_wear_protolayout_protolayout.md.html)
+: [androidx.wear.protolayout:protolayout-expression](androidx_wear_protolayout_protolayout-expression.md.html)
Since
: 1.2.0
Affects
@@ -35,7 +35,7 @@
Implementation
: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/main/java/androidx/wear/protolayout/lint/ResponsiveLayoutDetector.kt)
Tests
-: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/PrimaryLayoutResponsiveDetectorTest.kt)
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/EdgeContentLayoutResponsiveDetectorTest.kt)
Copyright Year
: 2024
@@ -49,6 +49,179 @@
that primary
label is placed in the consistent place.
+!!! 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/foo/Bar.kt:4:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+val layout = EdgeContentLayout.Builder(null)
+ -------------------------
+src/foo/Bar.kt:9:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ val layout = EdgeContentLayout.Builder(null)
+ -------------------------
+src/foo/Bar.kt:12:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ val layoutFalse = EdgeContentLayout.Builder(null)
+ -------------------------
+src/foo/Bar.kt:17:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ val l = EdgeContentLayout.Builder(null)
+ -------------------------
+src/foo/Bar.kt:24:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ EdgeContentLayout.Builder().setResponsiveContentInsetEnabled(enabled)
+ -------------------------
+src/foo/Bar.kt:32:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ return EdgeContentLayout.Builder().build()
+ -------------------------
+src/foo/Bar.kt:36:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ EdgeContentLayout.Builder()
+ -------------------------
+src/foo/Bar.kt:42:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ random(EdgeContentLayout.Builder())
+ -------------------------
+src/foo/Bar.kt:47:Warning: EdgeContentLayout used, but responsiveness
+isn't set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes and update to the looks of layout.
+[ProtoLayoutEdgeContentLayoutResponsive]
+ val e = EdgeContentLayout.Builder()
+ -------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here are the relevant source files:
+
+`src/androidx/wear/protolayout/material/layouts/EdgeContentLayout.java`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
+package androidx.wear.protolayout.material.layouts;
+
+import androidx.wear.protolayout.DeviceParameters;
+
+public class EdgeContentLayout {
+ public static class Builder {
+ public Builder(DeviceParameters deviceParameters) {}
+ public Builder() {}
+
+ public Builder setResponsiveContentInsetEnabled(boolean enabled) {
+ return this;
+ }
+
+ public EdgeContentLayout build() {
+ return new EdgeContentLayout();
+ }
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`src/foo/Bar.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package foo
+import androidx.wear.protolayout.material.layouts.EdgeContentLayout
+
+val layout = EdgeContentLayout.Builder(null)
+ .setResponsiveContentInsetEnabled(false)
+ .build()
+
+class Bar {
+ val layout = EdgeContentLayout.Builder(null)
+ .build()
+
+ val layoutFalse = EdgeContentLayout.Builder(null)
+ .setResponsiveContentInsetEnabled(false)
+ .build()
+
+ fun buildFalse() {
+ val l = EdgeContentLayout.Builder(null)
+ .setResponsiveContentInsetEnabled(false)
+ return l.build()
+ }
+
+ fun update() {
+ val enabled = false
+ EdgeContentLayout.Builder().setResponsiveContentInsetEnabled(enabled)
+ }
+
+ fun build() {
+ update().build()
+ }
+
+ fun build2() {
+ return EdgeContentLayout.Builder().build()
+ }
+
+ fun doubleFalse() {
+ EdgeContentLayout.Builder()
+ .setResponsiveContentInsetEnabled(true)
+ .setResponsiveContentInsetEnabled(false)
+ }
+
+ fun callRandom() {
+ random(EdgeContentLayout.Builder())
+ }
+ fun random(val l: EdgeContentLayout.Builder) {}
+
+ fun condition(val cond: Boolean) {
+ val e = EdgeContentLayout.Builder()
+ if (cond) {
+ e.setResponsiveContentInsetEnabled(false)
+ } else {
+ e.setResponsiveContentInsetEnabled(true)
+ }
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/EdgeContentLayoutResponsiveDetectorTest.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, `ResponsiveLayoutDetector.edgeContentLayout without responsiveness requires and fixes setter`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=1112273.
+
+(##) Repackaged
+
+This lint check appears to have been packaged in other artifacts as
+well. Issue id's must be unique, so you cannot combine these libraries.
+Also defined in:
+* ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales (this issue)
+* [ProtoLayoutEdgeContentLayoutResponsive from androidx.wear.protolayout:protolayout-expression:1.4.0-rc01](ProtoLayoutEdgeContentLayoutResponsive.md.html)
+* [ProtoLayoutEdgeContentLayoutResponsive from androidx.wear.protolayout:protolayout:1.3.0-beta01](ProtoLayoutEdgeContentLayoutResponsive-2.md.html)
+
+
(##) Including
!!!
@@ -57,39 +230,32 @@
```
// build.gradle.kts
-implementation("androidx.wear.protolayout:protolayout:1.3.0-beta01")
+implementation("androidx.wear.protolayout:protolayout-expression:1.4.0-rc01")
// build.gradle
-implementation 'androidx.wear.protolayout:protolayout:1.3.0-beta01'
+implementation 'androidx.wear.protolayout:protolayout-expression:1.4.0-rc01'
// build.gradle.kts with version catalogs:
-implementation(libs.protolayout)
+implementation(libs.protolayout.expression)
# libs.versions.toml
[versions]
-protolayout = "1.3.0-beta01"
+protolayout-expression = "1.4.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:
-protolayout = {
- module = "androidx.wear.protolayout:protolayout",
- version.ref = "protolayout"
+protolayout-expression = {
+ module = "androidx.wear.protolayout:protolayout-expression",
+ version.ref = "protolayout-expression"
}
```
-1.3.0-beta01 is the version this documentation was generated from;
+1.4.0-rc01 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-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).
+[Additional details about androidx.wear.protolayout:protolayout-expression](androidx_wear_protolayout_protolayout-expression.md.html).
(##) Suppressing
You can suppress false positives using one of the following mechanisms:
diff --git a/docs/checks/ProtoLayoutMinSchema-2.md.html b/docs/checks/ProtoLayoutMinSchema-2.md.html
new file mode 100644
index 00000000..79256a1d
--- /dev/null
+++ b/docs/checks/ProtoLayoutMinSchema-2.md.html
@@ -0,0 +1,249 @@
+
+(#) ProtoLayout feature is not guaranteed to be available on the target device API
+
+!!! ERROR: ProtoLayout feature is not guaranteed to be available on the target device API
+ This is an error.
+
+Id
+: `ProtoLayoutMinSchema`
+Summary
+: ProtoLayout feature is not guaranteed to be available on the target device API
+Severity
+: Error
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Identifier
+: androidx.wear.protolayout
+Feedback
+: https://issuetracker.google.com/issues/new?component=1112273
+Min
+: Lint 8.7+
+Compiled
+: Lint 8.7+
+Artifact
+: [androidx.wear.protolayout:protolayout](androidx_wear_protolayout_protolayout.md.html)
+Since
+: 1.1.0
+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:/wear/protolayout/protolayout-lint/src/main/java/androidx/wear/protolayout/lint/ProtoLayoutMinSchemaDetector.kt)
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/ProtoLayoutMinSchemaDetectorTest.kt)
+Copyright Year
+: 2023
+
+Using features that are not supported by an older ProtoLayout
+renderer/evaluator, can lead to unexpected rendering or invalid results
+(for expressions).
+
+Each Wear OS platform version has a guaranteed minimum ProtoLayout
+schema version.
+On API 33, all consumers for ProtoLayout support at least Schema version
+1.2 (major=1, minor=200).
+On API 34, all consumers for ProtoLayout support at least Schema version
+1.3 (major=1, minor=300).
+
+You can use those newer features through conditional Android API checks,
+or by increasing the minSdk for your project.
+You can also annotate your methods with @RequiresApi or
+@RequiresSchemaAnnotation if you know they require the
+corresponding version.
+Note that @RequiresSchemaVersion annotation on classes are mostly
+ignored (except for Builder classes).
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/foo/Bar.kt:6:Error: This API is not guaranteed to be available on
+the device (requires schema 1.200). [ProtoLayoutMinSchema]
+ private val fieldAssignment = withAnnotation.annotatedMethod()
+ --------------------------------
+src/foo/Bar.kt:12:Error: This API is not guaranteed to be available on
+the device (requires schema 1.200). [ProtoLayoutMinSchema]
+ bar()
+ -----
+src/foo/Bar.kt:14:Error: This API is not guaranteed to be available on
+the device (requires schema 1.200). [ProtoLayoutMinSchema]
+ withAnnotation.annotatedMethod()
+ --------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here are the relevant source files:
+
+`src/foo/WithAnnotation.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package foo
+import androidx.wear.protolayout.expression.RequiresSchemaVersion
+
+@RequiresSchemaVersion(major=1, minor=200)
+class WithAnnotation {
+ fun unAnnotatedMethod(){}
+
+ @RequiresSchemaVersion(major=1, minor=200)
+ fun annotatedMethod(){}
+
+ @RequiresSchemaVersion(major=1, minor=200)
+ fun unreferencedMethod(){}
+
+ companion object {
+ @RequiresSchemaVersion(major=1, minor=200)
+ const val ANNOTATED_CONST = 10
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`src/foo/Bar.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package foo
+import androidx.wear.protolayout.expression.RequiresSchemaVersion
+
+class Bar {
+ private val withAnnotation = WithAnnotation()
+ private val fieldAssignment = withAnnotation.annotatedMethod()
+
+ @RequiresSchemaVersion(major=1, minor=200)
+ fun bar() {}
+
+ fun baz() {
+ bar()
+ withAnnotation.unAnnotatedMethod()
+ withAnnotation.annotatedMethod()
+ //TODO: b/308552481 - This should fail
+ val b = withAnnotation.ANNOTATED_CONST
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/ProtoLayoutMinSchemaDetectorTest.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, `ProtoLayoutMinSchemaDetector.calling V1_2 API requires SDK version check`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=1112273.
+
+(##) Repackaged
+
+This lint check appears to have been packaged in other artifacts as
+well. Issue id's must be unique, so you cannot combine these libraries.
+Also defined in:
+* ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API (this issue)
+* [ProtoLayoutMinSchema from androidx.wear.protolayout:protolayout-expression:1.4.0-rc01](ProtoLayoutMinSchema.md.html)
+* [ProtoLayoutMinSchema from androidx.wear.protolayout:protolayout:1.3.0-beta01](ProtoLayoutMinSchema-2.md.html)
+
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("androidx.wear.protolayout:protolayout:1.3.0-beta01")
+
+// build.gradle
+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-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
+# line (see https://github.com/toml-lang/toml/issues/516) so adjust
+# when pasting into libs.versions.toml:
+protolayout = {
+ module = "androidx.wear.protolayout:protolayout",
+ version.ref = "protolayout"
+}
+```
+
+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-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).
+(##) 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("ProtoLayoutMinSchema")
+ fun method() {
+ problematicStatement()
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("ProtoLayoutMinSchema")
+ void method() {
+ problematicStatement();
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection ProtoLayoutMinSchema
+ 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="ProtoLayoutMinSchema" 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 'ProtoLayoutMinSchema'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore ProtoLayoutMinSchema ...`
+ ```
+
+* 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/ProtoLayoutMinSchema.md.html b/docs/checks/ProtoLayoutMinSchema.md.html
index 9aab0208..46935bbe 100644
--- a/docs/checks/ProtoLayoutMinSchema.md.html
+++ b/docs/checks/ProtoLayoutMinSchema.md.html
@@ -25,7 +25,7 @@
Compiled
: Lint 8.7+
Artifact
-: [androidx.wear.protolayout:protolayout](androidx_wear_protolayout_protolayout.md.html)
+: [androidx.wear.protolayout:protolayout-expression](androidx_wear_protolayout_protolayout-expression.md.html)
Since
: 1.1.0
Affects
@@ -74,7 +74,7 @@
the device (requires schema 1.200). [ProtoLayoutMinSchema]
withAnnotation.annotatedMethod()
--------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -98,7 +98,7 @@
const val ANNOTATED_CONST = 10
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/Bar.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -120,7 +120,7 @@
val b = withAnnotation.ANNOTATED_CONST
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/ProtoLayoutMinSchemaDetectorTest.kt)
@@ -131,6 +131,16 @@
To report a problem with this extracted sample, visit
https://issuetracker.google.com/issues/new?component=1112273.
+(##) Repackaged
+
+This lint check appears to have been packaged in other artifacts as
+well. Issue id's must be unique, so you cannot combine these libraries.
+Also defined in:
+* ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API (this issue)
+* [ProtoLayoutMinSchema from androidx.wear.protolayout:protolayout-expression:1.4.0-rc01](ProtoLayoutMinSchema.md.html)
+* [ProtoLayoutMinSchema from androidx.wear.protolayout:protolayout:1.3.0-beta01](ProtoLayoutMinSchema-2.md.html)
+
+
(##) Including
!!!
@@ -139,39 +149,32 @@
```
// build.gradle.kts
-implementation("androidx.wear.protolayout:protolayout:1.3.0-beta01")
+implementation("androidx.wear.protolayout:protolayout-expression:1.4.0-rc01")
// build.gradle
-implementation 'androidx.wear.protolayout:protolayout:1.3.0-beta01'
+implementation 'androidx.wear.protolayout:protolayout-expression:1.4.0-rc01'
// build.gradle.kts with version catalogs:
-implementation(libs.protolayout)
+implementation(libs.protolayout.expression)
# libs.versions.toml
[versions]
-protolayout = "1.3.0-beta01"
+protolayout-expression = "1.4.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:
-protolayout = {
- module = "androidx.wear.protolayout:protolayout",
- version.ref = "protolayout"
+protolayout-expression = {
+ module = "androidx.wear.protolayout:protolayout-expression",
+ version.ref = "protolayout-expression"
}
```
-1.3.0-beta01 is the version this documentation was generated from;
+1.4.0-rc01 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-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).
+[Additional details about androidx.wear.protolayout:protolayout-expression](androidx_wear_protolayout_protolayout-expression.md.html).
(##) Suppressing
You can suppress false positives using one of the following mechanisms:
diff --git a/docs/checks/ProtoLayoutPrimaryLayoutResponsive-2.md.html b/docs/checks/ProtoLayoutPrimaryLayoutResponsive-2.md.html
new file mode 100644
index 00000000..f5d59dc6
--- /dev/null
+++ b/docs/checks/ProtoLayoutPrimaryLayoutResponsive-2.md.html
@@ -0,0 +1,271 @@
+
+(#) ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales
+
+!!! WARNING: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales
+ This is a warning.
+
+Id
+: `ProtoLayoutPrimaryLayoutResponsive`
+Summary
+: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales
+Severity
+: Warning
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Identifier
+: androidx.wear.protolayout
+Feedback
+: https://issuetracker.google.com/issues/new?component=1112273
+Min
+: Lint 8.7+
+Compiled
+: Lint 8.7+
+Artifact
+: [androidx.wear.protolayout:protolayout](androidx_wear_protolayout_protolayout.md.html)
+Since
+: 1.2.0
+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:/wear/protolayout/protolayout-lint/src/main/java/androidx/wear/protolayout/lint/ResponsiveLayoutDetector.kt)
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/PrimaryLayoutResponsiveDetectorTest.kt)
+Copyright Year
+: 2024
+
+It is highly recommended to use the latest
+setResponsiveInsetEnabled(true) when you're
+using the ProtoLayout's PrimaryLayout.
+
+This is will take care of all inner padding to ensure that content of
+labels and bottom
+chip doesn't go off the screen (especially with different locales).
+
+!!! 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/foo/Bar.kt:4:Warning: PrimaryLayout used, but responsiveness isn't
+set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes. [ProtoLayoutPrimaryLayoutResponsive]
+val layout = PrimaryLayout.Builder(null)
+ ---------------------
+src/foo/Bar.kt:9:Warning: PrimaryLayout used, but responsiveness isn't
+set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes. [ProtoLayoutPrimaryLayoutResponsive]
+ val layout = PrimaryLayout.Builder(null)
+ ---------------------
+src/foo/Bar.kt:12:Warning: PrimaryLayout used, but responsiveness isn't
+set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes. [ProtoLayoutPrimaryLayoutResponsive]
+ val layoutFalse = PrimaryLayout.Builder(null)
+ ---------------------
+src/foo/Bar.kt:17:Warning: PrimaryLayout used, but responsiveness isn't
+set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes. [ProtoLayoutPrimaryLayoutResponsive]
+ val l = PrimaryLayout.Builder(null)
+ ---------------------
+src/foo/Bar.kt:24:Warning: PrimaryLayout used, but responsiveness isn't
+set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes. [ProtoLayoutPrimaryLayoutResponsive]
+ PrimaryLayout.Builder().setResponsiveContentInsetEnabled(enabled)
+ ---------------------
+src/foo/Bar.kt:32:Warning: PrimaryLayout used, but responsiveness isn't
+set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes. [ProtoLayoutPrimaryLayoutResponsive]
+ return PrimaryLayout.Builder().build()
+ ---------------------
+src/foo/Bar.kt:36:Warning: PrimaryLayout used, but responsiveness isn't
+set: Please call
+setResponsiveContentInsetEnabled(true) for the best results across
+different screen sizes. [ProtoLayoutPrimaryLayoutResponsive]
+ PrimaryLayout.Builder()
+ ---------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/foo/Bar.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package foo
+import androidx.wear.protolayout.material.layouts.PrimaryLayout
+
+val layout = PrimaryLayout.Builder(null)
+ .setResponsiveContentInsetEnabled(false)
+ .build()
+
+class Bar {
+ val layout = PrimaryLayout.Builder(null)
+ .build()
+
+ val layoutFalse = PrimaryLayout.Builder(null)
+ .setResponsiveContentInsetEnabled(false)
+ .build()
+
+ fun buildFalse() {
+ val l = PrimaryLayout.Builder(null)
+ .setResponsiveContentInsetEnabled(false)
+ return l.build()
+ }
+
+ fun update() {
+ val enabled = false
+ PrimaryLayout.Builder().setResponsiveContentInsetEnabled(enabled)
+ }
+
+ fun build() {
+ update().build()
+ }
+
+ fun build2() {
+ return PrimaryLayout.Builder().build()
+ }
+
+ fun doubleFalse() {
+ PrimaryLayout.Builder()
+ .setResponsiveContentInsetEnabled(true)
+ .setResponsiveContentInsetEnabled(false)
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/PrimaryLayoutResponsiveDetectorTest.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, `ResponsiveLayoutDetector.primaryLayout without responsiveness requires and fixes setter`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=1112273.
+
+(##) Repackaged
+
+This lint check appears to have been packaged in other artifacts as
+well. Issue id's must be unique, so you cannot combine these libraries.
+Also defined in:
+* ProtoLayoutPrimaryLayoutResponsive: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales (this issue)
+* [ProtoLayoutPrimaryLayoutResponsive from androidx.wear.protolayout:protolayout-expression:1.4.0-rc01](ProtoLayoutPrimaryLayoutResponsive.md.html)
+* [ProtoLayoutPrimaryLayoutResponsive from androidx.wear.protolayout:protolayout:1.3.0-beta01](ProtoLayoutPrimaryLayoutResponsive-2.md.html)
+
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("androidx.wear.protolayout:protolayout:1.3.0-beta01")
+
+// build.gradle
+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-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
+# line (see https://github.com/toml-lang/toml/issues/516) so adjust
+# when pasting into libs.versions.toml:
+protolayout = {
+ module = "androidx.wear.protolayout:protolayout",
+ version.ref = "protolayout"
+}
+```
+
+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-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).
+(##) 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("ProtoLayoutPrimaryLayoutResponsive")
+ fun method() {
+ Builder(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("ProtoLayoutPrimaryLayoutResponsive")
+ void method() {
+ new Builder(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection ProtoLayoutPrimaryLayoutResponsive
+ 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="ProtoLayoutPrimaryLayoutResponsive" 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 'ProtoLayoutPrimaryLayoutResponsive'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore ProtoLayoutPrimaryLayoutResponsive ...`
+ ```
+
+* 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/ProtoLayoutPrimaryLayoutResponsive.md.html b/docs/checks/ProtoLayoutPrimaryLayoutResponsive.md.html
index 44fc26ed..690230ea 100644
--- a/docs/checks/ProtoLayoutPrimaryLayoutResponsive.md.html
+++ b/docs/checks/ProtoLayoutPrimaryLayoutResponsive.md.html
@@ -25,7 +25,7 @@
Compiled
: Lint 8.7+
Artifact
-: [androidx.wear.protolayout:protolayout](androidx_wear_protolayout_protolayout.md.html)
+: [androidx.wear.protolayout:protolayout-expression](androidx_wear_protolayout_protolayout-expression.md.html)
Since
: 1.2.0
Affects
@@ -96,7 +96,7 @@
different screen sizes. [ProtoLayoutPrimaryLayoutResponsive]
PrimaryLayout.Builder()
---------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -142,7 +142,7 @@
.setResponsiveContentInsetEnabled(false)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/wear/protolayout/protolayout-lint/src/test/java/PrimaryLayoutResponsiveDetectorTest.kt)
@@ -153,6 +153,16 @@
To report a problem with this extracted sample, visit
https://issuetracker.google.com/issues/new?component=1112273.
+(##) Repackaged
+
+This lint check appears to have been packaged in other artifacts as
+well. Issue id's must be unique, so you cannot combine these libraries.
+Also defined in:
+* ProtoLayoutPrimaryLayoutResponsive: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales (this issue)
+* [ProtoLayoutPrimaryLayoutResponsive from androidx.wear.protolayout:protolayout-expression:1.4.0-rc01](ProtoLayoutPrimaryLayoutResponsive.md.html)
+* [ProtoLayoutPrimaryLayoutResponsive from androidx.wear.protolayout:protolayout:1.3.0-beta01](ProtoLayoutPrimaryLayoutResponsive-2.md.html)
+
+
(##) Including
!!!
@@ -161,39 +171,32 @@
```
// build.gradle.kts
-implementation("androidx.wear.protolayout:protolayout:1.3.0-beta01")
+implementation("androidx.wear.protolayout:protolayout-expression:1.4.0-rc01")
// build.gradle
-implementation 'androidx.wear.protolayout:protolayout:1.3.0-beta01'
+implementation 'androidx.wear.protolayout:protolayout-expression:1.4.0-rc01'
// build.gradle.kts with version catalogs:
-implementation(libs.protolayout)
+implementation(libs.protolayout.expression)
# libs.versions.toml
[versions]
-protolayout = "1.3.0-beta01"
+protolayout-expression = "1.4.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:
-protolayout = {
- module = "androidx.wear.protolayout:protolayout",
- version.ref = "protolayout"
+protolayout-expression = {
+ module = "androidx.wear.protolayout:protolayout-expression",
+ version.ref = "protolayout-expression"
}
```
-1.3.0-beta01 is the version this documentation was generated from;
+1.4.0-rc01 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-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).
+[Additional details about androidx.wear.protolayout:protolayout-expression](androidx_wear_protolayout_protolayout-expression.md.html).
(##) Suppressing
You can suppress false positives using one of the following mechanisms:
diff --git a/docs/checks/ProviderReadPermissionOnly.md.html b/docs/checks/ProviderReadPermissionOnly.md.html
index 8ee0dc24..1ab11091 100644
--- a/docs/checks/ProviderReadPermissionOnly.md.html
+++ b/docs/checks/ProviderReadPermissionOnly.md.html
@@ -60,7 +60,7 @@
android:writePermission [ProviderReadPermissionOnly]
<provider android:name="test.pkg.KotlinTestContentProvider" android:readPermission="android.permission.READ_DATA"/>
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -74,7 +74,7 @@
<provider android:name="test.pkg.KotlinTestContentProvider" android:readPermission="android.permission.READ_DATA"/>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/JavaTestContentProvider.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -104,7 +104,7 @@
System.out.println(uri);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/KotlinTestContentProvider.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -132,7 +132,7 @@
return null
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ProviderPermissionDetectorTest.kt)
diff --git a/docs/checks/ProvidesMustNotBeAbstract.md.html b/docs/checks/ProvidesMustNotBeAbstract.md.html
index 055ba725..51cb7944 100644
--- a/docs/checks/ProvidesMustNotBeAbstract.md.html
+++ b/docs/checks/ProvidesMustNotBeAbstract.md.html
@@ -83,7 +83,7 @@
[ProvidesMustNotBeAbstract]
@Provides fun @receiver:MyQualifier Boolean.bind(): Comparable<Boolean> = this@bind
-----------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -123,7 +123,7 @@
@Provides fun String.bind(): Comparable = this@bind
@Provides fun @receiver:MyQualifier Boolean.bind(): Comparable = this@bind
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DaggerIssuesDetectorTest.kt)
diff --git a/docs/checks/ProxyPassword.md.html b/docs/checks/ProxyPassword.md.html
index 358b71e1..59e9a5c6 100644
--- a/docs/checks/ProxyPassword.md.html
+++ b/docs/checks/ProxyPassword.md.html
@@ -42,14 +42,14 @@
[ProxyPassword]
systemProp.http.proxyPassword=something
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
`gradle.properties`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~properties linenumbers
systemProp.http.proxyPassword=something
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PropertyFileDetectorTest.kt)
diff --git a/docs/checks/PublicKeyCredential.md.html b/docs/checks/PublicKeyCredential.md.html
index 8c017217..f59c7de4 100644
--- a/docs/checks/PublicKeyCredential.md.html
+++ b/docs/checks/PublicKeyCredential.md.html
@@ -42,7 +42,7 @@
[PublicKeyCredential]
val request = CreatePublicKeyCredentialRequest()
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -51,7 +51,7 @@
dependencies {
implementation 'androidx.credentials:credentials-play-services-auth:+'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/main/kotlin/test/pkg/Test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -64,7 +64,7 @@
val request = CreatePublicKeyCredentialRequest()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PublicKeyCredentialDetectorTest.kt)
diff --git a/docs/checks/PxUsage.md.html b/docs/checks/PxUsage.md.html
index 10bbdd22..f24eb4db 100644
--- a/docs/checks/PxUsage.md.html
+++ b/docs/checks/PxUsage.md.html
@@ -55,7 +55,7 @@
use "dp" instead [PxUsage]
android:layout_width="2px"
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -115,7 +115,7 @@
android:maxHeight="1px"
android:scaleType="center" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PxUsageDetectorTest.java)
diff --git a/docs/checks/QueryAllPackagesPermission.md.html b/docs/checks/QueryAllPackagesPermission.md.html
index d1fe7fd6..a1297600 100644
--- a/docs/checks/QueryAllPackagesPermission.md.html
+++ b/docs/checks/QueryAllPackagesPermission.md.html
@@ -47,7 +47,7 @@
[QueryAllPackagesPermission]
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/><!-- ERROR -->
----------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -60,7 +60,7 @@
<uses-permission android:name="android.permission.CAMERA"/><!-- OK -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/><!-- ERROR -->
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MainActivity.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -95,7 +95,7 @@
private fun getInstalledPackages() = Unit
private fun resolveActivity() = Unit
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PackageVisibilityDetectorTest.kt)
diff --git a/docs/checks/QueryPermissionsNeeded.md.html b/docs/checks/QueryPermissionsNeeded.md.html
index 731a6444..d6b9e0ae 100644
--- a/docs/checks/QueryPermissionsNeeded.md.html
+++ b/docs/checks/QueryPermissionsNeeded.md.html
@@ -86,7 +86,7 @@
https://g.co/dev/packagevisibility for details [QueryPermissionsNeeded]
Intent().resolveActivityInfo(pm, 0) // ERROR
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -123,7 +123,7 @@
private fun getInstalledPackages() = Unit
private fun resolveActivity() = Unit
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PackageVisibilityDetectorTest.kt)
diff --git a/docs/checks/R8GradualApi.md.html b/docs/checks/R8GradualApi.md.html
new file mode 100644
index 00000000..949f3f4c
--- /dev/null
+++ b/docs/checks/R8GradualApi.md.html
@@ -0,0 +1,125 @@
+
+(#) R8 Gradual API can be used only with experimental flag
+
+!!! WARNING: R8 Gradual API can be used only with experimental flag
+ This is a warning.
+
+Id
+: `R8GradualApi`
+Summary
+: R8 Gradual API can be used only with experimental flag
+Severity
+: Warning
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 9.0.0 (January 2026)
+Affects
+: Gradle build files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://developer.android.com/ndk/guides/abis
+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)
+
+R8 Gradual API can be used only when experimental flag
+android.r8.gradual.support is set to true.
+
+!!! 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:5:Warning: Cannot use optimization.enable=true without
+setting android.r8.gradual.support=true flag. [R8GradualApi]
+ enable = true
+ ------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here are the relevant source files:
+
+`gradle.properties`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~properties linenumbers
+# comments
+android.r8.gradual.support=false
+android.r8.optimizedResourceShrinking=true
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`build.gradle`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
+android {
+ buildTypes {
+ release {
+ optimization {
+ enable = true
+ }
+ }
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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.testR8NewApiWithFalseFlag`.
+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 R8GradualApi
+ 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="R8GradualApi" 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 'R8GradualApi'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore R8GradualApi ...`
+ ```
+
+* 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/Range.md.html b/docs/checks/Range.md.html
index f6bdf347..a038d87a 100644
--- a/docs/checks/Range.md.html
+++ b/docs/checks/Range.md.html
@@ -188,7 +188,7 @@
[Range]
printIndirectSize("1234567"); // ERROR
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -354,7 +354,7 @@
printIndirectSize("1234567"); // 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/RangeDetectorTest.kt)
diff --git a/docs/checks/RawColor.md.html b/docs/checks/RawColor.md.html
index cb697a70..e8650ab5 100644
--- a/docs/checks/RawColor.md.html
+++ b/docs/checks/RawColor.md.html
@@ -51,7 +51,7 @@
instead. [RawColor]
app:someCustomColor="#fff"/>
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<TextView xmlns:app="http://schemas.android.com/apk/res-auto"
app:someCustomColor="#fff"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/RawColorDetectorTest.kt)
diff --git a/docs/checks/RawDimen.md.html b/docs/checks/RawDimen.md.html
index 99043034..b1120cdf 100644
--- a/docs/checks/RawDimen.md.html
+++ b/docs/checks/RawDimen.md.html
@@ -52,14 +52,14 @@
instead. [RawDimen]
<TextView xmlns:app="http://schemas.android.com/apk/res-auto" app:someCustomAttribute="16dp"/>
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
`res/layout/ids.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<TextView xmlns:app="http://schemas.android.com/apk/res-auto" app:someCustomAttribute="16dp"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/RawDimenDetectorTest.kt)
diff --git a/docs/checks/RawDispatchersUse.md.html b/docs/checks/RawDispatchersUse.md.html
index ac16686c..3d6e3110 100644
--- a/docs/checks/RawDispatchersUse.md.html
+++ b/docs/checks/RawDispatchersUse.md.html
@@ -76,7 +76,7 @@
[RawDispatchersUse]
Dispatchers::Main
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -97,7 +97,7 @@
Dispatchers::Unconfined
Dispatchers::Main
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/RawDispatchersUsageDetectorTest.kt)
diff --git a/docs/checks/Recycle.md.html b/docs/checks/Recycle.md.html
index 112056a2..d4b0fbcb 100644
--- a/docs/checks/Recycle.md.html
+++ b/docs/checks/Recycle.md.html
@@ -75,7 +75,7 @@
recycled after use with #recycle() [Recycle]
final TypedArray a = getContext().obtainStyledAttributes(attrs, // Not recycled
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -277,7 +277,7 @@
b = a;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CleanupDetectorTest.kt)
diff --git a/docs/checks/RecyclerView.md.html b/docs/checks/RecyclerView.md.html
index b4e17406..8d15f9a1 100644
--- a/docs/checks/RecyclerView.md.html
+++ b/docs/checks/RecyclerView.md.html
@@ -65,7 +65,7 @@
it up later [RecyclerView]
public void onBindViewHolder(ViewHolder holder, final int position, List<Object> payloads) {
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -190,7 +190,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RecyclerViewDetectorTest.kt)
diff --git a/docs/checks/RedactedInJavaUsage.md.html b/docs/checks/RedactedInJavaUsage.md.html
index 0a67e485..ee0380dc 100644
--- a/docs/checks/RedactedInJavaUsage.md.html
+++ b/docs/checks/RedactedInJavaUsage.md.html
@@ -59,7 +59,7 @@
Kotlin classes! [RedactedInJavaUsage]
@Redacted
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -75,7 +75,7 @@
data class RedactedClass(val value: String)
data class RedactedProps(@Redacted val value: String)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/RedactedClass.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -106,7 +106,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/AnotherRedactedClass.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -125,7 +125,7 @@
return value;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/RedactedUsageDetectorTest.kt)
diff --git a/docs/checks/RedundantBinds.md.html b/docs/checks/RedundantBinds.md.html
index df86e38b..8cd47554 100644
--- a/docs/checks/RedundantBinds.md.html
+++ b/docs/checks/RedundantBinds.md.html
@@ -56,7 +56,7 @@
different type [RedundantBinds]
@Binds fun invalidBind(real: Long): Long
----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -77,7 +77,7 @@
@Binds fun invalidBind(real: Long): Long
@Binds fun invalidBind(real: Long): Long
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/DaggerIssuesDetectorTest.kt)
diff --git a/docs/checks/RedundantLabel.md.html b/docs/checks/RedundantLabel.md.html
index 7041f8b7..bc7d0a40 100644
--- a/docs/checks/RedundantLabel.md.html
+++ b/docs/checks/RedundantLabel.md.html
@@ -44,7 +44,7 @@
[RedundantLabel]
<activity android:name=".MainActivity" android:label="@string/app_name">
--------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
</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/ManifestDetectorTest.kt)
diff --git a/docs/checks/RedundantNamespace.md.html b/docs/checks/RedundantNamespace.md.html
index 04215a6c..790fb569 100644
--- a/docs/checks/RedundantNamespace.md.html
+++ b/docs/checks/RedundantNamespace.md.html
@@ -45,7 +45,7 @@
redundant [RedundantNamespace]
xmlns:android="http://schemas.android.com/apk/res/android"
----------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/></LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NamespaceDetectorTest.kt)
diff --git a/docs/checks/ReferenceType.md.html b/docs/checks/ReferenceType.md.html
index 65d358bc..08d3818a 100644
--- a/docs/checks/ReferenceType.md.html
+++ b/docs/checks/ReferenceType.md.html
@@ -59,7 +59,7 @@
expected value of type @color/ [ReferenceType]
<item name="drawableAsColor" type="color">@drawable/my_drawable</item>
---------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -81,7 +81,7 @@
<item name="colorAsDrawable" type="drawable">@color/my_color</item>
<item name="drawableAsColor" type="color">@drawable/my_drawable</item>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/DuplicateResourceDetectorTest.java)
diff --git a/docs/checks/ReflectionAnnotation.md.html b/docs/checks/ReflectionAnnotation.md.html
new file mode 100644
index 00000000..4868338a
--- /dev/null
+++ b/docs/checks/ReflectionAnnotation.md.html
@@ -0,0 +1,156 @@
+
+(#) Missing Reflection Annotation
+
+!!! WARNING: Missing Reflection Annotation
+ This is a warning.
+
+Id
+: `ReflectionAnnotation`
+Summary
+: Missing Reflection Annotation
+Note
+: **This issue is disabled by default**; use `--enable ReflectionAnnotation`
+Severity
+: Warning
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 8.13.0 (September 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/KeepRuleDetector.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/KeepRuleDetectorTest.kt)
+
+When methods are using reflection to access APIs, they should declare
+what APIs they are accessing using the new
+`@UsesReflectionToAccessMethod` and `@UsesReflectionToAccessField`
+annotations. This makes it possible for the shrinker (R8) to correctly
+remove unused code and resources without accidentally also removing
+reflectively accessed code, which can lead to program crashes.
+
+!!! 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/test/pkg/test.kt:5:Warning: This method calls
+androidx.api.Printer.print() reflectively, so it should be annotated
+with @UsesReflectionToAccessMethod(...) [ReflectionAnnotation]
+ .invoke(p, s)
+ ------
+src/test/pkg/JavaUsage.java:9:Warning: This method calls
+androidx.api.Printer.print() reflectively, so it should be annotated
+with @UsesReflectionToAccessMethod(...) [ReflectionAnnotation]
+ .invoke(p, s);
+ ------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here are the relevant source files:
+
+`src/test/pkg/test.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package test.pkg
+fun simpleCall(p: Any, s: String) {
+ Class.forName("androidx.api.Printer")
+ .getDeclaredMethod("print", String::class.java)
+ .invoke(p, s)
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`src/test/pkg/JavaUsage.java`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
+package test.pkg;
+
+import java.lang.reflect.Method;
+
+public class JavaUsage {
+ public void simpleCall(Object p, String s) throws Exception {
+ Class.forName("androidx.api.Printer")
+ .getDeclaredMethod("print", String.class)
+ .invoke(p, s);
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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/KeepRuleDetectorTest.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("ReflectionAnnotation")
+ fun method() {
+ forName(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("ReflectionAnnotation")
+ void method() {
+ forName(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection ReflectionAnnotation
+ 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="ReflectionAnnotation" 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 'ReflectionAnnotation'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore ReflectionAnnotation ...`
+ ```
+
+* 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/Registered.md.html b/docs/checks/Registered.md.html
index 998c1403..43662a37 100644
--- a/docs/checks/Registered.md.html
+++ b/docs/checks/Registered.md.html
@@ -50,7 +50,7 @@
test.pkg.MyActivity2 is not registered in the manifest [Registered]
public class MyActivity2 extends Activity {
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -62,7 +62,7 @@
public class MyActivity1 extends Activity {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyActivity2.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -72,7 +72,7 @@
public class MyActivity2 extends Activity {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -82,7 +82,7 @@
<activity android:name=".MyActivity1" />
</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/RegistrationDetectorTest.java)
diff --git a/docs/checks/RelativeOverlap.md.html b/docs/checks/RelativeOverlap.md.html
index 1ad2b0bb..17679167 100644
--- a/docs/checks/RelativeOverlap.md.html
+++ b/docs/checks/RelativeOverlap.md.html
@@ -42,7 +42,7 @@
localized text expansion [RelativeOverlap]
<TextView
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -139,7 +139,7 @@
android:layout_toLeftOf="@id/image" />
</RelativeLayout>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RelativeOverlapDetectorTest.kt)
diff --git a/docs/checks/RememberInComposition.md.html b/docs/checks/RememberInComposition.md.html
index c2440b42..7f1a21c4 100644
--- a/docs/checks/RememberInComposition.md.html
+++ b/docs/checks/RememberInComposition.md.html
@@ -27,7 +27,7 @@
Artifact
: [androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html)
Since
-: 1.9.0-alpha01
+: 1.9.0
Affects
: Kotlin and Java files and test sources
Editing
@@ -313,7 +313,7 @@
using remember [RememberInComposition]
val barImplValue = barImpl.value
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -418,10 +418,10 @@
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)
+You can also visit the source code ([RememberInCompositionDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/RememberInCompositionDetectorTest.kt)
+[RememberInCompositionDetectorSuppressionTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/RememberInCompositionDetectorSuppressionTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
@@ -437,17 +437,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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
@@ -459,11 +459,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html).
diff --git a/docs/checks/RememberReturnType.md.html b/docs/checks/RememberReturnType.md.html
index 4a18f84a..e6b8b0d5 100644
--- a/docs/checks/RememberReturnType.md.html
+++ b/docs/checks/RememberReturnType.md.html
@@ -132,7 +132,7 @@
must not return Unit [RememberReturnType]
val unit2 = remember(number1, number2, number3, flag, calculation = unitLambda)
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -226,7 +226,7 @@
remember(number1, number2, number3, flag, calculation = unitLambda)
val unit2 = remember(number1, number2, number3, flag, calculation = unitLambda)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RememberDetectorTest.kt)
@@ -245,17 +245,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[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 d9e65eb2..01e7ec6e 100644
--- a/docs/checks/RememberSaveableSaverParameter.md.html
+++ b/docs/checks/RememberSaveableSaverParameter.md.html
@@ -84,7 +84,7 @@
[RememberSaveableSaverParameter]
val mutableStateFoo4 = rememberSaveable(fooSaver4) { mutableStateOf(Foo()) }
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -112,7 +112,7 @@
val foo4 = rememberSaveable(fooSaver4) { Foo() }
val mutableStateFoo4 = rememberSaveable(fooSaver4) { mutableStateOf(Foo()) }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-saveable-lint/src/test/java/androidx/compose/runtime/saveable/lint/RememberSaveableDetectorTest.kt)
@@ -131,17 +131,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-saveable-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-saveable-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.saveable.android)
# libs.versions.toml
[versions]
-runtime-saveable-android = "1.9.0-alpha01"
+runtime-saveable-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.runtime:runtime-saveable-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-saveable-android](androidx_compose_runtime_runtime-saveable-android.md.html).
diff --git a/docs/checks/RemoteViewLayout.md.html b/docs/checks/RemoteViewLayout.md.html
index ac7770d7..ddbc7af9 100644
--- a/docs/checks/RemoteViewLayout.md.html
+++ b/docs/checks/RemoteViewLayout.md.html
@@ -42,7 +42,7 @@
androidx.appcompat.widget.AppCompatTextView [RemoteViewLayout]
val remoteView = RemoteViews(packageName, R.layout.test)
---------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -54,7 +54,7 @@
fun test(packageName: String) {
val remoteView = RemoteViews(packageName, R.layout.test)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/test.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -84,12 +84,12 @@
<RadioGroup />
<androidx.appcompat.widget.AppCompatTextView />
</merge>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`test.pkg`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text linenumbers
@layout/test
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RemoteViewDetectorTest.kt)
diff --git a/docs/checks/RemoveWorkManagerInitializer.md.html b/docs/checks/RemoveWorkManagerInitializer.md.html
index 8a88eb28..2c6332a0 100644
--- a/docs/checks/RemoveWorkManagerInitializer.md.html
+++ b/docs/checks/RemoveWorkManagerInitializer.md.html
@@ -56,7 +56,7 @@
[RemoveWorkManagerInitializer]
<application />
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -67,7 +67,7 @@
package="com.example">
<application />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`com/example/App.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -83,7 +83,7 @@
override fun getWorkManagerConfiguration(): Configuration = TODO()
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/work/work-lint/src/test/java/androidx/work/lint/RemoveWorkManagerInitializerDetectorTest.kt)
@@ -102,17 +102,17 @@
```
// build.gradle.kts
-implementation("androidx.work:work-runtime:2.10.1")
+implementation("androidx.work:work-runtime:2.11.1")
// build.gradle
-implementation 'androidx.work:work-runtime:2.10.1'
+implementation 'androidx.work:work-runtime:2.11.1'
// build.gradle.kts with version catalogs:
implementation(libs.work.runtime)
# libs.versions.toml
[versions]
-work-runtime = "2.10.1"
+work-runtime = "2.11.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.1 is the version this documentation was generated from;
+2.11.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 999c151a..e88a66e3 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-rc01](RepeatOnLifecycleWrongUsage.md.html)
+* [RepeatOnLifecycleWrongUsage from androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01](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 11d3725f..b5a63884 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-rc01](RepeatOnLifecycleWrongUsage.md.html)
+* [RepeatOnLifecycleWrongUsage from androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01](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-rc01")
+implementation("androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.runtime.android)
# libs.versions.toml
[versions]
-lifecycle-runtime-android = "2.9.0-rc01"
+lifecycle-runtime-android = "2.11.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
@@ -83,7 +83,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 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 362b9996..62713b4b 100644
--- a/docs/checks/ReportShortcutUsage.md.html
+++ b/docs/checks/ReportShortcutUsage.md.html
@@ -48,7 +48,7 @@
[ReportShortcutUsage]
ShortcutManagerCompat.setDynamicShortcuts(context, shortcuts);
-------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -72,7 +72,7 @@
ShortcutManagerCompat.setDynamicShortcuts(context, shortcuts);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ShortcutUsageDetectorTest.kt)
diff --git a/docs/checks/RequestInstallPackagesPolicy.md.html b/docs/checks/RequestInstallPackagesPolicy.md.html
new file mode 100644
index 00000000..e97b030c
--- /dev/null
+++ b/docs/checks/RequestInstallPackagesPolicy.md.html
@@ -0,0 +1,222 @@
+
+(#) Request Install Packages Insights
+
+!!! WARNING: Request Install Packages Insights
+ This is a warning.
+
+Id
+: `RequestInstallPackagesPolicy`
+Summary
+: Request Install Packages Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Kotlin and Java files and manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+`REQUEST_INSTALL_PACKAGES` permission allows apps to request the
+installation of other app packages. This permission is restricted to the
+app's core functionality, specifically when the primary purpose directly
+involves sending, receiving, or enabling user-initiated installation of
+app packages. Using this permission to update your app, change its
+functionality or bundle other APKs for silent or unauthorized
+installation (except enterprise management) is prohibited. All
+installations must be a direct, active choice by the user. Apps
+targeting Android 8+ must hold this permission in order to use
+`Intent.ACTION_INSTALL_PACKAGE.`
+
+**Dos:**
+
+- Clearly and prominently document the core functionality requiring this
+ permission in your app’s Play Store description and when you submit
+ a declaration form in your Play Console.
+- Adhere strictly to the permitted functionalities including web
+ browsing/search, file sharing/transfer/management, enterprise device
+ management, backup/restore, device migration/phone transfer,
+ companion app to sync phone to wearable or IoT device.
+- Ensure your app prevents background or unintended installations. All
+ app package installations must be explicitly initiated by the user.
+
+**Don'ts:**
+
+- Request this permission for a functionality that is not directly
+ related to the primary purpose of your app. This includes
+ Peer-to-Peer (P2P) sharing. P2P must be the primary purpose of the
+ app in order to qualify as a permitted use.
+- Request this permission when the required task can be done with a less
+ intrusive method.
+- Change how your app uses this permission without first revising your
+ Play Console declaration with updated and accurate information.
+ Deceptive and undeclared uses of this permission are prohibited.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-request-install-packages
+See developer guidance: https://goo.gle/dac-request-install-packages
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:3:Warning: REQUEST_INSTALL_PACKAGES is restricted to
+specific core functionalities and must be user-initiated. No
+self-updates, unauthorized installs, or APK bundling.
+[RequestInstallPackagesPolicy]
+ <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
+ ----------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/RequestInstallPackagesPolicyDetectorTest.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, `RequestInstallPackagesPolicyDetector.testFlagsRequestInstallPackages`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="RequestInstallPackagesPolicy"` 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">
+ ...
+ <uses-permission tools:ignore="RequestInstallPackagesPolicy" .../>
+ ...
+ </manifest>
+ ```
+
+* Using a suppression annotation like this on the enclosing
+ element:
+
+ ```kt
+ // Kotlin
+ @Suppress("RequestInstallPackagesPolicy")
+ fun method() {
+ commit(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("RequestInstallPackagesPolicy")
+ void method() {
+ commit(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection RequestInstallPackagesPolicy
+ 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="RequestInstallPackagesPolicy" 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 'RequestInstallPackagesPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore RequestInstallPackagesPolicy ...`
+ ```
+
+* 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/RequiredSize.md.html b/docs/checks/RequiredSize.md.html
index e8b29e72..f828e845 100644
--- a/docs/checks/RequiredSize.md.html
+++ b/docs/checks/RequiredSize.md.html
@@ -56,7 +56,7 @@
layout_height attributes are missing [RequiredSize]
<EditText
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -90,7 +90,7 @@
<tag id="@+id/test" />
</EditText>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RequiredAttributeDetectorTest.java)
diff --git a/docs/checks/RequiresFeature.md.html b/docs/checks/RequiresFeature.md.html
index b55fcde2..66b5b878 100644
--- a/docs/checks/RequiresFeature.md.html
+++ b/docs/checks/RequiresFeature.md.html
@@ -81,7 +81,7 @@
test.framework.pkg.FeatureChecker#hasFeature [RequiresFeature]
api.someMethod(); // 17 - ERROR
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -189,7 +189,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -231,8 +231,7 @@
class SomeOtherApi {
val supportsFeatureX get() = FeatureChecker.hasFeature("some.name")
}
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/framework/pkg/FeatureChecker.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -242,7 +241,7 @@
public class FeatureChecker {
public static boolean hasFeature(String name) { return true; }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/SomeApi.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -255,7 +254,7 @@
@RequiresFeature(name = "some.name", enforcement = "test.framework.pkg.FeatureChecker#hasFeature")
public boolean someMethod() { return true; }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RequiresFeatureDetectorTest.kt)
diff --git a/docs/checks/RequiresWindowSdk.md.html b/docs/checks/RequiresWindowSdk.md.html
index 1888cf55..2082858e 100644
--- a/docs/checks/RequiresWindowSdk.md.html
+++ b/docs/checks/RequiresWindowSdk.md.html
@@ -53,7 +53,7 @@
[RequiresWindowSdk]
val supportedPostures = windowInfoTracker.supportedPostures // ERROR 1
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -73,7 +73,7 @@
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)
diff --git a/docs/checks/ResAuto.md.html b/docs/checks/ResAuto.md.html
index 8e91a4a0..1e0062bc 100644
--- a/docs/checks/ResAuto.md.html
+++ b/docs/checks/ResAuto.md.html
@@ -52,7 +52,7 @@
http://schemas.android.com/apk/res-auto? [ResAuto]
xmlns:app="http://schemas.android.com/apk/auto-res/"
----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,7 +76,7 @@
android:text="Button" />
</androidx.gridlayout.widget.GridLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NamespaceDetectorTest.kt)
diff --git a/docs/checks/ReservedSystemPermission.md.html b/docs/checks/ReservedSystemPermission.md.html
index 7a3f347f..9872eb8d 100644
--- a/docs/checks/ReservedSystemPermission.md.html
+++ b/docs/checks/ReservedSystemPermission.md.html
@@ -50,7 +50,7 @@
reserved system prefix android. [ReservedSystemPermission]
<permission android:name="android.permission.FOOBAR" />
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,10 +62,10 @@
<permission android:name="android.permission.BIND_APPWIDGET" />
<permission android:name="android.permission.FOOBAR" />
<application>
- <service android:permission="android.permission.BIND_APPWIDGET" />
+ <service android:name="myservice" android:permission="android.permission.BIND_APPWIDGET" />
</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/PermissionErrorDetectorTest.kt)
diff --git a/docs/checks/ResourceAsColor.md.html b/docs/checks/ResourceAsColor.md.html
index 9cbf570c..013bc400 100644
--- a/docs/checks/ResourceAsColor.md.html
+++ b/docs/checks/ResourceAsColor.md.html
@@ -66,7 +66,7 @@
[ResourceAsColor]
foo2(R.color.blue);
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -101,12 +101,12 @@
private void foo2(@androidx.annotation.ColorInt int c) {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`test.pkg`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text linenumbers
@color/blue
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ResourceTypeDetectorTest.kt)
diff --git a/docs/checks/ResourceCycle.md.html b/docs/checks/ResourceCycle.md.html
index 2035a0dc..463b1a76 100644
--- a/docs/checks/ResourceCycle.md.html
+++ b/docs/checks/ResourceCycle.md.html
@@ -44,7 +44,7 @@
should not extend itself [ResourceCycle]
<style name="DetailsPage_EditorialBuyButton" parent="@style/DetailsPage_EditorialBuyButton" />
----------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,8 +64,7 @@
-->
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ResourceCycleDetectorTest.java)
diff --git a/docs/checks/ResourceName.md.html b/docs/checks/ResourceName.md.html
index 846e87bf..44c8b3d2 100644
--- a/docs/checks/ResourceName.md.html
+++ b/docs/checks/ResourceName.md.html
@@ -48,7 +48,7 @@
[ResourceName]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -59,7 +59,7 @@
android {
resourcePrefix 'unit_test_prefix_'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/main/res/layout/activity_main.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -69,7 +69,7 @@
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/main/res/layout/unit_test_prefix_ok.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -79,7 +79,7 @@
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ResourcePrefixDetectorTest.java)
diff --git a/docs/checks/ResourceType.md.html b/docs/checks/ResourceType.md.html
index 041b4b64..f9a25c3f 100644
--- a/docs/checks/ResourceType.md.html
+++ b/docs/checks/ResourceType.md.html
@@ -39,7 +39,7 @@
src/test.kt:9:Error: Expected resource of type string [ResourceType]
setLabels(iconId) // bug: should have passed descId. Both are ints but of wrong type.
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -55,7 +55,7 @@
fun setIcon(@DrawableRes iconId: Int, @StringRes descId: Int) {
setLabels(iconId) // bug: should have passed descId. Both are ints but of wrong type.
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ResourceTypeDetectorTest.kt)
diff --git a/docs/checks/ResourcesGetColorCall.md.html b/docs/checks/ResourcesGetColorCall.md.html
index bc6c615a..b2724bd1 100644
--- a/docs/checks/ResourcesGetColorCall.md.html
+++ b/docs/checks/ResourcesGetColorCall.md.html
@@ -46,7 +46,7 @@
[ResourcesGetColorCall]
resources.getColor(0);
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
resources.getColor(0);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/AndroidDetectorTest.kt)
diff --git a/docs/checks/ResourcesGetColorStateListCall.md.html b/docs/checks/ResourcesGetColorStateListCall.md.html
index a18dc522..381a7681 100644
--- a/docs/checks/ResourcesGetColorStateListCall.md.html
+++ b/docs/checks/ResourcesGetColorStateListCall.md.html
@@ -46,7 +46,7 @@
[ResourcesGetColorStateListCall]
resources.getColorStateList(0);
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
resources.getColorStateList(0);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/AndroidDetectorTest.kt)
diff --git a/docs/checks/ResourcesGetDrawableCall.md.html b/docs/checks/ResourcesGetDrawableCall.md.html
index 9c0157cc..fad4ea68 100644
--- a/docs/checks/ResourcesGetDrawableCall.md.html
+++ b/docs/checks/ResourcesGetDrawableCall.md.html
@@ -46,7 +46,7 @@
[ResourcesGetDrawableCall]
resources.getDrawable(0);
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
resources.getDrawable(0);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/AndroidDetectorTest.kt)
diff --git a/docs/checks/RestrictCallsTo.md.html b/docs/checks/RestrictCallsTo.md.html
index 0d355e4d..33766b2b 100644
--- a/docs/checks/RestrictCallsTo.md.html
+++ b/docs/checks/RestrictCallsTo.md.html
@@ -64,7 +64,7 @@
[RestrictCallsTo]
MyApiImpl().annotatedExample()
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -100,7 +100,7 @@
println("Hello")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/DifferentFile.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -132,7 +132,7 @@
MyApiImpl().annotatedExample()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/RestrictCallsToDetectorTest.kt)
diff --git a/docs/checks/RestrictedApi.md.html b/docs/checks/RestrictedApi.md.html
index f92c7f33..70a7df67 100644
--- a/docs/checks/RestrictedApi.md.html
+++ b/docs/checks/RestrictedApi.md.html
@@ -52,7 +52,7 @@
only be accessed from subclasses [RestrictedApi]
int counter = cls.counter; // ERROR: Not from subclass
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -88,7 +88,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RestrictToDetectorTest.kt)
diff --git a/docs/checks/RetainLeaksContext.md.html b/docs/checks/RetainLeaksContext.md.html
new file mode 100644
index 00000000..1e56a804
--- /dev/null
+++ b/docs/checks/RetainLeaksContext.md.html
@@ -0,0 +1,197 @@
+
+(#) Using `retain { ... }` to store a value that extends from or references `Context` will cause a memory leak.
+
+!!! ERROR: Using `retain { ... }` to store a value that extends from or references `Context` will cause a memory leak.
+ This is an error.
+
+Id
+: `RetainLeaksContext`
+Summary
+: Using `retain { ... }` to store a value that extends from or references `Context` will cause a memory leak.
+Severity
+: Error
+Category
+: Correctness
+Platform
+: Any
+Vendor
+: Jetpack Compose
+Identifier
+: androidx.compose.runtime.retain
+Feedback
+: https://issuetracker.google.com/issues/new?component=612128
+Min
+: Lint 8.7+
+Compiled
+: Lint 8.7+
+Artifact
+: [androidx.compose.runtime:runtime-retain-android](androidx_compose_runtime_runtime-retain-android.md.html)
+Since
+: 1.10.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/runtime/runtime-retain-lint/src/main/java/androidx/compose/runtime/retain/lint/RetainDetector.kt)
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-retain-lint/src/test/java/androidx/compose/runtime/retain/lint/RetainDetectorTest.kt)
+Copyright Year
+: 2025
+
+The lifespan of a retained object or one of its keys can extend beyond
+the lifecycle of the host activity. Retaining a `Context` (or another
+type that holds a strong reference to a `Context`) as either the return
+type of `calculation` or as a key input to `retain` will leak the
+Context and prevent its memory from being properly reclaimed.
+
+If caching is necessary, consider remembering offending values instead
+of retaining them.
+
+!!! 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/runtime/foo/test.kt:14:Error: Retaining
+android.content.Context will leak a Context reference.
+[RetainLeaksContext]
+ val foo = retain { context }
+ ------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/androidx/compose/runtime/foo/test.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package androidx.compose.runtime.foo
+
+import android.app.Activity
+import android.content.Context
+import android.content.ContextWrapper
+import android.view.View
+import android.view.TextView
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.retain.retain
+
+@Composable
+fun Test(context: Context) {
+ val foo = retain { context }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-retain-lint/src/test/java/androidx/compose/runtime/retain/lint/RetainDetectorTest.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, `RetainDetector.testRetainContext`.
+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-retain-android:1.11.0-alpha06")
+
+// build.gradle
+implementation 'androidx.compose.runtime:runtime-retain-android:1.11.0-alpha06'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.runtime.retain.android)
+
+# libs.versions.toml
+[versions]
+runtime-retain-android = "1.11.0-alpha06"
+[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-retain-android = {
+ module = "androidx.compose.runtime:runtime-retain-android",
+ version.ref = "runtime-retain-android"
+}
+```
+
+1.11.0-alpha06 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-retain-lint:1.11.0-alpha06`.
+
+
+[Additional details about androidx.compose.runtime:runtime-retain-android](androidx_compose_runtime_runtime-retain-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("RetainLeaksContext")
+ fun method() {
+ retain(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("RetainLeaksContext")
+ void method() {
+ retain(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection RetainLeaksContext
+ 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="RetainLeaksContext" 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 'RetainLeaksContext'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore RetainLeaksContext ...`
+ ```
+
+* 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/RetainRememberObserver.md.html b/docs/checks/RetainRememberObserver.md.html
new file mode 100644
index 00000000..104e428e
--- /dev/null
+++ b/docs/checks/RetainRememberObserver.md.html
@@ -0,0 +1,204 @@
+
+(#) Values returned by `retain { ... }` must not implement RememberObserver unless they also implement RetainObserver.
+
+!!! ERROR: Values returned by `retain { ... }` must not implement RememberObserver unless they also implement RetainObserver.
+ This is an error.
+
+Id
+: `RetainRememberObserver`
+Summary
+: Values returned by `retain { ... }` must not implement RememberObserver unless they also implement RetainObserver.
+Severity
+: Error
+Category
+: Correctness
+Platform
+: Any
+Vendor
+: Jetpack Compose
+Identifier
+: androidx.compose.runtime.retain
+Feedback
+: https://issuetracker.google.com/issues/new?component=612128
+Min
+: Lint 8.7+
+Compiled
+: Lint 8.7+
+Artifact
+: [androidx.compose.runtime:runtime-retain-android](androidx_compose_runtime_runtime-retain-android.md.html)
+Since
+: 1.10.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/runtime/runtime-retain-lint/src/main/java/androidx/compose/runtime/retain/lint/RetainDetector.kt)
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-retain-lint/src/test/java/androidx/compose/runtime/retain/lint/RetainDetectorTest.kt)
+Copyright Year
+: 2025
+
+Objects that implement RememberObserver and not RetainObserver are
+unaware of the retainment lifecycle. They cannot be correctly retained
+because there is no valid way to dispatch the RememberObserver callbacks
+and are therefore prohibited as return values to the `calculation`
+lambda of `retain`. Attempting to retain a value that implements
+`RememberObserver` without also implementing `RetainObserver` will throw
+an exception. Either remember the value instead of retaining it, or
+implement RetainObserver on the object.
+
+Note that this inspection checks the statically declared return type to
+ensure it does not declare itself as implementing `RememberObserver`
+without also implementing `RetainObserver`. The actual runtime types are
+not checked, which may lead to false negatives or false positives if the
+`calculation` lambda returns a different type than the call to
+`retain`.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/androidx/compose/runtime/foo/Foo.kt:11:Error: Declared retained type
+androidx.compose.runtime.foo.Foo implements RememberObserver but not
+RetainObserver. [RetainRememberObserver]
+ val foo = retain { Foo() }
+ ------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/androidx/compose/runtime/foo/Foo.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package androidx.compose.runtime.foo
+
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.RememberObserver
+import androidx.compose.runtime.retain.retain
+import androidx.compose.runtime.retain.RetainObserver
+
+@Composable
+fun Test() {
+ val foo = retain { Foo() }
+}
+
+class Foo : RememberObserver {
+ override fun onRemembered() {}
+ override fun onForgotten() {}
+ override fun onAbandoned() {}
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-retain-lint/src/test/java/androidx/compose/runtime/retain/lint/RetainDetectorTest.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, `RetainDetector.testRetainObject_onlyRememberObserver`.
+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-retain-android:1.11.0-alpha06")
+
+// build.gradle
+implementation 'androidx.compose.runtime:runtime-retain-android:1.11.0-alpha06'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.runtime.retain.android)
+
+# libs.versions.toml
+[versions]
+runtime-retain-android = "1.11.0-alpha06"
+[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-retain-android = {
+ module = "androidx.compose.runtime:runtime-retain-android",
+ version.ref = "runtime-retain-android"
+}
+```
+
+1.11.0-alpha06 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-retain-lint:1.11.0-alpha06`.
+
+
+[Additional details about androidx.compose.runtime:runtime-retain-android](androidx_compose_runtime_runtime-retain-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("RetainRememberObserver")
+ fun method() {
+ retain(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("RetainRememberObserver")
+ void method() {
+ retain(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection RetainRememberObserver
+ 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="RetainRememberObserver" 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 'RetainRememberObserver'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore RetainRememberObserver ...`
+ ```
+
+* 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/RetainUnitType.md.html b/docs/checks/RetainUnitType.md.html
new file mode 100644
index 00000000..60dafe8e
--- /dev/null
+++ b/docs/checks/RetainUnitType.md.html
@@ -0,0 +1,198 @@
+
+(#) `retain` calls must not return `Unit`
+
+!!! ERROR: `retain` calls must not return `Unit`
+ This is an error.
+
+Id
+: `RetainUnitType`
+Summary
+: `retain` calls must not return `Unit`
+Severity
+: Error
+Category
+: Correctness
+Platform
+: Any
+Vendor
+: Jetpack Compose
+Identifier
+: androidx.compose.runtime.retain
+Feedback
+: https://issuetracker.google.com/issues/new?component=612128
+Min
+: Lint 8.7+
+Compiled
+: Lint 8.7+
+Artifact
+: [androidx.compose.runtime:runtime-retain-android](androidx_compose_runtime_runtime-retain-android.md.html)
+Since
+: 1.10.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/runtime/runtime-retain-lint/src/main/java/androidx/compose/runtime/retain/lint/RetainDetector.kt)
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-retain-lint/src/test/java/androidx/compose/runtime/retain/lint/RetainDetectorTest.kt)
+Copyright Year
+: 2025
+
+A call to `retain` that returns `Unit` is always an error. This
+typically happens when using `retain` to perform an action or mutate
+variables on an object. Instead, use `SideEffect` (or `RetainedEffect`)
+to make deferred changes once the composition succeeds, or mutate
+`MutableState` backed variables directly, as these will handle
+composition failure for you.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/androidx/compose/runtime/foo/test.kt:9:Error: retain calls must not
+return Unit. [RetainUnitType]
+ val foo = retain { Unit }
+ ------
+src/androidx/compose/runtime/foo/test.kt:10:Error: retain calls must not
+return Unit. [RetainUnitType]
+ val bar = retain<Unit> { }
+ ------
+src/androidx/compose/runtime/foo/test.kt:11:Error: retain calls must not
+return Unit. [RetainUnitType]
+ val baz = retain { noop() }
+ ------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/androidx/compose/runtime/foo/test.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package androidx.compose.runtime.foo
+
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.retain.retain
+
+@Composable
+fun Test() {
+ val foo = retain { Unit }
+ val bar = retain { }
+ val baz = retain { noop() }
+}
+
+fun noop() {}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-retain-lint/src/test/java/androidx/compose/runtime/retain/lint/RetainDetectorTest.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, `RetainDetector.testRetainUnit`.
+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-retain-android:1.11.0-alpha06")
+
+// build.gradle
+implementation 'androidx.compose.runtime:runtime-retain-android:1.11.0-alpha06'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.runtime.retain.android)
+
+# libs.versions.toml
+[versions]
+runtime-retain-android = "1.11.0-alpha06"
+[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-retain-android = {
+ module = "androidx.compose.runtime:runtime-retain-android",
+ version.ref = "runtime-retain-android"
+}
+```
+
+1.11.0-alpha06 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-retain-lint:1.11.0-alpha06`.
+
+
+[Additional details about androidx.compose.runtime:runtime-retain-android](androidx_compose_runtime_runtime-retain-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("RetainUnitType")
+ fun method() {
+ retain(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("RetainUnitType")
+ void method() {
+ retain(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection RetainUnitType
+ 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="RetainUnitType" 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 'RetainUnitType'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore RetainUnitType ...`
+ ```
+
+* 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/RetainingDoNotRetainType.md.html b/docs/checks/RetainingDoNotRetainType.md.html
new file mode 100644
index 00000000..e977e194
--- /dev/null
+++ b/docs/checks/RetainingDoNotRetainType.md.html
@@ -0,0 +1,216 @@
+
+(#) Types annotated with `@DoNotRetain` should not be returned as the result of `retain`, either directly or transitively
+
+!!! ERROR: Types annotated with `@DoNotRetain` should not be returned as the result of `retain`, either directly or transitively
+ This is an error.
+
+Id
+: `RetainingDoNotRetainType`
+Summary
+: Types annotated with `@DoNotRetain` should not be returned as the result of `retain`, either directly or transitively
+Severity
+: Error
+Category
+: Correctness
+Platform
+: Any
+Vendor
+: Jetpack Compose
+Identifier
+: androidx.compose.runtime.retain
+Feedback
+: https://issuetracker.google.com/issues/new?component=612128
+Min
+: Lint 8.7+
+Compiled
+: Lint 8.7+
+Artifact
+: [androidx.compose.runtime:runtime-retain-android](androidx_compose_runtime_runtime-retain-android.md.html)
+Since
+: 1.10.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/runtime/runtime-retain-lint/src/main/java/androidx/compose/runtime/retain/lint/RetainDetector.kt)
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-retain-lint/src/test/java/androidx/compose/runtime/retain/lint/RetainDetectorTest.kt)
+Copyright Year
+: 2025
+
+Objects annotated with `@DoNotRetain` are not intended to be used with
+retain. Types marked with this annotation are not designed for
+retention, generally because they have an independent lifecycle that
+exceeds the retention lifespan and will leak resources. The
+type'sdocumentation may have more information about why it does not
+support retention.
+
+This inspection checks that marked types are never directly returned by
+the `calculation` lambda of `retain` or as a key input to `retain`.
+Types marked with `@DoNotRetain` may optionally specify more information
+about why they should not be retained.
+
+!!! 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/runtime/foo/UnretainableTypeWithCause.kt:10:Error:
+androidx.compose.runtime.foo.UnretainableTypeWithCause is annotated as
+@DoNotRetain: Unretainable for testing [RetainingDoNotRetainType]
+ val foo = retain { UnretainableTypeWithCause() }
+ ------
+src/androidx/compose/runtime/foo/UnretainableTypeWithCause.kt:11:Error:
+androidx.compose.runtime.foo.UnretainableTypeWithoutCause is annotated
+as @DoNotRetain [RetainingDoNotRetainType]
+ val bar = retain { UnretainableTypeWithoutCause() }
+ ------
+src/androidx/compose/runtime/foo/UnretainableTypeWithCause.kt:12:Error:
+androidx.compose.runtime.foo.SubclassOfUnretainableType is annotated as
+@DoNotRetain: Unretainable for testing [RetainingDoNotRetainType]
+ val baz = retain { SubclassOfUnretainableType() }
+ ------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/androidx/compose/runtime/foo/UnretainableTypeWithCause.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package androidx.compose.runtime.foo
+
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.annotation.DoNotRetain
+import androidx.compose.runtime.retain.retain
+
+@Composable
+fun Test() {
+ val foo = retain { UnretainableTypeWithCause() }
+ val bar = retain { UnretainableTypeWithoutCause() }
+ val baz = retain { SubclassOfUnretainableType() }
+}
+
+@DoNotRetain("Unretainable for testing")
+open class UnretainableTypeWithCause()
+
+@DoNotRetain
+class UnretainableTypeWithoutCause()
+
+class SubclassOfUnretainableType() : UnretainableTypeWithCause()
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/runtime/runtime-retain-lint/src/test/java/androidx/compose/runtime/retain/lint/RetainDetectorTest.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, `RetainDetector.testRetainMarkedType`.
+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-retain-android:1.11.0-alpha06")
+
+// build.gradle
+implementation 'androidx.compose.runtime:runtime-retain-android:1.11.0-alpha06'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.runtime.retain.android)
+
+# libs.versions.toml
+[versions]
+runtime-retain-android = "1.11.0-alpha06"
+[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-retain-android = {
+ module = "androidx.compose.runtime:runtime-retain-android",
+ version.ref = "runtime-retain-android"
+}
+```
+
+1.11.0-alpha06 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-retain-lint:1.11.0-alpha06`.
+
+
+[Additional details about androidx.compose.runtime:runtime-retain-android](androidx_compose_runtime_runtime-retain-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("RetainingDoNotRetainType")
+ fun method() {
+ retain(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("RetainingDoNotRetainType")
+ void method() {
+ retain(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection RetainingDoNotRetainType
+ 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="RetainingDoNotRetainType" 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 'RetainingDoNotRetainType'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore RetainingDoNotRetainType ...`
+ ```
+
+* 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/RetrofitUsage.md.html b/docs/checks/RetrofitUsage.md.html
index f14e355f..065f6bea 100644
--- a/docs/checks/RetrofitUsage.md.html
+++ b/docs/checks/RetrofitUsage.md.html
@@ -62,7 +62,7 @@
@FormUrlEncoded. [RetrofitUsage]
fun missingAnnotation(@Field("hi") input: String): String
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -91,7 +91,7 @@
@POST("/")
fun correct(@Field("hi") input: String): String
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/retrofit/RetrofitUsageDetectorTest.kt)
diff --git a/docs/checks/ReturnFromAwaitPointerEventScope.md.html b/docs/checks/ReturnFromAwaitPointerEventScope.md.html
index c3b583de..b4daa245 100644
--- a/docs/checks/ReturnFromAwaitPointerEventScope.md.html
+++ b/docs/checks/ReturnFromAwaitPointerEventScope.md.html
@@ -45,6 +45,48 @@
guarantee that the events will persist between those calls. In this case
you should keep all events inside the awaitPointerEventScope block.
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/test/test.kt:12:Warning: Returning from awaitPointerEventScope may
+cause some input events to be dropped
+[ReturnFromAwaitPointerEventScope]
+ val assigned = awaitPointerEventScope {
+ ----------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/test/test.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package test
+
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.input.pointer.pointerInput
+
+@Composable
+fun TestComposable() {
+ Modifier.pointerInput(Unit) {
+ while (true) {
+ val assigned = awaitPointerEventScope {
+
+ }
+ }
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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/ReturnFromAwaitPointerEventScopeDetectorTest.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, `ReturnFromAwaitPointerEventScopeDetector.awaitPointerEventScope_assignedToVariable_shouldWarn`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=612128.
+
(##) Including
!!!
@@ -53,17 +95,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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 +117,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html).
diff --git a/docs/checks/ReturnThis.md.html b/docs/checks/ReturnThis.md.html
index e20ae1ff..d9c83ea1 100644
--- a/docs/checks/ReturnThis.md.html
+++ b/docs/checks/ReturnThis.md.html
@@ -40,7 +40,7 @@
been annotated with @ReturnThis) [ReturnThis]
return MyClass()
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
return MyClass()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ReturnThisDetectorTest.kt)
diff --git a/docs/checks/RiskyLibrary.md.html b/docs/checks/RiskyLibrary.md.html
index bff39d35..c3716439 100644
--- a/docs/checks/RiskyLibrary.md.html
+++ b/docs/checks/RiskyLibrary.md.html
@@ -58,7 +58,7 @@
[RiskyLibrary]
compile 'log4j:log4j:1.2.13' // Critical BLOCKING
--------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -100,7 +100,7 @@
compile 'com.another.example:example' // Ok (not in Index)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/RtlCompat.md.html b/docs/checks/RtlCompat.md.html
index c4ba0056..3fc360ec 100644
--- a/docs/checks/RtlCompat.md.html
+++ b/docs/checks/RtlCompat.md.html
@@ -88,7 +88,7 @@
android:layout_alignRight="@id/cancel" [RtlCompat]
android:layout_alignEnd="@id/cancel"
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -146,7 +146,7 @@
android:src="@drawable/menu_list_divider" />
</RelativeLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RtlDetectorTest.java)
diff --git a/docs/checks/RtlEnabled.md.html b/docs/checks/RtlEnabled.md.html
index 060fdbc7..14da4ce8 100644
--- a/docs/checks/RtlEnabled.md.html
+++ b/docs/checks/RtlEnabled.md.html
@@ -47,7 +47,7 @@
does not explicitly enable or disable RTL support with
android:supportsRtl in the manifest [RtlEnabled]
0 errors, 4 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -57,7 +57,7 @@
package="test.rtl">
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="17" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/rtl.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -127,10 +127,10 @@
tools:ignore="RtlHardcoded" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/RtlDetectorTest.java)
+You can also visit the source code ([RtlDetectorTest.java](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/RtlDetectorTest.java)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/RtlHardcoded.md.html b/docs/checks/RtlHardcoded.md.html
index 8338e225..93562f19 100644
--- a/docs/checks/RtlHardcoded.md.html
+++ b/docs/checks/RtlHardcoded.md.html
@@ -69,7 +69,7 @@
correct behavior in right-to-left locales [RtlHardcoded]
android:gravity="right"
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -79,7 +79,7 @@
package="test.rtl">
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="17" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/rtl.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -149,7 +149,7 @@
tools:ignore="RtlHardcoded" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RtlDetectorTest.java)
diff --git a/docs/checks/RtlSymmetry.md.html b/docs/checks/RtlSymmetry.md.html
index 7911c7c8..29ba759f 100644
--- a/docs/checks/RtlSymmetry.md.html
+++ b/docs/checks/RtlSymmetry.md.html
@@ -44,7 +44,7 @@
[RtlSymmetry]
android:paddingRight="120dip"
--------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -116,7 +116,7 @@
android:text="@string/cancel" />
</RelativeLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RtlDetectorTest.java)
diff --git a/docs/checks/RxJava2DefaultScheduler.md.html b/docs/checks/RxJava2DefaultScheduler.md.html
index 7dd79ab3..aa1b8498 100644
--- a/docs/checks/RxJava2DefaultScheduler.md.html
+++ b/docs/checks/RxJava2DefaultScheduler.md.html
@@ -47,7 +47,7 @@
scheduler [RxJava2DefaultScheduler]
Observable.interval(5, TimeUnit.SECONDS);
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
Observable.interval(5, TimeUnit.SECONDS);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-rxjava2-lint/src/test/kotlin/com/vanniktech/lintrules/rxjava2/RxJava2DefaultSchedulerDetectorTest.kt)
diff --git a/docs/checks/RxJava2DisposableAddAllCall.md.html b/docs/checks/RxJava2DisposableAddAllCall.md.html
index 8321a859..0cdfd9dd 100644
--- a/docs/checks/RxJava2DisposableAddAllCall.md.html
+++ b/docs/checks/RxJava2DisposableAddAllCall.md.html
@@ -46,7 +46,7 @@
[RxJava2DisposableAddAllCall]
cd.addAll();
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
cd.addAll();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-rxjava2-lint/src/test/kotlin/com/vanniktech/lintrules/rxjava2/RxJava2DisposableAddAllCallDetectorTest.kt)
diff --git a/docs/checks/RxJava2DisposableDisposeCall.md.html b/docs/checks/RxJava2DisposableDisposeCall.md.html
index 4c5f3d32..463a754d 100644
--- a/docs/checks/RxJava2DisposableDisposeCall.md.html
+++ b/docs/checks/RxJava2DisposableDisposeCall.md.html
@@ -50,7 +50,7 @@
[RxJava2DisposableDisposeCall]
cd.dispose();
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
cd.dispose();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-rxjava2-lint/src/test/kotlin/com/vanniktech/lintrules/rxjava2/RxJava2DisposableDisposeCallDetectorTest.kt)
diff --git a/docs/checks/RxJava2MethodMissingCheckReturnValue.md.html b/docs/checks/RxJava2MethodMissingCheckReturnValue.md.html
index 46dea422..ebd5733a 100644
--- a/docs/checks/RxJava2MethodMissingCheckReturnValue.md.html
+++ b/docs/checks/RxJava2MethodMissingCheckReturnValue.md.html
@@ -92,7 +92,7 @@
annotation [RxJava2MethodMissingCheckReturnValue]
private Observable<List<Object>> observableList() {
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -156,7 +156,7 @@
return null;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-rxjava2-lint/src/test/kotlin/com/vanniktech/lintrules/rxjava2/RxJava2MethodMissingCheckReturnValueDetectorTest.kt)
diff --git a/docs/checks/RxJava2MissingCompositeDisposableClear.md.html b/docs/checks/RxJava2MissingCompositeDisposableClear.md.html
index 4119698a..4752df91 100644
--- a/docs/checks/RxJava2MissingCompositeDisposableClear.md.html
+++ b/docs/checks/RxJava2MissingCompositeDisposableClear.md.html
@@ -48,7 +48,7 @@
[RxJava2MissingCompositeDisposableClear]
CompositeDisposable cd;
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
class Example {
CompositeDisposable cd;
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-rxjava2-lint/src/test/kotlin/com/vanniktech/lintrules/rxjava2/RxJava2MissingCompositeDisposableClearDetectorTest.kt)
diff --git a/docs/checks/RxJava2SchedulersFactoryCall.md.html b/docs/checks/RxJava2SchedulersFactoryCall.md.html
index 0dcd973c..fa5528b0 100644
--- a/docs/checks/RxJava2SchedulersFactoryCall.md.html
+++ b/docs/checks/RxJava2SchedulersFactoryCall.md.html
@@ -48,7 +48,7 @@
it directly [RxJava2SchedulersFactoryCall]
return Schedulers.io();
--
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
return Schedulers.io();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-rxjava2-lint/src/test/kotlin/com/vanniktech/lintrules/rxjava2/RxJava2SchedulersFactoryCallDetectorTest.kt)
diff --git a/docs/checks/RxJava2SubscribeMissingOnError.md.html b/docs/checks/RxJava2SubscribeMissingOnError.md.html
index ad9c527a..18e06fb4 100644
--- a/docs/checks/RxJava2SubscribeMissingOnError.md.html
+++ b/docs/checks/RxJava2SubscribeMissingOnError.md.html
@@ -47,7 +47,7 @@
error Consumer [RxJava2SubscribeMissingOnError]
o.subscribe();
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
o.subscribe();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-rxjava2-lint/src/test/kotlin/com/vanniktech/lintrules/rxjava2/RxJava2SubscribeMissingOnErrorDetectorTest.kt)
diff --git a/docs/checks/SQLiteString.md.html b/docs/checks/SQLiteString.md.html
index 72b62df2..7d629b95 100644
--- a/docs/checks/SQLiteString.md.html
+++ b/docs/checks/SQLiteString.md.html
@@ -67,7 +67,7 @@
zeroes. See issue explanation for details.) [SQLiteString]
db.execSQL(TracksColumns.CREATE_TABLE); // ERROR
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -100,7 +100,7 @@
+ ICON + " STRING"
+ ");";
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/SQLiteTest.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -145,7 +145,7 @@
db.execSQL("CREATE TABLE " + tableName + "(" + schema + ");");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SQLiteDetectorTest.java)
diff --git a/docs/checks/SSLCertificateSocketFactoryCreateSocket.md.html b/docs/checks/SSLCertificateSocketFactoryCreateSocket.md.html
index 97eeab72..115bc130 100644
--- a/docs/checks/SSLCertificateSocketFactoryCreateSocket.md.html
+++ b/docs/checks/SSLCertificateSocketFactoryCreateSocket.md.html
@@ -86,7 +86,7 @@
[SSLCertificateSocketFactoryCreateSocket]
sf.createSocket(inet6, 80, inet, 2000);
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -123,7 +123,7 @@
SSLCertificateSocketFactory.getInsecure(-1,null));
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SslCertificateSocketFactoryDetectorTest.kt)
diff --git a/docs/checks/SSLCertificateSocketFactoryGetInsecure.md.html b/docs/checks/SSLCertificateSocketFactoryGetInsecure.md.html
index d7f7d6bf..bde41dc7 100644
--- a/docs/checks/SSLCertificateSocketFactoryGetInsecure.md.html
+++ b/docs/checks/SSLCertificateSocketFactoryGetInsecure.md.html
@@ -48,7 +48,7 @@
peers [SSLCertificateSocketFactoryGetInsecure]
SSLCertificateSocketFactory.getInsecure(-1,null));
------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -85,7 +85,7 @@
SSLCertificateSocketFactory.getInsecure(-1,null));
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SslCertificateSocketFactoryDetectorTest.kt)
diff --git a/docs/checks/ScheduleExactAlarm.md.html b/docs/checks/ScheduleExactAlarm.md.html
index b91a0f3a..8fa4624a 100644
--- a/docs/checks/ScheduleExactAlarm.md.html
+++ b/docs/checks/ScheduleExactAlarm.md.html
@@ -48,7 +48,7 @@
`SecurityException`s [ScheduleExactAlarm]
alarmManager.setExact(AlarmManager.ELAPSED_REALTIME, 5000, null)
----------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -58,7 +58,7 @@
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-sdk android:targetSdkVersion="33" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/AlarmTest.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -75,7 +75,7 @@
} catch (e: SecurityException) {}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AlarmDetectorTest.kt)
diff --git a/docs/checks/ScopedStorage.md.html b/docs/checks/ScopedStorage.md.html
index bc38bcab..c7aeda8f 100644
--- a/docs/checks/ScopedStorage.md.html
+++ b/docs/checks/ScopedStorage.md.html
@@ -70,7 +70,7 @@
requestLegacyExternalStorage [ScopedStorage]
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!-- ERROR -->
-----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -82,7 +82,7 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!-- ERROR -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><!-- OK -->
</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/ScopedStorageDetectorTest.kt)
diff --git a/docs/checks/ScrollViewCount.md.html b/docs/checks/ScrollViewCount.md.html
index 04d7e5e9..04666e4d 100644
--- a/docs/checks/ScrollViewCount.md.html
+++ b/docs/checks/ScrollViewCount.md.html
@@ -42,7 +42,7 @@
child [ScrollViewCount]
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,7 +62,7 @@
android:layout_height="match_parent" />
</ScrollView>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ChildCountDetectorTest.kt)
diff --git a/docs/checks/ScrollViewSize.md.html b/docs/checks/ScrollViewSize.md.html
index 74dc22c6..c3c42b9f 100644
--- a/docs/checks/ScrollViewSize.md.html
+++ b/docs/checks/ScrollViewSize.md.html
@@ -46,7 +46,7 @@
android:layout_width="wrap_content" [ScrollViewSize]
android:layout_width="match_parent"
-----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
android:layout_height="match_parent" />
</HorizontalScrollView>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ScrollViewChildDetectorTest.kt)
diff --git a/docs/checks/SdCardPath.md.html b/docs/checks/SdCardPath.md.html
index 5666bf10..cc221e90 100644
--- a/docs/checks/SdCardPath.md.html
+++ b/docs/checks/SdCardPath.md.html
@@ -107,7 +107,7 @@
[SdCardPath]
String s = "file://sdcard/foo";
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -149,10 +149,16 @@
String s = "file://sdcard/foo";
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-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/SdCardDetectorTest.java)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the source code ([SdCardDetectorTest.java](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/SdCardDetectorTest.java)
+[ApiDetectorProvisionalTest.kt](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/ApiDetectorProvisionalTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.java)
+[ConfigurationHierarchyTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/ConfigurationHierarchyTest.kt)
+[LintXmlConfigurationTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/LintXmlConfigurationTest.kt)
+[LintBaselineTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/LintBaselineTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/SecretInSource.md.html b/docs/checks/SecretInSource.md.html
index 1f85123b..f9d949eb 100644
--- a/docs/checks/SecretInSource.md.html
+++ b/docs/checks/SecretInSource.md.html
@@ -49,7 +49,7 @@
source code [SecretInSource]
val model2 = GenerativeModel("name", "AIzadGhpcyBpcyBhbm90aGVy_IHQ-akd==")
------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
val model1 = GenerativeModel("name", KEY)
val model2 = GenerativeModel("name", "AIzadGhpcyBpcyBhbm90aGVy_IHQ-akd==")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SecretDetectorTest.kt)
diff --git a/docs/checks/SecureRandom.md.html b/docs/checks/SecureRandom.md.html
index f5e62e82..74e4531f 100644
--- a/docs/checks/SecureRandom.md.html
+++ b/docs/checks/SecureRandom.md.html
@@ -98,7 +98,7 @@
[SecureRandom]
random2.setSeed(fixedSeed); // Wrong
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -162,7 +162,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SecureRandomDetectorTest.kt)
diff --git a/docs/checks/SelectableText.md.html b/docs/checks/SelectableText.md.html
index 69610c9a..098581bc 100644
--- a/docs/checks/SelectableText.md.html
+++ b/docs/checks/SelectableText.md.html
@@ -52,7 +52,7 @@
[SelectableText]
<TextView
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -152,7 +152,7 @@
android:textIsSelectable="true" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TextViewDetectorTest.java)
diff --git a/docs/checks/SelectedPhotoAccess.md.html b/docs/checks/SelectedPhotoAccess.md.html
index 82bca523..843917d4 100644
--- a/docs/checks/SelectedPhotoAccess.md.html
+++ b/docs/checks/SelectedPhotoAccess.md.html
@@ -51,7 +51,7 @@
Selected Photos Access introduced in Android 14+ [SelectedPhotoAccess]
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" android:minSdkVersion="33"/>
-----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -79,8 +79,7 @@
</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/SelectedPhotoAccessDetectorTest.kt)
diff --git a/docs/checks/SensitiveExternalPath.md.html b/docs/checks/SensitiveExternalPath.md.html
index ce820ee0..9d614366 100644
--- a/docs/checks/SensitiveExternalPath.md.html
+++ b/docs/checks/SensitiveExternalPath.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Resource files
Editing
@@ -55,7 +55,7 @@
stored or shared via [SensitiveExternalPath]
<external-path name="external_path" path="sdcard/"/>
----------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -67,7 +67,7 @@
<files-path name="my_docs" path="docs/"/>
<external-path name="external_path" path="sdcard/"/>
</paths>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MisconfiguredFileProviderDetectorTest.kt)
@@ -87,17 +87,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/SerializableUsage.md.html b/docs/checks/SerializableUsage.md.html
index 80336bfc..6c5db3fa 100644
--- a/docs/checks/SerializableUsage.md.html
+++ b/docs/checks/SerializableUsage.md.html
@@ -54,7 +54,7 @@
[SerializableUsage]
class ImplementsExplicitly : RuntimeException, Serializable
--------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
import kotlin.RuntimeException
class ImplementsExplicitly : RuntimeException, Serializable
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/SerializableDetectorTest.kt)
diff --git a/docs/checks/ServiceCast.md.html b/docs/checks/ServiceCast.md.html
index 5ae15114..9def1ab9 100644
--- a/docs/checks/ServiceCast.md.html
+++ b/docs/checks/ServiceCast.md.html
@@ -54,7 +54,7 @@
[ServiceCast]
DisplayManager displayServiceWrong = (DisplayManager) context
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -91,7 +91,7 @@
android.text.ClipboardManager clipboard2 = (android.text.ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ServiceCastDetectorTest.kt)
diff --git a/docs/checks/SetAndClearCommunicationDevice.md.html b/docs/checks/SetAndClearCommunicationDevice.md.html
index 9b648863..c4f98066 100644
--- a/docs/checks/SetAndClearCommunicationDevice.md.html
+++ b/docs/checks/SetAndClearCommunicationDevice.md.html
@@ -44,7 +44,7 @@
after setCommunicationDevice() [SetAndClearCommunicationDevice]
manager.setCommunicationDevice(AudioDeviceInfo())
-------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
manager.setCommunicationDevice(AudioDeviceInfo())
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CommunicationDeviceDetectorTest.kt)
diff --git a/docs/checks/SetJavaScriptEnabled.md.html b/docs/checks/SetJavaScriptEnabled.md.html
index a5b8c22a..ff08de03 100644
--- a/docs/checks/SetJavaScriptEnabled.md.html
+++ b/docs/checks/SetJavaScriptEnabled.md.html
@@ -47,7 +47,7 @@
application, review carefully [SetJavaScriptEnabled]
webView.getSettings().setJavaScriptEnabled(true); // bad
------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -90,7 +90,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SetJavaScriptEnabledDetectorTest.kt)
diff --git a/docs/checks/SetTextI18n.md.html b/docs/checks/SetTextI18n.md.html
index 0468819e..b09b3956 100644
--- a/docs/checks/SetTextI18n.md.html
+++ b/docs/checks/SetTextI18n.md.html
@@ -64,7 +64,7 @@
not be translated. Use Android resources instead. [SetTextI18n]
btn.setText("User " + getUserName());
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -99,7 +99,7 @@
return "stub";
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SetTextDetectorTest.kt)
diff --git a/docs/checks/SetWorldReadable.md.html b/docs/checks/SetWorldReadable.md.html
index f43e16cc..a2ad3f66 100644
--- a/docs/checks/SetWorldReadable.md.html
+++ b/docs/checks/SetWorldReadable.md.html
@@ -45,7 +45,7 @@
[SetWorldReadable]
mFile.setReadable(true, false);
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -109,7 +109,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SecurityDetectorTest.java)
diff --git a/docs/checks/SetWorldWritable.md.html b/docs/checks/SetWorldWritable.md.html
index 90688bef..455c575e 100644
--- a/docs/checks/SetWorldWritable.md.html
+++ b/docs/checks/SetWorldWritable.md.html
@@ -45,7 +45,7 @@
[SetWorldWritable]
mFile.setWritable(true, false);
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -109,7 +109,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SecurityDetectorTest.java)
diff --git a/docs/checks/ShiftFlags.md.html b/docs/checks/ShiftFlags.md.html
index d9413d82..e0e4367d 100644
--- a/docs/checks/ShiftFlags.md.html
+++ b/docs/checks/ShiftFlags.md.html
@@ -56,7 +56,7 @@
constant using 1 << 4 instead [ShiftFlags]
public static final int FLAG12 = 0x10;
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -101,7 +101,7 @@
@IntDef(flag = true, value={FLAG1,FLAG9,FLAG13}) private @interface Flags13 {}
@IntDef(flag = true, value={FLAG1,FLAG9,FLAG14}) private @interface Flags14 {}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AnnotationDetectorTest.kt)
diff --git a/docs/checks/ShortAlarm.md.html b/docs/checks/ShortAlarm.md.html
index 52a8467c..291bcd7c 100644
--- a/docs/checks/ShortAlarm.md.html
+++ b/docs/checks/ShortAlarm.md.html
@@ -53,7 +53,7 @@
as of Android 5.1; don't rely on this to be exact [ShortAlarm]
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, 5000, interval2, null); // ERROR
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -81,10 +81,12 @@
public static final long MY_INTERVAL = 1000L;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/AlarmDetectorTest.kt)
+You can also visit the source code ([AlarmDetectorTest.kt](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/AlarmDetectorTest.kt)
+[LintDetectorDetectorTest.kt](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/LintDetectorDetectorTest.kt)
+[SuppressibleTestModeTest.kt](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/infrastructure/SuppressibleTestModeTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/ShouldUseStaticImport.md.html b/docs/checks/ShouldUseStaticImport.md.html
index 66e40b1b..47934d75 100644
--- a/docs/checks/ShouldUseStaticImport.md.html
+++ b/docs/checks/ShouldUseStaticImport.md.html
@@ -46,7 +46,7 @@
[ShouldUseStaticImport]
TimeUnit.SECONDS.toDays(1);
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
TimeUnit.SECONDS.toDays(1);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/ShouldUseStaticImportDetectorTest.kt)
diff --git a/docs/checks/ShowToast.md.html b/docs/checks/ShowToast.md.html
index acc6a469..ed3d5263 100644
--- a/docs/checks/ShowToast.md.html
+++ b/docs/checks/ShowToast.md.html
@@ -58,7 +58,7 @@
you forget to call show()? [ShowToast]
Toast toast2 = Toast.makeText(context, "foo", Toast.LENGTH_LONG); // not shown
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -127,10 +127,10 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/ToastDetectorTest.kt)
+You can also visit the source code ([ToastDetectorTest.kt](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/ToastDetectorTest.kt)
+[DataFlowAnalyzerTest.kt](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/DataFlowAnalyzerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/SignatureOrSystemPermissions.md.html b/docs/checks/SignatureOrSystemPermissions.md.html
index aaf5931c..38be3320 100644
--- a/docs/checks/SignatureOrSystemPermissions.md.html
+++ b/docs/checks/SignatureOrSystemPermissions.md.html
@@ -48,7 +48,7 @@
set to signatureOrSystem [SignatureOrSystemPermissions]
android:protectionLevel="signatureOrSystem"/>
-------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,7 +74,7 @@
</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/SignatureOrSystemDetectorTest.java)
diff --git a/docs/checks/SimilarGradleDependency.md.html b/docs/checks/SimilarGradleDependency.md.html
index c37d22f9..6e223bb9 100644
--- a/docs/checks/SimilarGradleDependency.md.html
+++ b/docs/checks/SimilarGradleDependency.md.html
@@ -49,7 +49,7 @@
[SimilarGradleDependency]
joda_library2 = { module = "joda-time:joda-time", version = "2.0"}
-------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
joda_library = { module = "joda-time:joda-time", version.ref = "jodaVersion"}
joda_library2 = { module = "joda-time:joda-time", version = "2.0"}
dagger-lib = { group = "com.squareup.dagger", name ="dagger", version.ref = "dagger" }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/SimpleDateFormat.md.html b/docs/checks/SimpleDateFormat.md.html
index 354da10f..5f06717c 100644
--- a/docs/checks/SimpleDateFormat.md.html
+++ b/docs/checks/SimpleDateFormat.md.html
@@ -66,7 +66,7 @@
Locale.US for ASCII dates. [SimpleDateFormat]
new SimpleDateFormat("yyyy-MM-dd", DateFormatSymbols.getInstance()); // WRONG
-------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -109,7 +109,7 @@
new SimpleDateFormat("yyyy-MM-dd", Locale.US); // OK
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/DateFormatDetectorTest.kt)
diff --git a/docs/checks/SlashPathAttribute.md.html b/docs/checks/SlashPathAttribute.md.html
new file mode 100644
index 00000000..1ce728a7
--- /dev/null
+++ b/docs/checks/SlashPathAttribute.md.html
@@ -0,0 +1,160 @@
+
+(#) The "path" attribute should not be set to "/" as a path
+
+!!! WARNING: The "path" attribute should not be set to "/" as a path
+ This is a warning.
+
+Id
+: `SlashPathAttribute`
+Summary
+: The "path" attribute should not be set to "/" as a path
+Severity
+: Warning
+Category
+: Security
+Platform
+: Android
+Vendor
+: Google - Android 3P Vulnerability Research
+Contact
+: https://github.com/google/android-security-lints
+Feedback
+: https://github.com/google/android-security-lints/issues
+Min
+: Lint 4.1
+Compiled
+: Lint 8.0 and 8.1
+Artifact
+: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
+Since
+: 1.0.4
+Affects
+: Resource files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://goo.gle/SlashPathAttribute
+Implementation
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/main/java/com/example/lint/checks/MisconfiguredFileProviderDetector.kt)
+Tests
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MisconfiguredFileProviderDetectorTest.kt)
+Copyright Year
+: 2023
+
+Using a broad path range like "/" can lead to the accidental exposure of
+sensitive files. Ensure that a specific, narrow and limited path is
+shared to prevent mistakenly exposing sensitive data.
+
+!!! 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
+res/xml/file_paths.xml:5:Warning: The "path" attribute should not be set
+to "/" [SlashPathAttribute]
+ <cache-path name="home" path="/"/>
+ ----------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`res/xml/file_paths.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+ <paths xmlns:android="http://schemas.android.com/apk/res/android">
+ <files-path name="my_images" path="images/"/>
+ <files-path name="my_docs" path="docs/"/>
+ <cache-path name="home" path="/"/>
+ </paths>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/MisconfiguredFileProviderDetectorTest.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, `MisconfiguredFileProviderDetector.testWhenSlashPathUsedInConfig_showsWarningAndQuickFix`.
+To report a problem with this extracted sample, visit
+https://github.com/google/android-security-lints/issues.
+
+(##) 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.android.security.lint:lint:1.0.4")
+
+// build.gradle
+lintChecks 'com.android.security.lint:lint:1.0.4'
+
+// build.gradle.kts with version catalogs:
+lintChecks(libs.com.android.security.lint.lint)
+
+# libs.versions.toml
+[versions]
+com-android-security-lint-lint = "1.0.4"
+[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:
+com-android-security-lint-lint = {
+ module = "com.android.security.lint:lint",
+ version.ref = "com-android-security-lint-lint"
+}
+```
+
+1.0.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute `tools:ignore="SlashPathAttribute"`
+ 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="SlashPathAttribute" 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 'SlashPathAttribute'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore SlashPathAttribute ...`
+ ```
+
+* 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/Slices.md.html b/docs/checks/Slices.md.html
index dde80fc0..2087601c 100644
--- a/docs/checks/Slices.md.html
+++ b/docs/checks/Slices.md.html
@@ -44,7 +44,7 @@
row added to it [Slices]
ListBuilder lb2 = new ListBuilder(context, uri, ttl); // missing on this one
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -112,7 +112,7 @@
rb.setTitle(null, true /* isLoading */);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SliceDetectorTest.kt)
diff --git a/docs/checks/SlotReused.md.html b/docs/checks/SlotReused.md.html
index 68785581..d712b37a 100644
--- a/docs/checks/SlotReused.md.html
+++ b/docs/checks/SlotReused.md.html
@@ -69,7 +69,7 @@
for more information. [SlotReused]
slot: @Composable () -> Unit,
----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -101,7 +101,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/compose-lints/tree/main/compose-lint-checks/src/test/java/slack/lint/compose/SlotReusedDetectorTest.kt)
diff --git a/docs/checks/SmallSp.md.html b/docs/checks/SmallSp.md.html
index be2b01e3..fa95e7e4 100644
--- a/docs/checks/SmallSp.md.html
+++ b/docs/checks/SmallSp.md.html
@@ -45,7 +45,7 @@
6.5sp [SmallSp]
android:layout_height="6.5sp" />
-----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -107,7 +107,7 @@
android:textSize="11sp" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PxUsageDetectorTest.java)
diff --git a/docs/checks/SmsAndCallLogPolicy.md.html b/docs/checks/SmsAndCallLogPolicy.md.html
new file mode 100644
index 00000000..e4ac3d34
--- /dev/null
+++ b/docs/checks/SmsAndCallLogPolicy.md.html
@@ -0,0 +1,229 @@
+
+(#) SMS/Call Log Insights
+
+!!! WARNING: SMS/Call Log Insights
+ This is a warning.
+
+Id
+: `SmsAndCallLogPolicy`
+Summary
+: SMS/Call Log Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+Google Play imposes strict restrictions on accessing highly sensitive
+SMS and Call Log data. Your app must be the designated default handler
+for SMS, Phone, or Assistant to request these permissions. Usage is
+limited only to documented core app functionality that is absolutely
+essential for your app's primary purpose. This data must never be used
+for advertising or any other unapproved purpose.
+
+**Dos:**
+
+- Submit a declaration form in your Play Console.
+- Clearly document the core functionality requiring access to your
+ users.
+- Use policy-compliant alternatives like the SMS Retriever API where
+ possible.
+- Stop accessing data immediately upon losing default handler status.
+
+**Don'ts:**
+
+- Request SMS/Call Log permissions without a core need justification.
+- Use this data for advertising or purposes.
+- Store or share unnecessary SMS or Call Log data.
+- Attempt to derive this data using alternative methods.
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-sms-call-log
+See Help Center article: https://goo.gle/play-help-sms-call-log
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:3:Warning: Only default handlers can use SMS/Call
+Log access and for core function only. You cannot use this for ads or
+other non-core functionality. [SmsAndCallLogPolicy]
+ <uses-permission android:name="android.permission.READ_SMS"/>
+ ------------------------------------------
+AndroidManifest.xml:4:Warning: Only default handlers can use SMS/Call
+Log access and for core function only. You cannot use this for ads or
+other non-core functionality. [SmsAndCallLogPolicy]
+ <uses-permission android:name="android.permission.READ_CALL_LOG"/>
+ -----------------------------------------------
+AndroidManifest.xml:5:Warning: Only default handlers can use SMS/Call
+Log access and for core function only. You cannot use this for ads or
+other non-core functionality. [SmsAndCallLogPolicy]
+ <uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
+ ------------------------------------------------
+AndroidManifest.xml:6:Warning: Only default handlers can use SMS/Call
+Log access and for core function only. You cannot use this for ads or
+other non-core functionality. [SmsAndCallLogPolicy]
+ <uses-permission android:name="android.permission.SEND_SMS"/>
+ ------------------------------------------
+AndroidManifest.xml:7:Warning: Only default handlers can use SMS/Call
+Log access and for core function only. You cannot use this for ads or
+other non-core functionality. [SmsAndCallLogPolicy]
+ <uses-permission android:name="android.permission.RECEIVE_SMS"/>
+ ---------------------------------------------
+AndroidManifest.xml:8:Warning: Only default handlers can use SMS/Call
+Log access and for core function only. You cannot use this for ads or
+other non-core functionality. [SmsAndCallLogPolicy]
+ <uses-permission android:name="android.permission.WRITE_SMS"/>
+ -------------------------------------------
+AndroidManifest.xml:9:Warning: Only default handlers can use SMS/Call
+Log access and for core function only. You cannot use this for ads or
+other non-core functionality. [SmsAndCallLogPolicy]
+ <uses-permission android:name="android.permission.RECEIVE_WAP_PUSH"/>
+ --------------------------------------------------
+AndroidManifest.xml:10:Warning: Only default handlers can use SMS/Call
+Log access and for core function only. You cannot use this for ads or
+other non-core functionality. [SmsAndCallLogPolicy]
+ <uses-permission android:name="android.permission.RECEIVE_MMS"/>
+ ---------------------------------------------
+AndroidManifest.xml:11:Warning: Only default handlers can use SMS/Call
+Log access and for core function only. You cannot use this for ads or
+other non-core functionality. [SmsAndCallLogPolicy]
+ <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
+ --------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <uses-permission android:name="android.permission.READ_SMS"/>
+ <uses-permission android:name="android.permission.READ_CALL_LOG"/>
+ <uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
+ <uses-permission android:name="android.permission.SEND_SMS"/>
+ <uses-permission android:name="android.permission.RECEIVE_SMS"/>
+ <uses-permission android:name="android.permission.WRITE_SMS"/>
+ <uses-permission android:name="android.permission.RECEIVE_WAP_PUSH"/>
+ <uses-permission android:name="android.permission.RECEIVE_MMS"/>
+ <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/SmsAndCallLogDetectorTest.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, `SmsAndCallLogDetector.testFlagsReadSms`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="SmsAndCallLogPolicy"` 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">
+ ...
+ <uses-permission tools:ignore="SmsAndCallLogPolicy" .../>
+ ...
+ </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="SmsAndCallLogPolicy" 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 'SmsAndCallLogPolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore SmsAndCallLogPolicy ...`
+ ```
+
+* 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/SoonBlockedPrivateApi.md.html b/docs/checks/SoonBlockedPrivateApi.md.html
index c4d957e4..48adc07b 100644
--- a/docs/checks/SoonBlockedPrivateApi.md.html
+++ b/docs/checks/SoonBlockedPrivateApi.md.html
@@ -45,7 +45,7 @@
[SoonBlockedPrivateApi]
Field maybeField = TelephonyManager.class.getDeclaredField("OTASP_NEEDED"); // ERROR 2
-------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -73,10 +73,10 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/PrivateApiDetectorTest.kt)
+You can also visit the source code ([PrivateApiDetectorTest.kt](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/PrivateApiDetectorTest.kt)
+[SuppressibleTestModeTest.kt](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/infrastructure/SuppressibleTestModeTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/SourceLockedOrientationActivity.md.html b/docs/checks/SourceLockedOrientationActivity.md.html
index b86822fd..e1ebe1fb 100644
--- a/docs/checks/SourceLockedOrientationActivity.md.html
+++ b/docs/checks/SourceLockedOrientationActivity.md.html
@@ -53,7 +53,7 @@
[SourceLockedOrientationActivity]
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-----------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,7 +76,7 @@
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ChromeOsSourceDetectorTest.kt)
diff --git a/docs/checks/SpUsage.md.html b/docs/checks/SpUsage.md.html
index 265f40c0..1355a99e 100644
--- a/docs/checks/SpUsage.md.html
+++ b/docs/checks/SpUsage.md.html
@@ -60,7 +60,7 @@
text sizes [SpUsage]
android:textSize="14dip" />
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -122,7 +122,7 @@
android:textSize="11sp" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PxUsageDetectorTest.java)
diff --git a/docs/checks/SpanMarkPointMissingMask.md.html b/docs/checks/SpanMarkPointMissingMask.md.html
index 4f3207e6..404bc4ec 100644
--- a/docs/checks/SpanMarkPointMissingMask.md.html
+++ b/docs/checks/SpanMarkPointMissingMask.md.html
@@ -57,7 +57,7 @@
MARK_POINT flags. [SpanMarkPointMissingMask]
return spanned.getSpanFlags(Object()) == || Spanned.x()
------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -72,7 +72,7 @@
return spanned.getSpanFlags(Object()) == || Spanned.x()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/text/SpanMarkPointMissingMaskDetectorTest.kt)
diff --git a/docs/checks/SpecifyForegroundServiceType.md.html b/docs/checks/SpecifyForegroundServiceType.md.html
index 747fe52a..1c207605 100644
--- a/docs/checks/SpecifyForegroundServiceType.md.html
+++ b/docs/checks/SpecifyForegroundServiceType.md.html
@@ -53,7 +53,7 @@
the AndroidManifest.xml [SpecifyForegroundServiceType]
val info = ForegroundInfo(0, notification, 1)
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -70,7 +70,7 @@
val info = ForegroundInfo(0, notification, 1)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/work/work-lint/src/test/java/androidx/work/lint/SpecifyForegroundServiceTypeIssueDetectorTest.kt)
@@ -89,17 +89,17 @@
```
// build.gradle.kts
-implementation("androidx.work:work-runtime:2.10.1")
+implementation("androidx.work:work-runtime:2.11.1")
// build.gradle
-implementation 'androidx.work:work-runtime:2.10.1'
+implementation 'androidx.work:work-runtime:2.11.1'
// build.gradle.kts with version catalogs:
implementation(libs.work.runtime)
# libs.versions.toml
[versions]
-work-runtime = "2.10.1"
+work-runtime = "2.11.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.1 is the version this documentation was generated from;
+2.11.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 b9ce78d0..ab553cf3 100644
--- a/docs/checks/SpecifyJobSchedulerIdRange.md.html
+++ b/docs/checks/SpecifyJobSchedulerIdRange.md.html
@@ -54,7 +54,7 @@
id's for WorkManager to use. [SpecifyJobSchedulerIdRange]
class TestJobService: JobService()
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
import android.app.job.JobService
class TestJobService: JobService()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/work/work-lint/src/test/java/androidx/work/lint/SpecifyJobSchedulerIdRangeIssueDetectorTest.kt)
@@ -84,17 +84,17 @@
```
// build.gradle.kts
-implementation("androidx.work:work-runtime:2.10.1")
+implementation("androidx.work:work-runtime:2.11.1")
// build.gradle
-implementation 'androidx.work:work-runtime:2.10.1'
+implementation 'androidx.work:work-runtime:2.11.1'
// build.gradle.kts with version catalogs:
implementation(libs.work.runtime)
# libs.versions.toml
[versions]
-work-runtime = "2.10.1"
+work-runtime = "2.11.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.1 is the version this documentation was generated from;
+2.11.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/SquareAndRoundTilePreviews.md.html b/docs/checks/SquareAndRoundTilePreviews.md.html
index 5e96d3ff..342a96f6 100644
--- a/docs/checks/SquareAndRoundTilePreviews.md.html
+++ b/docs/checks/SquareAndRoundTilePreviews.md.html
@@ -44,7 +44,7 @@
[SquareAndRoundTilePreviews]
<service
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
</intent-filter>
</service>
</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/TileProviderDetectorTest.kt)
diff --git a/docs/checks/StartActivityAndCollapseDeprecated.md.html b/docs/checks/StartActivityAndCollapseDeprecated.md.html
index ea6666e4..345ad940 100644
--- a/docs/checks/StartActivityAndCollapseDeprecated.md.html
+++ b/docs/checks/StartActivityAndCollapseDeprecated.md.html
@@ -43,7 +43,7 @@
instead. [StartActivityAndCollapseDeprecated]
tileService.startActivityAndCollapse(intent) // ERROR
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
fun callAMethod(tileService: TileService, intent: PendingIntent) {
tileService.startActivityAndCollapse(intent) // OK
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TileServiceActivityDetectorTest.kt)
diff --git a/docs/checks/StateFlowValueCalledInComposition.md.html b/docs/checks/StateFlowValueCalledInComposition.md.html
index fcd50ecc..dde98436 100644
--- a/docs/checks/StateFlowValueCalledInComposition.md.html
+++ b/docs/checks/StateFlowValueCalledInComposition.md.html
@@ -44,76 +44,84 @@
Instead you should use stateFlow.collectAsState() to observe changes to
the StateFlow, 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/compose/runtime/foo/TestFlow.kt:20:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:18:Error: StateFlow.value
+should not be called within composition
+[StateFlowValueCalledInComposition]
+ stateFlow.value
+ -----
+src/androidx/compose/runtime/foo/TestFlow.kt:19:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
testFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:24:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:23:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
stateFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:25:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:24:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
testFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:29:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:28:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
stateFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:30:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:29:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
testFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:39:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:38:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
stateFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:40:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:39:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
testFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:43:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:42:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
stateFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:44:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:43:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
testFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:50:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:49:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
stateFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:51:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:50:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
testFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:55:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:54:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
stateFlow.value
-----
-src/androidx/compose/runtime/foo/TestFlow.kt:56:Error: StateFlow.value
+src/androidx/compose/runtime/foo/TestFlow.kt:55:Error: StateFlow.value
should not be called within composition
[StateFlowValueCalledInComposition]
testFlow.value
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -176,7 +184,7 @@
testFlow.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/ComposableStateFlowValueDetectorTest.kt)
@@ -195,17 +203,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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 +225,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html).
diff --git a/docs/checks/StateListReachable.md.html b/docs/checks/StateListReachable.md.html
index b351e2ab..9e20519b 100644
--- a/docs/checks/StateListReachable.md.html
+++ b/docs/checks/StateListReachable.md.html
@@ -44,7 +44,7 @@
[StateListReachable]
<item android:state_pressed="true"
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
</selector>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/StateListDetectorTest.kt)
diff --git a/docs/checks/StaticFieldLeak.md.html b/docs/checks/StaticFieldLeak.md.html
index cce4d54e..4393f6d7 100644
--- a/docs/checks/StaticFieldLeak.md.html
+++ b/docs/checks/StaticFieldLeak.md.html
@@ -69,7 +69,7 @@
classes in static fields; this is a memory leak [StaticFieldLeak]
private static Activity sAppContext1; // LEAK
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -108,7 +108,7 @@
private static Context sAppContext2; // Probably app context leak
private static Context applicationCtx; // Probably app context leak
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LeakDetectorTest.kt)
diff --git a/docs/checks/StopShip.md.html b/docs/checks/StopShip.md.html
index 3d1a0a1c..aff27e88 100644
--- a/docs/checks/StopShip.md.html
+++ b/docs/checks/StopShip.md.html
@@ -61,7 +61,7 @@
code which must be fixed prior to release [StopShip]
/* We must STOPSHIP! */
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -81,10 +81,11 @@
/* We must STOPSHIP! */
String x = "STOPSHIP"; // OK
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/CommentDetectorTest.java)
+You can also visit the source code ([CommentDetectorTest.java](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/CommentDetectorTest.java)
+[SuppressibleTestModeTest.kt](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/infrastructure/SuppressibleTestModeTest.kt)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.java)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/StrandhoggVulnerable.md.html b/docs/checks/StrandhoggVulnerable.md.html
index ef8ef8b8..de4c5bb7 100644
--- a/docs/checks/StrandhoggVulnerable.md.html
+++ b/docs/checks/StrandhoggVulnerable.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Manifest files
Editing
@@ -56,7 +56,7 @@
[StrandhoggVulnerable]
<uses-sdk android:targetSdkVersion='27'/>
--
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
<activity android:name='com.example.MainActivity'></activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/StrandhoggDetectorTest.kt)
@@ -88,17 +88,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/StringEscaping.md.html b/docs/checks/StringEscaping.md.html
index 5467bf1c..8dfc53b9 100644
--- a/docs/checks/StringEscaping.md.html
+++ b/docs/checks/StringEscaping.md.html
@@ -42,24 +42,24 @@
res/values/strings.xml:3:Error: Apostrophe not preceded by \
[StringEscaping]
<string name="some_string">'ERROR'</string>
- ^
+ -------
res/values/strings.xml:5:Error: Apostrophe not preceded by \
[StringEscaping]
<string name="some_string3">What's New</string>
- ^
+ ------
res/values/strings.xml:12:Error: Bad character in \u unicode escape
sequence [StringEscaping]
<string name="some_string10">Unicode\u12.</string>
- ^
+ -
res/values/strings.xml:19:Error: Apostrophe not preceded by \
[StringEscaping]
<item>It's incorrect</item>
- ^
+ ------------
res/values/strings.xml:23:Error: Apostrophe not preceded by \
[StringEscaping]
<item quantity="few">%d piose'nki.</item>
- ^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ -----
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -92,7 +92,7 @@
</plurals>
<string name="foo">Letzte Freischaltung:\\ </string> <!-- b/387281249 -->
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/StringEscapeDetectorTest.kt)
diff --git a/docs/checks/StringFormatCount.md.html b/docs/checks/StringFormatCount.md.html
index cbac397e..bcf2f99e 100644
--- a/docs/checks/StringFormatCount.md.html
+++ b/docs/checks/StringFormatCount.md.html
@@ -48,7 +48,7 @@
values/formatstrings.xml [StringFormatCount]
<string name="hello">%3$d: %1$s, %2$s?</string>
-----------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -57,14 +57,14 @@
<resources>
<string name="hello">Hello %1$s, %2$s?</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-es/formatstrings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="hello">%3$d: %1$s, %2$s?</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/StringFormatDetectorTest.java)
diff --git a/docs/checks/StringFormatInTimber.md.html b/docs/checks/StringFormatInTimber.md.html
index b0ae61f2..858cc9aa 100644
--- a/docs/checks/StringFormatInTimber.md.html
+++ b/docs/checks/StringFormatInTimber.md.html
@@ -51,7 +51,7 @@
[StringFormatInTimber]
Timber.d(String.format("%s", "arg1"));
---------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -64,7 +64,7 @@
Timber.d(String.format("%s", "arg1"));
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -75,7 +75,7 @@
Timber.d(String.format("%s", "arg1"))
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/JakeWharton/timber/tree/trunk/timber-lint/src/test/java/timber/lint/WrongTimberUsageDetectorTest.kt)
diff --git a/docs/checks/StringFormatInvalid.md.html b/docs/checks/StringFormatInvalid.md.html
index 39e2585f..77cce379 100644
--- a/docs/checks/StringFormatInvalid.md.html
+++ b/docs/checks/StringFormatInvalid.md.html
@@ -59,7 +59,7 @@
[StringFormatInvalid]
context.getString(R.string.no_args, "first"); // ERROR
--------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -70,7 +70,7 @@
context.getString(R.string.no_args, "first"); // ERROR
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -78,7 +78,7 @@
<resources>
<string name="no_args">Hello</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/StringFormatDetectorTest.java)
diff --git a/docs/checks/StringFormatMatches.md.html b/docs/checks/StringFormatMatches.md.html
index 023a3168..dc974f75 100644
--- a/docs/checks/StringFormatMatches.md.html
+++ b/docs/checks/StringFormatMatches.md.html
@@ -48,7 +48,7 @@
[StringFormatMatches]
String output4 = String.format(score, true); // wrong
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -57,7 +57,7 @@
<resources>
<string name="score">Score: %1$d</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/StringFormatMatches.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -69,10 +69,10 @@
String output4 = String.format(score, true); // wrong
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/StringFormatDetectorTest.java)
+You can also visit the source code ([StringFormatDetectorTest.java](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/StringFormatDetectorTest.java)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/StringFormatTrivial.md.html b/docs/checks/StringFormatTrivial.md.html
index e646e5e3..8ff38342 100644
--- a/docs/checks/StringFormatTrivial.md.html
+++ b/docs/checks/StringFormatTrivial.md.html
@@ -56,7 +56,7 @@
performant to concatenate your arguments with +. [StringFormatTrivial]
String output3a = String.format("%s %c %b", "Hello world", '!', true);
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -87,7 +87,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -97,8 +97,7 @@
<string name="trivial2">%s %c</string>
<string name="trivial3">%s %c %b</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/StringFormatDetectorTest.java)
diff --git a/docs/checks/StringNotCapitalized.md.html b/docs/checks/StringNotCapitalized.md.html
index 6c1a26c2..cf9db046 100644
--- a/docs/checks/StringNotCapitalized.md.html
+++ b/docs/checks/StringNotCapitalized.md.html
@@ -47,8 +47,8 @@
res/values/strings.xml:2:Warning: String is not capitalized
[StringNotCapitalized]
<string name="my_string">my string</string>
- ^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ---------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
<resources>
<string name="my_string">my string</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/StringNotCapitalizedDetectorTest.kt)
diff --git a/docs/checks/StringShouldBeInt.md.html b/docs/checks/StringShouldBeInt.md.html
index 59649f08..369706c8 100644
--- a/docs/checks/StringShouldBeInt.md.html
+++ b/docs/checks/StringShouldBeInt.md.html
@@ -47,23 +47,11 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-build.gradle:4:Error: Use an integer rather than a string here (replace
-'19' with just 19) [StringShouldBeInt]
- compileSdkVersion '19'
- ----------------------
-build.gradle:7:Error: Use an integer rather than a string here (replace
-'8' with just 8) [StringShouldBeInt]
- minSdkVersion '8'
- -----------------
-build.gradle:8:Error: Use an integer rather than a string here (replace
-"16" with just 16) [StringShouldBeInt]
- targetSdkVersion "16"
- ---------------------
-build.gradle:10:Error: Use an integer rather than a string here (replace
-'19' with just 19) [StringShouldBeInt]
- compileSdk '19'
- ---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+build.gradle:11:Error: minSdk does not support strings; did you mean
+minSdkPreview ? [StringShouldBeInt]
+ minSdk ''
+ ---------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -72,22 +60,27 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion '19'
- buildToolsVersion "19.0.1"
+ compileSdkVersion 19
+ buildToolsVersion "19.0.0"
+
defaultConfig {
- minSdkVersion '8'
- targetSdkVersion "16"
+ minSdkVersion 7
+ minSdkVersion "ECLAIR"
+ minSdk 7
+ minSdk ''
+ targetSdkVersion 19
+ versionCode 1
+ versionName "1.0"
}
- compileSdk '19'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.testStringInt`.
+found for this lint check, `GradleDetector.testMinSdkVersion`.
To report a problem with this extracted sample, visit
https://issuetracker.google.com/issues/new?component=192708.
diff --git a/docs/checks/SubscribeOnMain.md.html b/docs/checks/SubscribeOnMain.md.html
index a21db40c..d529de6a 100644
--- a/docs/checks/SubscribeOnMain.md.html
+++ b/docs/checks/SubscribeOnMain.md.html
@@ -62,7 +62,7 @@
[SubscribeOnMain]
obs.subscribeOn(AndroidSchedulers.mainThread());
-------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -77,7 +77,7 @@
return null;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/com/slack/lint/Foo.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -91,7 +91,7 @@
obs.subscribeOn(AndroidSchedulers.mainThread());
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/rx/RxSubscribeOnMainDetectorTest.kt)
diff --git a/docs/checks/SuperfluousMarginDeclaration.md.html b/docs/checks/SuperfluousMarginDeclaration.md.html
index 3b605730..e8d71b3f 100644
--- a/docs/checks/SuperfluousMarginDeclaration.md.html
+++ b/docs/checks/SuperfluousMarginDeclaration.md.html
@@ -49,7 +49,7 @@
[SuperfluousMarginDeclaration]
<TextView
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
android:layout_marginBottom="16dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/SuperfluousMarginDeclarationDetectorTest.kt)
diff --git a/docs/checks/SuperfluousNameSpace.md.html b/docs/checks/SuperfluousNameSpace.md.html
index f3815012..908429e2 100644
--- a/docs/checks/SuperfluousNameSpace.md.html
+++ b/docs/checks/SuperfluousNameSpace.md.html
@@ -48,7 +48,7 @@
declared and hence not needed [SuperfluousNameSpace]
xmlns:android="http://schemas.android.com/apk/res/android"
----------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -59,7 +59,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"/>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/SuperfluousNameSpaceDetectorTest.kt)
diff --git a/docs/checks/SuperfluousPaddingDeclaration.md.html b/docs/checks/SuperfluousPaddingDeclaration.md.html
index 4ca9171d..d69762a9 100644
--- a/docs/checks/SuperfluousPaddingDeclaration.md.html
+++ b/docs/checks/SuperfluousPaddingDeclaration.md.html
@@ -49,7 +49,7 @@
[SuperfluousPaddingDeclaration]
<TextView
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
android:paddingBottom="16dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/SuperfluousPaddingDeclarationDetectorTest.kt)
diff --git a/docs/checks/SupportAnnotationUsage.md.html b/docs/checks/SupportAnnotationUsage.md.html
index 44d5d0e4..f5722960 100644
--- a/docs/checks/SupportAnnotationUsage.md.html
+++ b/docs/checks/SupportAnnotationUsage.md.html
@@ -52,7 +52,7 @@
be allowed on any element types from Java [SupportAnnotationUsage]
@java.lang.annotation.Target(ElementType.PARAMETER) // ERROR 2
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -79,10 +79,10 @@
@java.lang.annotation.Target(ElementType.PARAMETER) // ERROR 2
@Target(AnnotationTarget.VALUE_PARAMETER)
annotation class Annotation4()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/AnnotationDetectorTest.kt)
+You can also visit the source code ([AnnotationDetectorTest.kt](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/AnnotationDetectorTest.kt)
+[KeepRuleDetectorTest.kt](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/KeepRuleDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/Suspicious0dp.md.html b/docs/checks/Suspicious0dp.md.html
index 919e8905..02c726eb 100644
--- a/docs/checks/Suspicious0dp.md.html
+++ b/docs/checks/Suspicious0dp.md.html
@@ -63,7 +63,7 @@
view invisible, probably intended for layout_width [Suspicious0dp]
android:layout_height="0dp"
---------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -172,7 +172,7 @@
</LinearLayout>
</FrameLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/InefficientWeightDetectorTest.java)
diff --git a/docs/checks/SuspiciousCompositionLocalModifierRead.md.html b/docs/checks/SuspiciousCompositionLocalModifierRead.md.html
index 9f655ac6..cdccefe1 100644
--- a/docs/checks/SuspiciousCompositionLocalModifierRead.md.html
+++ b/docs/checks/SuspiciousCompositionLocalModifierRead.md.html
@@ -71,7 +71,7 @@
[SuspiciousCompositionLocalModifierRead]
val readValue = currentValueOf(staticLocalInt)
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -98,7 +98,7 @@
val readValue = currentValueOf(staticLocalInt)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SuspiciousCompositionLocalModifierReadDetectorTest.kt)
@@ -117,17 +117,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html).
diff --git a/docs/checks/SuspiciousImport.md.html b/docs/checks/SuspiciousImport.md.html
index c847be91..8d8616dd 100644
--- a/docs/checks/SuspiciousImport.md.html
+++ b/docs/checks/SuspiciousImport.md.html
@@ -47,7 +47,7 @@
a fully qualified name for each usage instead [SuspiciousImport]
import android.R;
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,7 +62,7 @@
public class BadImport {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongImportDetectorTest.kt)
diff --git a/docs/checks/SuspiciousIndentation.md.html b/docs/checks/SuspiciousIndentation.md.html
index 9f015ff0..1ce8c05a 100644
--- a/docs/checks/SuspiciousIndentation.md.html
+++ b/docs/checks/SuspiciousIndentation.md.html
@@ -59,7 +59,7 @@
<option name="always-run" value="false" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -75,7 +75,7 @@
[SuspiciousIndentation]
price.toString() + // WARN 2
----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -98,7 +98,7 @@
price.toString() + // WARN 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/IndentationDetectorTest.kt)
diff --git a/docs/checks/SuspiciousModifierThen.md.html b/docs/checks/SuspiciousModifierThen.md.html
index 16d52a61..6e1f29d4 100644
--- a/docs/checks/SuspiciousModifierThen.md.html
+++ b/docs/checks/SuspiciousModifierThen.md.html
@@ -69,7 +69,7 @@
factory function with an implicit receiver [SuspiciousModifierThen]
fun Modifier.test4() = this.then(if (true) test() else TestModifier)
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -88,7 +88,7 @@
fun Modifier.test3() = this.then(with(1) { test() })
fun Modifier.test4() = this.then(if (true) test() else TestModifier)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SuspiciousModifierThenDetectorTest.kt)
@@ -107,17 +107,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html).
diff --git a/docs/checks/SwitchIntDef.md.html b/docs/checks/SwitchIntDef.md.html
index 936a0ece..a261b53a 100644
--- a/docs/checks/SwitchIntDef.md.html
+++ b/docs/checks/SwitchIntDef.md.html
@@ -68,7 +68,12 @@
associated constant missing case X.LENGTH_SHORT [SwitchIntDef]
switch (X.getDuration()) {
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+src/test/pkg/X.java:158:Warning: Switch statement on an int with known
+associated constant missing case LENGTH_INDEFINITE, LENGTH_LONG
+[SwitchIntDef]
+ return switch(duration) { // not ok
+ ^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -202,11 +207,45 @@
break;
}
}
+
+ public static void testDefaultOk(@Duration int duration) {
+ switch (duration) { // ok
+ case LENGTH_SHORT -> {
+ System.out.println("Short!");
+ }
+ default -> {
+ System.out.println("Default!");
+ }
+ }
+ }
+
+ public static int testSwitchExprDefaultOk(@Duration int duration) {
+ return switch (duration) { // ok
+ case LENGTH_SHORT -> 1;
+ case LENGTH_INDEFINITE -> 3;
+ case LENGTH_LONG -> 2;
+ default -> throw new IllegalStateException("Unreachable");
+ };
+ }
+
+ public static int testSwitchExprDefaultAlsoOk(@Duration int duration) {
+ return switch (duration) { // ok
+ case LENGTH_SHORT -> 1;
+ default -> 2;
+ };
+ }
+
+ public static int testSwitchExprDefaultNotOk(@Duration int duration) {
+ return switch(duration) { // not ok
+ case LENGTH_SHORT -> 1;
+ default -> throw new IllegalStateException("Unreachable");
+ };
+ }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/AnnotationDetectorTest.kt)
+You can also visit the source code ([AnnotationDetectorTest.kt](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/AnnotationDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/SyntheticAccessor.md.html b/docs/checks/SyntheticAccessor.md.html
index 94975430..9cc993cb 100644
--- a/docs/checks/SyntheticAccessor.md.html
+++ b/docs/checks/SyntheticAccessor.md.html
@@ -80,7 +80,7 @@
[SyntheticAccessor]
method1(); // ERROR
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -175,7 +175,7 @@
// int f = o.field1;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SyntheticAccessorDetectorTest.kt)
diff --git a/docs/checks/SystemPermissionTypo.md.html b/docs/checks/SystemPermissionTypo.md.html
index fc3b6de6..3b2f0833 100644
--- a/docs/checks/SystemPermissionTypo.md.html
+++ b/docs/checks/SystemPermissionTypo.md.html
@@ -52,25 +52,25 @@
-----------------------------------
AndroidManifest.xml:9:Warning: Did you mean
android.permission.BIND_NFC_SERVICE? [SystemPermissionTypo]
- <activity android:permission="android.permission.BIND_NCF_SERVICE" />
- -----------------------------------
+ <activity android:name="name3" android:permission="android.permission.BIND_NCF_SERVICE" />
+ -----------------------------------
AndroidManifest.xml:10:Warning: Did you mean
android.permission.BIND_NFC_SERVICE? [SystemPermissionTypo]
- <activity-alias android:permission="android.permission.BIND_NCF_SERVICE" />
- -----------------------------------
+ <activity-alias android:name="name4" android:permission="android.permission.BIND_NCF_SERVICE" />
+ -----------------------------------
AndroidManifest.xml:11:Warning: Did you mean
android.permission.BIND_NFC_SERVICE? [SystemPermissionTypo]
- <receiver android:permission="android.permission.BIND_NCF_SERVICE" />
- -----------------------------------
+ <receiver android:name="name5" android:permission="android.permission.BIND_NCF_SERVICE" />
+ -----------------------------------
AndroidManifest.xml:12:Warning: Did you mean
android.permission.BIND_NFC_SERVICE? [SystemPermissionTypo]
- <service android:permission="android.permission.BIND_NCF_SERVICE" />
- -----------------------------------
+ <service android:name="name6" android:permission="android.permission.BIND_NCF_SERVICE" />
+ -----------------------------------
AndroidManifest.xml:13:Warning: Did you mean
android.permission.BIND_NFC_SERVICE? [SystemPermissionTypo]
- <provider android:permission="android.permission.BIND_NCF_SERVICE" />
- -----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ <provider android:name="name7" android:permission="android.permission.BIND_NCF_SERVICE" />
+ -----------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -82,16 +82,16 @@
package="com.example.helloworld">
<uses-permission android:name="android.permission.BIND_NCF_SERVICE" />
<application android:name="App" android:permission="android.permission.BIND_NCF_SERVICE">
- <activity />
- <activity android:permission="android.permission.BIND_NFC_SERVICE" />
- <activity android:permission="android.permission.BIND_NCF_SERVICE" />
- <activity-alias android:permission="android.permission.BIND_NCF_SERVICE" />
- <receiver android:permission="android.permission.BIND_NCF_SERVICE" />
- <service android:permission="android.permission.BIND_NCF_SERVICE" />
- <provider android:permission="android.permission.BIND_NCF_SERVICE" />
+ <activity android:name="name1" />
+ <activity android:name="name2" android:permission="android.permission.BIND_NFC_SERVICE" />
+ <activity android:name="name3" android:permission="android.permission.BIND_NCF_SERVICE" />
+ <activity-alias android:name="name4" android:permission="android.permission.BIND_NCF_SERVICE" />
+ <receiver android:name="name5" android:permission="android.permission.BIND_NCF_SERVICE" />
+ <service android:name="name6" android:permission="android.permission.BIND_NCF_SERVICE" />
+ <provider android:name="name7" android:permission="android.permission.BIND_NCF_SERVICE" />
</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/PermissionErrorDetectorTest.kt)
diff --git a/docs/checks/TapjackingVulnerable.md.html b/docs/checks/TapjackingVulnerable.md.html
index c6b64b5c..8b5b5557 100644
--- a/docs/checks/TapjackingVulnerable.md.html
+++ b/docs/checks/TapjackingVulnerable.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Resource files
Editing
@@ -42,7 +42,7 @@
: 2023
Apps with sensitive UI elements should add the
-`filterTouchesWithObscured` attribute to protect it from tapjacking /
+`filterTouchesWhenObscured` attribute to protect it from tapjacking /
overlay attacks.
!!! Tip
@@ -57,7 +57,7 @@
[TapjackingVulnerable]
<Switch android:id='enable_setting'>
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
<Switch android:id='enable_setting'>
</Switch>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/TapjackingDetectorTest.kt)
@@ -88,17 +88,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/TestAppLink.md.html b/docs/checks/TestAppLink.md.html
index 75a63b61..c6356c7b 100644
--- a/docs/checks/TestAppLink.md.html
+++ b/docs/checks/TestAppLink.md.html
@@ -44,7 +44,7 @@
[TestAppLink]
<validation />
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -69,7 +69,7 @@
</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/AppLinksValidDetectorTest.kt)
diff --git a/docs/checks/TestLifecycleOwnerInCoroutine.md.html b/docs/checks/TestLifecycleOwnerInCoroutine.md.html
index 6e80a873..40afb9de 100644
--- a/docs/checks/TestLifecycleOwnerInCoroutine.md.html
+++ b/docs/checks/TestLifecycleOwnerInCoroutine.md.html
@@ -60,7 +60,7 @@
function. [TestLifecycleOwnerInCoroutine]
fun testSetCurrentStateInRunTestWithTimeOut() = runTest(timeout = 5000) {
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -81,7 +81,7 @@
val owner = TestLifecycleOwner()
owner.currentState = Lifecycle.State.RESUMED
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-runtime-testing-lint/src/test/java/androidx/lifecycle/runtime/testing/lint/TestLifecycleOwnerInCoroutineDetectorTest.kt)
@@ -100,17 +100,17 @@
```
// build.gradle.kts
-implementation("androidx.lifecycle:lifecycle-runtime-testing:2.9.0-rc01")
+implementation("androidx.lifecycle:lifecycle-runtime-testing:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-runtime-testing:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-runtime-testing:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.runtime.testing)
# libs.versions.toml
[versions]
-lifecycle-runtime-testing = "2.9.0-rc01"
+lifecycle-runtime-testing = "2.11.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,7 +122,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 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 50fa5185..935c611d 100644
--- a/docs/checks/TestManifestGradleConfiguration.md.html
+++ b/docs/checks/TestManifestGradleConfiguration.md.html
@@ -78,7 +78,7 @@
[TestManifestGradleConfiguration]
lintPublish("androidx.compose.ui:ui-test-manifest:1.2.0-beta02")
----------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -93,7 +93,7 @@
lintChecks("androidx.compose.ui:ui-test-manifest:1.2.0-beta02")
lintPublish("androidx.compose.ui:ui-test-manifest:1.2.0-beta02")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/ui/ui-test-manifest-lint/src/test/java/androix/compose/ui/test/manifest/lint/GradleDebugConfigurationDetectorTest.kt)
@@ -112,17 +112,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-test-manifest:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-test-manifest:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-test-manifest:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-test-manifest:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.test.manifest)
# libs.versions.toml
[versions]
-ui-test-manifest = "1.9.0-alpha01"
+ui-test-manifest = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.ui:ui-test-manifest-lint:1.11.0-alpha06`.
[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
index 78612d1d..a560c8a5 100644
--- a/docs/checks/TestParameterSiteTarget.md.html
+++ b/docs/checks/TestParameterSiteTarget.md.html
@@ -54,7 +54,7 @@
target [TestParameterSiteTarget]
@com.google.testing.junit.testparameterinjector.TestParameter val myParam: String
-------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
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)
diff --git a/docs/checks/TextConcatSpace.md.html b/docs/checks/TextConcatSpace.md.html
new file mode 100644
index 00000000..ab4f359c
--- /dev/null
+++ b/docs/checks/TextConcatSpace.md.html
@@ -0,0 +1,163 @@
+
+(#) Missing space in text concatenation?
+
+!!! WARNING: Missing space in text concatenation?
+ This is a warning.
+
+Id
+: `TextConcatSpace`
+Summary
+: Missing space in text concatenation?
+Severity
+: Warning
+Category
+: Correctness
+Platform
+: Any
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 9.0.0 (January 2026)
+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/TextConcatDetector.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/TextConcatDetectorTest.kt)
+
+When splitting strings up across separate lines, it's easy to
+accidentally miss a separating space. This lint check looks for cases of
+string concatenation where a separating space may be missing.
+
+!!! 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/test/pkg/Test.java:6:Warning: Missing space between "is" on the
+previous line and "a" here? Resulting string is "isa".
+[TextConcatSpace]
+ "a second line"; // ERROR 1
+ ---------------
+src/test/pkg/Test.java:8:Warning: Missing space between "is" on the
+previous line and "a" here? Resulting string is "isa".
+[TextConcatSpace]
+ "a polyadic" // ERROR 2
+ ------------
+src/test/pkg/Test.java:9:Warning: Missing space between "polyadic" on
+the previous line and "expression" here? Resulting string is
+"polyadicexpression". [TextConcatSpace]
+ + "expression"; // ERROR 3
+ ------------
+src/test/pkg/test.kt:5:Warning: Missing space between "is" on the
+previous line and "a" here? Resulting string is "isa".
+[TextConcatSpace]
+ "a second line" // ERROR 4
+ -------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here are the relevant source files:
+
+`src/test/pkg/Test.java`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
+package test.pkg;
+
+public class Test {
+ public void test() {
+ String s = "This is" +
+ "a second line"; // ERROR 1
+ String s = "This is" +
+ "a polyadic" // ERROR 2
+ + "expression"; // ERROR 3
+ String t = "This is" + "same line"; // OK
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`src/test/pkg/test.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package test.pkg
+
+fun test() {
+ val s = "This is" +
+ "a second line" // ERROR 4
+ val t = "This is" + "same line" // 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/TextConcatDetectorTest.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("TextConcatSpace")
+ fun method() {
+ problematicStatement()
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("TextConcatSpace")
+ void method() {
+ problematicStatement();
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection TextConcatSpace
+ 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="TextConcatSpace" 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 'TextConcatSpace'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore TextConcatSpace ...`
+ ```
+
+* 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/TextFields.md.html b/docs/checks/TextFields.md.html
index 4cedca59..6464cbe2 100644
--- a/docs/checks/TextFields.md.html
+++ b/docs/checks/TextFields.md.html
@@ -59,7 +59,7 @@
inputType [TextFields]
<EditText
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -143,7 +143,7 @@
</LinearLayout>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TextFieldDetectorTest.java)
diff --git a/docs/checks/TextViewEdits.md.html b/docs/checks/TextViewEdits.md.html
index 8a8eb68a..9bd6a377 100644
--- a/docs/checks/TextViewEdits.md.html
+++ b/docs/checks/TextViewEdits.md.html
@@ -151,7 +151,7 @@
widgets [TextViewEdits]
android:cursorVisible="true" />
----------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -251,7 +251,7 @@
android:textIsSelectable="true" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TextViewDetectorTest.java)
diff --git a/docs/checks/ThreadConstraint.md.html b/docs/checks/ThreadConstraint.md.html
new file mode 100644
index 00000000..8faec80c
--- /dev/null
+++ b/docs/checks/ThreadConstraint.md.html
@@ -0,0 +1,148 @@
+
+(#) Wrong Thread (with inference)
+
+!!! ERROR: Wrong Thread (with inference)
+ This is an error.
+
+Id
+: `ThreadConstraint`
+Summary
+: Wrong Thread (with inference)
+Note
+: **This issue is disabled by default**; use `--enable ThreadConstraint`
+Severity
+: Error
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 8.12.0 (July 2025)
+Affects
+: Kotlin and Java files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://developer.android.com/guide/components/processes-and-threads.html#Threads
+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/InferredThreadDetector.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/InferredThreadDetectorTest.kt)
+
+Ensures that a method which expects to be called on a specific thread,
+is actually called from that thread. For example, calls on methods in
+widgets should always be made on the UI thread. This new issue subsumes
+`WrongThreadInterprocedural`, accompanied by a check aiming to be more
+reliable and scalable.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/test/pkg/test.kt:10:Error: Call must be from @{Main,Ui}Thread, but
+context is allowing @AnyThread [ThreadConstraint]
+ f()
+ ---
+src/test/pkg/test.kt:11:Error: Call must be from @{Main,Ui}Thread, but
+context is allowing @AnyThread [ThreadConstraint]
+ g()
+ ---
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/test/pkg/test.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package test.pkg
+import androidx.annotation.AnyThread
+import androidx.annotation.UiThread
+
+@UiThread fun f(): UInt = 42
+
+@UiThread fun g() = 45UL
+
+@AnyThread fun h() {
+ f()
+ g()
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the source code ([InferredThreadDetectorTest.kt](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/InferredThreadDetectorTest.kt)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.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, `InferredThreadDetector.testUnsignedLiteral`.
+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 annotation like this on the enclosing
+ element:
+
+ ```kt
+ // Kotlin
+ @Suppress("ThreadConstraint")
+ fun method() {
+ problematicStatement()
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("ThreadConstraint")
+ void method() {
+ problematicStatement();
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection ThreadConstraint
+ 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="ThreadConstraint" 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 'ThreadConstraint'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore ThreadConstraint ...`
+ ```
+
+* 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/ThrowableNotAtBeginning.md.html b/docs/checks/ThrowableNotAtBeginning.md.html
index 367ec4a4..831984e5 100644
--- a/docs/checks/ThrowableNotAtBeginning.md.html
+++ b/docs/checks/ThrowableNotAtBeginning.md.html
@@ -50,7 +50,7 @@
[ThrowableNotAtBeginning]
Timber.d("%s", e);
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -64,7 +64,7 @@
Timber.d("%s", e);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -76,7 +76,7 @@
Timber.d("%s", e)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/JakeWharton/timber/tree/trunk/timber-lint/src/test/java/timber/lint/WrongTimberUsageDetectorTest.kt)
diff --git a/docs/checks/TilePreviewImageFormat.md.html b/docs/checks/TilePreviewImageFormat.md.html
index f7745bf6..023b41d0 100644
--- a/docs/checks/TilePreviewImageFormat.md.html
+++ b/docs/checks/TilePreviewImageFormat.md.html
@@ -42,7 +42,7 @@
[TilePreviewImageFormat]
android:resource="@drawable/ic_walk" />
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
android:resource="@drawable/ic_walk" />
</service>
</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/TileProviderDetectorTest.kt)
diff --git a/docs/checks/TileProviderPermissions.md.html b/docs/checks/TileProviderPermissions.md.html
index 5891f645..9906d9bb 100644
--- a/docs/checks/TileProviderPermissions.md.html
+++ b/docs/checks/TileProviderPermissions.md.html
@@ -44,7 +44,7 @@
BIND_TILE_PROVIDER permission [TileProviderPermissions]
<service
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
</intent-filter>
</service>
</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/TileProviderDetectorTest.kt)
diff --git a/docs/checks/TimberArgCount.md.html b/docs/checks/TimberArgCount.md.html
index 8b53555f..f9629e9e 100644
--- a/docs/checks/TimberArgCount.md.html
+++ b/docs/checks/TimberArgCount.md.html
@@ -48,7 +48,7 @@
requires 2 but format call supplies 1 [TimberArgCount]
Timber.d("%s %s", "arg1");
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -61,7 +61,7 @@
Timber.d("%s %s", "arg1");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -72,7 +72,7 @@
Timber.d("%s %s", "arg1")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/JakeWharton/timber/tree/trunk/timber-lint/src/test/java/timber/lint/WrongTimberUsageDetectorTest.kt)
diff --git a/docs/checks/TimberArgTypes.md.html b/docs/checks/TimberArgTypes.md.html
index 5603f17d..689e782e 100644
--- a/docs/checks/TimberArgTypes.md.html
+++ b/docs/checks/TimberArgTypes.md.html
@@ -50,7 +50,7 @@
method call) [TimberArgTypes]
Timber.d("%d", "arg1");
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -63,7 +63,7 @@
Timber.d("%d", "arg1");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -74,7 +74,7 @@
Timber.d("%d", "arg1")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/JakeWharton/timber/tree/trunk/timber-lint/src/test/java/timber/lint/WrongTimberUsageDetectorTest.kt)
diff --git a/docs/checks/TimberExceptionLogging.md.html b/docs/checks/TimberExceptionLogging.md.html
index b17a7638..92776683 100644
--- a/docs/checks/TimberExceptionLogging.md.html
+++ b/docs/checks/TimberExceptionLogging.md.html
@@ -51,7 +51,7 @@
redundant [TimberExceptionLogging]
Timber.d(e.getMessage());
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -65,7 +65,7 @@
Timber.d(e.getMessage());
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -77,7 +77,7 @@
Timber.d(e.message)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/JakeWharton/timber/tree/trunk/timber-lint/src/test/java/timber/lint/WrongTimberUsageDetectorTest.kt)
diff --git a/docs/checks/TimberTagLength.md.html b/docs/checks/TimberTagLength.md.html
index 61bf4515..f84dbeba 100644
--- a/docs/checks/TimberTagLength.md.html
+++ b/docs/checks/TimberTagLength.md.html
@@ -47,7 +47,7 @@
characters, was 24 (abcdefghijklmnopqrstuvwx) [TimberTagLength]
Timber.tag("abcdefghijklmnopqrstuvwx");
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -60,7 +60,7 @@
Timber.tag("abcdefghijklmnopqrstuvwx");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/Example.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -71,7 +71,7 @@
Timber.tag("abcdefghijklmnopqrstuvwx")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/JakeWharton/timber/tree/trunk/timber-lint/src/test/java/timber/lint/WrongTimberUsageDetectorTest.kt)
diff --git a/docs/checks/Todo.md.html b/docs/checks/Todo.md.html
index 0fe6c583..18a50868 100644
--- a/docs/checks/Todo.md.html
+++ b/docs/checks/Todo.md.html
@@ -46,7 +46,7 @@
src/foo/Example.java:4:Error: Contains todo [Todo]
// TODO something
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
class Example {
// TODO something
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/TodoDetectorTest.kt)
diff --git a/docs/checks/TooDeepLayout.md.html b/docs/checks/TooDeepLayout.md.html
index 433555c1..fc7d5338 100644
--- a/docs/checks/TooDeepLayout.md.html
+++ b/docs/checks/TooDeepLayout.md.html
@@ -44,7 +44,7 @@
levels, bad for performance [TooDeepLayout]
<LinearLayout
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -122,7 +122,7 @@
</LinearLayout>
</LinearLayout>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TooManyViewsDetectorTest.kt)
diff --git a/docs/checks/TooManyViews.md.html b/docs/checks/TooManyViews.md.html
index fe63e93a..4bda6200 100644
--- a/docs/checks/TooManyViews.md.html
+++ b/docs/checks/TooManyViews.md.html
@@ -46,7 +46,7 @@
views, bad for performance [TooManyViews]
<Button
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -463,7 +463,7 @@
</LinearLayout>
</FrameLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TooManyViewsDetectorTest.kt)
diff --git a/docs/checks/TranslucentOrientation.md.html b/docs/checks/TranslucentOrientation.md.html
index e8d7c074..c3d0fd5a 100644
--- a/docs/checks/TranslucentOrientation.md.html
+++ b/docs/checks/TranslucentOrientation.md.html
@@ -51,7 +51,7 @@
with translucent or floating theme [TranslucentOrientation]
<item name="android:windowIsFloating">true</item>
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -69,7 +69,7 @@
android:theme="@style/AppTheme" />
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/styles.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -87,7 +87,7 @@
</style>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TranslucentViewDetectorTest.kt)
diff --git a/docs/checks/TrimLambda.md.html b/docs/checks/TrimLambda.md.html
index b9947a4d..b5fd6cd2 100644
--- a/docs/checks/TrimLambda.md.html
+++ b/docs/checks/TrimLambda.md.html
@@ -74,7 +74,7 @@
[TrimLambda]
val to = s.trim { it <= ' ' }.substring(2)
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -91,7 +91,7 @@
s.trim() { it <= ' ' || c == '.' } // OK
val to = s.trim { it <= ' ' }.substring(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/TrimDetectorTest.kt)
diff --git a/docs/checks/TrulyRandom.md.html b/docs/checks/TrulyRandom.md.html
index ebb283d9..e986897c 100644
--- a/docs/checks/TrulyRandom.md.html
+++ b/docs/checks/TrulyRandom.md.html
@@ -59,7 +59,7 @@
for more info. [TrulyRandom]
KeyGenerator generator = KeyGenerator.getInstance("AES", "BC");
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -91,10 +91,10 @@
random.nextBytes(bytes);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/SecureRandomGeneratorDetectorTest.java)
+You can also visit the source code ([SecureRandomGeneratorDetectorTest.java](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/SecureRandomGeneratorDetectorTest.java)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.java)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/TrustAllX509TrustManager.md.html b/docs/checks/TrustAllX509TrustManager.md.html
index 490237d5..56d60ce8 100644
--- a/docs/checks/TrustAllX509TrustManager.md.html
+++ b/docs/checks/TrustAllX509TrustManager.md.html
@@ -53,7 +53,7 @@
[TrustAllX509TrustManager]
public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) throws CertificateException {
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -103,7 +103,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/X509TrustManagerDetectorTest.kt)
diff --git a/docs/checks/TypographyDashes.md.html b/docs/checks/TypographyDashes.md.html
index 47896196..0b263014 100644
--- a/docs/checks/TypographyDashes.md.html
+++ b/docs/checks/TypographyDashes.md.html
@@ -61,7 +61,7 @@
character (–, –) ? [TypographyDashes]
<item>Ages 3-5</item>
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -97,8 +97,7 @@
<string name="ga_trackingId">UA-0000-0</string>
<string>something somthing d\'avoir something something l\'écran.</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TypographyDetectorTest.kt)
diff --git a/docs/checks/TypographyEllipsis.md.html b/docs/checks/TypographyEllipsis.md.html
index 830106bc..ea91cf34 100644
--- a/docs/checks/TypographyEllipsis.md.html
+++ b/docs/checks/TypographyEllipsis.md.html
@@ -48,7 +48,7 @@
character (…, …) ? [TypographyEllipsis]
<string name="ellipsis">40 times...</string>
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -84,8 +84,7 @@
<string name="ga_trackingId">UA-0000-0</string>
<string>something somthing d\'avoir something something l\'écran.</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TypographyDetectorTest.kt)
diff --git a/docs/checks/TypographyFractions.md.html b/docs/checks/TypographyFractions.md.html
index f45f898b..1658c91a 100644
--- a/docs/checks/TypographyFractions.md.html
+++ b/docs/checks/TypographyFractions.md.html
@@ -56,7 +56,7 @@
instead of 1/2? [TypographyFractions]
<item>Age 5 1/2</item>
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -92,8 +92,7 @@
<string name="ga_trackingId">UA-0000-0</string>
<string>something somthing d\'avoir something something l\'écran.</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TypographyDetectorTest.kt)
diff --git a/docs/checks/TypographyOther.md.html b/docs/checks/TypographyOther.md.html
index 6d01fb8c..13a7e4bd 100644
--- a/docs/checks/TypographyOther.md.html
+++ b/docs/checks/TypographyOther.md.html
@@ -46,7 +46,7 @@
(©) ? [TypographyOther]
<string name="copyright">(c) 2011</string>
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -82,8 +82,7 @@
<string name="ga_trackingId">UA-0000-0</string>
<string>something somthing d\'avoir something something l\'écran.</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TypographyDetectorTest.kt)
diff --git a/docs/checks/TypographyQuotes.md.html b/docs/checks/TypographyQuotes.md.html
index 999c59ed..ecbfee55 100644
--- a/docs/checks/TypographyQuotes.md.html
+++ b/docs/checks/TypographyQuotes.md.html
@@ -85,7 +85,7 @@
typographic apostrophe (’, ’) ? [TypographyQuotes]
<string>something somthing d\'avoir something something l\'écran.</string>
---------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -121,8 +121,7 @@
<string name="ga_trackingId">UA-0000-0</string>
<string>something somthing d\'avoir something something l\'écran.</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TypographyDetectorTest.kt)
diff --git a/docs/checks/Typos.md.html b/docs/checks/Typos.md.html
index 8ef2c2f0..6356e10e 100644
--- a/docs/checks/Typos.md.html
+++ b/docs/checks/Typos.md.html
@@ -44,28 +44,28 @@
res/values/strings.xml:6:Warning: "activites" is a common misspelling;
did you mean "activities"? [Typos]
<string name="s2">Andriod activites!</string>
- ^
+ ---------
res/values/strings.xml:8:Warning: "Cmoputer" is a common misspelling;
did you mean "Computer"? [Typos]
<string name="s3"> (Cmoputer </string>
- ^
+ --------
res/values/strings.xml:10:Warning: "throught" is a common misspelling;
did you mean "thought" or "through" or "throughout"? [Typos]
<string name="s4"><b>throught</b></string>
- ^
+ --------
res/values/strings.xml:12:Warning: "Seach" is a common misspelling; did
you mean "Search"? [Typos]
<string name="s5">Seach</string>
- ^
+ -----
res/values/strings.xml:16:Warning: "Tuscon" is a common misspelling; did
you mean "Tucson"? [Typos]
<string name="s7">Tuscon tuscon</string>
- ^
+ ------
res/values/strings.xml:20:Warning: "Ok" is usually capitalized as "OK"
[Typos]
<string name="dlg_button_ok">Ok</string>
- ^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ --
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -101,7 +101,7 @@
<string name="issue77269_1">@android:string/ok</string>
<string name="issue77269_2"> @string/cmoputer </string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TypoDetectorTest.java)
diff --git a/docs/checks/UElementAsPsi.md.html b/docs/checks/UElementAsPsi.md.html
index 90f49a19..2dbf5ae1 100644
--- a/docs/checks/UElementAsPsi.md.html
+++ b/docs/checks/UElementAsPsi.md.html
@@ -69,7 +69,7 @@
PsiElement [UElementAsPsi]
PsiTreeUtil.getParentOfType(method, PsiClass::class.java) // ERROR 8
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -125,7 +125,7 @@
PsiTreeUtil.getParentOfType(method, PsiClass.class); // ERROR 4
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/MyKotlinLintDetector.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -190,7 +190,7 @@
)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/UastImplementation.md.html b/docs/checks/UastImplementation.md.html
index d25aecff..17fec043 100644
--- a/docs/checks/UastImplementation.md.html
+++ b/docs/checks/UastImplementation.md.html
@@ -39,78 +39,78 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/test/pkg/UastImplementationDetectorTestInput.kt:18:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:19:Warning:
org.jetbrains.uast.kotlin.KotlinUField is UAST implementation. Consider
using one of its corresponding UAST interfaces: UVariableEx, UVariable,
UDeclaration, UAnnotated, UDeclarationEx, UAnchorOwner, UFieldEx, UField
[UastImplementation]
import org.jetbrains.uast.kotlin.KotlinUField // ERROR 1
--------------------------------------------------------
-src/test/pkg/UastImplementationDetectorTestInput.kt:19:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:20:Warning:
org.jetbrains.uast.kotlin.KotlinUImportStatement is UAST implementation.
Consider using one of its corresponding UAST interfaces:
UImportStatement, UResolvable [UastImplementation]
import org.jetbrains.uast.kotlin.KotlinUImportStatement // ERROR 2
------------------------------------------------------------------
-src/test/pkg/UastImplementationDetectorTestInput.kt:20:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:21:Warning:
org.jetbrains.uast.kotlin.KotlinUThisExpression is UAST implementation.
Consider using one of its corresponding UAST interfaces: UExpression,
UAnnotated, UThisExpression, UInstanceExpression, ULabeled, UResolvable
[UastImplementation]
import org.jetbrains.uast.kotlin.KotlinUThisExpression // ERROR 3
-----------------------------------------------------------------
-src/test/pkg/UastImplementationDetectorTestInput.kt:21:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:22:Warning:
org.jetbrains.uast.kotlin.KotlinUastResolveProviderService is UAST
implementation. Consider using one of its corresponding UAST interfaces:
BaseKotlinUastResolveProviderService [UastImplementation]
import org.jetbrains.uast.kotlin.KotlinUastResolveProviderService // ERROR 4
----------------------------------------------------------------------------
-src/test/pkg/UastImplementationDetectorTestInput.kt:22:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:23:Warning:
org.jetbrains.uast.kotlin.UnknownKotlinExpression is UAST
implementation. Consider using one of its corresponding UAST interfaces:
UExpression, UAnnotated, UUnknownExpression [UastImplementation]
import org.jetbrains.uast.kotlin.UnknownKotlinExpression // ERROR 5
-------------------------------------------------------------------
-src/test/pkg/UastImplementationDetectorTestInput.kt:45:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:47:Warning:
org.jetbrains.uast.kotlin.KotlinUField is UAST implementation. Consider
using one of its corresponding UAST interfaces: UVariableEx, UVariable,
UDeclaration, UAnnotated, UDeclarationEx, UAnchorOwner, UFieldEx, UField
[UastImplementation]
val delegateType = (field as? KotlinUField)?.type // ERROR 6
------------
-src/test/pkg/UastImplementationDetectorTestInput.kt:57:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:59:Warning:
org.jetbrains.uast.kotlin.KotlinUImportStatement is UAST implementation.
Consider using one of its corresponding UAST interfaces:
UImportStatement, UResolvable [UastImplementation]
val alias = (node as? KotlinUImportStatement)?.sourcePsi?.alias // ERROR 7
----------------------
-src/test/pkg/UastImplementationDetectorTestInput.kt:63:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:65:Warning:
org.jetbrains.uast.kotlin.KotlinUThisExpression is UAST implementation.
Consider using one of its corresponding UAST interfaces: UExpression,
UAnnotated, UThisExpression, UInstanceExpression, ULabeled, UResolvable
[UastImplementation]
class MockKtThisChecker : AbstractDetector(KotlinUThisExpression::class) { // ERROR 8
----------------------------
-src/test/pkg/UastImplementationDetectorTestInput.kt:76:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:79:Warning:
org.jetbrains.uast.kotlin.KotlinUThisExpression is UAST implementation.
Consider using one of its corresponding UAST interfaces: UExpression,
UAnnotated, UThisExpression, UInstanceExpression, ULabeled, UResolvable
[UastImplementation]
firstElement is KotlinUThisExpression && firstElement.label != null -> { // ERROR 9
---------------------
-src/test/pkg/UastImplementationDetectorTestInput.kt:87:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:90:Warning:
org.jetbrains.uast.kotlin.KotlinUastResolveProviderService is UAST
implementation. Consider using one of its corresponding UAST interfaces:
BaseKotlinUastResolveProviderService [UastImplementation]
ServiceManager.getService(this.project, KotlinUastResolveProviderService::class.java) // ERROR 10
---------------------------------------
-src/test/pkg/UastImplementationDetectorTestInput.kt:93:Warning:
+src/test/pkg/UastImplementationDetectorTestInput.kt:96:Warning:
org.jetbrains.uast.kotlin.UnknownKotlinExpression is UAST
implementation. Consider using one of its corresponding UAST interfaces:
UExpression, UAnnotated, UUnknownExpression [UastImplementation]
return if (this !is UnknownKotlinExpression) this else null // ERROR 11
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -126,6 +126,7 @@
import com.android.tools.lint.detector.api.Severity
import com.intellij.openapi.components.ServiceManager
import org.jetbrains.kotlin.psi.KtElement
+import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.uast.UClass
import org.jetbrains.uast.UElement
@@ -138,6 +139,7 @@
import org.jetbrains.uast.kotlin.KotlinUThisExpression // ERROR 3
import org.jetbrains.uast.kotlin.KotlinUastResolveProviderService // ERROR 4
import org.jetbrains.uast.kotlin.UnknownKotlinExpression // ERROR 5
+import org.jetbrains.uast.kotlin.readWriteAccess
class UastImplementationDetectorTestInput {
@@ -152,7 +154,7 @@
}
class MockSafetyDetector : AbstractDetector(UClass::class) {
- override fun createUastHandler(context: JavaContext): UElementHandler? {
+ override fun createUastHandler(context: JavaContext): UElementHandler {
return object : UElementHandler() {
override fun visitClass(node: UClass) {
node.fields.forEach { field -> checkFieldSafety(field) }
@@ -169,7 +171,7 @@
}
class MockCoroutineChecker : AbstractDetector(UImportStatement::class) {
- override fun createUastHandler(context: JavaContext): UElementHandler? {
+ override fun createUastHandler(context: JavaContext): UElementHandler {
return object : UElementHandler() {
override fun visitImportStatement(node: UImportStatement) {
val alias = (node as? KotlinUImportStatement)?.sourcePsi?.alias // ERROR 7
@@ -179,7 +181,7 @@
}
class MockKtThisChecker : AbstractDetector(KotlinUThisExpression::class) { // ERROR 8
- override fun createUastHandler(context: JavaContext): UElementHandler? {
+ override fun createUastHandler(context: JavaContext): UElementHandler {
return object : UElementHandler() {
override fun visitElement(node: UElement) {
}
@@ -188,6 +190,7 @@
}
private fun trimTrivialThisExpr(expr: UExpression): UExpression? {
+ (expr.sourcePsi as? KtExpression)?.readWriteAccess()
var firstElement = expr
return when {
@@ -211,7 +214,7 @@
return if (this !is UnknownKotlinExpression) this else null // ERROR 11
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/UastImplementationDetectorTest.kt)
diff --git a/docs/checks/UnclosedTrace.md.html b/docs/checks/UnclosedTrace.md.html
index 1bf3a8f5..550229a3 100644
--- a/docs/checks/UnclosedTrace.md.html
+++ b/docs/checks/UnclosedTrace.md.html
@@ -104,7 +104,7 @@
<option name="strict" value="false" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -120,7 +120,7 @@
throw an exception [UnclosedTrace]
Trace.beginSection("Wrong-2")
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -160,7 +160,7 @@
}
suspend fun suspendingCall() { }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TraceSectionDetectorTest.kt)
diff --git a/docs/checks/UnintendedExposedUrl.md.html b/docs/checks/UnintendedExposedUrl.md.html
index 1302d15a..5408eb18 100644
--- a/docs/checks/UnintendedExposedUrl.md.html
+++ b/docs/checks/UnintendedExposedUrl.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Resource files
Editing
@@ -67,7 +67,7 @@
application and its resources [UnintendedExposedUrl]
<domain>debug.io</domain>
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -83,7 +83,7 @@
<domain>debug.io</domain>
</domain-config>
</network-security-config>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/UnintendedExposedUrlDetectorTest.kt)
@@ -103,17 +103,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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
@@ -125,7 +125,7 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/UnintendedPrivateIpAddress.md.html b/docs/checks/UnintendedPrivateIpAddress.md.html
index 8e22100f..682f17eb 100644
--- a/docs/checks/UnintendedPrivateIpAddress.md.html
+++ b/docs/checks/UnintendedPrivateIpAddress.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Resource files
Editing
@@ -68,7 +68,7 @@
[UnintendedPrivateIpAddress]
<domain>8.0.0.28</domain>
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -84,7 +84,7 @@
<domain>8.0.0.28</domain>
</domain-config>
</network-security-config>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/UnintendedExposedUrlDetectorTest.kt)
@@ -104,17 +104,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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,7 +126,7 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/UniqueConstants.md.html b/docs/checks/UniqueConstants.md.html
index ef167090..8c89f15f 100644
--- a/docs/checks/UniqueConstants.md.html
+++ b/docs/checks/UniqueConstants.md.html
@@ -58,7 +58,7 @@
included [UniqueConstants]
@IntDef({FLAG1, FLAG2, FLAG1})
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -100,7 +100,7 @@
private @interface Flags1 {}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AnnotationDetectorTest.kt)
diff --git a/docs/checks/UniquePermission.md.html b/docs/checks/UniquePermission.md.html
index ef216328..e4c38b7e 100644
--- a/docs/checks/UniquePermission.md.html
+++ b/docs/checks/UniquePermission.md.html
@@ -51,7 +51,7 @@
[UniquePermission]
<permission android:name="bar.permission.SEND_SMS"
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -77,7 +77,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -110,11 +110,10 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-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/ManifestDetectorTest.kt)
+You can also visit the source code ([ManifestDetectorTest.kt](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/ManifestDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/UnknownId.md.html b/docs/checks/UnknownId.md.html
index 739c9343..aa26a4fd 100644
--- a/docs/checks/UnknownId.md.html
+++ b/docs/checks/UnknownId.md.html
@@ -53,7 +53,7 @@
anywhere. Did you mean one of {my_id0, my_id1, my_id2} ? [UnknownId]
android:layout_alignRight="@+id/my_id3"
---------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -104,7 +104,7 @@
android:text="Button" />
</RelativeLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/layout2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -120,7 +120,7 @@
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/ids.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -131,7 +131,7 @@
<item name="my_id1" type="id"/>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongIdDetectorTest.kt)
diff --git a/docs/checks/UnknownIdInLayout.md.html b/docs/checks/UnknownIdInLayout.md.html
index 5db6a8d4..968faa08 100644
--- a/docs/checks/UnknownIdInLayout.md.html
+++ b/docs/checks/UnknownIdInLayout.md.html
@@ -49,7 +49,7 @@
any views in this layout [UnknownIdInLayout]
android:layout_alignLeft="@+id/my_id2"
--------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -100,7 +100,7 @@
android:text="Button" />
</RelativeLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/layout2.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -116,7 +116,7 @@
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/ids.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -127,7 +127,7 @@
<item name="my_id1" type="id"/>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongIdDetectorTest.kt)
diff --git a/docs/checks/UnknownNullness.md.html b/docs/checks/UnknownNullness.md.html
index 4c143af2..5077383f 100644
--- a/docs/checks/UnknownNullness.md.html
+++ b/docs/checks/UnknownNullness.md.html
@@ -58,7 +58,7 @@
<option name="ignore-deprecated" value="false" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -100,7 +100,7 @@
[UnknownNullness]
public Float error8;
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -141,10 +141,10 @@
@Deprecated
public Float error8;
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/InteroperabilityDetectorTest.kt)
+You can also visit the source code ([InteroperabilityDetectorTest.kt](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/InteroperabilityDetectorTest.kt)
+[TextReporterTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/TextReporterTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/UnlocalizedSms.md.html b/docs/checks/UnlocalizedSms.md.html
index 6635d4fe..51c13ba5 100644
--- a/docs/checks/UnlocalizedSms.md.html
+++ b/docs/checks/UnlocalizedSms.md.html
@@ -45,7 +45,7 @@
the country you are targeting [UnlocalizedSms]
sms.sendMultipartTextMessage("001234567890", null, null, null, null);
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
sms.sendMultipartTextMessage("001234567890", null, null, null, null);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/NonInternationalizedSmsDetectorTest.java)
diff --git a/docs/checks/UnnecessaryArrayInit.md.html b/docs/checks/UnnecessaryArrayInit.md.html
index 914c3615..bb24454d 100644
--- a/docs/checks/UnnecessaryArrayInit.md.html
+++ b/docs/checks/UnnecessaryArrayInit.md.html
@@ -44,7 +44,7 @@
unnecessary and is less efficient [UnnecessaryArrayInit]
val startPoints = remember { IntArray(4) { 0 } }
-----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -56,7 +56,7 @@
// Mutable Array to keep track of bound changes -- example from MotionLayout
val startPoints = remember { IntArray(4) { 0 } }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ArrayInitDetectorTest.kt)
diff --git a/docs/checks/UnnecessaryComposedModifier.md.html b/docs/checks/UnnecessaryComposedModifier.md.html
index 8f0300ae..27012f9e 100644
--- a/docs/checks/UnnecessaryComposedModifier.md.html
+++ b/docs/checks/UnnecessaryComposedModifier.md.html
@@ -67,7 +67,7 @@
[UnnecessaryComposedModifier]
fun Modifier.test4(): Modifier = composed({}, { this@test4})
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -94,7 +94,7 @@
})
fun Modifier.test4(): Modifier = composed({}, { this@test4})
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ComposedModifierDetectorTest.kt)
@@ -113,17 +113,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html).
diff --git a/docs/checks/UnnecessaryRequiredFeature.md.html b/docs/checks/UnnecessaryRequiredFeature.md.html
index 6ef19568..5f6c5f4f 100644
--- a/docs/checks/UnnecessaryRequiredFeature.md.html
+++ b/docs/checks/UnnecessaryRequiredFeature.md.html
@@ -105,7 +105,7 @@
feature is used but not required [UnnecessaryRequiredFeature]
<uses-feature android:name="android.hardware.screen.portrait" android:required="true" /> <!-- WARN 10 -->
--------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -143,7 +143,7 @@
</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/RequiredFeatureDetectorTest.kt)
diff --git a/docs/checks/UnprotectedSMSBroadcastReceiver.md.html b/docs/checks/UnprotectedSMSBroadcastReceiver.md.html
index 5854cc7c..ff352860 100644
--- a/docs/checks/UnprotectedSMSBroadcastReceiver.md.html
+++ b/docs/checks/UnprotectedSMSBroadcastReceiver.md.html
@@ -49,7 +49,7 @@
malicious actors to spoof intents [UnprotectedSMSBroadcastReceiver]
<receiver
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,8 +76,7 @@
</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/UnsafeBroadcastReceiverDetectorTest.java)
diff --git a/docs/checks/UnrememberedGetBackStackEntry.md.html b/docs/checks/UnrememberedGetBackStackEntry.md.html
index 3683d9af..ff755512 100644
--- a/docs/checks/UnrememberedGetBackStackEntry.md.html
+++ b/docs/checks/UnrememberedGetBackStackEntry.md.html
@@ -90,7 +90,7 @@
[UnrememberedGetBackStackEntry]
val entry = navController.getBackStackEntry("test")
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -151,7 +151,7 @@
val entry = navController.getBackStackEntry("test")
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/UnrememberedGetBackStackEntryDetectorTest.kt)
@@ -170,17 +170,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-compose:2.9.0-rc01")
+implementation("androidx.navigation:navigation-compose:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-compose:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-compose:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.compose)
# libs.versions.toml
[versions]
-navigation-compose = "2.9.0-rc01"
+navigation-compose = "2.9.7"
[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-rc01 is the version this documentation was generated from;
+2.9.7 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/UnrememberedMutableState.md.html b/docs/checks/UnrememberedMutableState.md.html
index 44e1f17a..d08c643d 100644
--- a/docs/checks/UnrememberedMutableState.md.html
+++ b/docs/checks/UnrememberedMutableState.md.html
@@ -176,7 +176,7 @@
during composition without using remember [UnrememberedMutableState]
val derived = derivedStateOf { foo.value }
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -252,7 +252,7 @@
val derived = derivedStateOf { foo.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/UnrememberedStateDetectorTest.kt)
@@ -271,17 +271,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.runtime:runtime-android](androidx_compose_runtime_runtime-android.md.html).
diff --git a/docs/checks/UnsafeCryptoAlgorithmUsage.md.html b/docs/checks/UnsafeCryptoAlgorithmUsage.md.html
index 96ed0b66..98595713 100644
--- a/docs/checks/UnsafeCryptoAlgorithmUsage.md.html
+++ b/docs/checks/UnsafeCryptoAlgorithmUsage.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Kotlin and Java files
Editing
@@ -57,7 +57,7 @@
attacks [UnsafeCryptoAlgorithmUsage]
Cipher.getInstance(algo + "/" + mode + "/" + padding)
-----------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,7 +76,7 @@
Cipher.getInstance(algo + "/" + mode + "/" + padding)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/BadCryptographyUsageDetectorTest.kt)
@@ -96,17 +96,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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
@@ -118,7 +118,7 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/UnsafeDynamicallyLoadedCode.md.html b/docs/checks/UnsafeDynamicallyLoadedCode.md.html
index 165cc9b7..7d2c6bd1 100644
--- a/docs/checks/UnsafeDynamicallyLoadedCode.md.html
+++ b/docs/checks/UnsafeDynamicallyLoadedCode.md.html
@@ -52,7 +52,7 @@
[UnsafeDynamicallyLoadedCode]
System.load("/data/data/test.pkg/files/libhello.so");
----------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -79,7 +79,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/UnsafeNativeCodeDetectorTest.kt)
diff --git a/docs/checks/UnsafeImplicitIntentLaunch.md.html b/docs/checks/UnsafeImplicitIntentLaunch.md.html
index 0035f001..7d545fe7 100644
--- a/docs/checks/UnsafeImplicitIntentLaunch.md.html
+++ b/docs/checks/UnsafeImplicitIntentLaunch.md.html
@@ -51,7 +51,7 @@
Intent.set{Component,Class,ClassName}. [UnsafeImplicitIntentLaunch]
Intent intent = new Intent("some.fake.action.LAUNCH");
-------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -70,7 +70,7 @@
startActivity(intent);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -85,7 +85,7 @@
</activity>
</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/UnsafeImplicitIntentDetectorTest.kt)
diff --git a/docs/checks/UnsafeIntentLaunch.md.html b/docs/checks/UnsafeIntentLaunch.md.html
index 6148e5e1..53b2129a 100644
--- a/docs/checks/UnsafeIntentLaunch.md.html
+++ b/docs/checks/UnsafeIntentLaunch.md.html
@@ -45,7 +45,7 @@
androidx.core.content.IntentSanitizer. [UnsafeIntentLaunch]
Intent intent = getIntent().getParcelableExtra(Intent.EXTRA_INTENT);
---------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -64,7 +64,7 @@
startActivity(intent);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/TestService.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -80,7 +80,7 @@
stopService(intent);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/TestReceiver.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -97,7 +97,7 @@
context.sendOrderedBroadcast(intent, "qwerty");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -109,7 +109,7 @@
<receiver android:name=".TestReceiver" android:exported="true" />
</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/UnsafeIntentLaunchDetectorTest.kt)
diff --git a/docs/checks/UnsafeLifecycleWhenUsage-2.md.html b/docs/checks/UnsafeLifecycleWhenUsage-2.md.html
index ecc37505..96080a00 100644
--- a/docs/checks/UnsafeLifecycleWhenUsage-2.md.html
+++ b/docs/checks/UnsafeLifecycleWhenUsage-2.md.html
@@ -35,7 +35,7 @@
Implementation
: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-runtime-lint/src/main/java/androidx/lifecycle/lint/LifecycleWhenChecks.kt)
Tests
-: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-runtime-lint/src/test/java/androidx/lifecycle/runtime/lint/LifecycleWhenChecksTest.kt)
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-runtime-lint/src/test/java/androidx/lifecycle/runtime/lint/WhenMethodsTest.kt)
Copyright Year
: 2019
@@ -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-rc01](UnsafeLifecycleWhenUsage.md.html)
+* [UnsafeLifecycleWhenUsage from androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01](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 2beb8e3d..a5a0fccd 100644
--- a/docs/checks/UnsafeLifecycleWhenUsage.md.html
+++ b/docs/checks/UnsafeLifecycleWhenUsage.md.html
@@ -35,7 +35,7 @@
Implementation
: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-runtime-lint/src/main/java/androidx/lifecycle/lint/LifecycleWhenChecks.kt)
Tests
-: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-runtime-lint/src/test/java/androidx/lifecycle/runtime/lint/LifecycleWhenChecksTest.kt)
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-runtime-lint/src/test/java/androidx/lifecycle/runtime/lint/WhenMethodsTest.kt)
Copyright Year
: 2019
@@ -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-rc01](UnsafeLifecycleWhenUsage.md.html)
+* [UnsafeLifecycleWhenUsage from androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01](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-rc01")
+implementation("androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.runtime.android)
# libs.versions.toml
[versions]
-lifecycle-runtime-android = "2.9.0-rc01"
+lifecycle-runtime-android = "2.11.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
@@ -92,7 +92,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 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 65b8f5e1..84608e97 100644
--- a/docs/checks/UnsafeOptInUsageError.md.html
+++ b/docs/checks/UnsafeOptInUsageError.md.html
@@ -74,17 +74,17 @@
```
// build.gradle.kts
-implementation("androidx.annotation:annotation-experimental:1.5.0-rc01")
+implementation("androidx.annotation:annotation-experimental:1.6.0-rc01")
// build.gradle
-implementation 'androidx.annotation:annotation-experimental:1.5.0-rc01'
+implementation 'androidx.annotation:annotation-experimental:1.6.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.annotation.experimental)
# libs.versions.toml
[versions]
-annotation-experimental = "1.5.0-rc01"
+annotation-experimental = "1.6.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-rc01 is the version this documentation was generated from;
+1.6.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 9728ea06..b7888901 100644
--- a/docs/checks/UnsafeOptInUsageWarning.md.html
+++ b/docs/checks/UnsafeOptInUsageWarning.md.html
@@ -71,17 +71,17 @@
```
// build.gradle.kts
-implementation("androidx.annotation:annotation-experimental:1.5.0-rc01")
+implementation("androidx.annotation:annotation-experimental:1.6.0-rc01")
// build.gradle
-implementation 'androidx.annotation:annotation-experimental:1.5.0-rc01'
+implementation 'androidx.annotation:annotation-experimental:1.6.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.annotation.experimental)
# libs.versions.toml
[versions]
-annotation-experimental = "1.5.0-rc01"
+annotation-experimental = "1.6.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-rc01 is the version this documentation was generated from;
+1.6.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/UnsafeProtectedBroadcastReceiver.md.html b/docs/checks/UnsafeProtectedBroadcastReceiver.md.html
index 26161254..297b2b60 100644
--- a/docs/checks/UnsafeProtectedBroadcastReceiver.md.html
+++ b/docs/checks/UnsafeProtectedBroadcastReceiver.md.html
@@ -50,7 +50,7 @@
cause undesired behavior. [UnsafeProtectedBroadcastReceiver]
public void onReceive(Context context, Intent intent) {
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -77,8 +77,7 @@
</application>
</manifest>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/TestReceiver.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -103,7 +102,7 @@
};
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/UnsafeBroadcastReceiverDetectorTest.java)
diff --git a/docs/checks/UnsafeRepeatOnLifecycleDetector.md.html b/docs/checks/UnsafeRepeatOnLifecycleDetector.md.html
index a6e0dd07..6832fb39 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.6")
+implementation("androidx.fragment:fragment:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment:1.8.6'
+implementation 'androidx.fragment:fragment:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment)
# libs.versions.toml
[versions]
-fragment = "1.8.6"
+fragment = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 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/UnsanitizedFilenameFromContentProvider.md.html b/docs/checks/UnsanitizedFilenameFromContentProvider.md.html
index b1380cd2..8dfde414 100644
--- a/docs/checks/UnsanitizedFilenameFromContentProvider.md.html
+++ b/docs/checks/UnsanitizedFilenameFromContentProvider.md.html
@@ -52,7 +52,7 @@
[UnsanitizedFilenameFromContentProvider]
val fileObject = File("./", fileName)
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -70,7 +70,7 @@
File fileObject = new File("./", fileName);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/TestClass.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -86,7 +86,7 @@
val fileObject = File("./", fileName)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/UnsafeFilenameDetectorTest.kt)
diff --git a/docs/checks/UnspecifiedImmutableFlag.md.html b/docs/checks/UnspecifiedImmutableFlag.md.html
index 41e9a78a..98f5fd1c 100644
--- a/docs/checks/UnspecifiedImmutableFlag.md.html
+++ b/docs/checks/UnspecifiedImmutableFlag.md.html
@@ -58,7 +58,7 @@
mutability flag [UnspecifiedImmutableFlag]
PendingIntent.getActivities(null, 0, null, 0);
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,8 +74,7 @@
PendingIntent.getActivities(null, 0, null, 0);
}
}
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PendingIntentMutableFlagDetectorTest.kt)
diff --git a/docs/checks/UnspecifiedRegisterReceiverFlag.md.html b/docs/checks/UnspecifiedRegisterReceiverFlag.md.html
index 7d21214b..5039b5ad 100644
--- a/docs/checks/UnspecifiedRegisterReceiverFlag.md.html
+++ b/docs/checks/UnspecifiedRegisterReceiverFlag.md.html
@@ -54,7 +54,7 @@
lint [UnspecifiedRegisterReceiverFlag]
mContext.registerReceiver(receiver, myIntentFilter);
---------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -78,7 +78,7 @@
mContext.registerReceiver(receiver, myIntentFilter);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/RegisterReceiverFlagDetectorTest.kt)
diff --git a/docs/checks/UnsupportedChromeOsCameraSystemFeature.md.html b/docs/checks/UnsupportedChromeOsCameraSystemFeature.md.html
index 16546f55..56c52451 100644
--- a/docs/checks/UnsupportedChromeOsCameraSystemFeature.md.html
+++ b/docs/checks/UnsupportedChromeOsCameraSystemFeature.md.html
@@ -50,7 +50,7 @@
[UnsupportedChromeOsCameraSystemFeature]
getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA);
-------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -73,7 +73,7 @@
getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ChromeOsSourceDetectorTest.kt)
diff --git a/docs/checks/UnsupportedChromeOsHardware.md.html b/docs/checks/UnsupportedChromeOsHardware.md.html
index cc6d4dab..1a1c328b 100644
--- a/docs/checks/UnsupportedChromeOsHardware.md.html
+++ b/docs/checks/UnsupportedChromeOsHardware.md.html
@@ -52,7 +52,7 @@
[UnsupportedChromeOsHardware]
android:name="android.hardware.touchscreen" android:required="true"/>
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
android:name="android.hardware.touchscreen" android:required="true"/>
</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/ChromeOsDetectorTest.java)
diff --git a/docs/checks/UnsupportedLayoutAttribute.md.html b/docs/checks/UnsupportedLayoutAttribute.md.html
index 3074ae74..a2e89d2e 100644
--- a/docs/checks/UnsupportedLayoutAttribute.md.html
+++ b/docs/checks/UnsupportedLayoutAttribute.md.html
@@ -51,7 +51,7 @@
RelativeLayout [UnsupportedLayoutAttribute]
android:orientation="vertical"/>
------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/UnsupportedLayoutAttributeDetectorTest.kt)
diff --git a/docs/checks/UnsupportedTvHardware.md.html b/docs/checks/UnsupportedTvHardware.md.html
index 4aabe575..135374fa 100644
--- a/docs/checks/UnsupportedTvHardware.md.html
+++ b/docs/checks/UnsupportedTvHardware.md.html
@@ -49,7 +49,7 @@
[UnsupportedTvHardware]
android:name="android.hardware.touchscreen" android:required="true"/>
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -63,7 +63,7 @@
android:name="android.hardware.touchscreen" android:required="true"/>
</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/AndroidTvDetectorTest.java)
diff --git a/docs/checks/Untranslatable.md.html b/docs/checks/Untranslatable.md.html
index ef4ade3f..99886bcf 100644
--- a/docs/checks/Untranslatable.md.html
+++ b/docs/checks/Untranslatable.md.html
@@ -51,7 +51,7 @@
[Untranslatable]
<string name="sample">Ignore Me</string>
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -60,15 +60,14 @@
<resources>
<string name="sample" translatable="false">Ignore Me</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-nb/nontranslatable.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="sample">Ignore Me</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TranslationDetectorTest.kt)
diff --git a/docs/checks/UnusedAttribute.md.html b/docs/checks/UnusedAttribute.md.html
index 40b2dcf4..0c11dfb0 100644
--- a/docs/checks/UnusedAttribute.md.html
+++ b/docs/checks/UnusedAttribute.md.html
@@ -59,7 +59,7 @@
[UnusedAttribute]
android:theme="@android:style/Theme.Holo" />
-----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -70,7 +70,7 @@
android:minSdkVersion="21"
android:targetSdkVersion="30" />
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/linear.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -87,10 +87,10 @@
android:theme="@android:style/Theme.Holo" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/ApiDetectorTest.java)
+You can also visit the source code ([ApiDetectorTest.java](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/ApiDetectorTest.java)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/UnusedBoxWithConstraintsScope.md.html b/docs/checks/UnusedBoxWithConstraintsScope.md.html
index f56bc5ec..dcd3da73 100644
--- a/docs/checks/UnusedBoxWithConstraintsScope.md.html
+++ b/docs/checks/UnusedBoxWithConstraintsScope.md.html
@@ -64,7 +64,7 @@
[UnusedBoxWithConstraintsScope]
BoxWithConstraints(propagateMinConstraints = false, content = { /**/ })
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -83,7 +83,7 @@
BoxWithConstraints(content = { /**/ })
BoxWithConstraints(propagateMinConstraints = false, content = { /**/ })
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/BoxWithConstraintsDetectorTest.kt)
@@ -102,17 +102,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.foundation:foundation-android:1.9.0-alpha01")
+implementation("androidx.compose.foundation:foundation-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.foundation:foundation-android:1.9.0-alpha01'
+implementation 'androidx.compose.foundation:foundation-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.foundation.android)
# libs.versions.toml
[versions]
-foundation-android = "1.9.0-alpha01"
+foundation-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.foundation:foundation-lint:1.11.0-alpha06`.
[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 f0b3a594..8b667fb5 100644
--- a/docs/checks/UnusedContentLambdaTargetStateParameter.md.html
+++ b/docs/checks/UnusedContentLambdaTargetStateParameter.md.html
@@ -51,61 +51,61 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/test.kt:14:Error: Target state parameter it is not used
+src/test/foo/test.kt:14:Error: Target state parameter it is not used
[UnusedContentLambdaTargetStateParameter]
) { if (foo) { /**/ } else { /**/ } }
-----------------------------------
-src/foo/test.kt:18:Error: Target state parameter it is not used
+src/test/foo/test.kt:18:Error: Target state parameter it is not used
[UnusedContentLambdaTargetStateParameter]
content = { if (foo) { /**/ } else { /**/ } }
-----------------------------------
-src/foo/test.kt:23:Error: Target state parameter param is not used
+src/test/foo/test.kt:23:Error: Target state parameter param is not used
[UnusedContentLambdaTargetStateParameter]
) { param -> if (foo) { /**/ } else { /**/ } }
-----
-src/foo/test.kt:27:Error: Target state parameter param is not used
+src/test/foo/test.kt:27:Error: Target state parameter param is not used
[UnusedContentLambdaTargetStateParameter]
content = { param -> if (foo) { /**/ } else { /**/ } }
-----
-src/foo/test.kt:32:Error: Target state parameter _ is not used
+src/test/foo/test.kt:32:Error: Target state parameter _ is not used
[UnusedContentLambdaTargetStateParameter]
) { _ -> if (foo) { /**/ } else { /**/ } }
-
-src/foo/test.kt:36:Error: Target state parameter _ is not used
+src/test/foo/test.kt:36:Error: Target state parameter _ is not used
[UnusedContentLambdaTargetStateParameter]
content = { _ -> if (foo) { /**/ } else { /**/ } }
-
-src/foo/test.kt:40:Error: Target state parameter it is not used
+src/test/foo/test.kt:40:Error: Target state parameter it is not used
[UnusedContentLambdaTargetStateParameter]
) { if (foo) { /**/ } else { /**/ } }
-----------------------------------
-src/foo/test.kt:43:Error: Target state parameter it is not used
+src/test/foo/test.kt:43:Error: Target state parameter it is not used
[UnusedContentLambdaTargetStateParameter]
content = { if (foo) { /**/ } else { /**/ } }
-----------------------------------
-src/foo/test.kt:47:Error: Target state parameter param is not used
+src/test/foo/test.kt:47:Error: Target state parameter param is not used
[UnusedContentLambdaTargetStateParameter]
) { param -> if (foo) { /**/ } else { /**/ } }
-----
-src/foo/test.kt:50:Error: Target state parameter param is not used
+src/test/foo/test.kt:50:Error: Target state parameter param is not used
[UnusedContentLambdaTargetStateParameter]
content = { param -> if (foo) { /**/ } else { /**/ } }
-----
-src/foo/test.kt:54:Error: Target state parameter _ is not used
+src/test/foo/test.kt:54:Error: Target state parameter _ is not used
[UnusedContentLambdaTargetStateParameter]
) { _ -> if (foo) { /**/ } else { /**/ } }
-
-src/foo/test.kt:57:Error: Target state parameter _ is not used
+src/test/foo/test.kt:57:Error: Target state parameter _ is not used
[UnusedContentLambdaTargetStateParameter]
content = { _ -> if (foo) { /**/ } else { /**/ } }
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
-`src/foo/test.kt`:
+`src/test/foo/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-package foo
+package test.foo
import androidx.compose.animation.*
import androidx.compose.runtime.*
@@ -163,7 +163,7 @@
content = { _ -> if (foo) { /**/ } else { /**/ } }
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/AnimatedContentDetectorTest.kt)
@@ -182,17 +182,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.animation:animation-android:1.9.0-alpha01")
+implementation("androidx.compose.animation:animation-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01'
+implementation 'androidx.compose.animation:animation-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.animation.android)
# libs.versions.toml
[versions]
-animation-android = "1.9.0-alpha01"
+animation-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.animation:animation-lint:1.11.0-alpha06`.
[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 8c83c31b..ca765f6b 100644
--- a/docs/checks/UnusedCrossfadeTargetStateParameter.md.html
+++ b/docs/checks/UnusedCrossfadeTargetStateParameter.md.html
@@ -51,37 +51,37 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/test.kt:11:Error: Target state parameter it is not used
+src/test/foo/test.kt:11:Error: Target state parameter it is not used
[UnusedCrossfadeTargetStateParameter]
Crossfade(foo) { if (foo) { /**/ } else { /**/ } }
-----------------------------------
-src/foo/test.kt:12:Error: Target state parameter it is not used
+src/test/foo/test.kt:12:Error: Target state parameter it is not used
[UnusedCrossfadeTargetStateParameter]
Crossfade(foo, content = { if (foo) { /**/ } else { /**/ } })
-----------------------------------
-src/foo/test.kt:13:Error: Target state parameter param is not used
+src/test/foo/test.kt:13:Error: Target state parameter param is not used
[UnusedCrossfadeTargetStateParameter]
Crossfade(foo) { param -> if (foo) { /**/ } else { /**/ } }
-----
-src/foo/test.kt:14:Error: Target state parameter param is not used
+src/test/foo/test.kt:14:Error: Target state parameter param is not used
[UnusedCrossfadeTargetStateParameter]
Crossfade(foo, content = { param -> if (foo) { /**/ } else { /**/ } })
-----
-src/foo/test.kt:15:Error: Target state parameter _ is not used
+src/test/foo/test.kt:15:Error: Target state parameter _ is not used
[UnusedCrossfadeTargetStateParameter]
Crossfade(foo) { _ -> if (foo) { /**/ } else { /**/ } }
-
-src/foo/test.kt:16:Error: Target state parameter _ is not used
+src/test/foo/test.kt:16:Error: Target state parameter _ is not used
[UnusedCrossfadeTargetStateParameter]
Crossfade(foo, content = { _ -> if (foo) { /**/ } else { /**/ } })
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
-`src/foo/test.kt`:
+`src/test/foo/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-package foo
+package test.foo
import androidx.compose.animation.*
import androidx.compose.runtime.*
@@ -97,7 +97,7 @@
Crossfade(foo) { _ -> if (foo) { /**/ } else { /**/ } }
Crossfade(foo, content = { _ -> if (foo) { /**/ } else { /**/ } })
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/CrossfadeDetectorTest.kt)
@@ -116,17 +116,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.animation:animation-android:1.9.0-alpha01")
+implementation("androidx.compose.animation:animation-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01'
+implementation 'androidx.compose.animation:animation-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.animation.android)
# libs.versions.toml
[versions]
-animation-android = "1.9.0-alpha01"
+animation-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.animation:animation-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.animation:animation-android](androidx_compose_animation_animation-android.md.html).
diff --git a/docs/checks/UnusedIds.md.html b/docs/checks/UnusedIds.md.html
index 4bc0ad81..2e899582 100644
--- a/docs/checks/UnusedIds.md.html
+++ b/docs/checks/UnusedIds.md.html
@@ -29,7 +29,7 @@
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/UnusedResourceDetector.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/UnusedResourceDetectorTest.java)
+: [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/UnusedResourceDetectorTest.kt)
Copyright Year
: 2011
@@ -64,7 +64,7 @@
unused [UnusedIds]
android:id="@+id/button1"
-------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -76,7 +76,7 @@
android:id="@+id/button1"
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -84,7 +84,7 @@
<string name="app_name">Test</string>
<string name="some_string">Some String</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/MyActivity.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -99,10 +99,10 @@
String name = getString(R.string.app_name);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/UnusedResourceDetectorTest.java)
+[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/UnusedResourceDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/UnusedMaterial3ScaffoldPaddingParameter.md.html b/docs/checks/UnusedMaterial3ScaffoldPaddingParameter.md.html
index e7be7c5d..ea6f7500 100644
--- a/docs/checks/UnusedMaterial3ScaffoldPaddingParameter.md.html
+++ b/docs/checks/UnusedMaterial3ScaffoldPaddingParameter.md.html
@@ -48,37 +48,37 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/test.kt:10:Error: Content padding parameter it is not used
+src/test/foo/test.kt:10:Error: Content padding parameter it is not used
[UnusedMaterial3ScaffoldPaddingParameter]
Scaffold { /**/ }
--------
-src/foo/test.kt:11:Error: Content padding parameter it is not used
+src/test/foo/test.kt:11:Error: Content padding parameter it is not used
[UnusedMaterial3ScaffoldPaddingParameter]
Scaffold(Modifier) { /**/ }
--------
-src/foo/test.kt:12:Error: Content padding parameter it is not used
+src/test/foo/test.kt:12:Error: Content padding parameter it is not used
[UnusedMaterial3ScaffoldPaddingParameter]
Scaffold(Modifier, topBar = {}, bottomBar = {}) { /**/ }
--------
-src/foo/test.kt:13:Error: Content padding parameter it is not used
+src/test/foo/test.kt:13:Error: Content padding parameter it is not used
[UnusedMaterial3ScaffoldPaddingParameter]
Scaffold(Modifier, topBar = {}, bottomBar = {}, content = { /**/ })
--------
-src/foo/test.kt:14:Error: Content padding parameter _ is not used
+src/test/foo/test.kt:14:Error: Content padding parameter _ is not used
[UnusedMaterial3ScaffoldPaddingParameter]
Scaffold(Modifier, topBar = {}, bottomBar = {}) { _ -> /**/ }
-
-src/foo/test.kt:15:Error: Content padding parameter innerPadding is not
-used [UnusedMaterial3ScaffoldPaddingParameter]
+src/test/foo/test.kt:15:Error: Content padding parameter innerPadding is
+not used [UnusedMaterial3ScaffoldPaddingParameter]
Scaffold(Modifier, topBar = {}, bottomBar = {}) { innerPadding -> /**/ }
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
-`src/foo/test.kt`:
+`src/test/foo/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-package foo
+package test.foo
import androidx.compose.material3.*
import androidx.compose.runtime.*
@@ -93,7 +93,7 @@
Scaffold(Modifier, topBar = {}, bottomBar = {}) { _ -> /**/ }
Scaffold(Modifier, topBar = {}, bottomBar = {}) { innerPadding -> /**/ }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/material3/material3-lint/src/test/java/androidx/compose/material3/lint/ScaffoldPaddingDetectorTest.kt)
@@ -112,17 +112,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.material3:material3-android:1.4.0-alpha13")
+implementation("androidx.compose.material3:material3-android:1.5.0-alpha15")
// build.gradle
-implementation 'androidx.compose.material3:material3-android:1.4.0-alpha13'
+implementation 'androidx.compose.material3:material3-android:1.5.0-alpha15'
// build.gradle.kts with version catalogs:
implementation(libs.material3.android)
# libs.versions.toml
[versions]
-material3-android = "1.4.0-alpha13"
+material3-android = "1.5.0-alpha15"
[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-alpha13 is the version this documentation was generated from;
+1.5.0-alpha15 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-alpha13`.
+You can also use `androidx.compose.material3:material3-lint:1.5.0-alpha15`.
[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 17582cd4..b10d9c55 100644
--- a/docs/checks/UnusedMaterialScaffoldPaddingParameter.md.html
+++ b/docs/checks/UnusedMaterialScaffoldPaddingParameter.md.html
@@ -48,37 +48,37 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/test.kt:10:Error: Content padding parameter it is not used
+src/test/foo/test.kt:10:Error: Content padding parameter it is not used
[UnusedMaterialScaffoldPaddingParameter]
Scaffold { /**/ }
--------
-src/foo/test.kt:11:Error: Content padding parameter it is not used
+src/test/foo/test.kt:11:Error: Content padding parameter it is not used
[UnusedMaterialScaffoldPaddingParameter]
Scaffold(Modifier) { /**/ }
--------
-src/foo/test.kt:12:Error: Content padding parameter it is not used
+src/test/foo/test.kt:12:Error: Content padding parameter it is not used
[UnusedMaterialScaffoldPaddingParameter]
Scaffold(Modifier, topBar = {}, bottomBar = {}) { /**/ }
--------
-src/foo/test.kt:13:Error: Content padding parameter it is not used
+src/test/foo/test.kt:13:Error: Content padding parameter it is not used
[UnusedMaterialScaffoldPaddingParameter]
Scaffold(Modifier, topBar = {}, bottomBar = {}, content = { /**/ })
--------
-src/foo/test.kt:14:Error: Content padding parameter _ is not used
+src/test/foo/test.kt:14:Error: Content padding parameter _ is not used
[UnusedMaterialScaffoldPaddingParameter]
Scaffold(Modifier, topBar = {}, bottomBar = {}) { _ -> /**/ }
-
-src/foo/test.kt:15:Error: Content padding parameter innerPadding is not
-used [UnusedMaterialScaffoldPaddingParameter]
+src/test/foo/test.kt:15:Error: Content padding parameter innerPadding is
+not used [UnusedMaterialScaffoldPaddingParameter]
Scaffold(Modifier, topBar = {}, bottomBar = {}) { innerPadding -> /**/ }
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
-`src/foo/test.kt`:
+`src/test/foo/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-package foo
+package test.foo
import androidx.compose.material.*
import androidx.compose.runtime.*
@@ -93,7 +93,7 @@
Scaffold(Modifier, topBar = {}, bottomBar = {}) { _ -> /**/ }
Scaffold(Modifier, topBar = {}, bottomBar = {}) { innerPadding -> /**/ }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/material/material-lint/src/test/java/androidx/compose/material/lint/ScaffoldPaddingDetectorTest.kt)
@@ -112,17 +112,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.material:material-android:1.9.0-alpha01")
+implementation("androidx.compose.material:material-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.material:material-android:1.9.0-alpha01'
+implementation 'androidx.compose.material:material-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.material.android)
# libs.versions.toml
[versions]
-material-android = "1.9.0-alpha01"
+material-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.material:material-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.material:material-android](androidx_compose_material_material-android.md.html).
diff --git a/docs/checks/UnusedMergeAttributes.md.html b/docs/checks/UnusedMergeAttributes.md.html
index 545f8a1d..94162b5d 100644
--- a/docs/checks/UnusedMergeAttributes.md.html
+++ b/docs/checks/UnusedMergeAttributes.md.html
@@ -49,7 +49,7 @@
[UnusedMergeAttributes]
android:layout_marginTop="64dp"
-------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
android:layout_marginTop="64dp"
tools:parentTag="LinearLayout"
/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/UnusedMergeAttributesDetectorTest.kt)
diff --git a/docs/checks/UnusedNamespace.md.html b/docs/checks/UnusedNamespace.md.html
index 0e7c8ad2..8498ba92 100644
--- a/docs/checks/UnusedNamespace.md.html
+++ b/docs/checks/UnusedNamespace.md.html
@@ -46,7 +46,7 @@
[UnusedNamespace]
xmlns:unused2="http://schemas.android.com/apk/res/unused1"
----------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,10 +66,10 @@
</foo.bar.Button>
</foo.bar.LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/NamespaceDetectorTest.kt)
+You can also visit the source code ([NamespaceDetectorTest.kt](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/NamespaceDetectorTest.kt)
+[MissingPrefixDetectorTest.kt](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/MissingPrefixDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/UnusedQuantity.md.html b/docs/checks/UnusedQuantity.md.html
index b9015514..8cdc3a55 100644
--- a/docs/checks/UnusedQuantity.md.html
+++ b/docs/checks/UnusedQuantity.md.html
@@ -59,7 +59,7 @@
the following quantities are not relevant: one [UnusedQuantity]
<plurals name="title_day_dialog_content">
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -76,7 +76,7 @@
<item quantity="other">"天"</item>
</plurals>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-cs/plurals3.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -87,7 +87,7 @@
<item quantity="other">"Koncepty"</item>
</plurals>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-fr/plurals.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -98,7 +98,7 @@
<item quantity="other">"brouillons"</item>
</plurals>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PluralsDetectorTest.java)
diff --git a/docs/checks/UnusedResources.md.html b/docs/checks/UnusedResources.md.html
index 0ca94fbd..64b93df1 100644
--- a/docs/checks/UnusedResources.md.html
+++ b/docs/checks/UnusedResources.md.html
@@ -27,7 +27,7 @@
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/UnusedResourceDetector.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/UnusedResourceDetectorTest.java)
+: [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/UnusedResourceDetectorTest.kt)
Copyright Year
: 2011
@@ -68,7 +68,7 @@
<option name="skip-libraries" value="true" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -78,7 +78,7 @@
appears to be unused [UnusedResources]
<string name="some_string">Some String</string>
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -90,7 +90,7 @@
android:id="@+id/button1"
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -98,7 +98,7 @@
<string name="app_name">Test</string>
<string name="some_string">Some String</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/MyActivity.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -113,10 +113,11 @@
String name = getString(R.string.app_name);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/UnusedResourceDetectorTest.java)
+You can also visit the source code ([UnusedResourceDetectorTest.kt](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/UnusedResourceDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.java)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/UnusedSharedTransitionModifierParameter.md.html b/docs/checks/UnusedSharedTransitionModifierParameter.md.html
index 6c367af0..68c5ab17 100644
--- a/docs/checks/UnusedSharedTransitionModifierParameter.md.html
+++ b/docs/checks/UnusedSharedTransitionModifierParameter.md.html
@@ -56,7 +56,7 @@
SharedTransitionLayout. [UnusedSharedTransitionModifierParameter]
SharedTransitionScope {
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,7 +74,7 @@
// Do nothing
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/SharedTransitionScopeDetectorTest.kt)
@@ -93,17 +93,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.animation:animation-android:1.9.0-alpha01")
+implementation("androidx.compose.animation:animation-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01'
+implementation 'androidx.compose.animation:animation-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.animation.android)
# libs.versions.toml
[versions]
-animation-android = "1.9.0-alpha01"
+animation-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.animation:animation-lint:1.11.0-alpha06`.
[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 d219fb29..2c117edf 100644
--- a/docs/checks/UnusedTargetStateInContentKeyLambda.md.html
+++ b/docs/checks/UnusedTargetStateInContentKeyLambda.md.html
@@ -49,61 +49,61 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/test.kt:13:Error: Target state parameter it is not used
+src/test/foo/test.kt:13:Error: Target state parameter it is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { if (foo) { /**/ } else { /**/ } }
-----------------------------------
-src/foo/test.kt:17:Error: Target state parameter it is not used
+src/test/foo/test.kt:17:Error: Target state parameter it is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { if (foo) { /**/ } else { /**/ } },
-----------------------------------
-src/foo/test.kt:22:Error: Target state parameter param is not used
+src/test/foo/test.kt:22:Error: Target state parameter param is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { param -> if (foo) { /**/ } else { /**/ } }
-----
-src/foo/test.kt:26:Error: Target state parameter param is not used
+src/test/foo/test.kt:26:Error: Target state parameter param is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { param -> if (foo) { /**/ } else { /**/ } },
-----
-src/foo/test.kt:31:Error: Target state parameter _ is not used
+src/test/foo/test.kt:31:Error: Target state parameter _ is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { _ -> if (foo) { /**/ } else { /**/ } }
-
-src/foo/test.kt:35:Error: Target state parameter _ is not used
+src/test/foo/test.kt:35:Error: Target state parameter _ is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { _ -> if (foo) { /**/ } else { /**/ } },
-
-src/foo/test.kt:39:Error: Target state parameter it is not used
+src/test/foo/test.kt:39:Error: Target state parameter it is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { if (foo) { /**/ } else { /**/ } }
-----------------------------------
-src/foo/test.kt:42:Error: Target state parameter it is not used
+src/test/foo/test.kt:42:Error: Target state parameter it is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { if (foo) { /**/ } else { /**/ } },
-----------------------------------
-src/foo/test.kt:46:Error: Target state parameter param is not used
+src/test/foo/test.kt:46:Error: Target state parameter param is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { param -> if (foo) { /**/ } else { /**/ } }
-----
-src/foo/test.kt:49:Error: Target state parameter param is not used
+src/test/foo/test.kt:49:Error: Target state parameter param is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { param -> if (foo) { /**/ } else { /**/ } },
-----
-src/foo/test.kt:53:Error: Target state parameter _ is not used
+src/test/foo/test.kt:53:Error: Target state parameter _ is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { _ -> if (foo) { /**/ } else { /**/ } }
-
-src/foo/test.kt:56:Error: Target state parameter _ is not used
+src/test/foo/test.kt:56:Error: Target state parameter _ is not used
[UnusedTargetStateInContentKeyLambda]
contentKey = { _ -> if (foo) { /**/ } else { /**/ } },
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
-`src/foo/test.kt`:
+`src/test/foo/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-package foo
+package test.foo
import androidx.compose.animation.*
import androidx.compose.runtime.*
@@ -161,7 +161,7 @@
content = { _ -> if (foo) { /**/ } else { /**/ } }
)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/AnimatedContentDetectorTest.kt)
@@ -180,17 +180,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.animation:animation-android:1.9.0-alpha01")
+implementation("androidx.compose.animation:animation-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01'
+implementation 'androidx.compose.animation:animation-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.animation.android)
# libs.versions.toml
[versions]
-animation-android = "1.9.0-alpha01"
+animation-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.animation:animation-lint:1.11.0-alpha06`.
[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 5e49a57e..7c421275 100644
--- a/docs/checks/UnusedTransitionTargetStateParameter.md.html
+++ b/docs/checks/UnusedTransitionTargetStateParameter.md.html
@@ -52,37 +52,37 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/foo/test.kt:13:Error: Target state parameter it is not used
+src/test/foo/test.kt:13:Error: Target state parameter it is not used
[UnusedTransitionTargetStateParameter]
transition.animateFloat { if (foo) 1f else 0f }
-----------------------
-src/foo/test.kt:14:Error: Target state parameter it is not used
+src/test/foo/test.kt:14:Error: Target state parameter it is not used
[UnusedTransitionTargetStateParameter]
transition.animateFloat(targetValueByState = { if (foo) 1f else 0f })
-----------------------
-src/foo/test.kt:15:Error: Target state parameter param is not used
+src/test/foo/test.kt:15:Error: Target state parameter param is not used
[UnusedTransitionTargetStateParameter]
transition.animateFloat { param -> if (foo) 1f else 0f }
-----
-src/foo/test.kt:16:Error: Target state parameter param is not used
+src/test/foo/test.kt:16:Error: Target state parameter param is not used
[UnusedTransitionTargetStateParameter]
transition.animateFloat(targetValueByState = { param -> if (foo) 1f else 0f })
-----
-src/foo/test.kt:17:Error: Target state parameter _ is not used
+src/test/foo/test.kt:17:Error: Target state parameter _ is not used
[UnusedTransitionTargetStateParameter]
transition.animateFloat { _ -> if (foo) 1f else 0f }
-
-src/foo/test.kt:18:Error: Target state parameter _ is not used
+src/test/foo/test.kt:18:Error: Target state parameter _ is not used
[UnusedTransitionTargetStateParameter]
transition.animateFloat(targetValueByState = { _ -> if (foo) 1f else 0f })
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
-`src/foo/test.kt`:
+`src/test/foo/test.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
-package foo
+package test.foo
import androidx.compose.animation.core.*
import androidx.compose.runtime.*
@@ -100,7 +100,7 @@
transition.animateFloat { _ -> if (foo) 1f else 0f }
transition.animateFloat(targetValueByState = { _ -> if (foo) 1f else 0f })
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/TransitionDetectorTest.kt)
@@ -119,17 +119,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.animation:animation-core-android:1.9.0-alpha01")
+implementation("androidx.compose.animation:animation-core-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.animation:animation-core-android:1.9.0-alpha01'
+implementation 'androidx.compose.animation:animation-core-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.animation.core.android)
# libs.versions.toml
[versions]
-animation-core-android = "1.9.0-alpha01"
+animation-core-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.animation:animation-core-lint:1.11.0-alpha06`.
[Additional details about androidx.compose.animation:animation-core-android](androidx_compose_animation_animation-core-android.md.html).
diff --git a/docs/checks/UnusedTranslation.md.html b/docs/checks/UnusedTranslation.md.html
index 6f5febe0..94ea08c8 100644
--- a/docs/checks/UnusedTranslation.md.html
+++ b/docs/checks/UnusedTranslation.md.html
@@ -49,7 +49,7 @@
[UnusedTranslation]
<application android:localeConfig="@xml/locale_config"/>
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -60,7 +60,7 @@
package="test.pkg">
<application android:localeConfig="@xml/locale_config"/>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml/locale_config.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -69,42 +69,42 @@
<locale android:name="nor-NOR"/>
<locale android:name="pt"/>
</locale-config>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-en/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="hello">Hello</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-ar/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="hello">أهلا</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-nb/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="hello">Hallo</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-b+es+419/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="hello">Hola</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-b+zh+Hans+SG/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
<string name="hello">你好</string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LocaleConfigDetectorTest.kt)
diff --git a/docs/checks/UsableSpace.md.html b/docs/checks/UsableSpace.md.html
index b5c485db..5d18b6ac 100644
--- a/docs/checks/UsableSpace.md.html
+++ b/docs/checks/UsableSpace.md.html
@@ -55,7 +55,7 @@
clearable cached data [UsableSpace]
return file.usableSpace
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -70,8 +70,7 @@
fun getFreeSpace(file: File): Long {
return file.usableSpace
}
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/StorageTest.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -85,7 +84,7 @@
return file.getUsableSpace();
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/StorageDetectorTest.kt)
diff --git a/docs/checks/UseAlpha2.md.html b/docs/checks/UseAlpha2.md.html
index 31a655eb..6f1a39a8 100644
--- a/docs/checks/UseAlpha2.md.html
+++ b/docs/checks/UseAlpha2.md.html
@@ -41,7 +41,7 @@
res/values-b+nor+NOR/strings.xml:Warning: For compatibility, should use
2-letter region codes when available; use NO instead of nor [UseAlpha2]
0 errors, 2 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -49,31 +49,31 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-no/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-b+kok+IN/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-b+nor+NOR/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-b+es+419/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LocaleFolderDetectorTest.kt)
diff --git a/docs/checks/UseAndroidAlpha.md.html b/docs/checks/UseAndroidAlpha.md.html
index ebeebef3..8ad3ce16 100644
--- a/docs/checks/UseAndroidAlpha.md.html
+++ b/docs/checks/UseAndroidAlpha.md.html
@@ -52,17 +52,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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.7.0 is the version this documentation was generated from;
+1.7.1 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html).
diff --git a/docs/checks/UseAppTint.md.html b/docs/checks/UseAppTint.md.html
index 92fb0667..5f7e5daa 100644
--- a/docs/checks/UseAppTint.md.html
+++ b/docs/checks/UseAppTint.md.html
@@ -52,7 +52,7 @@
android:tint [UseAppTint]
android:tint="#FF0000" />
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -69,10 +69,10 @@
android:src="@android:drawable/ic_delete"
android:tint="#FF0000" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can also visit the
-[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/appcompat/appcompat-lint/src/test/kotlin/androidx/appcompat/lint/res/ImageViewTintDetectorTest.kt)
+You can also visit the source code ([ImageViewTintDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/appcompat/appcompat-lint/src/test/kotlin/androidx/appcompat/lint/res/ImageViewTintDetectorTest.kt)
+[ImageButtonTintDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/appcompat/appcompat-lint/src/test/kotlin/androidx/appcompat/lint/res/ImageButtonTintDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
@@ -88,17 +88,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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
@@ -110,7 +110,7 @@
}
```
-1.7.0 is the version this documentation was generated from;
+1.7.1 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html).
diff --git a/docs/checks/UseCheckPermission.md.html b/docs/checks/UseCheckPermission.md.html
index ff2a4b5f..fc1e3efe 100644
--- a/docs/checks/UseCheckPermission.md.html
+++ b/docs/checks/UseCheckPermission.md.html
@@ -53,7 +53,7 @@
#enforcePermission(String,int,int,String)? [UseCheckPermission]
context.checkPermission(Manifest.permission.INTERNET, 1, 1);
-----------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -94,7 +94,7 @@
private void call(Bitmap bitmap) {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/Intersect.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -107,7 +107,7 @@
rect.intersect(aLeft, aTop, aRight, aBottom);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CheckResultDetectorTest.kt)
diff --git a/docs/checks/UseCompatLoadingForColorStateLists.md.html b/docs/checks/UseCompatLoadingForColorStateLists.md.html
index a68964f9..09d4dd61 100644
--- a/docs/checks/UseCompatLoadingForColorStateLists.md.html
+++ b/docs/checks/UseCompatLoadingForColorStateLists.md.html
@@ -49,7 +49,7 @@
ContextCompat.getColorStateList() [UseCompatLoadingForColorStateLists]
getResources().getColorStateList(R.color.color_state_list)
----------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
getResources().getColorStateList(R.color.color_state_list)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/appcompat/appcompat-lint/src/test/kotlin/androidx/appcompat/lint/res/ColorStateListLoadingDetectorTest.kt)
@@ -84,17 +84,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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 @@
}
```
-1.7.0 is the version this documentation was generated from;
+1.7.1 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html).
diff --git a/docs/checks/UseCompatLoadingForDrawables.md.html b/docs/checks/UseCompatLoadingForDrawables.md.html
index 0c46226d..ef0cad01 100644
--- a/docs/checks/UseCompatLoadingForDrawables.md.html
+++ b/docs/checks/UseCompatLoadingForDrawables.md.html
@@ -49,7 +49,7 @@
AppCompatResources.getDrawable() [UseCompatLoadingForDrawables]
getDrawable(android.R.drawable.ic_delete)
-----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
getDrawable(android.R.drawable.ic_delete)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/appcompat/appcompat-lint/src/test/kotlin/androidx/appcompat/lint/res/DrawableLoadingDetectorTest.kt)
@@ -85,17 +85,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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
@@ -107,7 +107,7 @@
}
```
-1.7.0 is the version this documentation was generated from;
+1.7.1 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html).
diff --git a/docs/checks/UseCompatTextViewDrawableApis.md.html b/docs/checks/UseCompatTextViewDrawableApis.md.html
index 9cdda9a4..cf6a4952 100644
--- a/docs/checks/UseCompatTextViewDrawableApis.md.html
+++ b/docs/checks/UseCompatTextViewDrawableApis.md.html
@@ -50,7 +50,7 @@
[UseCompatTextViewDrawableApis]
textView.setCompoundDrawableTintList(csl)
-----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -69,7 +69,7 @@
textView.setCompoundDrawableTintList(csl)
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/appcompat/appcompat-lint/src/test/kotlin/androidx/appcompat/lint/widget/TextViewCompoundDrawablesApiDetectorTest.kt)
@@ -88,17 +88,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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
@@ -110,7 +110,7 @@
}
```
-1.7.0 is the version this documentation was generated from;
+1.7.1 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html).
diff --git a/docs/checks/UseCompatTextViewDrawableXml.md.html b/docs/checks/UseCompatTextViewDrawableXml.md.html
index 5d65bf62..6525c5c6 100644
--- a/docs/checks/UseCompatTextViewDrawableXml.md.html
+++ b/docs/checks/UseCompatTextViewDrawableXml.md.html
@@ -52,7 +52,7 @@
layout-v23/text_view.xml:9:Warning: Use app: instead of android:
[UseCompatTextViewDrawableXml]
android:="" />
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -68,7 +68,7 @@
android:layout_height="wrap_content"
android:="" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/appcompat/appcompat-lint/src/test/kotlin/androidx/appcompat/lint/widget/TextViewCompoundDrawablesXmlDetectorTest.kt)
@@ -87,17 +87,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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
@@ -109,7 +109,7 @@
}
```
-1.7.0 is the version this documentation was generated from;
+1.7.1 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html).
diff --git a/docs/checks/UseCompoundDrawables.md.html b/docs/checks/UseCompoundDrawables.md.html
index f128793e..66132678 100644
--- a/docs/checks/UseCompoundDrawables.md.html
+++ b/docs/checks/UseCompoundDrawables.md.html
@@ -52,7 +52,7 @@
[UseCompoundDrawables]
<LinearLayout
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -73,7 +73,7 @@
android:layout_height="wrap_content" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/UseCompoundDrawableDetectorTest.kt)
diff --git a/docs/checks/UseGetLayoutInflater.md.html b/docs/checks/UseGetLayoutInflater.md.html
index ce44567b..68c331e0 100644
--- a/docs/checks/UseGetLayoutInflater.md.html
+++ b/docs/checks/UseGetLayoutInflater.md.html
@@ -54,7 +54,7 @@
getLayoutInflater() instead [UseGetLayoutInflater]
LayoutInflater li = LayoutInflater.from(requireContext());
-------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -81,10 +81,10 @@
return super.onCreateView(inflater, container, savedInstanceState);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can also visit the
-[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/UseGetLayoutInflaterTest.kt)
+You can also visit the source code ([UseGetLayoutInflaterTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/UseGetLayoutInflaterTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
@@ -100,17 +100,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment:1.8.6")
+implementation("androidx.fragment:fragment:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment:1.8.6'
+implementation 'androidx.fragment:fragment:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment)
# libs.versions.toml
[versions]
-fragment = "1.8.6"
+fragment = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 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 65542d9e..ebcf69a1 100644
--- a/docs/checks/UseKtx.md.html
+++ b/docs/checks/UseKtx.md.html
@@ -74,7 +74,7 @@
<option name="remove-defaults" value="true" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(###) require-present
@@ -91,7 +91,7 @@
<option name="require-present" value="true" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -101,7 +101,7 @@
String.htmlEncode instead? [UseKtx]
val html = TextUtils.htmlEncode("Is x > y ?")
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -113,7 +113,7 @@
fun test() {
val html = TextUtils.htmlEncode("Is x > y ?")
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/UseKtxDetectorTest.kt)
diff --git a/docs/checks/UseOfBundledGooglePlayServices.md.html b/docs/checks/UseOfBundledGooglePlayServices.md.html
index 3765f831..e20a29dd 100644
--- a/docs/checks/UseOfBundledGooglePlayServices.md.html
+++ b/docs/checks/UseOfBundledGooglePlayServices.md.html
@@ -46,7 +46,7 @@
services SDK. [UseOfBundledGooglePlayServices]
compile 'com.google.android.gms:play-services:8.5.6'
--------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -55,7 +55,7 @@
dependencies {
compile 'com.google.android.gms:play-services:8.5.6'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/UseOfNonLambdaOffsetOverload.md.html b/docs/checks/UseOfNonLambdaOffsetOverload.md.html
index 022125f0..8c0749a8 100644
--- a/docs/checks/UseOfNonLambdaOffsetOverload.md.html
+++ b/docs/checks/UseOfNonLambdaOffsetOverload.md.html
@@ -43,6 +43,53 @@
to avoid unnecessary recompositions. `Modifier.offset{ }` is preferred
in the cases where the arguments are backed by a `State`.
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/test/test.kt:17:Warning: State backed values should use the lambda
+overload of Modifier.offset [UseOfNonLambdaOffsetOverload]
+ Modifier.offset(offsetStateful.value, yAxis)
+ ------
+src/test/test.kt:18:Warning: State backed values should use the lambda
+overload of Modifier.offset [UseOfNonLambdaOffsetOverload]
+ Modifier.absoluteOffset(0.dp, offsetStateful.value)
+ --------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/test/test.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package test
+
+import androidx.compose.foundation.layout.absoluteOffset
+import androidx.compose.foundation.layout.offset
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.unit.dp
+
+@Composable
+fun ComposableFunction() {
+ val offsetStateful = remember { mutableStateOf(0.dp) }
+ val yAxis = 10.dp
+
+ Modifier.offset(offsetStateful.value, yAxis)
+ Modifier.absoluteOffset(0.dp, offsetStateful.value)
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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/NonLambdaOffsetModifierDetectorTest.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, `NonLambdaOffsetModifierDetector.nonLambdaOffset_usingStateLocalVariable_shouldWarn`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=612128.
+
(##) Including
!!!
@@ -51,17 +98,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.foundation:foundation-android:1.9.0-alpha01")
+implementation("androidx.compose.foundation:foundation-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.foundation:foundation-android:1.9.0-alpha01'
+implementation 'androidx.compose.foundation:foundation-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.foundation.android)
# libs.versions.toml
[versions]
-foundation-android = "1.9.0-alpha01"
+foundation-android = "1.11.0-alpha06"
[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 +120,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.foundation:foundation-lint:1.11.0-alpha06`.
[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 9c5e5aac..4121f8fa 100644
--- a/docs/checks/UseRequireInsteadOfGet.md.html
+++ b/docs/checks/UseRequireInsteadOfGet.md.html
@@ -81,7 +81,7 @@
checkNotNull(fragment.getView()) [UseRequireInsteadOfGet]
checkNotNull(fragment.getView());
--------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -98,7 +98,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/foo/Test.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -147,10 +147,10 @@
checkNotNull(fragment.getView(), "getView");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can also visit the
-[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/UseRequireInsteadOfGetTest.kt)
+You can also visit the source code ([UseRequireInsteadOfGetTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/fragment/fragment-lint/src/test/java/androidx/fragment/lint/UseRequireInsteadOfGetTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
@@ -166,17 +166,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment:1.8.6")
+implementation("androidx.fragment:fragment:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment:1.8.6'
+implementation 'androidx.fragment:fragment:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment)
# libs.versions.toml
[versions]
-fragment = "1.8.6"
+fragment = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 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 928ad716..543d3215 100644
--- a/docs/checks/UseRequiresApi.md.html
+++ b/docs/checks/UseRequiresApi.md.html
@@ -63,7 +63,7 @@
testApi [UseRequiresApi]
@TargetApi(value = 32) // ERROR 3
----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -81,7 +81,7 @@
@TargetApi(value = 32) // ERROR 3
public int testApi = 1;
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/WrongUsagesKotlin.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -99,7 +99,7 @@
fun testApi() {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/AnnotationDetectorTest.kt)
diff --git a/docs/checks/UseRxSetProgress2.md.html b/docs/checks/UseRxSetProgress2.md.html
index 4afd6018..f4e9f230 100644
--- a/docs/checks/UseRxSetProgress2.md.html
+++ b/docs/checks/UseRxSetProgress2.md.html
@@ -55,7 +55,7 @@
setCompletableProgress instead. [UseRxSetProgress2]
worker.setProgress()
--------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,7 +71,7 @@
worker.setProgress()
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/work/work-lint/src/test/java/androidx/work/lint/RxWorkerSetProgressDetectorTest.kt)
@@ -90,17 +90,17 @@
```
// build.gradle.kts
-implementation("androidx.work:work-runtime:2.10.1")
+implementation("androidx.work:work-runtime:2.11.1")
// build.gradle
-implementation 'androidx.work:work-runtime:2.10.1'
+implementation 'androidx.work:work-runtime:2.11.1'
// build.gradle.kts with version catalogs:
implementation(libs.work.runtime)
# libs.versions.toml
[versions]
-work-runtime = "2.10.1"
+work-runtime = "2.11.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.1 is the version this documentation was generated from;
+2.11.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 842cb23b..d8d92d4d 100644
--- a/docs/checks/UseSdkSuppress.md.html
+++ b/docs/checks/UseSdkSuppress.md.html
@@ -46,7 +46,7 @@
from tests; use @SdkSuppress on UnitTestKotlin instead [UseSdkSuppress]
@RequiresApi(29) // ERROR: don't use in tests, use @SdkSuppress instead
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -62,7 +62,7 @@
@Test
fun thisIsATest() = Unit
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
@@ -71,7 +71,7 @@
checkTestSources = true
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SdkSuppressDetectorTest.kt)
diff --git a/docs/checks/UseSparseArrays.md.html b/docs/checks/UseSparseArrays.md.html
index 6ed85968..f7eea555 100644
--- a/docs/checks/UseSparseArrays.md.html
+++ b/docs/checks/UseSparseArrays.md.html
@@ -57,7 +57,7 @@
[UseSparseArrays]
new SparseArray<Boolean>(); // Use SparseBooleanArray instead
--------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -275,7 +275,7 @@
super(null);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/JavaPerformanceDetectorTest.java)
diff --git a/docs/checks/UseSupportActionBar.md.html b/docs/checks/UseSupportActionBar.md.html
index b85f4e94..654cff5a 100644
--- a/docs/checks/UseSupportActionBar.md.html
+++ b/docs/checks/UseSupportActionBar.md.html
@@ -49,7 +49,7 @@
AppCompatActivity.setSupportActionBar [UseSupportActionBar]
setActionBar(Toolbar(this))
---------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
setActionBar(Toolbar(this))
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/appcompat/appcompat-lint/src/test/kotlin/androidx/appcompat/lint/app/SetActionBarDetectorTest.kt)
@@ -85,17 +85,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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
@@ -107,7 +107,7 @@
}
```
-1.7.0 is the version this documentation was generated from;
+1.7.1 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html).
diff --git a/docs/checks/UseSwitchCompatOrMaterialCode.md.html b/docs/checks/UseSwitchCompatOrMaterialCode.md.html
index 6a9b9b60..c12da328 100644
--- a/docs/checks/UseSwitchCompatOrMaterialCode.md.html
+++ b/docs/checks/UseSwitchCompatOrMaterialCode.md.html
@@ -50,7 +50,7 @@
or MaterialSwitch from Material library [UseSwitchCompatOrMaterialCode]
class CustomSwitch(context: Context): Switch(context)
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,7 +62,7 @@
import android.widget.Switch
class CustomSwitch(context: Context): Switch(context)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/appcompat/appcompat-lint/src/test/kotlin/androidx/appcompat/lint/widget/SwitchUsageCodeDetectorTest.kt)
@@ -81,17 +81,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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
@@ -103,7 +103,7 @@
}
```
-1.7.0 is the version this documentation was generated from;
+1.7.1 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html).
diff --git a/docs/checks/UseSwitchCompatOrMaterialXml.md.html b/docs/checks/UseSwitchCompatOrMaterialXml.md.html
index e2ea6743..c7547c12 100644
--- a/docs/checks/UseSwitchCompatOrMaterialXml.md.html
+++ b/docs/checks/UseSwitchCompatOrMaterialXml.md.html
@@ -50,7 +50,7 @@
MaterialSwitch from Material library [UseSwitchCompatOrMaterialXml]
<Switch
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/appcompat/appcompat-lint/src/test/kotlin/androidx/appcompat/lint/widget/SwitchUsageXmlDetectorTest.kt)
@@ -84,17 +84,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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 @@
}
```
-1.7.0 is the version this documentation was generated from;
+1.7.1 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html).
diff --git a/docs/checks/UseTomlInstead.md.html b/docs/checks/UseTomlInstead.md.html
index a88573e1..8fefabb5 100644
--- a/docs/checks/UseTomlInstead.md.html
+++ b/docs/checks/UseTomlInstead.md.html
@@ -46,7 +46,7 @@
(libs.androidx.appCompat) instead [UseTomlInstead]
implementation 'androidx.appcompat:appcompat:1.5.1'
------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -59,7 +59,7 @@
[libraries]
androidx-appCompat = { module = "androidx.appcompat:appcompat", version.ref = "appCompat" }
androidx-test-core = { module = "androidx.test:core", version.ref = "androidxTest" }
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
@@ -67,7 +67,7 @@
implementation(libs.androidx.appCompat) // OK
implementation 'androidx.appcompat:appcompat:1.5.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/GradleDetectorTest.kt)
diff --git a/docs/checks/UseValueOf.md.html b/docs/checks/UseValueOf.md.html
index df0cce88..af0b8b7a 100644
--- a/docs/checks/UseValueOf.md.html
+++ b/docs/checks/UseValueOf.md.html
@@ -47,7 +47,7 @@
[UseValueOf]
Double accuracy = new Double(1.0);
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -58,10 +58,10 @@
public class MyClass {
Double accuracy = new Double(1.0);
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/JavaPerformanceDetectorTest.java)
+You can also visit the source code ([JavaPerformanceDetectorTest.java](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/JavaPerformanceDetectorTest.java)
+[ConfigurationHierarchyTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/ConfigurationHierarchyTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/UselessLeaf.md.html b/docs/checks/UselessLeaf.md.html
index a9ac1627..f13bb9a2 100644
--- a/docs/checks/UselessLeaf.md.html
+++ b/docs/checks/UselessLeaf.md.html
@@ -46,7 +46,7 @@
(no children, no background, no id, no style) [UselessLeaf]
<FrameLayout
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -141,7 +141,7 @@
android:layout_height="match_parent" >
</FrameLayout>
</merge>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/UselessViewDetectorTest.kt)
diff --git a/docs/checks/UselessParent.md.html b/docs/checks/UselessParent.md.html
index 36b6cdef..ab4dd818 100644
--- a/docs/checks/UselessParent.md.html
+++ b/docs/checks/UselessParent.md.html
@@ -54,7 +54,7 @@
the other view [UselessParent]
<LinearLayout
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -149,7 +149,7 @@
android:layout_height="match_parent" >
</FrameLayout>
</merge>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/UselessViewDetectorTest.kt)
diff --git a/docs/checks/UsingC2DM.md.html b/docs/checks/UsingC2DM.md.html
index 18195382..52197680 100644
--- a/docs/checks/UsingC2DM.md.html
+++ b/docs/checks/UsingC2DM.md.html
@@ -44,7 +44,7 @@
ensure reliable message delivery [UsingC2DM]
<receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver">
---------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -65,7 +65,7 @@
</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/C2dmDetectorTest.kt)
diff --git a/docs/checks/UsingHttp.md.html b/docs/checks/UsingHttp.md.html
index e91b540c..f4259f17 100644
--- a/docs/checks/UsingHttp.md.html
+++ b/docs/checks/UsingHttp.md.html
@@ -49,7 +49,7 @@
[UsingHttp]
distributionUrl=http\://services.gradle.org/distributions/gradle-2.1-all.zip
----
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -60,7 +60,7 @@
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-2.1-all.zip
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/PropertyFileDetectorTest.kt)
diff --git a/docs/checks/UsingMaterialAndMaterial3Libraries.md.html b/docs/checks/UsingMaterialAndMaterial3Libraries.md.html
index dc754e3e..468e402e 100644
--- a/docs/checks/UsingMaterialAndMaterial3Libraries.md.html
+++ b/docs/checks/UsingMaterialAndMaterial3Libraries.md.html
@@ -53,7 +53,7 @@
material3 library [UsingMaterialAndMaterial3Libraries]
import androidx.compose.material.Button
--------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -69,7 +69,7 @@
import androidx.compose.material.pullrefresh.pullRefresh
fun test() {}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/compose/material3/material3-lint/src/test/java/androidx/compose/material3/lint/MaterialImportDetectorTest.kt)
@@ -88,17 +88,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.material3:material3-android:1.4.0-alpha13")
+implementation("androidx.compose.material3:material3-android:1.5.0-alpha15")
// build.gradle
-implementation 'androidx.compose.material3:material3-android:1.4.0-alpha13'
+implementation 'androidx.compose.material3:material3-android:1.5.0-alpha15'
// build.gradle.kts with version catalogs:
implementation(libs.material3.android)
# libs.versions.toml
[versions]
-material3-android = "1.4.0-alpha13"
+material3-android = "1.5.0-alpha15"
[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-alpha13 is the version this documentation was generated from;
+1.5.0-alpha15 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-alpha13`.
+You can also use `androidx.compose.material3:material3-lint:1.5.0-alpha15`.
[Additional details about androidx.compose.material3:material3-android](androidx_compose_material3_material3-android.md.html).
diff --git a/docs/checks/UsingOnClickInXml.md.html b/docs/checks/UsingOnClickInXml.md.html
index b08fe90d..61b7b9df 100644
--- a/docs/checks/UsingOnClickInXml.md.html
+++ b/docs/checks/UsingOnClickInXml.md.html
@@ -50,17 +50,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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
@@ -72,7 +72,7 @@
}
```
-1.7.0 is the version this documentation was generated from;
+1.7.1 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html).
diff --git a/docs/checks/ValidActionsXml.md.html b/docs/checks/ValidActionsXml.md.html
index 16a1504e..6767e891 100644
--- a/docs/checks/ValidActionsXml.md.html
+++ b/docs/checks/ValidActionsXml.md.html
@@ -48,7 +48,7 @@
android:resource="@xml/my_actions" /> [ValidActionsXml]
<actions>
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -65,7 +65,7 @@
</activity>
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/xml/my_actions.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -74,7 +74,7 @@
<fulfillment urlTemplate="foo"/>
</action>
</actions>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ActionsXmlDetectorTest.kt)
diff --git a/docs/checks/ValidFragment.md.html b/docs/checks/ValidFragment.md.html
index 4d3bd93d..d41cbc67 100644
--- a/docs/checks/ValidFragment.md.html
+++ b/docs/checks/ValidFragment.md.html
@@ -77,7 +77,7 @@
Fragment#setArguments(Bundle) instead [ValidFragment]
public Fragment5(int sample) {
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -142,7 +142,7 @@
public static class Fragment7 extends Fragment {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/FragmentDetectorTest.kt)
diff --git a/docs/checks/ValidRestrictions.md.html b/docs/checks/ValidRestrictions.md.html
index fd2d4550..d3e76ff4 100644
--- a/docs/checks/ValidRestrictions.md.html
+++ b/docs/checks/ValidRestrictions.md.html
@@ -43,7 +43,7 @@
android:title [ValidRestrictions]
<restriction />
---------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -52,10 +52,10 @@
<restrictions xmlns:android="http://schemas.android.com/apk/res/android">
<restriction />
</restrictions>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/RestrictionsDetectorTest.kt)
+You can also visit the source code ([RestrictionsDetectorTest.kt](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/RestrictionsDetectorTest.kt)
+[RestrictToDetectorTest.kt](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/RestrictToDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/VectorDrawableCompat.md.html b/docs/checks/VectorDrawableCompat.md.html
index c0d2ef0d..a8b96387 100644
--- a/docs/checks/VectorDrawableCompat.md.html
+++ b/docs/checks/VectorDrawableCompat.md.html
@@ -52,7 +52,7 @@
test_project-appbuild.gradle [VectorDrawableCompat]
<ImageView app:srcCompat="@drawable/foo" />
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -64,7 +64,7 @@
}
}
android.defaultConfig.vectorDrawables.useSupportLibrary = false
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/main/res/drawable/foo.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -82,7 +82,7 @@
c5.207,-5.242,9,-7.97,9,-11.5
C25,11.432,23.043,9.5,20.5,9.5z" />
</vector>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/main/res/layout/main_activity.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -91,7 +91,7 @@
<ImageView app:srcCompat="@drawable/foo" />
<ImageView app:srcCompat="@drawable/bitmap" />
</RelativeLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/VectorDrawableCompatDetectorTest.kt)
diff --git a/docs/checks/VectorPath.md.html b/docs/checks/VectorPath.md.html
index 9b46b2cf..9159f8dd 100644
--- a/docs/checks/VectorPath.md.html
+++ b/docs/checks/VectorPath.md.html
@@ -40,17 +40,17 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-res/drawable/my_vector.xml:16:Warning: Very long vector path (1622
+res/drawable/my_vector.xml:16:Warning: Very long vector path (3786
characters), which is bad for performance. Considering reducing
precision, removing minor details or rasterizing vector. [VectorPath]
android:pathData="@string/airplane_mask_clip_path_enabled"/>
---------------------------------------
-res/drawable/my_vector.xml:37:Warning: Very long vector path (1623
+res/drawable/my_vector.xml:37:Warning: Very long vector path (3787
characters), which is bad for performance. Considering reducing
precision, removing minor details or rasterizing vector. [VectorPath]
android:pathData="M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.093…
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------…
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -96,7 +96,7 @@
</group>
</group>
</vector>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/paths.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -106,19 +106,19 @@
M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z </string>
<string name="airplane_cross_path">M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z </string>
<string name="airplane_mask_clip_path_disabled">
-M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z </string>
+M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z </string>
<string name="airplane_mask_clip_path_enabled">
-M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z </string>
+M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z M 37.8337860107,-40.3974914551 c 0,0 -35.8077850342,31.5523681641 -35.8077850342,31.5523681641 c 0,0 40.9884796143,40.9278411865 40.9884796143,40.9278411865 c 0,0 -2.61700439453,2.0938873291 -2.61700439453,2.0938873291 c 0,0 -41.1884460449,-40.9392852783 -41.1884460449,-40.9392852783 c 0,0 -34.6200408936,25.4699249268 -34.6200408936,25.4699249268 c 0,0 55.9664764404,69.742401123 55.9664764404,69.742401123 c 0,0 73.2448120117,-59.1047973633 73.2448120117,-59.1047973633 c 0,0 -55.9664916992,-69.7423400879 -55.9664916992,-69.7423400879 Z </string>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/interpolator/my_interpolator.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<pathInterpolator
xmlns:android="http://schemas.android.com/apk/res/android"
android:pathData=""/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/VectorPathDetectorTest.java)
diff --git a/docs/checks/VectorRaster.md.html b/docs/checks/VectorRaster.md.html
index 68543021..7f6ed3e6 100644
--- a/docs/checks/VectorRaster.md.html
+++ b/docs/checks/VectorRaster.md.html
@@ -80,7 +80,7 @@
generated icon to make sure it looks acceptable [VectorRaster]
android:trimPathStart="0" />
---------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -114,7 +114,7 @@
</group>
</vector>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
@@ -123,7 +123,7 @@
classpath 'com.android.tools.build:gradle:1.4.0-alpha2'
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/VectorDetectorTest.java)
diff --git a/docs/checks/ViewBindingType.md.html b/docs/checks/ViewBindingType.md.html
index cf64fa9e..e2c65c22 100644
--- a/docs/checks/ViewBindingType.md.html
+++ b/docs/checks/ViewBindingType.md.html
@@ -54,7 +54,7 @@
android.view.SurfaceView, android.widget.TextView [ViewBindingType]
<EditText android:id="@+id/inconsistent" tools:viewBindingType="TextView" />
----------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -66,7 +66,7 @@
tools:keep="@layout/db">
<EditText android:id="@+id/test_view" tools:viewBindingType="TextView" />
</layout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout/vb.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -78,7 +78,7 @@
<include android:id="@+id/included" layout="@layout/included" tools:viewBindingType="TextView" />
<EditText android:id="@+id/inconsistent" tools:viewBindingType="TextView" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/layout-land/vb.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -88,7 +88,7 @@
tools:keep="@layout/vb">
<SurfaceView android:id="@+id/inconsistent" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ViewBindingTypeDetectorTest.kt)
diff --git a/docs/checks/ViewConstructor.md.html b/docs/checks/ViewConstructor.md.html
index bbe735dd..5343e573 100644
--- a/docs/checks/ViewConstructor.md.html
+++ b/docs/checks/ViewConstructor.md.html
@@ -51,7 +51,7 @@
or (Context,AttributeSet,int) [ViewConstructor]
public class CustomView1 extends View {
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -66,7 +66,7 @@
super(null);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/bytecode/CustomView2.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -82,7 +82,7 @@
super(context, attrs, defStyle);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/bytecode/CustomView3.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -99,7 +99,7 @@
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ViewConstructorDetectorTest.kt)
diff --git a/docs/checks/ViewHolder.md.html b/docs/checks/ViewHolder.md.html
index 73409ad1..f28eea54 100644
--- a/docs/checks/ViewHolder.md.html
+++ b/docs/checks/ViewHolder.md.html
@@ -48,7 +48,7 @@
smoother scrolling [ViewHolder]
convertView = mInflater.inflate(R.layout.your_layout, null);
---------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -222,7 +222,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ViewHolderDetectorTest.kt)
diff --git a/docs/checks/ViewModelConstructorInComposable.md.html b/docs/checks/ViewModelConstructorInComposable.md.html
index 5ba2286f..4224fd81 100644
--- a/docs/checks/ViewModelConstructorInComposable.md.html
+++ b/docs/checks/ViewModelConstructorInComposable.md.html
@@ -27,13 +27,15 @@
Artifact
: [androidx.lifecycle:lifecycle-viewmodel-compose-android](androidx_lifecycle_lifecycle-viewmodel-compose-android.md.html)
Since
-: 2.9.0-alpha01
+: 2.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://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-viewmodel-compose-lint/src/main/java/androidx/lifecycle/lint/ViewModelConstructorInComposableDetector.kt)
+Tests
+: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-viewmodel-compose-lint/src/test/java/androidx/lifecycle/viewmodel/compose/lint/ViewModelConstructorInComposableTest.kt)
Copyright Year
: 2024
@@ -41,6 +43,48 @@
functions. Instead you should use the lifecycle viewmodel
extensionfunctions e.g. viewModel()
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/com/example/MyViewModel.kt:10:Error: Constructing a view model in a
+composable [ViewModelConstructorInComposable]
+ val viewModel = MyViewModel()
+ -----------
+src/com/example/MyViewModel.kt:12:Error: Constructing a view model in a
+composable [ViewModelConstructorInComposable]
+ val vm = MyViewModel()
+ -----------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/com/example/MyViewModel.kt`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
+package com.example
+
+import androidx.compose.runtime.*
+import androidx.lifecycle.ViewModel
+
+class MyViewModel: ViewModel()
+@Composable
+fun Test() {
+ val viewModel = MyViewModel()
+ val composableLambda = @Composable {
+ val vm = MyViewModel()
+ }
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/lifecycle/lifecycle-viewmodel-compose-lint/src/test/java/androidx/lifecycle/viewmodel/compose/lint/ViewModelConstructorInComposableTest.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, `ViewModelConstructorInComposableDetector.constructInComposableShouldFail`.
+To report a problem with this extracted sample, visit
+https://issuetracker.google.com/issues/new?component=413132.
+
(##) Including
!!!
@@ -49,17 +93,17 @@
```
// build.gradle.kts
-implementation("androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-rc01")
+implementation("androidx.lifecycle:lifecycle-viewmodel-compose-android:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-viewmodel-compose-android:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.viewmodel.compose.android)
# libs.versions.toml
[versions]
-lifecycle-viewmodel-compose-android = "2.9.0-rc01"
+lifecycle-viewmodel-compose-android = "2.11.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
@@ -71,7 +115,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 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/VisibleForTests.md.html b/docs/checks/VisibleForTests.md.html
index 9b3c8b13..ebcfd6f5 100644
--- a/docs/checks/VisibleForTests.md.html
+++ b/docs/checks/VisibleForTests.md.html
@@ -58,7 +58,7 @@
within private scope [VisibleForTests]
ProductionCode().initialize() // Not allowed; this method is intended to be private
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -75,7 +75,7 @@
fun initialize() {
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/Code.kt`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
@@ -84,10 +84,10 @@
ProductionCode().initialize() // Not allowed; this method is intended to be private
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/RestrictToDetectorTest.kt)
+You can also visit the source code ([RestrictToDetectorTest.kt](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/RestrictToDetectorTest.kt)
+[MainTest.java](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/MainTest.java)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/VpnServicePolicy.md.html b/docs/checks/VpnServicePolicy.md.html
new file mode 100644
index 00000000..cb409b87
--- /dev/null
+++ b/docs/checks/VpnServicePolicy.md.html
@@ -0,0 +1,221 @@
+
+(#) VPN Service Insights
+
+!!! WARNING: VPN Service Insights
+ This is a warning.
+
+Id
+: `VpnServicePolicy`
+Summary
+: VPN Service Insights
+Severity
+: Warning
+Category
+: Play Policy
+Platform
+: Android
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html)
+Since
+: 0.1.3
+Affects
+: Kotlin and Java files and manifest files
+Editing
+: This check runs on the fly in the IDE editor
+
+The `VpnService` base class allows developers to create secure VPN
+solutions. Google Play permits its use only for apps with core VPN
+functionality or those requiring a remote server for essential features
+such as parental control, app usage tracking, device security, network
+tools, web browsers, or carrier services. It is paramount that
+`VpnService` is never used to collect personal or sensitive user data
+without prominent disclosure and explicit consent. Furthermore,
+redirecting or manipulating user traffic from other apps for
+monetization is strictly prohibited. All apps using `VpnService` must
+clearly document this in their Google Play listing and encrypt all data
+from the device to the VPN tunnel endpoint.
+
+**Dos:**
+
+- Document use of the `VpnService` clearly in the Google Play listing.
+- Must encrypt the data from the device to the VPN tunnel end point.
+- Ensure your app's core functionality aligns with VPN use or permitted
+ exceptions.
+- Provide prominent in-app disclosure and obtain explicit consent for
+ any sensitive data collection.
+
+**Don'ts:**
+
+- Use `VpnService` for purposes other than core VPN or specified
+ exceptions.
+- Collect personal and sensitive user data without prominent disclosure
+ and consent.
+- Redirect or manipulate user traffic from other apps on a device for
+ monetization purposes (for example, redirecting ads traffic through
+ a country different than that of the user).
+
+**Helpful Links:**
+
+See Policy page: https://goo.gle/play-policy-vpn
+See developer guidance: https://goo.gle/dac-vpn
+See Declaration form: https://goo.gle/play-permission-decl-form
+
+Always review the full policy in the Policy Center to ensure
+compliance.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+AndroidManifest.xml:4:Warning: VpnService class enables apps with core
+VPN functionality or those falling under specific exceptions to create
+their own VPN solutions. [VpnServicePolicy]
+ android:permission="android.permission.BIND_VPN_SERVICE">
+ --------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`AndroidManifest.xml`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+ <service android:name=".MyVpnService"
+ android:permission="android.permission.BIND_VPN_SERVICE">
+ <intent-filter>
+ <action android:name="android.net.VpnService"/>
+ </intent-filter>
+ </service>
+</manifest>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](/policyinsights/src/test/java/com/google/play/policy/insights/VpnServicePolicyDetectorTest.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, `VpnServicePolicyDetector.testFlagsServicesUsingBindVpnService`.
+To report a problem with this extracted sample, contact
+Play policy insights beta.
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html).
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute `tools:ignore="VpnServicePolicy"`
+ 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">
+ ...
+ <service tools:ignore="VpnServicePolicy" .../>
+ ...
+ </manifest>
+ ```
+
+* Using a suppression annotation like this on the enclosing
+ element:
+
+ ```kt
+ // Kotlin
+ @Suppress("VpnServicePolicy")
+ fun method() {
+ problematicStatement()
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("VpnServicePolicy")
+ void method() {
+ problematicStatement();
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection VpnServicePolicy
+ 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="VpnServicePolicy" 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 'VpnServicePolicy'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore VpnServicePolicy ...`
+ ```
+
+* 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/VulnerableCordovaVersion.md.html b/docs/checks/VulnerableCordovaVersion.md.html
index 58d443b3..679e35bc 100644
--- a/docs/checks/VulnerableCordovaVersion.md.html
+++ b/docs/checks/VulnerableCordovaVersion.md.html
@@ -43,7 +43,7 @@
assets/www/cordova.js:Warning: You are using a vulnerable version of
Cordova: 3.7.1 [VulnerableCordovaVersion]
0 errors, 1 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -52,7 +52,7 @@
;(function() {
var CORDOVA_JS_BUILD_LABEL = '3.7.1-dev';
})();
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/CordovaVersionDetectorTest.kt)
diff --git a/docs/checks/VulnerableCryptoAlgorithm.md.html b/docs/checks/VulnerableCryptoAlgorithm.md.html
index 75744a1b..fb14f865 100644
--- a/docs/checks/VulnerableCryptoAlgorithm.md.html
+++ b/docs/checks/VulnerableCryptoAlgorithm.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Kotlin and Java files
Editing
@@ -57,7 +57,7 @@
[VulnerableCryptoAlgorithm]
Cipher.getInstance(algo);
------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -73,7 +73,7 @@
Cipher.getInstance(algo);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/BadCryptographyUsageDetectorTest.kt)
@@ -93,17 +93,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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,7 +115,7 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/Wakelock.md.html b/docs/checks/Wakelock.md.html
index e2ef967e..8660c401 100644
--- a/docs/checks/Wakelock.md.html
+++ b/docs/checks/Wakelock.md.html
@@ -53,7 +53,7 @@
always called) [Wakelock]
lock.release(); // Should be in finally block
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -78,10 +78,10 @@
System.out.println("test");
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/WakelockDetectorTest.kt)
+You can also visit the source code ([WakelockDetectorTest.kt](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/WakelockDetectorTest.kt)
+[SuppressibleTestModeTest.kt](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/infrastructure/SuppressibleTestModeTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/WakelockTimeout.md.html b/docs/checks/WakelockTimeout.md.html
index 06f9ea6a..020aa03e 100644
--- a/docs/checks/WakelockTimeout.md.html
+++ b/docs/checks/WakelockTimeout.md.html
@@ -49,7 +49,7 @@
you intend, and will save your user's battery. [WakelockTimeout]
wakeLock.acquire(); // ERROR
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,7 +76,7 @@
return wakeLock;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WakelockDetectorTest.kt)
diff --git a/docs/checks/WatchFaceEditor.md.html b/docs/checks/WatchFaceEditor.md.html
index b5bc3825..07253c83 100644
--- a/docs/checks/WatchFaceEditor.md.html
+++ b/docs/checks/WatchFaceEditor.md.html
@@ -45,7 +45,7 @@
launchMode="standard" [WatchFaceEditor]
android:launchMode="singleTask">
------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
</activity>
</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/WatchFaceEditorDetectorTest.kt)
diff --git a/docs/checks/WatchFaceForAndroidX.md.html b/docs/checks/WatchFaceForAndroidX.md.html
index afbef8b9..603191f2 100644
--- a/docs/checks/WatchFaceForAndroidX.md.html
+++ b/docs/checks/WatchFaceForAndroidX.md.html
@@ -48,7 +48,7 @@
[WatchFaceForAndroidX]
android:value="androidx.wear.watchface.editor.action.SOME_OTHER_EDITOR"
-------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -59,7 +59,7 @@
dependencies {
implementation "androidx.wear.watchface:watchface:1.2.3"
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/main/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -71,7 +71,7 @@
android:value="androidx.wear.watchface.editor.action.SOME_OTHER_EDITOR"
/>
</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/WatchFaceForAndroidXDetectorTest.kt)
diff --git a/docs/checks/WatchFaceFormatDeclaresHasNoCode.md.html b/docs/checks/WatchFaceFormatDeclaresHasNoCode.md.html
index c35320b3..aaa45716 100644
--- a/docs/checks/WatchFaceFormatDeclaresHasNoCode.md.html
+++ b/docs/checks/WatchFaceFormatDeclaresHasNoCode.md.html
@@ -19,7 +19,7 @@
Feedback
: https://issuetracker.google.com/issues/new?component=192708
Since
-: 8.11.0-alpha06 (April 2025)
+: 8.11.0 (June 2025)
Affects
: Manifest files
Editing
diff --git a/docs/checks/WatchFaceFormatInvalidVersion.md.html b/docs/checks/WatchFaceFormatInvalidVersion.md.html
new file mode 100644
index 00000000..d55cb43a
--- /dev/null
+++ b/docs/checks/WatchFaceFormatInvalidVersion.md.html
@@ -0,0 +1,90 @@
+
+(#) The Watch Face Format version is invalid
+
+!!! ERROR: The Watch Face Format version is invalid
+ This is an error.
+
+Id
+: `WatchFaceFormatInvalidVersion`
+Summary
+: The Watch Face Format version is invalid
+Severity
+: Error
+Category
+: Correctness
+Platform
+: Android
+Vendor
+: Android Open Source Project
+Feedback
+: https://issuetracker.google.com/issues/new?component=192708
+Since
+: 8.12.0 (July 2025)
+Affects
+: Manifest files
+Editing
+: This check runs on the fly in the IDE editor
+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)
+
+The Watch Face Format version must be an integer literal or a
+placeholder and cannot reference a resource.
+
+(##) Suppressing
+
+You can suppress false positives using one of the following mechanisms:
+
+* Adding the suppression attribute
+ `tools:ignore="WatchFaceFormatInvalidVersion"` 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="WatchFaceFormatInvalidVersion" .../>
+ ...
+ </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="WatchFaceFormatInvalidVersion" 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 'WatchFaceFormatInvalidVersion'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore WatchFaceFormatInvalidVersion ...`
+ ```
+
+* 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
index a2db98f5..22ba9f32 100644
--- a/docs/checks/WatchFaceFormatMissingVersion.md.html
+++ b/docs/checks/WatchFaceFormatMissingVersion.md.html
@@ -19,7 +19,7 @@
Feedback
: https://issuetracker.google.com/issues/new?component=192708
Since
-: 8.11.0-alpha07 (April 2025)
+: 8.11.0 (June 2025)
Affects
: Manifest files
Editing
diff --git a/docs/checks/WeakPrng.md.html b/docs/checks/WeakPrng.md.html
index 159827c8..94f13265 100644
--- a/docs/checks/WeakPrng.md.html
+++ b/docs/checks/WeakPrng.md.html
@@ -27,7 +27,7 @@
Artifact
: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
Since
-: 1.0.1
+: 1.0.0
Affects
: Kotlin and Java files
Editing
@@ -59,7 +59,7 @@
[WeakPrng]
int random = Math.random() * 100;
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -74,7 +74,7 @@
int random = Math.random() * 100;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/WeakPrngDetectorTest.kt)
@@ -94,17 +94,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.md.html).
diff --git a/docs/checks/WearBackNavigation.md.html b/docs/checks/WearBackNavigation.md.html
index 88da6b85..2976bef4 100644
--- a/docs/checks/WearBackNavigation.md.html
+++ b/docs/checks/WearBackNavigation.md.html
@@ -48,7 +48,7 @@
generally not recommended for Wear applications [WearBackNavigation]
<item name="android:windowSwipeToDismiss">false</item>
------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -66,7 +66,7 @@
android:theme="@style/AppTheme" />
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values/styles.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -83,7 +83,7 @@
</style>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WearBackNavigationDetectorTest.kt)
diff --git a/docs/checks/WearMaterialTheme.md.html b/docs/checks/WearMaterialTheme.md.html
index 27510f44..ca44bd4c 100644
--- a/docs/checks/WearMaterialTheme.md.html
+++ b/docs/checks/WearMaterialTheme.md.html
@@ -42,7 +42,7 @@
[WearMaterialTheme]
import androidx.compose.material.MaterialTheme; // ERROR
--------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -55,7 +55,7 @@
public class BadImport {
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WearMaterialThemeDetectorTest.kt)
diff --git a/docs/checks/WearPasswordInput.md.html b/docs/checks/WearPasswordInput.md.html
index ced65bf0..d452691d 100644
--- a/docs/checks/WearPasswordInput.md.html
+++ b/docs/checks/WearPasswordInput.md.html
@@ -42,7 +42,7 @@
[WearPasswordInput]
android:inputType="textPassword"
--------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -60,7 +60,7 @@
android:inputType="textPassword"
tools:ignore="LabelFor" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -72,7 +72,7 @@
<uses-feature android:name="android.hardware.type.watch" />
<application android:icon="@drawable/icon" android:label="@string/app_name" />
</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/WearPasswordInputDetectorTest.kt)
diff --git a/docs/checks/WearRecents.md.html b/docs/checks/WearRecents.md.html
index 1b150af1..a5d9f681 100644
--- a/docs/checks/WearRecents.md.html
+++ b/docs/checks/WearRecents.md.html
@@ -45,7 +45,7 @@
make them appear correctly in recents [WearRecents]
<activity android:name=".MainActivity" />
-----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
<activity android:name=".MainActivity" />
</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/WearRecentsDetectorTest.kt)
diff --git a/docs/checks/WearSplashScreen.md.html b/docs/checks/WearSplashScreen.md.html
index 72aa1bac..0efda667 100644
--- a/docs/checks/WearSplashScreen.md.html
+++ b/docs/checks/WearSplashScreen.md.html
@@ -46,12 +46,12 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-AndroidManifest.xml:16:Warning: Applications using splash screens are
+AndroidManifest.xml:17:Warning: Applications using splash screens are
strongly recommended to use the 'androidx.core:core-splashscreen'
library [WearSplashScreen]
<activity android:name=".SplashActivity"
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,14 +66,16 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name">
<activity android:name=".MainActivity"
- android:theme="@style/AppTheme">
+ android:theme="@style/AppTheme"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SplashActivity"
- android:theme="@style/AppTheme">
+ android:theme="@style/AppTheme"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
@@ -81,7 +83,7 @@
</activity>
</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/WearSplashScreenDetectorTest.kt)
diff --git a/docs/checks/WearStandaloneAppFlag.md.html b/docs/checks/WearStandaloneAppFlag.md.html
index fcf8e956..19b1bf0c 100644
--- a/docs/checks/WearStandaloneAppFlag.md.html
+++ b/docs/checks/WearStandaloneAppFlag.md.html
@@ -52,7 +52,7 @@
[WearStandaloneAppFlag]
<application>
-----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
<!-- Missing meta-data element -->
</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/WearStandaloneAppDetectorTest.java)
diff --git a/docs/checks/WearableActionDuplicate.md.html b/docs/checks/WearableActionDuplicate.md.html
index 0e606e57..70473a53 100644
--- a/docs/checks/WearableActionDuplicate.md.html
+++ b/docs/checks/WearableActionDuplicate.md.html
@@ -46,7 +46,7 @@
configuration activities found [WearableActionDuplicate]
<action android:name="androidx.wear.watchface.editor.action.WATCH_FACE_EDITOR" />
---------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -57,7 +57,7 @@
dependencies {
implementation "androidx.wear.watchface:watchface:1.2.3"
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/main/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -125,7 +125,7 @@
</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/WearableConfigurationActionDetectorTest.kt)
diff --git a/docs/checks/WearableBindListener.md.html b/docs/checks/WearableBindListener.md.html
index ce01c0ac..85f2480c 100644
--- a/docs/checks/WearableBindListener.md.html
+++ b/docs/checks/WearableBindListener.md.html
@@ -49,7 +49,7 @@
[WearableBindListener]
<action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -70,7 +70,7 @@
</application>
</manifest>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`build.gradle`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~groovy linenumbers
@@ -79,7 +79,7 @@
dependencies {
compile 'com.google.android.gms:play-services-wearable:8.4.0'
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ManifestDetectorTest.kt)
diff --git a/docs/checks/WearableConfigurationAction.md.html b/docs/checks/WearableConfigurationAction.md.html
index 0f205518..ee9f552e 100644
--- a/docs/checks/WearableConfigurationAction.md.html
+++ b/docs/checks/WearableConfigurationAction.md.html
@@ -46,7 +46,7 @@
required [WearableConfigurationAction]
<action android:name="androidx.wear.watchface.editor.action.WATCH_FACE_EDITOR" />
---------------------------------------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -57,7 +57,7 @@
dependencies {
implementation "androidx.wear.watchface:watchface:1.2.3"
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/main/AndroidManifest.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
@@ -87,7 +87,7 @@
</service>
</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/WearableConfigurationActionDetectorTest.kt)
diff --git a/docs/checks/WebViewApiAvailability.md.html b/docs/checks/WebViewApiAvailability.md.html
index 758a9ca8..4311fba1 100644
--- a/docs/checks/WebViewApiAvailability.md.html
+++ b/docs/checks/WebViewApiAvailability.md.html
@@ -84,7 +84,7 @@
[WebViewApiAvailability]
WebView.startSafeBrowsing(this, null);
-------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -115,7 +115,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WebViewApiAvailabilityDetectorTest.kt)
diff --git a/docs/checks/WebViewClientOnReceivedSslError.md.html b/docs/checks/WebViewClientOnReceivedSslError.md.html
index 0343adc4..e2662fef 100644
--- a/docs/checks/WebViewClientOnReceivedSslError.md.html
+++ b/docs/checks/WebViewClientOnReceivedSslError.md.html
@@ -45,7 +45,7 @@
[WebViewClientOnReceivedSslError]
handler.proceed();
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -82,7 +82,7 @@
private void proceed() {}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WebViewClientDetectorTest.kt)
diff --git a/docs/checks/WebViewLayout.md.html b/docs/checks/WebViewLayout.md.html
index eea67340..11744b12 100644
--- a/docs/checks/WebViewLayout.md.html
+++ b/docs/checks/WebViewLayout.md.html
@@ -44,7 +44,7 @@
match_parent instead [WebViewLayout]
<WebView
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -79,7 +79,7 @@
</LinearLayout>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WebViewDetectorTest.kt)
diff --git a/docs/checks/WebpUnsupported.md.html b/docs/checks/WebpUnsupported.md.html
index 7e42737f..69d1b7c5 100644
--- a/docs/checks/WebpUnsupported.md.html
+++ b/docs/checks/WebpUnsupported.md.html
@@ -43,7 +43,7 @@
res/drawable-mdpi/my_lossy.webp:Error: WebP requires Android 4.0 (API
15); current minSdkVersion is 10 [WebpUnsupported]
4 errors, 0 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant test files:
diff --git a/docs/checks/WeekBasedYear.md.html b/docs/checks/WeekBasedYear.md.html
index d64a4d8f..7f3fe9b5 100644
--- a/docs/checks/WeekBasedYear.md.html
+++ b/docs/checks/WeekBasedYear.md.html
@@ -74,7 +74,7 @@
YY is the week-era-year; did you mean 'y'? [WeekBasedYear]
val s7 = DateTimeFormatter.ofPattern("""dd-YY-MM""") // ERROR
--
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -120,7 +120,7 @@
val s7 = DateTimeFormatter.ofPattern("YYYY-WW-FF") // OK No days or months
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/DateFormatDetectorTest.kt)
diff --git a/docs/checks/WifiManagerLeak.md.html b/docs/checks/WifiManagerLeak.md.html
index 2192b370..126be7da 100644
--- a/docs/checks/WifiManagerLeak.md.html
+++ b/docs/checks/WifiManagerLeak.md.html
@@ -101,7 +101,7 @@
getContext().getApplicationContext() [WifiManagerLeak]
getContext().getSystemService(Context.WIFI_SERVICE); // ERROR: View context
---------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -186,7 +186,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ServiceCastDetectorTest.kt)
diff --git a/docs/checks/WifiManagerPotentialLeak.md.html b/docs/checks/WifiManagerPotentialLeak.md.html
index 9690c3d7..fce967db 100644
--- a/docs/checks/WifiManagerPotentialLeak.md.html
+++ b/docs/checks/WifiManagerPotentialLeak.md.html
@@ -65,7 +65,7 @@
[WifiManagerPotentialLeak]
ctx.getSystemService(Context.WIFI_SERVICE); // UNKNOWN (though likely)
------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -150,7 +150,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ServiceCastDetectorTest.kt)
diff --git a/docs/checks/WithPluginClasspathUsage.md.html b/docs/checks/WithPluginClasspathUsage.md.html
index a72bf379..55f82665 100644
--- a/docs/checks/WithPluginClasspathUsage.md.html
+++ b/docs/checks/WithPluginClasspathUsage.md.html
@@ -51,17 +51,17 @@
```
// build.gradle.kts
-implementation("androidx.lint:lint-gradle:1.0.0-alpha04")
+implementation("androidx.lint:lint-gradle:1.0.0-alpha05")
// build.gradle
-implementation 'androidx.lint:lint-gradle:1.0.0-alpha04'
+implementation 'androidx.lint:lint-gradle:1.0.0-alpha05'
// build.gradle.kts with version catalogs:
implementation(libs.lint.gradle)
# libs.versions.toml
[versions]
-lint-gradle = "1.0.0-alpha04"
+lint-gradle = "1.0.0-alpha05"
[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-alpha04 is the version this documentation was generated from;
+1.0.0-alpha05 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 f6fe7f2b..8bcc0667 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-alpha04")
+implementation("androidx.lint:lint-gradle:1.0.0-alpha05")
// build.gradle
-implementation 'androidx.lint:lint-gradle:1.0.0-alpha04'
+implementation 'androidx.lint:lint-gradle:1.0.0-alpha05'
// build.gradle.kts with version catalogs:
implementation(libs.lint.gradle)
# libs.versions.toml
[versions]
-lint-gradle = "1.0.0-alpha04"
+lint-gradle = "1.0.0-alpha05"
[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-alpha04 is the version this documentation was generated from;
+1.0.0-alpha05 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 399ee0c4..6238b3c7 100644
--- a/docs/checks/WorkerHasAPublicModifier.md.html
+++ b/docs/checks/WorkerHasAPublicModifier.md.html
@@ -53,7 +53,7 @@
[WorkerHasAPublicModifier]
private class Worker: ListenableWorker()
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -64,7 +64,7 @@
import androidx.work.ListenableWorker
private class Worker: ListenableWorker()
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/work/work-lint/src/test/java/androidx/work/lint/WorkerHasPublicModifierDetectorTest.kt)
@@ -83,17 +83,17 @@
```
// build.gradle.kts
-implementation("androidx.work:work-runtime:2.10.1")
+implementation("androidx.work:work-runtime:2.11.1")
// build.gradle
-implementation 'androidx.work:work-runtime:2.10.1'
+implementation 'androidx.work:work-runtime:2.11.1'
// build.gradle.kts with version catalogs:
implementation(libs.work.runtime)
# libs.versions.toml
[versions]
-work-runtime = "2.10.1"
+work-runtime = "2.11.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.1 is the version this documentation was generated from;
+2.11.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/WorldReadableFiles.md.html b/docs/checks/WorldReadableFiles.md.html
index 17dc847d..b68aed2b 100644
--- a/docs/checks/WorldReadableFiles.md.html
+++ b/docs/checks/WorldReadableFiles.md.html
@@ -56,7 +56,7 @@
[WorldReadableFiles]
dir = getDir(mFile.getName(), MODE_WORLD_READABLE);
-------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -120,7 +120,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SecurityDetectorTest.java)
diff --git a/docs/checks/WorldWriteableFiles.md.html b/docs/checks/WorldWriteableFiles.md.html
index 19562297..9c3c75cc 100644
--- a/docs/checks/WorldWriteableFiles.md.html
+++ b/docs/checks/WorldWriteableFiles.md.html
@@ -57,7 +57,7 @@
[WorldWriteableFiles]
dir = getDir(mFile.getName(), MODE_WORLD_WRITEABLE);
--------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -121,7 +121,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/SecurityDetectorTest.java)
diff --git a/docs/checks/WrongAnnotationOrder.md.html b/docs/checks/WrongAnnotationOrder.md.html
index 752d96ca..06abfe83 100644
--- a/docs/checks/WrongAnnotationOrder.md.html
+++ b/docs/checks/WrongAnnotationOrder.md.html
@@ -49,7 +49,7 @@
@Override @Test [WrongAnnotationOrder]
@Test @Override int something;
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,10 +62,10 @@
@Test @Override int something;
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-You can also visit the
-[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/AnnotationOrderDetectorTest.kt)
+You can also visit the source code ([AnnotationOrderDetectorTest.kt](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/AnnotationOrderDetectorTest.kt)
+[SuppressibleTestModeTest.kt](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/infrastructure/SuppressibleTestModeTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/WrongCall.md.html b/docs/checks/WrongCall.md.html
index 6e7abd09..9f202a82 100644
--- a/docs/checks/WrongCall.md.html
+++ b/docs/checks/WrongCall.md.html
@@ -65,7 +65,7 @@
probably call "draw" rather than "onDraw" [WrongCall]
child.onDraw(canvas); // Not OK
------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -150,7 +150,7 @@
android:text="Button" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/LayoutTest.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -220,7 +220,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongCallDetectorTest.java)
diff --git a/docs/checks/WrongCase.md.html b/docs/checks/WrongCase.md.html
index 7b97176e..8331e113 100644
--- a/docs/checks/WrongCase.md.html
+++ b/docs/checks/WrongCase.md.html
@@ -63,7 +63,7 @@
[WrongCase]
<RequestFocus />
------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -76,7 +76,7 @@
<RequestFocus />
</Merge>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongCaseDetectorTest.kt)
diff --git a/docs/checks/WrongCommentType.md.html b/docs/checks/WrongCommentType.md.html
index 9269057e..adea4a9c 100644
--- a/docs/checks/WrongCommentType.md.html
+++ b/docs/checks/WrongCommentType.md.html
@@ -59,7 +59,7 @@
to be a javadoc comment [WrongCommentType]
/* @since 1.5 */ String text;
----------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -74,14 +74,14 @@
/* Ok, no tags */
open fun someMethod2(arg: Int) { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/Test.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
public class Test {
/* @since 1.5 */ String text;
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongCommentTypeDetectorTest.kt)
diff --git a/docs/checks/WrongConstant.md.html b/docs/checks/WrongConstant.md.html
index 45621a6b..867f9df4 100644
--- a/docs/checks/WrongConstant.md.html
+++ b/docs/checks/WrongConstant.md.html
@@ -48,7 +48,7 @@
DetailInfoTabKt.CONST_2, DetailInfoTabKt.CONST_3 [WrongConstant]
test(UNRELATED) // ERROR - not part of the @DetailsInfoTab list
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -82,10 +82,11 @@
test(CONST_1) // OK
test(UNRELATED) // ERROR - not part of the @DetailsInfoTab list
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/TypedefDetectorTest.kt)
+You can also visit the source code ([TypedefDetectorTest.kt](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/TypedefDetectorTest.kt)
+[RangeDetectorTest.kt](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/RangeDetectorTest.kt)
+[LintIssueDocGeneratorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/LintIssueDocGeneratorTest.kt)
for the unit tests for this check to see additional scenarios.
(##) Suppressing
diff --git a/docs/checks/WrongConstraintLayoutUsage.md.html b/docs/checks/WrongConstraintLayoutUsage.md.html
index 3bc050f5..8d2a13d9 100644
--- a/docs/checks/WrongConstraintLayoutUsage.md.html
+++ b/docs/checks/WrongConstraintLayoutUsage.md.html
@@ -49,7 +49,7 @@
[WrongConstraintLayoutUsage]
app:layout_constraintLeft_toLeftOf="parent"/>
----------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -61,7 +61,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/WrongConstraintLayoutUsageDetectorTest.kt)
diff --git a/docs/checks/WrongDrawableName.md.html b/docs/checks/WrongDrawableName.md.html
index b184d172..c4ace68f 100644
--- a/docs/checks/WrongDrawableName.md.html
+++ b/docs/checks/WrongDrawableName.md.html
@@ -50,14 +50,14 @@
ic_, img_, notification_icon_, ripple_, selector_, shape_, vector_
[WrongDrawableName]
0 errors, 1 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
`res/drawable/random.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<merge/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/WrongDrawableNameDetectorTest.kt)
diff --git a/docs/checks/WrongFolder.md.html b/docs/checks/WrongFolder.md.html
index 0e88a7b2..b002d52f 100644
--- a/docs/checks/WrongFolder.md.html
+++ b/docs/checks/WrongFolder.md.html
@@ -47,7 +47,7 @@
folder, not a layout/ folder [WrongFolder]
<resources>
---------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -67,8 +67,7 @@
<!-- Wallpaper -->
<string name="wallpaper_instructions">Tap picture to set portrait wallpaper</string>
</resources>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongLocationDetectorTest.kt)
diff --git a/docs/checks/WrongGlobalIconColor.md.html b/docs/checks/WrongGlobalIconColor.md.html
index f4fc3cd1..897818b4 100644
--- a/docs/checks/WrongGlobalIconColor.md.html
+++ b/docs/checks/WrongGlobalIconColor.md.html
@@ -50,7 +50,7 @@
[WrongGlobalIconColor]
android:fillColor="#FF0000"
-------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -66,7 +66,7 @@
android:fillType="evenOdd"
android:pathData="M18.364,5.636C18.7545,6.0266 18.7545,6.6597 18.364,7.0503L13.4135,11.9993L18.364,16.9497C18.7545,17.3403 18.7545,17.9734 18.364,18.364C17.9734,18.7545 17.3403,18.7545 16.9497,18.364L11.9993,13.4135L7.0503,18.364C6.6597,18.7545 6.0266,18.7545 5.636,18.364C5.2455,17.9734 5.2455,17.3403 5.636,16.9497L10.5858,11.9986L5.636,7.0503C5.2455,6.6597 5.2455,6.0266 5.636,5.636C6.0266,5.2455 6.6597,5.2455 7.0503,5.636L12,10.5844L16.9497,5.636C17.3403,5.2455 17.9734,5.2455 18.364,5.636Z" />
</vector>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/WrongGlobalIconColorDetectorTest.kt)
diff --git a/docs/checks/WrongGradleMethod.md.html b/docs/checks/WrongGradleMethod.md.html
index 6257dfe3..7fe46ca0 100644
--- a/docs/checks/WrongGradleMethod.md.html
+++ b/docs/checks/WrongGradleMethod.md.html
@@ -87,7 +87,7 @@
this file! [WrongGradleMethod]
firebaseAppDistribution {
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -114,7 +114,7 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
diff --git a/docs/checks/WrongLayoutName.md.html b/docs/checks/WrongLayoutName.md.html
index 07cfe707..e79ec3d7 100644
--- a/docs/checks/WrongLayoutName.md.html
+++ b/docs/checks/WrongLayoutName.md.html
@@ -48,14 +48,14 @@
following prefixes: activity_, view_, fragment_, dialog_, bottom_sheet_,
adapter_item_, divider_, space_, popup_window_ [WrongLayoutName]
0 errors, 1 warnings
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
`res/layout/random.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<merge/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/WrongLayoutNameDetectorTest.kt)
diff --git a/docs/checks/WrongManifestParent.md.html b/docs/checks/WrongManifestParent.md.html
index 43e9a87b..382a86ad 100644
--- a/docs/checks/WrongManifestParent.md.html
+++ b/docs/checks/WrongManifestParent.md.html
@@ -97,7 +97,7 @@
child of the element [WrongManifestParent]
<activity android:name=".HelloWorld"
--------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -130,10 +130,12 @@
android:label="@string/app_name" />
</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/ManifestDetectorTest.kt)
+You can also visit the source code ([ManifestDetectorTest.kt](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/ManifestDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
+[ConfigurationHierarchyTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/ConfigurationHierarchyTest.kt)
+[LintDriverCrashTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/client/api/LintDriverCrashTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/WrongMenuIdFormat.md.html b/docs/checks/WrongMenuIdFormat.md.html
index dbbcf496..d0b42876 100644
--- a/docs/checks/WrongMenuIdFormat.md.html
+++ b/docs/checks/WrongMenuIdFormat.md.html
@@ -49,7 +49,7 @@
[WrongMenuIdFormat]
<item android:id="@+id/CamelCase"/>
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -58,7 +58,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/CamelCase"/>
</menu>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/WrongMenuIdFormatDetectorTest.kt)
diff --git a/docs/checks/WrongNavigateRouteType.md.html b/docs/checks/WrongNavigateRouteType.md.html
index ed11425e..420acc55 100644
--- a/docs/checks/WrongNavigateRouteType.md.html
+++ b/docs/checks/WrongNavigateRouteType.md.html
@@ -46,67 +46,115 @@
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
-src/com/example/test.kt:7:Error: The route should be a destination class
+src/com/example/test.kt:8:Error: The route should be a destination class
instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = TestClass)
---------
-src/com/example/test.kt:8:Error: The route should be a destination class
+src/com/example/test.kt:9:Error: The route should be a destination class
instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = TestClass::class)
----------------
-src/com/example/test.kt:9:Error: The route should be a destination class
-instance or destination object. [WrongNavigateRouteType]
+src/com/example/test.kt:10:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = TestClassWithArg)
----------------
-src/com/example/test.kt:10:Error: The route should be a destination
+src/com/example/test.kt:11:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = TestClassWithArg::class)
-----------------------
-src/com/example/test.kt:11:Error: The route should be a destination
+src/com/example/test.kt:12:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = TestInterface)
-------------
-src/com/example/test.kt:12:Error: The route should be a destination
+src/com/example/test.kt:13:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = TestInterface::class)
--------------------
-src/com/example/test.kt:13:Error: The route should be a destination
+src/com/example/test.kt:14:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = InterfaceChildClass)
-------------------
-src/com/example/test.kt:14:Error: The route should be a destination
+src/com/example/test.kt:15:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = InterfaceChildClass::class)
--------------------------
-src/com/example/test.kt:15:Error: The route should be a destination
+src/com/example/test.kt:16:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = TestAbstract)
------------
-src/com/example/test.kt:16:Error: The route should be a destination
+src/com/example/test.kt:17:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = TestAbstract::class)
-------------------
-src/com/example/test.kt:17:Error: The route should be a destination
+src/com/example/test.kt:18:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = AbstractChildClass)
------------------
-src/com/example/test.kt:18:Error: The route should be a destination
+src/com/example/test.kt:19:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = AbstractChildClass::class)
-------------------------
-src/com/example/test.kt:19:Error: The route should be a destination
+src/com/example/test.kt:20:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = InterfaceChildClass::class)
--------------------------
-src/com/example/test.kt:20:Error: The route should be a destination
+src/com/example/test.kt:21:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = Outer.InnerClass)
----------------
-src/com/example/test.kt:21:Error: The route should be a destination
+src/com/example/test.kt:22:Error: The route should be a destination
class instance or destination object. [WrongNavigateRouteType]
navController.navigate(route = Outer.InnerClass::class)
-----------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+src/com/example/test.kt:25:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = TestClassComp)
+ -------------
+src/com/example/test.kt:26:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = TestClassComp::class)
+ --------------------
+src/com/example/test.kt:27:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = TestClassWithArgComp)
+ --------------------
+src/com/example/test.kt:28:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = TestClassWithArgComp::class)
+ ---------------------------
+src/com/example/test.kt:29:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = OuterComp.InnerClassComp)
+ ------------------------
+src/com/example/test.kt:30:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = OuterComp.InnerClassComp::class)
+ -------------------------------
+src/com/example/test.kt:31:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = InterfaceChildClassComp)
+ -----------------------
+src/com/example/test.kt:32:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = InterfaceChildClassComp::class)
+ ------------------------------
+src/com/example/test.kt:33:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = AbstractChildClassComp)
+ ----------------------
+src/com/example/test.kt:34:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = AbstractChildClassComp::class)
+ -----------------------------
+src/com/example/test.kt:35:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = TestAbstractComp)
+ ----------------
+src/com/example/test.kt:36:Error: The route should be a destination
+class instance or destination object. [WrongNavigateRouteType]
+ navController.navigate(route = TestAbstractComp::class)
+ -----------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -114,7 +162,8 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
package com.example
-import androidx.navigation.*
+import androidx.navigation.NavController
+import androidx.test.*
fun createGraph() {
val navController = NavController()
@@ -133,8 +182,22 @@
navController.navigate(route = InterfaceChildClass::class)
navController.navigate(route = Outer.InnerClass)
navController.navigate(route = Outer.InnerClass::class)
+
+ //classes with companion object to simulate marked with @Serializable
+ navController.navigate(route = TestClassComp)
+ navController.navigate(route = TestClassComp::class)
+ navController.navigate(route = TestClassWithArgComp)
+ navController.navigate(route = TestClassWithArgComp::class)
+ navController.navigate(route = OuterComp.InnerClassComp)
+ navController.navigate(route = OuterComp.InnerClassComp::class)
+ navController.navigate(route = InterfaceChildClassComp)
+ navController.navigate(route = InterfaceChildClassComp::class)
+ navController.navigate(route = AbstractChildClassComp)
+ navController.navigate(route = AbstractChildClassComp::class)
+ navController.navigate(route = TestAbstractComp)
+ navController.navigate(route = TestAbstractComp::class)
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongNavigateRouteDetectorTest.kt)
@@ -153,17 +216,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-runtime:2.9.0-rc01")
+implementation("androidx.navigation:navigation-runtime:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-runtime:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.runtime)
# libs.versions.toml
[versions]
-navigation-runtime = "2.9.0-rc01"
+navigation-runtime = "2.9.7"
[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 +238,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.9.7 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/WrongRegion.md.html b/docs/checks/WrongRegion.md.html
index 8cd32d18..0dab56f5 100644
--- a/docs/checks/WrongRegion.md.html
+++ b/docs/checks/WrongRegion.md.html
@@ -56,7 +56,7 @@
combination nb (Norwegian Bokmål) with SE (Sweden): language nb is
usually paired with: NO (Norway), SJ (Svalbard & Jan Mayen)
[WrongRegion]
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -64,49 +64,49 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-no/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-nb-rNO/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-nb-rSJ/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-nb-rSE/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-sv-rSV/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-en-rXA/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`res/values-ff-rNO/strings.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<resources>
</resources>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/LocaleFolderDetectorTest.kt)
diff --git a/docs/checks/WrongRequiresOptIn.md.html b/docs/checks/WrongRequiresOptIn.md.html
index 25287a17..5669631b 100644
--- a/docs/checks/WrongRequiresOptIn.md.html
+++ b/docs/checks/WrongRequiresOptIn.md.html
@@ -53,17 +53,17 @@
```
// build.gradle.kts
-implementation("androidx.annotation:annotation-experimental:1.5.0-rc01")
+implementation("androidx.annotation:annotation-experimental:1.6.0-rc01")
// build.gradle
-implementation 'androidx.annotation:annotation-experimental:1.5.0-rc01'
+implementation 'androidx.annotation:annotation-experimental:1.6.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.annotation.experimental)
# libs.versions.toml
[versions]
-annotation-experimental = "1.5.0-rc01"
+annotation-experimental = "1.6.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-rc01 is the version this documentation was generated from;
+1.6.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 9f7f69b2..21a1dcc3 100644
--- a/docs/checks/WrongResourceImportAlias.md.html
+++ b/docs/checks/WrongResourceImportAlias.md.html
@@ -67,7 +67,7 @@
<option name="import-aliases" value="some string" />
</issue>
</lint>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(##) Example
@@ -77,7 +77,7 @@
alias here [WrongResourceImportAlias]
import slack.l10n.R as L10R
---------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -88,7 +88,7 @@
import slack.l10n.R as L10R
class MyClass
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/slackhq/slack-lints/tree/main/slack-lint-checks/src/test/java/slack/lint/resources/WrongResourceImportAliasDetectorTest.kt)
diff --git a/docs/checks/WrongSdkInt.md.html b/docs/checks/WrongSdkInt.md.html
index 91aa34ff..80adb613 100644
--- a/docs/checks/WrongSdkInt.md.html
+++ b/docs/checks/WrongSdkInt.md.html
@@ -58,7 +58,7 @@
SDK_INT_FULL, not SDK_INT [WrongSdkInt]
if (SDK_INT_FULL > Build.VERSION_CODES.VANILLA_ICE_CREAM) { // ERROR 2
----------------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -83,7 +83,7 @@
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUR_DEVELOPMENT) { // OK 3
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ApiDetectorTest.java)
diff --git a/docs/checks/WrongStartDestinationType-2.md.html b/docs/checks/WrongStartDestinationType-2.md.html
index c87bd2b6..3282cda3 100644
--- a/docs/checks/WrongStartDestinationType-2.md.html
+++ b/docs/checks/WrongStartDestinationType-2.md.html
@@ -150,7 +150,7 @@
[WrongStartDestinationType]
navController.createGraph(startDestination = TestAbstractComp)
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -179,10 +179,11 @@
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-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt)
+You can also visit the source code ([WrongStartDestinationTypeDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt)
+[WrongStartDestinationTypeDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetectorTest.kt)
+[WrongStartDestinationTypeDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/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
@@ -196,8 +197,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-common:2.9.0-rc01](WrongStartDestinationType.md.html)
-* [WrongStartDestinationType from androidx.navigation:navigation-runtime:2.9.0-rc01](WrongStartDestinationType-3.md.html)
+* [WrongStartDestinationType from androidx.navigation:navigation-common:2.9.7](WrongStartDestinationType.md.html)
+* [WrongStartDestinationType from androidx.navigation:navigation-runtime:2.9.7](WrongStartDestinationType-3.md.html)
(##) Including
@@ -208,17 +209,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-compose:2.9.0-rc01")
+implementation("androidx.navigation:navigation-compose:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-compose:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-compose:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.compose)
# libs.versions.toml
[versions]
-navigation-compose = "2.9.0-rc01"
+navigation-compose = "2.9.7"
[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
@@ -230,7 +231,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.9.7 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/WrongStartDestinationType-3.md.html b/docs/checks/WrongStartDestinationType-3.md.html
index 82e751ca..126ae4b9 100644
--- a/docs/checks/WrongStartDestinationType-3.md.html
+++ b/docs/checks/WrongStartDestinationType-3.md.html
@@ -152,7 +152,7 @@
[WrongStartDestinationType]
navController.createGraph(startDestination = TestAbstractComp)
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -181,10 +181,11 @@
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-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt)
+You can also visit the source code ([WrongStartDestinationTypeDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt)
+[WrongStartDestinationTypeDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetectorTest.kt)
+[WrongStartDestinationTypeDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/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
@@ -198,8 +199,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-common:2.9.0-rc01](WrongStartDestinationType.md.html)
-* [WrongStartDestinationType from androidx.navigation:navigation-compose:2.9.0-rc01](WrongStartDestinationType-2.md.html)
+* [WrongStartDestinationType from androidx.navigation:navigation-common:2.9.7](WrongStartDestinationType.md.html)
+* [WrongStartDestinationType from androidx.navigation:navigation-compose:2.9.7](WrongStartDestinationType-2.md.html)
(##) Including
@@ -210,17 +211,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-runtime:2.9.0-rc01")
+implementation("androidx.navigation:navigation-runtime:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-runtime:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.runtime)
# libs.versions.toml
[versions]
-navigation-runtime = "2.9.0-rc01"
+navigation-runtime = "2.9.7"
[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
@@ -232,7 +233,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.9.7 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/WrongStartDestinationType.md.html b/docs/checks/WrongStartDestinationType.md.html
index 2a36245e..b18ea9ad 100644
--- a/docs/checks/WrongStartDestinationType.md.html
+++ b/docs/checks/WrongStartDestinationType.md.html
@@ -152,7 +152,7 @@
[WrongStartDestinationType]
navController.createGraph(startDestination = TestAbstractComp)
----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -181,10 +181,11 @@
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-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt)
+You can also visit the source code ([WrongStartDestinationTypeDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/WrongStartDestinationTypeDetectorTest.kt)
+[WrongStartDestinationTypeDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/WrongStartDestinationTypeDetectorTest.kt)
+[WrongStartDestinationTypeDetectorTest.kt](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-common-lint/src/test/java/androidx/navigation/common/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
@@ -198,8 +199,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-rc01](WrongStartDestinationType-2.md.html)
-* [WrongStartDestinationType from androidx.navigation:navigation-runtime:2.9.0-rc01](WrongStartDestinationType-3.md.html)
+* [WrongStartDestinationType from androidx.navigation:navigation-compose:2.9.7](WrongStartDestinationType-2.md.html)
+* [WrongStartDestinationType from androidx.navigation:navigation-runtime:2.9.7](WrongStartDestinationType-3.md.html)
(##) Including
@@ -210,17 +211,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-common:2.9.0-rc01")
+implementation("androidx.navigation:navigation-common:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-common:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-common:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.common)
# libs.versions.toml
[versions]
-navigation-common = "2.9.0-rc01"
+navigation-common = "2.9.7"
[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
@@ -232,7 +233,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.9.7 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/WrongTestMethodName.md.html b/docs/checks/WrongTestMethodName.md.html
index a32d1582..a7521ca0 100644
--- a/docs/checks/WrongTestMethodName.md.html
+++ b/docs/checks/WrongTestMethodName.md.html
@@ -49,7 +49,7 @@
[WrongTestMethodName]
@Test public void testSomething() { }
-------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -62,7 +62,7 @@
public class MyTest {
@Test public void testSomething() { }
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/WrongTestMethodNameDetectorTest.kt)
diff --git a/docs/checks/WrongThread.md.html b/docs/checks/WrongThread.md.html
index 288b6e2a..c42fc886 100644
--- a/docs/checks/WrongThread.md.html
+++ b/docs/checks/WrongThread.md.html
@@ -53,7 +53,7 @@
[WrongThread]
publishProgress(); // ERROR
-----------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -123,10 +123,12 @@
}
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-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/ThreadDetectorTest.kt)
+You can also visit the source code ([ThreadDetectorTest.kt](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/ThreadDetectorTest.kt)
+[ProjectInitializerTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-tests/src/test/java/com/android/tools/lint/ProjectInitializerTest.kt)
+[IntellijThreadDetectorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/studio-checks/src/test/java/com/android/tools/lint/checks/studio/IntellijThreadDetectorTest.kt)
+[IntellijInferredThreadDetectorTest.kt](https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/studio-checks/src/test/java/com/android/tools/lint/checks/studio/IntellijInferredThreadDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
diff --git a/docs/checks/WrongThreadInterprocedural.md.html b/docs/checks/WrongThreadInterprocedural.md.html
index 6f1a1ec7..1a2d2179 100644
--- a/docs/checks/WrongThreadInterprocedural.md.html
+++ b/docs/checks/WrongThreadInterprocedural.md.html
@@ -80,7 +80,7 @@
[WrongThreadInterprocedural]
invokeInBackground(() -> d());
---
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -165,7 +165,7 @@
invokeInBackground(() -> c()); // Ok.
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/WrongThreadInterproceduralDetectorTest.kt)
diff --git a/docs/checks/WrongViewCast.md.html b/docs/checks/WrongViewCast.md.html
index 3b855257..4d46a7ae 100644
--- a/docs/checks/WrongViewCast.md.html
+++ b/docs/checks/WrongViewCast.md.html
@@ -46,7 +46,7 @@
ToggleButton: layout tag was Button [WrongViewCast]
ToggleButton toggleButton = (ToggleButton) findViewById(R.id.button);
----------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here are the relevant source files:
@@ -76,7 +76,7 @@
android:layout_height="wrap_content" />
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`src/test/pkg/WrongCastActivity.java`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
@@ -96,7 +96,7 @@
TextView textView = (TextView) findViewById(R.id.edittext);
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/ViewTypeDetectorTest.kt)
diff --git a/docs/checks/WrongViewIdFormat.md.html b/docs/checks/WrongViewIdFormat.md.html
index b7b744c3..1d4def28 100644
--- a/docs/checks/WrongViewIdFormat.md.html
+++ b/docs/checks/WrongViewIdFormat.md.html
@@ -49,7 +49,7 @@
[WrongViewIdFormat]
android:id="@+id/CamelCase"/>
--------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -57,7 +57,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/CamelCase"/>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/WrongViewIdFormatDetectorTest.kt)
diff --git a/docs/checks/XmlEscapeNeeded.md.html b/docs/checks/XmlEscapeNeeded.md.html
index a4f76117..c1618154 100644
--- a/docs/checks/XmlEscapeNeeded.md.html
+++ b/docs/checks/XmlEscapeNeeded.md.html
@@ -47,7 +47,7 @@
attribute values [XmlEscapeNeeded]
android:text="@{calc.a < calc.b ? calc.textA : calc.textB}"/>
----------------------------------------------
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -71,8 +71,7 @@
android:text="@{calc.a < calc.b ? calc.textA : calc.textB}"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/DataBindingDetectorTest.kt)
diff --git a/docs/checks/XmlSpacing.md.html b/docs/checks/XmlSpacing.md.html
index f69faee4..b896e994 100644
--- a/docs/checks/XmlSpacing.md.html
+++ b/docs/checks/XmlSpacing.md.html
@@ -57,7 +57,7 @@
res/layout/activity_home.xml:9:Warning: Unnecessary new line at line 9
[XmlSpacing]
^
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
@@ -73,7 +73,7 @@
/>
</LinearLayout>
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://github.com/vanniktech/lint-rules/tree/master/lint-rules-android-lint/src/test/kotlin/com/vanniktech/lintrules/android/XmlSpacingDetectorTest.kt)
diff --git a/docs/checks/ZeroBluetoothDiscoveryDuration.md.html b/docs/checks/ZeroBluetoothDiscoveryDuration.md.html
new file mode 100644
index 00000000..12fe9fb8
--- /dev/null
+++ b/docs/checks/ZeroBluetoothDiscoveryDuration.md.html
@@ -0,0 +1,180 @@
+
+(#) The EXTRA_DISCOVERABLE_DURATION parameter is set to zero
+
+!!! ERROR: The EXTRA_DISCOVERABLE_DURATION parameter is set to zero
+ This is an error.
+
+Id
+: `ZeroBluetoothDiscoveryDuration`
+Summary
+: The EXTRA_DISCOVERABLE_DURATION parameter is set to zero
+Severity
+: Error
+Category
+: Security
+Platform
+: Any
+Vendor
+: Google - Android 3P Vulnerability Research
+Contact
+: https://github.com/google/android-security-lints
+Feedback
+: https://github.com/google/android-security-lints/issues
+Min
+: Lint 4.1
+Compiled
+: Lint 8.0 and 8.1
+Artifact
+: [com.android.security.lint:lint](com_android_security_lint_lint.md.html)
+Since
+: 1.0.4
+Affects
+: Kotlin and Java files
+Editing
+: This check runs on the fly in the IDE editor
+See
+: https://goo.gle/ZeroBluetoothDiscoveryDuration
+Implementation
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/main/java/com/example/lint/checks/BluetoothAdapterDetector.kt)
+Tests
+: [Source Code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/BluetoothAdapterDetectorTest.kt)
+Copyright Year
+: 2024
+
+Setting the EXTRA_DISCOVERABLE_DURATION parameter to zero
+ will cause the device to be discoverable as long as the application
+is running in the background or foreground.
+
+(##) Example
+
+Here is an example of lint warnings produced by this check:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
+src/MainActivity.java:6:Error: The EXTRA_DISCOVERABLE_DURATION time
+should never be set to zero [ZeroBluetoothDiscoveryDuration]
+ private Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE).putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
+ ------------------------------------------------------------------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Here is the source file referenced above:
+
+`src/MainActivity.java`:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~java linenumbers
+import android.app.Activity;
+ import android.bluetooth.BluetoothAdapter;
+ import android.content.Intent;
+
+ public class MainActivity extends Activity {
+ private Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE).putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
+}
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can also visit the
+[source code](https://github.com/google/android-security-lints/tree/main/checks/src/test/java/com/example/lint/checks/BluetoothAdapterDetectorTest.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, `BluetoothAdapterDetector.extraDiscoverableDurationIsZero_showsWarning`.
+To report a problem with this extracted sample, visit
+https://github.com/google/android-security-lints/issues.
+
+(##) 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.android.security.lint:lint:1.0.4")
+
+// build.gradle
+lintChecks 'com.android.security.lint:lint:1.0.4'
+
+// build.gradle.kts with version catalogs:
+lintChecks(libs.com.android.security.lint.lint)
+
+# libs.versions.toml
+[versions]
+com-android-security-lint-lint = "1.0.4"
+[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:
+com-android-security-lint-lint = {
+ module = "com.android.security.lint:lint",
+ version.ref = "com-android-security-lint-lint"
+}
+```
+
+1.0.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+[Additional details about com.android.security.lint:lint](com_android_security_lint_lint.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("ZeroBluetoothDiscoveryDuration")
+ fun method() {
+ putExtra(...)
+ }
+ ```
+
+ or
+
+ ```java
+ // Java
+ @SuppressWarnings("ZeroBluetoothDiscoveryDuration")
+ void method() {
+ putExtra(...);
+ }
+ ```
+
+* Using a suppression comment like this on the line above:
+
+ ```kt
+ //noinspection ZeroBluetoothDiscoveryDuration
+ 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="ZeroBluetoothDiscoveryDuration" 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 'ZeroBluetoothDiscoveryDuration'
+ }
+ ```
+ In Android projects this should be nested inside an `android { }`
+ block.
+
+* For manual invocations of `lint`, using the `--ignore` flag:
+ ```
+ $ lint --ignore ZeroBluetoothDiscoveryDuration ...`
+ ```
+
+* 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/androidx_activity_activity-compose.md.html b/docs/checks/androidx_activity_activity-compose.md.html
index 7f570bcd..196291fa 100644
--- a/docs/checks/androidx_activity_activity-compose.md.html
+++ b/docs/checks/androidx_activity_activity-compose.md.html
@@ -17,7 +17,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.activity:activity-compose:1.11.0-rc01
+: androidx.activity:activity-compose:1.13.0-rc01
(##) Included Issues
@@ -35,17 +35,17 @@
```
// build.gradle.kts
-implementation("androidx.activity:activity-compose:1.11.0-rc01")
+implementation("androidx.activity:activity-compose:1.13.0-rc01")
// build.gradle
-implementation 'androidx.activity:activity-compose:1.11.0-rc01'
+implementation 'androidx.activity:activity-compose:1.13.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.activity.compose)
# libs.versions.toml
[versions]
-activity-compose = "1.11.0-rc01"
+activity-compose = "1.13.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.11.0-rc01 is the version this documentation was generated from;
+1.13.0-rc01 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -72,10 +72,14 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 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.13.0-rc01|2026/02/25| 3| Yes| 8.7+|8.0 and 8.1|
+| 1.13.0-alpha01|2026/01/14| 3| Yes| 8.7+|8.0 and 8.1|
+| 1.12.4|2026/02/11| 3| Yes| 8.7+|8.0 and 8.1|
+| 1.12.3|2026/01/29| 3| Yes| 8.7+|8.0 and 8.1|
+| 1.12.2|2025/12/17| 3| Yes| 8.7+|8.0 and 8.1|
+| 1.12.1|2025/12/03| 3| Yes| 8.7+|8.0 and 8.1|
+| 1.12.0|2025/11/19| 3| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0|2025/09/10| 3| Yes| 8.7+|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|
diff --git a/docs/checks/androidx_activity_activity.md.html b/docs/checks/androidx_activity_activity.md.html
index 47b19674..c4b8e949 100644
--- a/docs/checks/androidx_activity_activity.md.html
+++ b/docs/checks/androidx_activity_activity.md.html
@@ -18,7 +18,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.activity:activity:1.11.0-rc01
+: androidx.activity:activity:1.13.0-rc01
(##) Included Issues
@@ -35,17 +35,17 @@
```
// build.gradle.kts
-implementation("androidx.activity:activity:1.11.0-rc01")
+implementation("androidx.activity:activity:1.13.0-rc01")
// build.gradle
-implementation 'androidx.activity:activity:1.11.0-rc01'
+implementation 'androidx.activity:activity:1.13.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.activity)
# libs.versions.toml
[versions]
-activity = "1.11.0-rc01"
+activity = "1.13.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.11.0-rc01 is the version this documentation was generated from;
+1.13.0-rc01 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -72,10 +72,14 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 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.13.0-rc01|2026/02/25| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.13.0-alpha01|2026/01/14| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.12.4|2026/02/11| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.12.3|2026/01/29| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.12.2|2025/12/17| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.12.1|2025/12/03| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.12.0|2025/11/19| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0|2025/09/10| 2| Yes| 8.7+|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|
diff --git a/docs/checks/androidx_annotation_annotation-experimental.md.html b/docs/checks/androidx_annotation_annotation-experimental.md.html
index 9685c384..6e243163 100644
--- a/docs/checks/androidx_annotation_annotation-experimental.md.html
+++ b/docs/checks/androidx_annotation_annotation-experimental.md.html
@@ -20,7 +20,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.annotation:annotation-experimental:1.5.0-rc01
+: androidx.annotation:annotation-experimental:1.6.0-rc01
(##) Included Issues
@@ -39,17 +39,17 @@
```
// build.gradle.kts
-implementation("androidx.annotation:annotation-experimental:1.5.0-rc01")
+implementation("androidx.annotation:annotation-experimental:1.6.0-rc01")
// build.gradle
-implementation 'androidx.annotation:annotation-experimental:1.5.0-rc01'
+implementation 'androidx.annotation:annotation-experimental:1.6.0-rc01'
// build.gradle.kts with version catalogs:
implementation(libs.annotation.experimental)
# libs.versions.toml
[versions]
-annotation-experimental = "1.5.0-rc01"
+annotation-experimental = "1.6.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-rc01 is the version this documentation was generated from;
+1.6.0-rc01 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -79,9 +79,10 @@
| 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.6.0-rc01|2026/02/11| 4| Yes| 8.7+| 8.7+|
+| 1.6.0-alpha01|2025/10/22| 4| Yes| 8.7+| 8.7+|
+| 1.5.1|2025/07/16| 4| Yes| 8.7+| 8.7+|
+| 1.5.0|2025/05/07| 4| Yes| 8.7+| 8.7+|
| 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|
| 1.3.1|2023/06/21| 4| Yes| 7.3 and 7.4| 7.0|
diff --git a/docs/checks/androidx_appcompat_appcompat.md.html b/docs/checks/androidx_appcompat_appcompat.md.html
index 37e8c359..25a8b052 100644
--- a/docs/checks/androidx_appcompat_appcompat.md.html
+++ b/docs/checks/androidx_appcompat_appcompat.md.html
@@ -18,7 +18,7 @@
Compiled
: Lint 8.0 and 8.1
Artifact
-: androidx.appcompat:appcompat:1.7.0
+: androidx.appcompat:appcompat:1.7.1
(##) Included Issues
@@ -43,17 +43,17 @@
```
// build.gradle.kts
-implementation("androidx.appcompat:appcompat:1.7.0")
+implementation("androidx.appcompat:appcompat:1.7.1")
// build.gradle
-implementation 'androidx.appcompat:appcompat:1.7.0'
+implementation 'androidx.appcompat:appcompat:1.7.1'
// build.gradle.kts with version catalogs:
implementation(libs.appcompat)
# libs.versions.toml
[versions]
-appcompat = "1.7.0"
+appcompat = "1.7.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
@@ -65,7 +65,7 @@
}
```
-1.7.0 is the version this documentation was generated from;
+1.7.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 |
|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 1.7.1|2025/06/04| 10| Yes| 8.0 and 8.1|8.0 and 8.1|
| 1.7.0|2024/05/29| 10| Yes| 8.0 and 8.1|8.0 and 8.1|
| 1.6.1|2023/02/08| 10| Yes| 7.3 and 7.4| 7.0|
| 1.6.0|2023/01/11| 10| Yes| 7.3 and 7.4| 7.0|
diff --git a/docs/checks/androidx_compose_animation_animation-android.md.html b/docs/checks/androidx_compose_animation_animation-android.md.html
index 62da0824..80d0bad6 100644
--- a/docs/checks/androidx_compose_animation_animation-android.md.html
+++ b/docs/checks/androidx_compose_animation_animation-android.md.html
@@ -17,17 +17,18 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.compose.animation:animation-android:1.9.0-alpha01
+: androidx.compose.animation:animation-android:1.11.0-alpha06
(##) Included Issues
-|Issue Id |Issue Description |
-|------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
-|[UnusedCrossfadeTargetStateParameter](UnusedCrossfadeTargetStateParameter.md.html) |Crossfade calls should use the provided `T` parameter in the content lambda |
-|[UnusedContentLambdaTargetStateParameter](UnusedContentLambdaTargetStateParameter.md.html)|AnimatedContent calls should use the provided `T` parameter in the content lambda |
-|[UnusedTargetStateInContentKeyLambda](UnusedTargetStateInContentKeyLambda.md.html) |`contentKey` lambda in AnimatedContent should always use the provided `T` parameter|
-|[UnusedSharedTransitionModifierParameter](UnusedSharedTransitionModifierParameter.md.html)|SharedTransitionScope calls should use the provided Modifier parameter |
-|[ConstantContentStateKeyInItemsCall](ConstantContentStateKeyInItemsCall.md.html) |Composables within an LazyList `items` call should have unique content state keys |
+|Issue Id |Issue Description |
+|------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|
+|[UnusedCrossfadeTargetStateParameter](UnusedCrossfadeTargetStateParameter.md.html) |Crossfade calls should use the provided `T` parameter in the content lambda |
+|[UnusedContentLambdaTargetStateParameter](UnusedContentLambdaTargetStateParameter.md.html)|AnimatedContent calls should use the provided `T` parameter in the content lambda |
+|[UnusedTargetStateInContentKeyLambda](UnusedTargetStateInContentKeyLambda.md.html) |`contentKey` lambda in AnimatedContent should always use the provided `T` parameter |
+|[UnusedSharedTransitionModifierParameter](UnusedSharedTransitionModifierParameter.md.html)|SharedTransitionScope calls should use the provided Modifier parameter |
+|[ConstantContentStateKeyInItemsCall](ConstantContentStateKeyInItemsCall.md.html) |Composables within an LazyList `items` call should have unique content state keys |
+|[DisallowLookaheadAnimationVisualDebug](DisallowLookaheadAnimationVisualDebug.md.html) |LookaheadAnimationVisualDebugging and CustomizedLookaheadAnimationVisualDebugging are disallowed in production code|
(##) Including
@@ -37,17 +38,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.animation:animation-android:1.9.0-alpha01")
+implementation("androidx.compose.animation:animation-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.animation:animation-android:1.9.0-alpha01'
+implementation 'androidx.compose.animation:animation-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.animation.android)
# libs.versions.toml
[versions]
-animation-android = "1.9.0-alpha01"
+animation-android = "1.11.0-alpha06"
[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,11 +60,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.animation:animation-lint:1.11.0-alpha06`.
(##) Changes
@@ -73,6 +74,7 @@
* 1.8.0: Adds ConstantContentStateKeyInItemsCall,
UnusedSharedTransitionModifierParameter,
UnusedTargetStateInContentKeyLambda.
+* 1.11.0-alpha03: Adds DisallowLookaheadAnimationVisualDebug.
(##) Version Compatibility
@@ -80,7 +82,26 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 1.9.0-alpha01|2025/04/23| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha06|2026/02/25| 6| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha05|2026/02/11| 6| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha04|2026/01/29| 6| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha03|2026/01/14| 6| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha02|2025/12/17| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha01|2025/12/03| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.10.4|2026/02/25| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.10.3|2026/02/11| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.10.2|2026/01/29| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.10.1|2026/01/14| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.10.0|2025/12/03| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.9.5|2025/11/19| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.9.4|2025/10/22| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.9.3|2025/10/08| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.9.2|2025/09/24| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.9.1|2025/09/10| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.9.0|2025/08/13| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.8.3|2025/06/18| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.8.2|2025/05/20| 5| Yes| 8.7+|8.0 and 8.1|
+| 1.8.1|2025/05/07| 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|
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 75ef3c51..5a78446c 100644
--- a/docs/checks/androidx_compose_animation_animation-core-android.md.html
+++ b/docs/checks/androidx_compose_animation_animation-core-android.md.html
@@ -18,7 +18,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.compose.animation:animation-core-android:1.9.0-alpha01
+: androidx.compose.animation:animation-core-android:1.11.0-alpha06
(##) Included Issues
@@ -35,17 +35,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.animation:animation-core-android:1.9.0-alpha01")
+implementation("androidx.compose.animation:animation-core-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.animation:animation-core-android:1.9.0-alpha01'
+implementation 'androidx.compose.animation:animation-core-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.animation.core.android)
# libs.versions.toml
[versions]
-animation-core-android = "1.9.0-alpha01"
+animation-core-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.animation:animation-core-lint:1.11.0-alpha06`.
(##) Changes
@@ -69,7 +69,7 @@
* 1.5.0: First version includes UnrememberedAnimatable,
UnusedTransitionTargetStateParameter.
* 1.7.0: Adds ArcAnimationSpecTypeIssue.
-* 1.9.0-alpha01: Removes UnrememberedAnimatable.
+* 1.9.0: Removes UnrememberedAnimatable.
(##) Version Compatibility
@@ -77,7 +77,26 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 1.9.0-alpha01|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha06|2026/02/25| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha05|2026/02/11| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha04|2026/01/29| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha03|2026/01/14| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha02|2025/12/17| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha01|2025/12/03| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.4|2026/02/25| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.3|2026/02/11| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.2|2026/01/29| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.1|2026/01/14| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.0|2025/12/03| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.5|2025/11/19| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.4|2025/10/22| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.3|2025/10/08| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.2|2025/09/24| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.1|2025/09/10| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.0|2025/08/13| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.8.3|2025/06/18| 3| Yes| 8.7+|8.0 and 8.1|
+| 1.8.2|2025/05/20| 3| Yes| 8.7+|8.0 and 8.1|
+| 1.8.1|2025/05/07| 3| 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|
diff --git a/docs/checks/androidx_compose_foundation_foundation-android.md.html b/docs/checks/androidx_compose_foundation_foundation-android.md.html
index 65da8a90..2b9441a5 100644
--- a/docs/checks/androidx_compose_foundation_foundation-android.md.html
+++ b/docs/checks/androidx_compose_foundation_foundation-android.md.html
@@ -19,7 +19,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.compose.foundation:foundation-android:1.9.0-alpha01
+: androidx.compose.foundation:foundation-android:1.11.0-alpha06
(##) Included Issues
@@ -36,17 +36,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.foundation:foundation-android:1.9.0-alpha01")
+implementation("androidx.compose.foundation:foundation-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.foundation:foundation-android:1.9.0-alpha01'
+implementation 'androidx.compose.foundation:foundation-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.foundation.android)
# libs.versions.toml
[versions]
-foundation-android = "1.9.0-alpha01"
+foundation-android = "1.11.0-alpha06"
[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 +58,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.foundation:foundation-lint:1.11.0-alpha06`.
(##) Changes
@@ -71,7 +71,7 @@
UseOfNonLambdaOffsetOverload.
* 1.6.0: Adds UnrememberedMutableInteractionSource,
UnusedBoxWithConstraintsScope.
-* 1.9.0-alpha01: Removes FrequentlyChangedStateReadInComposition,
+* 1.9.0: Removes FrequentlyChangedStateReadInComposition,
UnrememberedMutableInteractionSource.
(##) Version Compatibility
@@ -80,7 +80,26 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 1.9.0-alpha01|2025/04/23| 2| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha06|2026/02/25| 2| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha05|2026/02/11| 2| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha04|2026/01/29| 2| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha03|2026/01/14| 2| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha02|2025/12/17| 2| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha01|2025/12/03| 2| Yes| 8.7+| 8.7+|
+| 1.10.4|2026/02/25| 2| Yes| 8.7+| 8.7+|
+| 1.10.3|2026/02/11| 2| Yes| 8.7+| 8.7+|
+| 1.10.2|2026/01/29| 2| Yes| 8.7+| 8.7+|
+| 1.10.1|2026/01/14| 2| Yes| 8.7+| 8.7+|
+| 1.10.0|2025/12/03| 2| Yes| 8.7+| 8.7+|
+| 1.9.5|2025/11/19| 2| Yes| 8.7+| 8.7+|
+| 1.9.4|2025/10/22| 2| Yes| 8.7+| 8.7+|
+| 1.9.3|2025/10/08| 2| Yes| 8.7+| 8.7+|
+| 1.9.2|2025/09/24| 2| Yes| 8.7+| 8.7+|
+| 1.9.1|2025/09/10| 2| Yes| 8.7+| 8.7+|
+| 1.9.0|2025/08/13| 2| Yes| 8.7+| 8.7+|
+| 1.8.3|2025/06/18| 4| Yes| 8.7+|8.0 and 8.1|
+| 1.8.2|2025/05/20| 4| Yes| 8.7+|8.0 and 8.1|
+| 1.8.1|2025/05/07| 4| Yes| 8.7+|8.0 and 8.1|
| 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|
diff --git a/docs/checks/androidx_compose_material3_material3-android.md.html b/docs/checks/androidx_compose_material3_material3-android.md.html
index 2c076afa..6e534834 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-alpha13
+: androidx.compose.material3:material3-android:1.5.0-alpha15
(##) Included Issues
@@ -34,17 +34,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.material3:material3-android:1.4.0-alpha13")
+implementation("androidx.compose.material3:material3-android:1.5.0-alpha15")
// build.gradle
-implementation 'androidx.compose.material3:material3-android:1.4.0-alpha13'
+implementation 'androidx.compose.material3:material3-android:1.5.0-alpha15'
// build.gradle.kts with version catalogs:
implementation(libs.material3.android)
# libs.versions.toml
[versions]
-material3-android = "1.4.0-alpha13"
+material3-android = "1.5.0-alpha15"
[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-alpha13 is the version this documentation was generated from;
+1.5.0-alpha15 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-alpha13`.
+You can also use `androidx.compose.material3:material3-lint:1.5.0-alpha15`.
(##) Changes
@@ -74,19 +74,21 @@
| 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.5.0-alpha15|2026/02/25| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha14|2026/02/11| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha13|2026/01/29| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha12|2026/01/14| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha11|2025/12/17| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha10|2025/12/03| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha09|2025/11/19| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha08|2025/11/05| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha07|2025/10/22| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha06|2025/10/08| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha04|2025/09/10| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha03|2025/08/27| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha02|2025/08/13| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.5.0-alpha01|2025/07/30| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.4.0|2025/09/24| 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|
diff --git a/docs/checks/androidx_compose_material_material-android.md.html b/docs/checks/androidx_compose_material_material-android.md.html
index e9314d66..8d98ab5d 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.9.0-alpha01
+: androidx.compose.material:material-android:1.11.0-alpha06
(##) Included Issues
@@ -34,17 +34,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.material:material-android:1.9.0-alpha01")
+implementation("androidx.compose.material:material-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.material:material-android:1.9.0-alpha01'
+implementation 'androidx.compose.material:material-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.material.android)
# libs.versions.toml
[versions]
-material-android = "1.9.0-alpha01"
+material-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.material:material-lint:1.11.0-alpha06`.
(##) Changes
@@ -74,7 +74,26 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 1.9.0-alpha01|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha06|2026/02/25| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha05|2026/02/11| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha04|2026/01/29| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha03|2026/01/14| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha02|2025/12/17| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha01|2025/12/03| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.4|2026/02/25| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.3|2026/02/11| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.2|2026/01/29| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.1|2026/01/14| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.0|2025/12/03| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.5|2025/11/19| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.4|2025/10/22| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.3|2025/10/08| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.2|2025/09/24| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.1|2025/09/10| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.0|2025/08/13| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.8.3|2025/06/18| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.8.2|2025/05/20| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.8.1|2025/05/07| 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|
diff --git a/docs/checks/androidx_compose_runtime_runtime-android.md.html b/docs/checks/androidx_compose_runtime_runtime-android.md.html
index 147f14f9..74b4682c 100644
--- a/docs/checks/androidx_compose_runtime_runtime-android.md.html
+++ b/docs/checks/androidx_compose_runtime_runtime-android.md.html
@@ -18,7 +18,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.compose.runtime:runtime-android:1.9.0-alpha01
+: androidx.compose.runtime:runtime-android:1.11.0-alpha06
(##) Included Issues
@@ -49,17 +49,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.android)
# libs.versions.toml
[versions]
-runtime-android = "1.9.0-alpha01"
+runtime-android = "1.11.0-alpha06"
[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,11 +71,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.runtime:runtime-lint:1.11.0-alpha06`.
(##) Changes
@@ -87,7 +87,7 @@
FlowOperatorInvokedInComposition, MutableCollectionMutableState,
OpaqueUnitKey, ProduceStateDoesNotAssignValue, RememberReturnType,
StateFlowValueCalledInComposition, UnrememberedMutableState.
-* 1.9.0-alpha01: Adds FrequentlyChangingValue, RememberInComposition.
+* 1.9.0: Adds FrequentlyChangingValue, RememberInComposition.
(##) Version Compatibility
@@ -95,7 +95,26 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 1.9.0-alpha01|2025/04/23| 16| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha06|2026/02/25| 16| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha05|2026/02/11| 16| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha04|2026/01/29| 16| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha03|2026/01/14| 16| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha02|2025/12/17| 16| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha01|2025/12/03| 16| Yes| 8.7+| 8.7+|
+| 1.10.4|2026/02/25| 16| Yes| 8.7+| 8.7+|
+| 1.10.3|2026/02/11| 16| Yes| 8.7+| 8.7+|
+| 1.10.2|2026/01/29| 16| Yes| 8.7+| 8.7+|
+| 1.10.1|2026/01/14| 16| Yes| 8.7+| 8.7+|
+| 1.10.0|2025/12/03| 16| Yes| 8.7+| 8.7+|
+| 1.9.5|2025/11/19| 16| Yes| 8.7+| 8.7+|
+| 1.9.4|2025/10/22| 16| Yes| 8.7+| 8.7+|
+| 1.9.3|2025/10/08| 16| Yes| 8.7+| 8.7+|
+| 1.9.2|2025/09/24| 16| Yes| 8.7+| 8.7+|
+| 1.9.1|2025/09/10| 16| Yes| 8.7+| 8.7+|
+| 1.9.0|2025/08/13| 16| Yes| 8.7+| 8.7+|
+| 1.8.3|2025/06/18| 14| No[^1]| 8.0 and 8.1|8.0 and 8.1|
+| 1.8.2|2025/05/20| 14| No[^1]| 8.0 and 8.1|8.0 and 8.1|
+| 1.8.1|2025/05/07| 14| No[^1]| 8.0 and 8.1|8.0 and 8.1|
| 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|
diff --git a/docs/checks/androidx_compose_runtime_runtime-retain-android.md.html b/docs/checks/androidx_compose_runtime_runtime-retain-android.md.html
new file mode 100644
index 00000000..2b1cae76
--- /dev/null
+++ b/docs/checks/androidx_compose_runtime_runtime-retain-android.md.html
@@ -0,0 +1,92 @@
+(#) androidx.compose.runtime:runtime-retain-android
+
+Name
+: Compose Runtime Retain
+Description
+: Preserve state in composable methods across configuration changes and
+: other transient content destruction scenarios
+License
+: [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+Vendor
+: Jetpack Compose
+Identifier
+: androidx.compose.runtime.retain
+Feedback
+: https://issuetracker.google.com/issues/new?component=612128
+Min
+: Lint 8.7+
+Compiled
+: Lint 8.7+
+Artifact
+: androidx.compose.runtime:runtime-retain-android:1.11.0-alpha06
+
+(##) Included Issues
+
+|Issue Id |Issue Description |
+|------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|
+|[RetainUnitType](RetainUnitType.md.html) |`retain` calls must not return `Unit` |
+|[RetainRememberObserver](RetainRememberObserver.md.html) |Values returned by `retain { ... }` must not implement RememberObserver unless they also implement RetainObserver. |
+|[RetainingDoNotRetainType](RetainingDoNotRetainType.md.html)|Types annotated with `@DoNotRetain` should not be returned as the result of `retain`, either directly or transitively|
+|[RetainLeaksContext](RetainLeaksContext.md.html) |Using `retain { ... }` to store a value that extends from or references `Context` will cause a memory leak. |
+
+(##) 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-retain-android:1.11.0-alpha06")
+
+// build.gradle
+implementation 'androidx.compose.runtime:runtime-retain-android:1.11.0-alpha06'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.runtime.retain.android)
+
+# libs.versions.toml
+[versions]
+runtime-retain-android = "1.11.0-alpha06"
+[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-retain-android = {
+ module = "androidx.compose.runtime:runtime-retain-android",
+ version.ref = "runtime-retain-android"
+}
+```
+
+1.11.0-alpha06 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-retain-lint:1.11.0-alpha06`.
+
+
+(##) Changes
+
+* 1.10.0: First version includes RetainLeaksContext,
+ RetainRememberObserver, RetainUnitType, RetainingDoNotRetainType.
+
+(##) Version Compatibility
+
+There are multiple older versions available of this library:
+
+| Version | Date | Issues | Compatible | Compiled | Requires |
+|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 1.11.0-alpha06|2026/02/25| 4| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha05|2026/02/11| 4| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha04|2026/01/29| 4| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha03|2026/01/14| 4| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha02|2025/12/17| 4| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha01|2025/12/03| 4| Yes| 8.7+| 8.7+|
+| 1.10.4|2026/02/25| 4| Yes| 8.7+| 8.7+|
+| 1.10.3|2026/02/11| 4| Yes| 8.7+| 8.7+|
+| 1.10.2|2026/01/29| 4| Yes| 8.7+| 8.7+|
+| 1.10.1|2026/01/14| 4| Yes| 8.7+| 8.7+|
+| 1.10.0|2025/12/03| 4| Yes| 8.7+| 8.7+|
+
+
\ 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 0bc2c735..7945a57d 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.9.0-alpha01
+: androidx.compose.runtime:runtime-saveable-android:1.11.0-alpha06
(##) Included Issues
@@ -33,17 +33,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha01")
+implementation("androidx.compose.runtime:runtime-saveable-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.runtime:runtime-saveable-android:1.9.0-alpha01'
+implementation 'androidx.compose.runtime:runtime-saveable-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.runtime.saveable.android)
# libs.versions.toml
[versions]
-runtime-saveable-android = "1.9.0-alpha01"
+runtime-saveable-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.runtime:runtime-saveable-lint:1.11.0-alpha06`.
(##) Changes
@@ -72,7 +72,26 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 1.9.0-alpha01|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha06|2026/02/25| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha05|2026/02/11| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha04|2026/01/29| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha03|2026/01/14| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha02|2025/12/17| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha01|2025/12/03| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.4|2026/02/25| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.3|2026/02/11| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.2|2026/01/29| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.1|2026/01/14| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.0|2025/12/03| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.5|2025/11/19| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.4|2025/10/22| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.3|2025/10/08| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.2|2025/09/24| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.1|2025/09/10| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.0|2025/08/13| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.8.3|2025/06/18| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.8.2|2025/05/20| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.8.1|2025/05/07| 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|
diff --git a/docs/checks/androidx_compose_ui_ui-android.md.html b/docs/checks/androidx_compose_ui_ui-android.md.html
index f0ffd86a..59112dda 100644
--- a/docs/checks/androidx_compose_ui_ui-android.md.html
+++ b/docs/checks/androidx_compose_ui_ui-android.md.html
@@ -18,7 +18,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.compose.ui:ui-android:1.9.0-alpha01
+: androidx.compose.ui:ui-android:1.11.0-alpha06
(##) Included Issues
@@ -26,8 +26,10 @@
|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
|[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 |
+|[LocalContextGetResourceValueCall](LocalContextGetResourceValueCall.md.html) |Querying resource properties using LocalContext.current |
|[LocalContextResourcesRead](LocalContextResourcesRead.md.html) |Reading Resources using LocalContext.current.resources |
|[ConfigurationScreenWidthHeight](ConfigurationScreenWidthHeight.md.html) |Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize |
+|[NonObservableLocale](NonObservableLocale.md.html) |Reading locale in a non-observable way in a composable function |
|[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 |
@@ -46,17 +48,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.android)
# libs.versions.toml
[versions]
-ui-android = "1.9.0-alpha01"
+ui-android = "1.11.0-alpha06"
[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
@@ -68,11 +70,11 @@
}
```
-1.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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`.
+You can also use `androidx.compose.ui:ui-lint:1.11.0-alpha06`.
(##) Changes
@@ -88,7 +90,9 @@
* 1.7.0: Adds SuspiciousModifierThen.
* 1.8.0: Adds ConfigurationScreenWidthHeight,
LocalContextConfigurationRead.
-* 1.9.0-alpha01: Adds LocalContextResourcesRead.
+* 1.9.0: Adds LocalContextResourcesRead.
+* 1.10.0: Adds LocalContextGetResourceValueCall.
+* 1.11.0-alpha03: Adds NonObservableLocale.
(##) Version Compatibility
@@ -96,7 +100,26 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 1.9.0-alpha01|2025/04/23| 13| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha06|2026/02/25| 15| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha05|2026/02/11| 15| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha04|2026/01/29| 15| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha03|2026/01/14| 15| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha02|2025/12/17| 14| Yes| 8.7+| 8.7+|
+| 1.11.0-alpha01|2025/12/03| 14| Yes| 8.7+| 8.7+|
+| 1.10.4|2026/02/25| 14| Yes| 8.7+| 8.7+|
+| 1.10.3|2026/02/11| 14| Yes| 8.7+| 8.7+|
+| 1.10.2|2026/01/29| 14| Yes| 8.7+| 8.7+|
+| 1.10.1|2026/01/14| 14| Yes| 8.7+| 8.7+|
+| 1.10.0|2025/12/03| 14| Yes| 8.7+| 8.7+|
+| 1.9.5|2025/11/19| 13| Yes| 8.7+| 8.7+|
+| 1.9.4|2025/10/22| 13| Yes| 8.7+| 8.7+|
+| 1.9.3|2025/10/08| 13| Yes| 8.7+| 8.7+|
+| 1.9.2|2025/09/24| 13| Yes| 8.7+| 8.7+|
+| 1.9.1|2025/09/10| 13| Yes| 8.7+| 8.7+|
+| 1.9.0|2025/08/13| 13| Yes| 8.7+| 8.7+|
+| 1.8.3|2025/06/18| 12| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.8.2|2025/05/20| 12| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.8.1|2025/05/07| 12| No[^1]| 8.0 and 8.1|8.0 and 8.1|
| 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|
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 3f63f311..1d371f4d 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.9.0-alpha01
+: androidx.compose.ui:ui-graphics-android:1.11.0-alpha06
(##) Included Issues
@@ -34,17 +34,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-graphics-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-graphics-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-graphics-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-graphics-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.graphics.android)
# libs.versions.toml
[versions]
-ui-graphics-android = "1.9.0-alpha01"
+ui-graphics-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.ui:ui-graphics-lint:1.11.0-alpha06`.
(##) Changes
@@ -74,7 +74,25 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 1.9.0-alpha01|2025/04/23| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha06|2026/02/25| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha05|2026/02/11| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha04|2026/01/29| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha03|2026/01/14| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha02|2025/12/17| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha01|2025/12/03| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.4|2026/02/25| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.3|2026/02/11| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.2|2026/01/29| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.1|2026/01/14| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.10.0|2025/12/03| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.5|2025/11/19| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.4|2025/10/22| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.3|2025/10/08| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.2|2025/09/24| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.1|2025/09/10| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.9.0|2025/08/13| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.8.3|2025/06/18| 2| Yes| 8.7+|8.0 and 8.1|
+| 1.8.2|2025/05/20| 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|
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 0bf21375..6338dc25 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.9.0-alpha01
+: androidx.compose.ui:ui-test-manifest:1.11.0-alpha06
(##) Included Issues
@@ -35,17 +35,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-test-manifest:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-test-manifest:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-test-manifest:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-test-manifest:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.test.manifest)
# libs.versions.toml
[versions]
-ui-test-manifest = "1.9.0-alpha01"
+ui-test-manifest = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.ui:ui-test-manifest-lint:1.11.0-alpha06`.
(##) Changes
@@ -74,7 +74,26 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 1.9.0-alpha01|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha06|2026/02/25| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha05|2026/02/11| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha04|2026/01/29| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha03|2026/01/14| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha02|2025/12/17| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha01|2025/12/03| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.4|2026/02/25| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.3|2026/02/11| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.2|2026/01/29| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.1|2026/01/14| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.0|2025/12/03| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.5|2025/11/19| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.4|2025/10/22| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.3|2025/10/08| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.2|2025/09/24| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.1|2025/09/10| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.0|2025/08/13| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.8.3|2025/06/18| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.8.2|2025/05/20| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.8.1|2025/05/07| 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|
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 e9b7661f..165bb930 100644
--- a/docs/checks/androidx_compose_ui_ui-text-android.md.html
+++ b/docs/checks/androidx_compose_ui_ui-text-android.md.html
@@ -17,7 +17,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.compose.ui:ui-text-android:1.9.0-alpha01
+: androidx.compose.ui:ui-text-android:1.11.0-alpha06
(##) Included Issues
@@ -33,17 +33,17 @@
```
// build.gradle.kts
-implementation("androidx.compose.ui:ui-text-android:1.9.0-alpha01")
+implementation("androidx.compose.ui:ui-text-android:1.11.0-alpha06")
// build.gradle
-implementation 'androidx.compose.ui:ui-text-android:1.9.0-alpha01'
+implementation 'androidx.compose.ui:ui-text-android:1.11.0-alpha06'
// build.gradle.kts with version catalogs:
implementation(libs.ui.text.android)
# libs.versions.toml
[versions]
-ui-text-android = "1.9.0-alpha01"
+ui-text-android = "1.11.0-alpha06"
[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.9.0-alpha01 is the version this documentation was generated from;
+1.11.0-alpha06 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.9.0-alpha01`.
+You can also use `androidx.compose.ui:ui-text-lint:1.11.0-alpha06`.
(##) Changes
@@ -72,7 +72,26 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 1.9.0-alpha01|2025/04/23| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha06|2026/02/25| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha05|2026/02/11| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha04|2026/01/29| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha03|2026/01/14| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha02|2025/12/17| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.11.0-alpha01|2025/12/03| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.4|2026/02/25| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.3|2026/02/11| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.2|2026/01/29| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.1|2026/01/14| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.10.0|2025/12/03| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.5|2025/11/19| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.4|2025/10/22| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.3|2025/10/08| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.2|2025/09/24| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.1|2025/09/10| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.9.0|2025/08/13| 1| Yes| 8.7+|8.0 and 8.1|
+| 1.8.3|2025/06/18| 1| Yes| 8.7+| 8.7+|
+| 1.8.2|2025/05/20| 1| Yes| 8.7+| 8.7+|
+| 1.8.1|2025/05/07| 1| Yes| 8.7+| 8.7+|
| 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|
diff --git a/docs/checks/androidx_fragment_fragment-testing-manifest.md.html b/docs/checks/androidx_fragment_fragment-testing-manifest.md.html
index 204a26cb..4876470f 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.6
+: androidx.fragment:fragment-testing-manifest:1.8.9
(##) Included Issues
@@ -35,17 +35,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment-testing-manifest:1.8.6")
+implementation("androidx.fragment:fragment-testing-manifest:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment-testing-manifest:1.8.6'
+implementation 'androidx.fragment:fragment-testing-manifest:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment.testing.manifest)
# libs.versions.toml
[versions]
-fragment-testing-manifest = "1.8.6"
+fragment-testing-manifest = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -70,6 +70,9 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 1.8.9|2025/08/13| 1| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.8.8|2025/06/04| 1| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.8.7|2025/05/20| 1| Yes| 8.0 and 8.1|8.0 and 8.1|
| 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|
diff --git a/docs/checks/androidx_fragment_fragment-testing.md.html b/docs/checks/androidx_fragment_fragment-testing.md.html
index e7adf1c0..da40f804 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.6
+: androidx.fragment:fragment-testing:1.8.9
(##) Included Issues
@@ -33,17 +33,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment-testing:1.8.6")
+implementation("androidx.fragment:fragment-testing:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment-testing:1.8.6'
+implementation 'androidx.fragment:fragment-testing:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment.testing)
# libs.versions.toml
[versions]
-fragment-testing = "1.8.6"
+fragment-testing = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -68,6 +68,9 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 1.8.9|2025/08/13| 1| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.8.8|2025/06/04| 1| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.8.7|2025/05/20| 1| Yes| 8.0 and 8.1|8.0 and 8.1|
| 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|
diff --git a/docs/checks/androidx_fragment_fragment.md.html b/docs/checks/androidx_fragment_fragment.md.html
index 220c5d45..c0b229c7 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.6
+: androidx.fragment:fragment:1.8.9
(##) Included Issues
@@ -44,17 +44,17 @@
```
// build.gradle.kts
-implementation("androidx.fragment:fragment:1.8.6")
+implementation("androidx.fragment:fragment:1.8.9")
// build.gradle
-implementation 'androidx.fragment:fragment:1.8.6'
+implementation 'androidx.fragment:fragment:1.8.9'
// build.gradle.kts with version catalogs:
implementation(libs.fragment)
# libs.versions.toml
[versions]
-fragment = "1.8.6"
+fragment = "1.8.9"
[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.6 is the version this documentation was generated from;
+1.8.9 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -84,6 +84,9 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 1.8.9|2025/08/13| 9| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.8.8|2025/06/04| 9| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.8.7|2025/05/20| 9| Yes| 8.0 and 8.1|8.0 and 8.1|
| 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|
diff --git a/docs/checks/androidx_lifecycle_lifecycle-livedata-core.md.html b/docs/checks/androidx_lifecycle_lifecycle-livedata-core.md.html
index d6c7ee56..5a7b69b6 100644
--- a/docs/checks/androidx_lifecycle_lifecycle-livedata-core.md.html
+++ b/docs/checks/androidx_lifecycle_lifecycle-livedata-core.md.html
@@ -17,7 +17,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01
+: androidx.lifecycle:lifecycle-livedata-core:2.11.0-alpha01
(##) Included Issues
@@ -33,17 +33,17 @@
```
// build.gradle.kts
-implementation("androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01")
+implementation("androidx.lifecycle:lifecycle-livedata-core:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-livedata-core:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-livedata-core:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.livedata.core)
# libs.versions.toml
[versions]
-lifecycle-livedata-core = "2.9.0-rc01"
+lifecycle-livedata-core = "2.11.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,7 +55,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -68,33 +68,24 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
-| 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|
+| 2.11.0-alpha01|2026/02/25| 1| Yes| 8.7+| 8.7+|
+| 2.10.0|2025/11/19| 1| Yes| 8.7+| 8.7+|
+| 2.9.4|2025/09/17| 1| Yes| 8.7+| 8.7+|
+| 2.9.3|2025/08/27| 1| Yes| 8.7+| 8.7+|
+| 2.9.2|2025/07/16| 1| Yes| 8.7+| 8.7+|
+| 2.9.1|2025/06/04| 1| Yes| 8.7+| 8.7+|
+| 2.9.0|2025/05/07| 1| Yes| 8.7+| 8.7+|
+| 2.8.7|2024/10/30| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1|
+| 2.8.6|2024/09/18| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1|
+| 2.8.5|2024/09/04| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1|
+| 2.8.4|2024/07/24| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1|
+| 2.8.3|2024/07/01| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1|
+| 2.8.2|2024/06/12| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1|
+| 2.8.1|2024/05/29| 1| No[^1]| 8.0 and 8.1|8.0 and 8.1|
+| 2.8.0|2024/05/14| 1| No[^1]| 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
+[^1]: 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 c2a421bd..5fadbff4 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-rc01
+: androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01
(##) Included Issues
@@ -34,17 +34,17 @@
```
// build.gradle.kts
-implementation("androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01")
+implementation("androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-runtime-android:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-runtime-android:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.runtime.android)
# libs.versions.toml
[versions]
-lifecycle-runtime-android = "2.9.0-rc01"
+lifecycle-runtime-android = "2.11.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,7 +56,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -70,21 +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|
-| 2.9.0-alpha05|2024/10/16| 2| Yes| 8.7+|8.0 and 8.1|
-| 2.9.0-alpha04|2024/10/02| 2| Yes| 8.7+|8.0 and 8.1|
-| 2.9.0-alpha03|2024/09/18| 2| Yes| 8.0 and 8.1|8.0 and 8.1|
-| 2.9.0-alpha02|2024/09/04| 2| Yes| 8.0 and 8.1|8.0 and 8.1|
-| 2.9.0-alpha01|2024/08/07| 2| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 2.11.0-alpha01|2026/02/25| 2| Yes| 8.7+|8.0 and 8.1|
+| 2.10.0|2025/11/19| 2| Yes| 8.7+|8.0 and 8.1|
+| 2.9.4|2025/09/17| 2| Yes| 8.7+|8.0 and 8.1|
+| 2.9.3|2025/08/27| 2| Yes| 8.7+|8.0 and 8.1|
+| 2.9.2|2025/07/16| 2| Yes| 8.7+|8.0 and 8.1|
+| 2.9.1|2025/06/04| 2| Yes| 8.7+|8.0 and 8.1|
+| 2.9.0|2025/05/07| 2| Yes| 8.7+|8.0 and 8.1|
| 2.8.7|2024/10/30| 2| Yes| 8.0 and 8.1|8.0 and 8.1|
| 2.8.6|2024/09/18| 2| Yes| 8.0 and 8.1|8.0 and 8.1|
| 2.8.5|2024/09/04| 2| Yes| 8.0 and 8.1|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
index 9c23dec7..d97b1682 100644
--- a/docs/checks/androidx_lifecycle_lifecycle-runtime-compose-android.md.html
+++ b/docs/checks/androidx_lifecycle_lifecycle-runtime-compose-android.md.html
@@ -17,7 +17,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-rc01
+: androidx.lifecycle:lifecycle-runtime-compose-android:2.11.0-alpha01
(##) Included Issues
@@ -33,17 +33,17 @@
```
// build.gradle.kts
-implementation("androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-rc01")
+implementation("androidx.lifecycle:lifecycle-runtime-compose-android:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-runtime-compose-android:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-runtime-compose-android:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.runtime.compose.android)
# libs.versions.toml
[versions]
-lifecycle-runtime-compose-android = "2.9.0-rc01"
+lifecycle-runtime-compose-android = "2.11.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,13 +55,12 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
-* 2.9.0-alpha10: First version includes
- LifecycleCurrentStateInComposition.
+* 2.9.0: First version includes LifecycleCurrentStateInComposition.
(##) Version Compatibility
@@ -69,11 +68,12 @@
| 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.11.0-alpha01|2026/02/25| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.10.0|2025/11/19| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.4|2025/09/17| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.3|2025/08/27| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.2|2025/07/16| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.1|2025/06/04| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.0|2025/05/07| 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 c340d8c4..f8e93bbd 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-rc01
+: androidx.lifecycle:lifecycle-runtime-testing:2.11.0-alpha01
(##) Included Issues
@@ -33,17 +33,17 @@
```
// build.gradle.kts
-implementation("androidx.lifecycle:lifecycle-runtime-testing:2.9.0-rc01")
+implementation("androidx.lifecycle:lifecycle-runtime-testing:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-runtime-testing:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-runtime-testing:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.runtime.testing)
# libs.versions.toml
[versions]
-lifecycle-runtime-testing = "2.9.0-rc01"
+lifecycle-runtime-testing = "2.11.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,7 +55,7 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -68,21 +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|
-| 2.9.0-alpha05|2024/10/16| 1| Yes| 8.7+|8.0 and 8.1|
-| 2.9.0-alpha04|2024/10/02| 1| Yes| 8.7+|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.11.0-alpha01|2026/02/25| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.10.0|2025/11/19| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.4|2025/09/17| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.3|2025/08/27| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.2|2025/07/16| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.1|2025/06/04| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.0|2025/05/07| 1| Yes| 8.7+|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|
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 a6a396e0..a702fbe3 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-rc01
+: androidx.lifecycle:lifecycle-viewmodel-compose-android:2.11.0-alpha01
(##) Included Issues
@@ -33,17 +33,17 @@
```
// build.gradle.kts
-implementation("androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-rc01")
+implementation("androidx.lifecycle:lifecycle-viewmodel-compose-android:2.11.0-alpha01")
// build.gradle
-implementation 'androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.0-rc01'
+implementation 'androidx.lifecycle:lifecycle-viewmodel-compose-android:2.11.0-alpha01'
// build.gradle.kts with version catalogs:
implementation(libs.lifecycle.viewmodel.compose.android)
# libs.versions.toml
[versions]
-lifecycle-viewmodel-compose-android = "2.9.0-rc01"
+lifecycle-viewmodel-compose-android = "2.11.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,13 +55,12 @@
}
```
-2.9.0-rc01 is the version this documentation was generated from;
+2.11.0-alpha01 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
-* 2.9.0-alpha01: First version includes
- ViewModelConstructorInComposable.
+* 2.9.0: First version includes ViewModelConstructorInComposable.
(##) Version Compatibility
@@ -69,20 +68,12 @@
| 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|
-| 2.9.0-alpha05|2024/10/16| 1| Yes| 8.7+|8.0 and 8.1|
-| 2.9.0-alpha04|2024/10/02| 1| Yes| 8.7+|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.11.0-alpha01|2026/02/25| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.10.0|2025/11/19| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.4|2025/09/17| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.3|2025/08/27| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.2|2025/07/16| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.1|2025/06/04| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.9.0|2025/05/07| 1| Yes| 8.7+|8.0 and 8.1|
\ No newline at end of file
diff --git a/docs/checks/androidx_lint_lint-gradle.md.html b/docs/checks/androidx_lint_lint-gradle.md.html
index b2a547b5..594b4f99 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-alpha04
+: androidx.lint:lint-gradle:1.0.0-alpha05
(##) Included Issues
@@ -23,6 +23,7 @@
|[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 |
+|[InternalKgpApiUsage](InternalKgpApiUsage.md.html) |Avoid using internal Kotlin Gradle Plugin APIs |
|[WithPluginClasspathUsage](WithPluginClasspathUsage.md.html) |Flags usage of GradleRunner#withPluginClasspath |
|[WithTypeWithoutConfigureEach](WithTypeWithoutConfigureEach.md.html)|Flags usage of withType with a closure instead of configureEach|
@@ -34,17 +35,17 @@
```
// build.gradle.kts
-implementation("androidx.lint:lint-gradle:1.0.0-alpha04")
+implementation("androidx.lint:lint-gradle:1.0.0-alpha05")
// build.gradle
-implementation 'androidx.lint:lint-gradle:1.0.0-alpha04'
+implementation 'androidx.lint:lint-gradle:1.0.0-alpha05'
// build.gradle.kts with version catalogs:
implementation(libs.lint.gradle)
# libs.versions.toml
[versions]
-lint-gradle = "1.0.0-alpha04"
+lint-gradle = "1.0.0-alpha05"
[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 +57,7 @@
}
```
-1.0.0-alpha04 is the version this documentation was generated from;
+1.0.0-alpha05 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -66,6 +67,7 @@
WithPluginClasspathUsage, WithTypeWithoutConfigureEach.
* 1.0.0-alpha03: Adds FilePropertyDetector.
* 1.0.0-alpha04: Adds GradleLikelyBug.
+* 1.0.0-alpha05: Adds InternalKgpApiUsage.
(##) Version Compatibility
@@ -73,6 +75,7 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 1.0.0-alpha05| | 9| Yes| 8.7+| 8.7+|
| 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 61eeb09a..36685b48 100644
--- a/docs/checks/androidx_navigation_navigation-common.md.html
+++ b/docs/checks/androidx_navigation_navigation-common.md.html
@@ -17,7 +17,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.navigation:navigation-common:2.9.0-rc01
+: androidx.navigation:navigation-common:2.9.7
(##) Included Issues
@@ -36,17 +36,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-common:2.9.0-rc01")
+implementation("androidx.navigation:navigation-common:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-common:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-common:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.common)
# libs.versions.toml
[versions]
-navigation-common = "2.9.0-rc01"
+navigation-common = "2.9.7"
[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-rc01 is the version this documentation was generated from;
+2.9.7 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -73,17 +73,14 @@
| 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|
-| 2.9.0-alpha01|2024/10/16| 4| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 2.9.7|2026/01/29| 4| Yes| 8.7+|8.0 and 8.1|
+| 2.9.6|2025/11/05| 4| Yes| 8.7+|8.0 and 8.1|
+| 2.9.5|2025/09/24| 4| Yes| 8.7+|8.0 and 8.1|
+| 2.9.4|2025/09/10| 4| Yes| 8.7+|8.0 and 8.1|
+| 2.9.3|2025/07/30| 4| Yes| 8.7+|8.0 and 8.1|
+| 2.9.2|2025/07/16| 4| Yes| 8.7+|8.0 and 8.1|
+| 2.9.1|2025/07/02| 4| Yes| 8.7+|8.0 and 8.1|
+| 2.9.0|2025/05/07| 4| Yes| 8.7+|8.0 and 8.1|
| 2.8.5|2024/12/11| 4| Yes| 8.0 and 8.1|8.0 and 8.1|
| 2.8.4|2024/11/13| 4| Yes| 8.0 and 8.1|8.0 and 8.1|
| 2.8.3|2024/10/16| 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 8160479b..14d206cb 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-rc01
+: androidx.navigation:navigation-compose:2.9.7
(##) Included Issues
@@ -36,17 +36,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-compose:2.9.0-rc01")
+implementation("androidx.navigation:navigation-compose:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-compose:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-compose:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.compose)
# libs.versions.toml
[versions]
-navigation-compose = "2.9.0-rc01"
+navigation-compose = "2.9.7"
[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-rc01 is the version this documentation was generated from;
+2.9.7 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -74,15 +74,14 @@
| 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|
-| 2.9.0-alpha01|2024/10/16| 6| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 2.9.7|2026/01/29| 6| Yes| 8.7+|8.0 and 8.1|
+| 2.9.6|2025/11/05| 6| Yes| 8.7+|8.0 and 8.1|
+| 2.9.5|2025/09/24| 6| Yes| 8.7+|8.0 and 8.1|
+| 2.9.4|2025/09/10| 6| Yes| 8.7+|8.0 and 8.1|
+| 2.9.3|2025/07/30| 6| Yes| 8.7+|8.0 and 8.1|
+| 2.9.2|2025/07/16| 6| Yes| 8.7+|8.0 and 8.1|
+| 2.9.1|2025/07/02| 6| Yes| 8.7+|8.0 and 8.1|
+| 2.9.0|2025/05/07| 6| Yes| 8.7+|8.0 and 8.1|
| 2.8.5|2024/12/11| 6| Yes| 8.0 and 8.1|8.0 and 8.1|
| 2.8.4|2024/11/13| 6| Yes| 8.0 and 8.1|8.0 and 8.1|
| 2.8.3|2024/10/16| 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 8c1a3df5..9f7f9950 100644
--- a/docs/checks/androidx_navigation_navigation-runtime.md.html
+++ b/docs/checks/androidx_navigation_navigation-runtime.md.html
@@ -17,7 +17,7 @@
Compiled
: Lint 8.7+
Artifact
-: androidx.navigation:navigation-runtime:2.9.0-rc01
+: androidx.navigation:navigation-runtime:2.9.7
(##) Included Issues
@@ -37,17 +37,17 @@
```
// build.gradle.kts
-implementation("androidx.navigation:navigation-runtime:2.9.0-rc01")
+implementation("androidx.navigation:navigation-runtime:2.9.7")
// build.gradle
-implementation 'androidx.navigation:navigation-runtime:2.9.0-rc01'
+implementation 'androidx.navigation:navigation-runtime:2.9.7'
// build.gradle.kts with version catalogs:
implementation(libs.navigation.runtime)
# libs.versions.toml
[versions]
-navigation-runtime = "2.9.0-rc01"
+navigation-runtime = "2.9.7"
[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-rc01 is the version this documentation was generated from;
+2.9.7 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -74,17 +74,14 @@
| 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|
-| 2.9.0-alpha01|2024/10/16| 5| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 2.9.7|2026/01/29| 5| Yes| 8.7+|8.0 and 8.1|
+| 2.9.6|2025/11/05| 5| Yes| 8.7+|8.0 and 8.1|
+| 2.9.5|2025/09/24| 5| Yes| 8.7+|8.0 and 8.1|
+| 2.9.4|2025/09/10| 5| Yes| 8.7+|8.0 and 8.1|
+| 2.9.3|2025/07/30| 5| Yes| 8.7+|8.0 and 8.1|
+| 2.9.2|2025/07/16| 5| Yes| 8.7+|8.0 and 8.1|
+| 2.9.1|2025/07/02| 5| Yes| 8.7+|8.0 and 8.1|
+| 2.9.0|2025/05/07| 5| Yes| 8.7+|8.0 and 8.1|
| 2.8.5|2024/12/11| 5| Yes| 8.0 and 8.1|8.0 and 8.1|
| 2.8.4|2024/11/13| 5| Yes| 8.0 and 8.1|8.0 and 8.1|
| 2.8.3|2024/10/16| 5| Yes| 8.0 and 8.1|8.0 and 8.1|
diff --git a/docs/checks/androidx_test_uiautomator_uiautomator.md.html b/docs/checks/androidx_test_uiautomator_uiautomator.md.html
new file mode 100644
index 00000000..1c23e853
--- /dev/null
+++ b/docs/checks/androidx_test_uiautomator_uiautomator.md.html
@@ -0,0 +1,80 @@
+(#) androidx.test.uiautomator:uiautomator
+
+Name
+: UIAutomator
+Description
+: UI testing framework suitable for cross-app functional UI testing
+License
+: [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+Vendor
+: Android Open Source Project
+Identifier
+: androidx.test.uiautomator
+Feedback
+: https://issuetracker.google.com/issues/new?component=1237242
+Min
+: Lint 8.0 and 8.1
+Compiled
+: Lint 8.7+
+Artifact
+: androidx.test.uiautomator:uiautomator:2.4.0-beta01
+
+(##) Included Issues
+
+|Issue Id |Issue Description |
+|----------------------------------------------------------------------------------|------------------------------------------------------------------|
+|[DontUseAccessibilityNodeInfoGetText](DontUseAccessibilityNodeInfoGetText.md.html)|Do not use AccessibilityNodeInfo#getText in a UiAutomatorTestScope|
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("androidx.test.uiautomator:uiautomator:2.4.0-beta01")
+
+// build.gradle
+implementation 'androidx.test.uiautomator:uiautomator:2.4.0-beta01'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.uiautomator)
+
+# libs.versions.toml
+[versions]
+uiautomator = "2.4.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
+# line (see https://github.com/toml-lang/toml/issues/516) so adjust
+# when pasting into libs.versions.toml:
+uiautomator = {
+ module = "androidx.test.uiautomator:uiautomator",
+ version.ref = "uiautomator"
+}
+```
+
+2.4.0-beta01 is the version this documentation was generated from;
+there may be newer versions available.
+
+(##) Changes
+
+* 2.4.0-alpha02: First version includes
+ DontUseAccessibilityNodeInfoGetText.
+
+(##) Version Compatibility
+
+There are multiple older versions available of this library:
+
+| Version | Date | Issues | Compatible | Compiled | Requires |
+|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 2.4.0-beta01|2026/02/11| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.4.0-alpha07|2025/12/03| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.4.0-alpha06|2025/08/13| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.4.0-alpha05|2025/06/18| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.4.0-alpha04|2025/06/04| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.4.0-alpha03|2025/05/20| 1| Yes| 8.7+|8.0 and 8.1|
+| 2.4.0-alpha02|2025/05/07| 1| Yes| 8.7+|8.0 and 8.1|
+
+
\ No newline at end of file
diff --git a/docs/checks/androidx_wear_protolayout_protolayout-expression.md.html b/docs/checks/androidx_wear_protolayout_protolayout-expression.md.html
new file mode 100644
index 00000000..4ff55219
--- /dev/null
+++ b/docs/checks/androidx_wear_protolayout_protolayout-expression.md.html
@@ -0,0 +1,87 @@
+(#) androidx.wear.protolayout:protolayout-expression
+
+Name
+: ProtoLayout Expression
+Description
+: Create dynamic expressions (for late evaluation by a remote evaluator).
+License
+: [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+Vendor
+: Android Open Source Project
+Identifier
+: androidx.wear.protolayout
+Feedback
+: https://issuetracker.google.com/issues/new?component=1112273
+Min
+: Lint 8.7+
+Compiled
+: Lint 8.7+
+Artifact
+: androidx.wear.protolayout:protolayout-expression:1.4.0-rc01
+
+(##) Included Issues
+
+|Issue Id |Issue Description |
+|----------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
+|[ProtoLayoutMinSchema](ProtoLayoutMinSchema.md.html) |ProtoLayout feature is not guaranteed to be available on the target device API |
+|[ProtoLayoutPrimaryLayoutResponsive](ProtoLayoutPrimaryLayoutResponsive.md.html) |ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales |
+|[ProtoLayoutEdgeContentLayoutResponsive](ProtoLayoutEdgeContentLayoutResponsive.md.html)|ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales|
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("androidx.wear.protolayout:protolayout-expression:1.4.0-rc01")
+
+// build.gradle
+implementation 'androidx.wear.protolayout:protolayout-expression:1.4.0-rc01'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.protolayout.expression)
+
+# libs.versions.toml
+[versions]
+protolayout-expression = "1.4.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:
+protolayout-expression = {
+ module = "androidx.wear.protolayout:protolayout-expression",
+ version.ref = "protolayout-expression"
+}
+```
+
+1.4.0-rc01 is the version this documentation was generated from;
+there may be newer versions available.
+
+(##) Changes
+
+* 1.1.0: First version includes ProtoLayoutMinSchema.
+* 1.2.0: Adds ProtoLayoutEdgeContentLayoutResponsive,
+ ProtoLayoutPrimaryLayoutResponsive.
+
+(##) Version Compatibility
+
+There are multiple older versions available of this library:
+
+| Version | Date | Issues | Compatible | Compiled | Requires |
+|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 1.4.0-rc01|2026/02/25| 3| Yes| 8.7+| 8.7+|
+| 1.4.0-beta01|2026/02/11| 3| Yes| 8.7+| 8.7+|
+| 1.4.0-alpha05|2026/01/29| 3| Yes| 8.7+| 8.7+|
+| 1.4.0-alpha04|2026/01/14| 3| Yes| 8.7+| 8.7+|
+| 1.4.0-alpha03|2025/12/17| 3| Yes| 8.7+| 8.7+|
+| 1.4.0-alpha02|2025/10/22| 3| Yes| 8.7+| 8.7+|
+| 1.4.0-alpha01|2025/09/24| 3| Yes| 8.7+| 8.7+|
+| 1.3.0|2025/06/04| 3| Yes| 8.7+| 8.7+|
+| 1.2.1|2024/10/16| 3| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.2.0|2024/08/07| 3| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.1.0|2024/02/07| 1| Yes| 8.0 and 8.1|8.0 and 8.1|
+
+
\ No newline at end of file
diff --git a/docs/checks/androidx_wear_protolayout_protolayout.md.html b/docs/checks/androidx_wear_protolayout_protolayout.md.html
index cd1d6eb1..2cd4875d 100644
--- a/docs/checks/androidx_wear_protolayout_protolayout.md.html
+++ b/docs/checks/androidx_wear_protolayout_protolayout.md.html
@@ -21,11 +21,11 @@
(##) Included Issues
-|Issue Id |Issue Description |
-|----------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
-|[ProtoLayoutMinSchema](ProtoLayoutMinSchema.md.html) |ProtoLayout feature is not guaranteed to be available on the target device API |
-|[ProtoLayoutPrimaryLayoutResponsive](ProtoLayoutPrimaryLayoutResponsive.md.html) |ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales |
-|[ProtoLayoutEdgeContentLayoutResponsive](ProtoLayoutEdgeContentLayoutResponsive.md.html)|ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales|
+|Issue Id |Issue Description |
+|------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
+|[ProtoLayoutMinSchema](ProtoLayoutMinSchema-2.md.html) |ProtoLayout feature is not guaranteed to be available on the target device API |
+|[ProtoLayoutPrimaryLayoutResponsive](ProtoLayoutPrimaryLayoutResponsive-2.md.html) |ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales |
+|[ProtoLayoutEdgeContentLayoutResponsive](ProtoLayoutEdgeContentLayoutResponsive-2.md.html)|ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales|
(##) Including
@@ -62,7 +62,6 @@
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-beta01`
* `androidx.wear.protolayout:protolayout-material3:1.3.0-beta01`
* `androidx.wear.protolayout:protolayout-material:1.3.0-beta01`
diff --git a/docs/checks/androidx_work_work-runtime.md.html b/docs/checks/androidx_work_work-runtime.md.html
index a5aa0bfe..7193a54f 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.1
+: androidx.work:work-runtime:2.11.1
(##) Included Issues
@@ -41,17 +41,17 @@
```
// build.gradle.kts
-implementation("androidx.work:work-runtime:2.10.1")
+implementation("androidx.work:work-runtime:2.11.1")
// build.gradle
-implementation 'androidx.work:work-runtime:2.10.1'
+implementation 'androidx.work:work-runtime:2.11.1'
// build.gradle.kts with version catalogs:
implementation(libs.work.runtime)
# libs.versions.toml
[versions]
-work-runtime = "2.10.1"
+work-runtime = "2.11.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.1 is the version this documentation was generated from;
+2.11.1 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
@@ -82,6 +82,12 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 2.11.1|2026/01/29| 9| Yes| 8.7+|8.0 and 8.1|
+| 2.11.0|2025/10/22| 9| Yes| 8.7+|8.0 and 8.1|
+| 2.10.5|2025/09/24| 9| Yes| 8.7+|8.0 and 8.1|
+| 2.10.4|2025/09/10| 9| Yes| 8.7+|8.0 and 8.1|
+| 2.10.3|2025/07/30| 9| Yes| 8.7+|8.0 and 8.1|
+| 2.10.2|2025/06/18| 9| Yes| 8.7+|8.0 and 8.1|
| 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|
diff --git a/docs/checks/categories.md.html b/docs/checks/categories.md.html
index 4ebcb6e6..255f59c5 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 (549)
+* Correctness (572)
- [AaptCrash: Potential AAPT crash](AaptCrash.md.html)
- [AccidentalOctal: Accidental Octal](AccidentalOctal.md.html)
@@ -89,6 +89,7 @@
- [DeviceAdmin: Malformed Device Admin](DeviceAdmin.md.html)
- [DialogFragmentCallbacksDetector: Use onCancel() and onDismiss() instead of calling setOnCancelListener() and setOnDismissListener() from onCreateDialog()](DialogFragmentCallbacksDetector.md.html)
- [DiffUtilEquals: Suspicious DiffUtil Equality](DiffUtilEquals.md.html)
+ - [DisallowLookaheadAnimationVisualDebug: LookaheadAnimationVisualDebugging and CustomizedLookaheadAnimationVisualDebugging are disallowed in production code](DisallowLookaheadAnimationVisualDebug.md.html)
- [DiscouragedApi: Using discouraged APIs](DiscouragedApi.md.html)
- [DiscouragedPrivateApi: Using Discouraged Private API](DiscouragedPrivateApi.md.html)
- [DoNotCallProviders: Dagger provider methods should not be called directly by user code](DoNotCallProviders.md.html)
@@ -101,6 +102,7 @@
- [DoNotMockPlatformTypes: platform types should not be mocked](DoNotMockPlatformTypes.md.html)
- [DoNotMockRecordClass: record classes represent pure data classes, so mocking them should not be necessary](DoNotMockRecordClass.md.html)
- [DoNotMockSealedClass: sealed classes have a restricted type hierarchy, use a subtype instead](DoNotMockSealedClass.md.html)
+ - [DontUseAccessibilityNodeInfoGetText: Do not use AccessibilityNodeInfo#getText in a UiAutomatorTestScope](DontUseAccessibilityNodeInfoGetText.md.html)
- [DuplicateActivity: Activity registered more than once](DuplicateActivity.md.html)
- [DuplicateDefinition: Duplicate definitions of resources](DuplicateDefinition.md.html)
- [DuplicateIds: Duplicate ids within a single layout](DuplicateIds.md.html)
@@ -143,6 +145,7 @@
- [FullyQualifiedResource: Resources should use an import alias instead of being fully qualified](FullyQualifiedResource.md.html)
- [GestureBackNavigation: Usage of KeyEvent.KEYCODE_BACK](GestureBackNavigation.md.html)
- [GetLocales: Locale crash](GetLocales.md.html)
+ - [GlobalOptionInConsumerRules: Library has global options in consumer rules](GlobalOptionInConsumerRules.md.html)
- [GradleCompatible: Incompatible Gradle Versions](GradleCompatible.md.html)
- [GradleDependency: Obsolete Gradle Dependency](GradleDependency.md.html)
- [GradleDeprecated: Deprecated Gradle Construct](GradleDeprecated.md.html)
@@ -180,12 +183,15 @@
- [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)
+ - [InstantAppCall: Instant App call](InstantAppCall.md.html)
+ - [InstantAppDeprecation: Instant App Deprecation](InstantAppDeprecation.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)
- [InternalAgpApiUsage: Avoid using internal Android Gradle Plugin APIs](InternalAgpApiUsage.md.html)
- [InternalGradleApiUsage: Avoid using internal Gradle APIs](InternalGradleApiUsage.md.html)
- [InternalInsetResource: Using internal inset dimension resource](InternalInsetResource.md.html)
+ - [InternalKgpApiUsage: Avoid using internal Kotlin Gradle Plugin APIs](InternalKgpApiUsage.md.html)
- [InvalidAccessibility: Marks invalid accessibility usages](InvalidAccessibility.md.html)
- [InvalidAnalyticsName: Invalid Analytics Name](InvalidAnalyticsName.md.html)
- [InvalidColorHexValue: Invalid Color hex value](InvalidColorHexValue.md.html)
@@ -194,9 +200,11 @@
- [InvalidImeActionId: Invalid imeActionId declaration](InvalidImeActionId.md.html)
- [InvalidImport: Flags invalid imports](InvalidImport.md.html)
- [InvalidLanguageTagDelimiter: Underscore (`_`) is an unsupported delimiter for subtags](InvalidLanguageTagDelimiter.md.html)
+ - [InvalidManifestAttribute: Invalid manifest attribute](InvalidManifestAttribute.md.html)
- [InvalidNavigation: No start destination specified](InvalidNavigation.md.html)
- [InvalidPackage: Package not included in Android](InvalidPackage.md.html)
- [InvalidPeriodicWorkRequestInterval: Invalid interval duration](InvalidPeriodicWorkRequestInterval.md.html)
+ - [InvalidPurposeString: Invalid purpose string for permission](InvalidPurposeString.md.html)
- [InvalidResourceFolder: Invalid Resource Folder](InvalidResourceFolder.md.html)
- [InvalidSetHasFixedSize: When using `setHasFixedSize()` in an `RecyclerView`, `wrap_content` cannot be used as a value for `size` in the scrolling direction.](InvalidSetHasFixedSize.md.html)
- [InvalidSingleLineComment: Marks single line comments that are not sentences](InvalidSingleLineComment.md.html)
@@ -219,6 +227,7 @@
- [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)
+ - [LocalContextGetResourceValueCall: Querying resource properties using LocalContext.current](LocalContextGetResourceValueCall.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)
@@ -253,6 +262,7 @@
- [MissingOnPlayFromSearch: Missing `onPlayFromSearch`](MissingOnPlayFromSearch.md.html)
- [MissingPermission: Missing Permissions](MissingPermission.md.html)
- [MissingPrefix: Missing Android XML namespace](MissingPrefix.md.html)
+ - [MissingPurpose: Missing purpose for permission](MissingPurpose.md.html)
- [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)
@@ -333,6 +343,7 @@
- [NoCollectCallFound: You must call collect on the given progress flow when using PredictiveBackHandler](NoCollectCallFound.md.html)
- [NoOp: NoOp Code](NoOp.md.html)
- [NonConstantResourceId: Checks use of resource IDs in places requiring constants](NonConstantResourceId.md.html)
+ - [NonObservableLocale: Reading locale in a non-observable way in a composable function](NonObservableLocale.md.html)
- [NonResizeableActivity: Activity is set to be non-resizeable](NonResizeableActivity.md.html)
- [NotConstructor: Not a Constructor](NotConstructor.md.html)
- [NotInterpolated: Incorrect Interpolation](NotInterpolated.md.html)
@@ -364,12 +375,16 @@
- [PropertyEscape: Incorrect property escapes](PropertyEscape.md.html)
- [ProtectedPermissions: Using system app permission](ProtectedPermissions.md.html)
- [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive.md.html)
+ - [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive-2.md.html)
- [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema.md.html)
+ - [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema-2.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)
+ - [ProtoLayoutPrimaryLayoutResponsive: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales](ProtoLayoutPrimaryLayoutResponsive-2.md.html)
- [ProvidesMustNotBeAbstract: @Provides functions cannot be abstract](ProvidesMustNotBeAbstract.md.html)
- [PublicKeyCredential: Creating public key credential](PublicKeyCredential.md.html)
- [PxUsage: Using 'px' dimension](PxUsage.md.html)
- [QueryPermissionsNeeded: Using APIs affected by query permissions](QueryPermissionsNeeded.md.html)
+ - [R8GradualApi: R8 Gradual API can be used only with experimental flag](R8GradualApi.md.html)
- [Range: Outside Range](Range.md.html)
- [RawColor: Flags color that are not defined as resource](RawColor.md.html)
- [RawDimen: Flags dimensions that are not defined as resource](RawDimen.md.html)
@@ -379,6 +394,7 @@
- [RedundantBinds: @Binds functions should return a different type](RedundantBinds.md.html)
- [RedundantLabel: Redundant label on activity](RedundantLabel.md.html)
- [ReferenceType: Incorrect reference types](ReferenceType.md.html)
+ - [ReflectionAnnotation: Missing Reflection Annotation](ReflectionAnnotation.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)
@@ -397,6 +413,10 @@
- [ResourceType: Wrong Resource Type](ResourceType.md.html)
- [RestrictCallsTo: Methods annotated with @RestrictedCallsTo should only be called from the specified scope](RestrictCallsTo.md.html)
- [RestrictedApi: Restricted API](RestrictedApi.md.html)
+ - [RetainLeaksContext: Using `retain { ... }` to store a value that extends from or references `Context` will cause a memory leak.](RetainLeaksContext.md.html)
+ - [RetainRememberObserver: Values returned by `retain { ... }` must not implement RememberObserver unless they also implement RetainObserver.](RetainRememberObserver.md.html)
+ - [RetainUnitType: `retain` calls must not return `Unit`](RetainUnitType.md.html)
+ - [RetainingDoNotRetainType: Types annotated with `@DoNotRetain` should not be returned as the result of `retain`, either directly or transitively](RetainingDoNotRetainType.md.html)
- [RetrofitUsage: This is replaced by the caller](RetrofitUsage.md.html)
- [ReturnFromAwaitPointerEventScope: Returning from awaitPointerEventScope may cause some input events to be dropped](ReturnFromAwaitPointerEventScope.md.html)
- [ReturnThis: Method must return `this`](ReturnThis.md.html)
@@ -452,7 +472,9 @@
- [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)
+ - [TextConcatSpace: Missing space in text concatenation?](TextConcatSpace.md.html)
- [TextViewEdits: TextView should probably be an EditText instead](TextViewEdits.md.html)
+ - [ThreadConstraint: Wrong Thread (with inference)](ThreadConstraint.md.html)
- [TimberExceptionLogging: Exception Logging](TimberExceptionLogging.md.html)
- [TimberTagLength: Too Long Log Tags](TimberTagLength.md.html)
- [Todo: Marks todos in any given file](Todo.md.html)
@@ -514,6 +536,7 @@
- [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)
+ - [WatchFaceFormatInvalidVersion: The Watch Face Format version is invalid](WatchFaceFormatInvalidVersion.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)
@@ -587,7 +610,7 @@
- [PermissionImpliesUnsupportedChromeOsHardware: Permission Implies Unsupported Chrome OS Hardware](PermissionImpliesUnsupportedChromeOsHardware.md.html)
- [UnsupportedChromeOsHardware: Unsupported Chrome OS Hardware Feature](UnsupportedChromeOsHardware.md.html)
-* Security (81)
+* Security (87)
- [AcceptsUserCertificates: Allowing User Certificates](AcceptsUserCertificates.md.html)
- [AddJavascriptInterface: `addJavascriptInterface` Called](AddJavascriptInterface.md.html)
@@ -605,18 +628,22 @@
- [DeprecatedProvider: Using BC Provider](DeprecatedProvider.md.html)
- [DisabledAllSafeBrowsing: Application has disabled safe browsing for all WebView objects](DisabledAllSafeBrowsing.md.html)
- [DoNotCallViewToString: Do not use `View.toString()`](DoNotCallViewToString.md.html)
+ - [DotPathAttribute: The "path" attribute should not be set to "." as a path](DotPathAttribute.md.html)
- [EasterEgg: Code contains easter egg](EasterEgg.md.html)
- [ExportedContentProvider: Content provider does not require permission](ExportedContentProvider.md.html)
- [ExportedPreferenceActivity: PreferenceActivity should not be exported](ExportedPreferenceActivity.md.html)
- [ExportedReceiver: Receiver does not require permission](ExportedReceiver.md.html)
- [ExportedService: Exported service does not require permission](ExportedService.md.html)
- [ExposedRootPath: Application specifies the device root directory](ExposedRootPath.md.html)
+ - [ExtendedBluetoothDiscoveryDuration: The EXTRA_DISCOVERABLE_DURATION parameter is unsafely high](ExtendedBluetoothDiscoveryDuration.md.html)
- [GetInstance: Cipher.getInstance with ECB](GetInstance.md.html)
- [GrantAllUris: Content provider shares everything](GrantAllUris.md.html)
+ - [HardcodedAbsolutePath: The "path" attribute should not be an absolute path](HardcodedAbsolutePath.md.html)
- [HardcodedDebugMode: Hardcoded value of `android:debuggable` in the manifest](HardcodedDebugMode.md.html)
- [HardwareIds: Hardware Id Usage](HardwareIds.md.html)
- [InsecureBaseConfiguration: Insecure Base Configuration](InsecureBaseConfiguration.md.html)
- [InsecureDnsSdkLevel: Application vulnerable to DNS spoofing attacks](InsecureDnsSdkLevel.md.html)
+ - [InsecureLegacyExternalStorage: The `requestLegacyExternalStorage` attribute is set to true, opting the app out of scoped storage](InsecureLegacyExternalStorage.md.html)
- [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)
@@ -625,7 +652,8 @@
- [InvalidPermission: Invalid Permission Attribute](InvalidPermission.md.html)
- [JavascriptInterface: Missing @JavascriptInterface on methods](JavascriptInterface.md.html)
- [KnownPermissionError: Value specified for permission is a known error](KnownPermissionError.md.html)
- - [MissingAutoVerifyAttribute: Application has custom scheme intent filters with missing `autoVerify` attributes](MissingAutoVerifyAttribute.md.html)
+ - [LogInfoDisclosure: Potentially sensitive information logged to Logcat](LogInfoDisclosure.md.html)
+ - [MissingAutoVerifyAttribute: Application has http/https scheme intent filters with missing `autoVerify` attributes](MissingAutoVerifyAttribute.md.html)
- [MutableImplicitPendingIntent: Mutable Implicit PendingIntent is disallowed](MutableImplicitPendingIntent.md.html)
- [PackagedPrivateKey: Packaged private key](PackagedPrivateKey.md.html)
- [PermissionNamingConvention: Permission name does not follow recommended convention](PermissionNamingConvention.md.html)
@@ -643,6 +671,7 @@
- [SetWorldReadable: `File.setReadable()` used to make file world-readable](SetWorldReadable.md.html)
- [SetWorldWritable: `File.setWritable()` used to make file world-writable](SetWorldWritable.md.html)
- [SignatureOrSystemPermissions: Declaring signatureOrSystem permissions](SignatureOrSystemPermissions.md.html)
+ - [SlashPathAttribute: The "path" attribute should not be set to "/" as a path](SlashPathAttribute.md.html)
- [StrandhoggVulnerable: Application vulnerable to Strandhogg attacks](StrandhoggVulnerable.md.html)
- [SystemPermissionTypo: Permission appears to be a standard permission with a typo](SystemPermissionTypo.md.html)
- [TapjackingVulnerable: Application's UI is vulnerable to tapjacking attacks](TapjackingVulnerable.md.html)
@@ -658,7 +687,6 @@
- [UnsafeIntentLaunch: Launched Unsafe Intent](UnsafeIntentLaunch.md.html)
- [UnsafeNativeCodeLocation: Native code outside library directory](UnsafeNativeCodeLocation.md.html)
- [UnsafeProtectedBroadcastReceiver: Unsafe Protected `BroadcastReceiver`](UnsafeProtectedBroadcastReceiver.md.html)
- - [UnsanitizedContentProviderFilename: Trusting ContentProvider filenames without any sanitization](UnsanitizedContentProviderFilename.md.html)
- [UnsanitizedFilenameFromContentProvider: Trusting ContentProvider filenames without any sanitization](UnsanitizedFilenameFromContentProvider.md.html)
- [UnspecifiedImmutableFlag: Missing `PendingIntent` mutability flag](UnspecifiedImmutableFlag.md.html)
- [UseCheckPermission: Using the result of check permission calls](UseCheckPermission.md.html)
@@ -670,6 +698,7 @@
- [WebViewClientOnReceivedSslError: Proceeds with the HTTPS connection despite SSL errors](WebViewClientOnReceivedSslError.md.html)
- [WorldReadableFiles: `openFileOutput()` with `MODE_WORLD_READABLE`](WorldReadableFiles.md.html)
- [WorldWriteableFiles: `openFileOutput()` with `MODE_WORLD_WRITEABLE`](WorldWriteableFiles.md.html)
+ - [ZeroBluetoothDiscoveryDuration: The EXTRA_DISCOVERABLE_DURATION parameter is set to zero](ZeroBluetoothDiscoveryDuration.md.html)
* Compliance (7)
@@ -681,7 +710,23 @@
- [PlaySdkIndexVulnerability: Library has vulnerability issues in SDK Index](PlaySdkIndexVulnerability.md.html)
- [QueryAllPackagesPermission: Using the QUERY_ALL_PACKAGES permission](QueryAllPackagesPermission.md.html)
-* Performance (48)
+* Play Policy (13)
+
+ - [AccessibilityPolicy: Accessibility Insights](AccessibilityPolicy.md.html)
+ - [AdvertisingIdPolicy: Advertising Id Insights](AdvertisingIdPolicy.md.html)
+ - [AllFilesAccessPolicy: All Files Access Insights](AllFilesAccessPolicy.md.html)
+ - [BackgroundLocationPolicy: Background Location Insights](BackgroundLocationPolicy.md.html)
+ - [ExactAlarmPolicy: Exact Alarm Insights](ExactAlarmPolicy.md.html)
+ - [ForegroundServicesPolicy: Foreground Services Insights](ForegroundServicesPolicy.md.html)
+ - [FullScreenIntentPolicy: Full Screen Intent Insights](FullScreenIntentPolicy.md.html)
+ - [HealthConnectPolicy: Health Connect Insights](HealthConnectPolicy.md.html)
+ - [PackageVisibilityPolicy: Package/App Visibility Insights](PackageVisibilityPolicy.md.html)
+ - [PhotoAndVideoPolicy: Photos & Video Insights](PhotoAndVideoPolicy.md.html)
+ - [RequestInstallPackagesPolicy: Request Install Packages Insights](RequestInstallPackagesPolicy.md.html)
+ - [SmsAndCallLogPolicy: SMS/Call Log Insights](SmsAndCallLogPolicy.md.html)
+ - [VpnServicePolicy: VPN Service Insights](VpnServicePolicy.md.html)
+
+* Performance (49)
- [AnimatorKeep: Missing @Keep for Animated Properties](AnimatorKeep.md.html)
- [AnnotationProcessorOnCompilePath: Annotation Processor on Compile Classpath](AnnotationProcessorOnCompilePath.md.html)
@@ -707,6 +752,7 @@
- [ObsoleteLayoutParam: Obsolete layout params](ObsoleteLayoutParam.md.html)
- [ObsoleteSdkInt: Obsolete SDK_INT Version Check](ObsoleteSdkInt.md.html)
- [Overdraw: Overdraw: Painting regions more than once](Overdraw.md.html)
+ - [ProguardAndroidTxtUsage: Use proguard-android-optimize.txt to enable optimizations](ProguardAndroidTxtUsage.md.html)
- [Recycle: Missing `recycle()` calls](Recycle.md.html)
- [RedundantNamespace: Redundant namespace](RedundantNamespace.md.html)
- [StaticFieldLeak: Static Field Leaks](StaticFieldLeak.md.html)
diff --git a/docs/checks/com_android_security_lint_lint.md.html b/docs/checks/com_android_security_lint_lint.md.html
index 82cb4932..e9b8f705 100644
--- a/docs/checks/com_android_security_lint_lint.md.html
+++ b/docs/checks/com_android_security_lint_lint.md.html
@@ -13,30 +13,36 @@
Compiled
: Lint 8.0 and 8.1
Artifact
-: com.android.security.lint:lint:1.0.3
+: com.android.security.lint:lint:1.0.4
(##) Included Issues
-|Issue Id |Issue Description |
-|--------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
-|[VulnerableCryptoAlgorithm](VulnerableCryptoAlgorithm.md.html) |Application uses vulnerable cryptography algorithms |
-|[UnsafeCryptoAlgorithmUsage](UnsafeCryptoAlgorithmUsage.md.html) |Application uses unsafe cipher modes or paddings with cryptographic algorithms |
-|[MissingAutoVerifyAttribute](MissingAutoVerifyAttribute.md.html) |Application has custom scheme intent filters with missing `autoVerify` attributes|
-|[InsecureDnsSdkLevel](InsecureDnsSdkLevel.md.html) |Application vulnerable to DNS spoofing attacks |
-|[StrandhoggVulnerable](StrandhoggVulnerable.md.html) |Application vulnerable to Strandhogg attacks |
-|[TapjackingVulnerable](TapjackingVulnerable.md.html) |Application's UI is vulnerable to tapjacking attacks |
-|[DefaultCleartextTraffic](DefaultCleartextTraffic.md.html) |Application by default permits cleartext traffic |
-|[DefaultTrustedUserCerts](DefaultTrustedUserCerts.md.html) |Application by default trusts user-added CA certificates |
-|[UnintendedExposedUrl](UnintendedExposedUrl.md.html) |Application may have a debugging or development URL publicly exposed |
-|[UnintendedPrivateIpAddress](UnintendedPrivateIpAddress.md.html) |Application may have a private IP address publicly exposed |
-|[ExposedRootPath](ExposedRootPath.md.html) |Application specifies the device root directory |
-|[SensitiveExternalPath](SensitiveExternalPath.md.html) |Application may expose sensitive info like PII by storing it in external storage |
-|[WeakPrng](WeakPrng.md.html) |Application uses non-cryptographically secure pseudorandom number generators |
-|[DisabledAllSafeBrowsing](DisabledAllSafeBrowsing.md.html) |Application has disabled safe browsing for all WebView objects |
-|[InsecurePermissionProtectionLevel](InsecurePermissionProtectionLevel.md.html) |Custom permission created with a normal `protectionLevel` |
-|[UnsanitizedContentProviderFilename](UnsanitizedContentProviderFilename.md.html)|Trusting ContentProvider filenames without any sanitization |
-|[InsecureStickyBroadcastsMethod](InsecureStickyBroadcastsMethod.md.html) |Usage of insecure sticky broadcasts |
-|[InsecureStickyBroadcastsPermission](InsecureStickyBroadcastsPermission.md.html)|Usage of insecure sticky broadcasts |
+|Issue Id |Issue Description |
+|--------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|
+|[VulnerableCryptoAlgorithm](VulnerableCryptoAlgorithm.md.html) |Application uses vulnerable cryptography algorithms |
+|[UnsafeCryptoAlgorithmUsage](UnsafeCryptoAlgorithmUsage.md.html) |Application uses unsafe cipher modes or paddings with cryptographic algorithms |
+|[InsecureDnsSdkLevel](InsecureDnsSdkLevel.md.html) |Application vulnerable to DNS spoofing attacks |
+|[StrandhoggVulnerable](StrandhoggVulnerable.md.html) |Application vulnerable to Strandhogg attacks |
+|[TapjackingVulnerable](TapjackingVulnerable.md.html) |Application's UI is vulnerable to tapjacking attacks |
+|[DefaultCleartextTraffic](DefaultCleartextTraffic.md.html) |Application by default permits cleartext traffic |
+|[DefaultTrustedUserCerts](DefaultTrustedUserCerts.md.html) |Application by default trusts user-added CA certificates |
+|[UnintendedExposedUrl](UnintendedExposedUrl.md.html) |Application may have a debugging or development URL publicly exposed |
+|[UnintendedPrivateIpAddress](UnintendedPrivateIpAddress.md.html) |Application may have a private IP address publicly exposed |
+|[ExposedRootPath](ExposedRootPath.md.html) |Application specifies the device root directory |
+|[SensitiveExternalPath](SensitiveExternalPath.md.html) |Application may expose sensitive info like PII by storing it in external storage |
+|[DotPathAttribute](DotPathAttribute.md.html) |The "path" attribute should not be set to "." as a path |
+|[SlashPathAttribute](SlashPathAttribute.md.html) |The "path" attribute should not be set to "/" as a path |
+|[HardcodedAbsolutePath](HardcodedAbsolutePath.md.html) |The "path" attribute should not be an absolute path |
+|[MissingAutoVerifyAttribute](MissingAutoVerifyAttribute.md.html) |Application has http/https scheme intent filters with missing `autoVerify` attributes |
+|[WeakPrng](WeakPrng.md.html) |Application uses non-cryptographically secure pseudorandom number generators |
+|[DisabledAllSafeBrowsing](DisabledAllSafeBrowsing.md.html) |Application has disabled safe browsing for all WebView objects |
+|[InsecurePermissionProtectionLevel](InsecurePermissionProtectionLevel.md.html) |Custom permission created with a normal `protectionLevel` |
+|[InsecureStickyBroadcastsMethod](InsecureStickyBroadcastsMethod.md.html) |Usage of insecure sticky broadcasts |
+|[InsecureStickyBroadcastsPermission](InsecureStickyBroadcastsPermission.md.html)|Usage of insecure sticky broadcasts |
+|[ZeroBluetoothDiscoveryDuration](ZeroBluetoothDiscoveryDuration.md.html) |The EXTRA_DISCOVERABLE_DURATION parameter is set to zero |
+|[ExtendedBluetoothDiscoveryDuration](ExtendedBluetoothDiscoveryDuration.md.html)|The EXTRA_DISCOVERABLE_DURATION parameter is unsafely high |
+|[LogInfoDisclosure](LogInfoDisclosure.md.html) |Potentially sensitive information logged to Logcat |
+|[InsecureLegacyExternalStorage](InsecureLegacyExternalStorage.md.html) |The `requestLegacyExternalStorage` attribute is set to true, opting the app out of scoped storage|
(##) Including
@@ -47,17 +53,17 @@
```
// build.gradle.kts
-lintChecks("com.android.security.lint:lint:1.0.3")
+lintChecks("com.android.security.lint:lint:1.0.4")
// build.gradle
-lintChecks 'com.android.security.lint:lint:1.0.3'
+lintChecks 'com.android.security.lint:lint:1.0.4'
// build.gradle.kts with version catalogs:
lintChecks(libs.com.android.security.lint.lint)
# libs.versions.toml
[versions]
-com-android-security-lint-lint = "1.0.3"
+com-android-security-lint-lint = "1.0.4"
[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,12 +75,12 @@
}
```
-1.0.3 is the version this documentation was generated from;
+1.0.4 is the version this documentation was generated from;
there may be newer versions available.
(##) Changes
-* 1.0.1: First version includes DefaultCleartextTraffic,
+* 1.0.0: First version includes DefaultCleartextTraffic,
DefaultTrustedUserCerts, DisabledAllSafeBrowsing, ExposedRootPath,
InsecureDnsSdkLevel, InsecurePermissionProtectionLevel,
MissingAutoVerifyAttribute, SensitiveExternalPath,
@@ -86,6 +92,11 @@
UnsanitizedFilenameFromContentProvider.
* 1.0.3: Adds UnsanitizedContentProviderFilename. Removes
UnsanitizedFilenameFromContentProvider.
+* 1.0.4: Adds DotPathAttribute, ExtendedBluetoothDiscoveryDuration,
+ HardcodedAbsolutePath, InsecureLegacyExternalStorage,
+ LogInfoDisclosure, SlashPathAttribute,
+ ZeroBluetoothDiscoveryDuration. Removes
+ UnsanitizedContentProviderFilename.
(##) Version Compatibility
@@ -93,8 +104,10 @@
| Version | Date | Issues | Compatible | Compiled | Requires |
|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 1.0.4| | 24| Yes| 8.0 and 8.1|8.0 and 8.1|
| 1.0.3| | 18| Yes| 8.0 and 8.1|8.0 and 8.1|
| 1.0.2| | 18| Yes| 8.0 and 8.1|8.0 and 8.1|
| 1.0.1| | 15| Yes| 8.0 and 8.1|8.0 and 8.1|
+| 1.0.0| | 15| Yes| 8.0 and 8.1|8.0 and 8.1|
\ No newline at end of file
diff --git a/docs/checks/com_google_play_policy_insights_insights-lint.md.html b/docs/checks/com_google_play_policy_insights_insights-lint.md.html
new file mode 100644
index 00000000..311a93f2
--- /dev/null
+++ b/docs/checks/com_google_play_policy_insights_insights-lint.md.html
@@ -0,0 +1,81 @@
+(#) com.google.play.policy.insights:insights-lint
+
+Vendor
+: Play policy insights beta
+Min
+: Lint 8.2 to 8.6
+Compiled
+: Lint 8.7+
+Artifact
+: com.google.play.policy.insights:insights-lint:0.1.4
+
+(##) Included Issues
+
+|Issue Id |Issue Description |
+|--------------------------------------------------------------------|---------------------------------|
+|[AccessibilityPolicy](AccessibilityPolicy.md.html) |Accessibility Insights |
+|[AdvertisingIdPolicy](AdvertisingIdPolicy.md.html) |Advertising Id Insights |
+|[AllFilesAccessPolicy](AllFilesAccessPolicy.md.html) |All Files Access Insights |
+|[ExactAlarmPolicy](ExactAlarmPolicy.md.html) |Exact Alarm Insights |
+|[ForegroundServicesPolicy](ForegroundServicesPolicy.md.html) |Foreground Services Insights |
+|[FullScreenIntentPolicy](FullScreenIntentPolicy.md.html) |Full Screen Intent Insights |
+|[HealthConnectPolicy](HealthConnectPolicy.md.html) |Health Connect Insights |
+|[BackgroundLocationPolicy](BackgroundLocationPolicy.md.html) |Background Location Insights |
+|[PackageVisibilityPolicy](PackageVisibilityPolicy.md.html) |Package/App Visibility Insights |
+|[PhotoAndVideoPolicy](PhotoAndVideoPolicy.md.html) |Photos & Video Insights |
+|[RequestInstallPackagesPolicy](RequestInstallPackagesPolicy.md.html)|Request Install Packages Insights|
+|[SmsAndCallLogPolicy](SmsAndCallLogPolicy.md.html) |SMS/Call Log Insights |
+|[VpnServicePolicy](VpnServicePolicy.md.html) |VPN Service Insights |
+
+(##) Including
+
+!!!
+ This is not a built-in check. To include it, add the below dependency
+ to your project.
+
+```
+// build.gradle.kts
+implementation("com.google.play.policy.insights:insights-lint:0.1.4")
+
+// build.gradle
+implementation 'com.google.play.policy.insights:insights-lint:0.1.4'
+
+// build.gradle.kts with version catalogs:
+implementation(libs.insights.lint)
+
+# libs.versions.toml
+[versions]
+insights-lint = "0.1.4"
+[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:
+insights-lint = {
+ module = "com.google.play.policy.insights:insights-lint",
+ version.ref = "insights-lint"
+}
+```
+
+0.1.4 is the version this documentation was generated from;
+there may be newer versions available.
+
+(##) Changes
+
+* 0.1.3: First version includes AccessibilityPolicy,
+ AdvertisingIdPolicy, AllFilesAccessPolicy, BackgroundLocationPolicy,
+ ExactAlarmPolicy, ForegroundServicesPolicy, FullScreenIntentPolicy,
+ HealthConnectPolicy, PackageVisibilityPolicy, PhotoAndVideoPolicy,
+ RequestInstallPackagesPolicy, SmsAndCallLogPolicy,
+ VpnServicePolicy.
+
+(##) Version Compatibility
+
+There are multiple older versions available of this library:
+
+| Version | Date | Issues | Compatible | Compiled | Requires |
+|-------------------:|----------|-------:|------------|--------------:|---------:|
+| 0.1.4| | 13| Yes| 8.7+|8.2 to 8.6|
+| 0.1.3| | 13| Yes| 8.7+|8.2 to 8.6|
+
+
\ No newline at end of file
diff --git a/docs/checks/index.md.html b/docs/checks/index.md.html
index 8cfb1c4c..6cd7bd8f 100644
--- a/docs/checks/index.md.html
+++ b/docs/checks/index.md.html
@@ -6,15 +6,18 @@
- [AaptCrash: Potential AAPT crash](AaptCrash.md.html)
- [AcceptsUserCertificates: Allowing User Certificates](AcceptsUserCertificates.md.html)
- [AccessibilityFocus: Forcing accessibility focus](AccessibilityFocus.md.html)
+ - [AccessibilityPolicy: Accessibility Insights](AccessibilityPolicy.md.html)
- [AccessibilityScrollActions: Incomplete Scroll Action support](AccessibilityScrollActions.md.html)
- [AccessibilityWindowStateChangedEvent: Use of accessibility window state change events](AccessibilityWindowStateChangedEvent.md.html)
- [AccidentalOctal: Accidental Octal](AccidentalOctal.md.html)
- [ActivityIconColor: Ongoing activity icon is not white](ActivityIconColor.md.html)
- [AdapterViewChildren: `AdapterView` cannot have children in XML](AdapterViewChildren.md.html)
- [AddJavascriptInterface: `addJavascriptInterface` Called](AddJavascriptInterface.md.html)
+ - [AdvertisingIdPolicy: Advertising Id Insights](AdvertisingIdPolicy.md.html)
- [AlertDialogUsage: Use the support library AlertDialog instead of android.app.AlertDialog](AlertDialogUsage.md.html)
- [Aligned16KB: Native library dependency not 16 KB aligned](Aligned16KB.md.html)
- [AllCaps: Combining textAllCaps and markup](AllCaps.md.html)
+ - [AllFilesAccessPolicy: All Files Access Insights](AllFilesAccessPolicy.md.html)
- [AllowAllHostnameVerifier: Insecure `HostnameVerifier`](AllowAllHostnameVerifier.md.html)
- [AlwaysShowAction: Usage of `showAsAction=always`](AlwaysShowAction.md.html)
- [AndroidGradlePluginVersion: Obsolete Android Gradle Plugin Version](AndroidGradlePluginVersion.md.html)
@@ -43,6 +46,7 @@
- [Autofill: Use Autofill](Autofill.md.html)
- [AvoidUsingNotNullOperator: Avoid using the !! operator in Kotlin](AvoidUsingNotNullOperator.md.html)
- [BackButton: Back button](BackButton.md.html)
+ - [BackgroundLocationPolicy: Background Location Insights](BackgroundLocationPolicy.md.html)
- [BadConfigurationProvider: Invalid WorkManager Configuration Provider](BadConfigurationProvider.md.html)
- [BadHostnameVerifier: Insecure HostnameVerifier](BadHostnameVerifier.md.html)
- [BadPeriodicWorkRequestEnqueue: Use `enqueueUniquePeriodicWork()` instead of `enqueue()`](BadPeriodicWorkRequestEnqueue.md.html)
@@ -145,6 +149,7 @@
- [DiffUtilEquals: Suspicious DiffUtil Equality](DiffUtilEquals.md.html)
- [DisableBaselineAlignment: Missing `baselineAligned` attribute](DisableBaselineAlignment.md.html)
- [DisabledAllSafeBrowsing: Application has disabled safe browsing for all WebView objects](DisabledAllSafeBrowsing.md.html)
+ - [DisallowLookaheadAnimationVisualDebug: LookaheadAnimationVisualDebugging and CustomizedLookaheadAnimationVisualDebugging are disallowed in production code](DisallowLookaheadAnimationVisualDebug.md.html)
- [DiscouragedApi: Using discouraged APIs](DiscouragedApi.md.html)
- [DiscouragedPrivateApi: Using Discouraged Private API](DiscouragedPrivateApi.md.html)
- [DoNotCallProviders: Dagger provider methods should not be called directly by user code](DoNotCallProviders.md.html)
@@ -158,6 +163,8 @@
- [DoNotMockPlatformTypes: platform types should not be mocked](DoNotMockPlatformTypes.md.html)
- [DoNotMockRecordClass: record classes represent pure data classes, so mocking them should not be necessary](DoNotMockRecordClass.md.html)
- [DoNotMockSealedClass: sealed classes have a restricted type hierarchy, use a subtype instead](DoNotMockSealedClass.md.html)
+ - [DontUseAccessibilityNodeInfoGetText: Do not use AccessibilityNodeInfo#getText in a UiAutomatorTestScope](DontUseAccessibilityNodeInfoGetText.md.html)
+ - [DotPathAttribute: The "path" attribute should not be set to "." as a path](DotPathAttribute.md.html)
- [DrawAllocation: Memory allocations within drawing code](DrawAllocation.md.html)
- [DuplicateActivity: Activity registered more than once](DuplicateActivity.md.html)
- [DuplicateDefinition: Duplicate definitions of resources](DuplicateDefinition.md.html)
@@ -180,6 +187,7 @@
- [ErroneousLayoutAttribute: Layout attribute that's not applicable to a particular view](ErroneousLayoutAttribute.md.html)
- [ErrorProneDoNotMockUsage: Use Slack's internal `@DoNotMock` annotation](ErrorProneDoNotMockUsage.md.html)
- [ExactAlarm: Invalid Usage of Exact Alarms](ExactAlarm.md.html)
+ - [ExactAlarmPolicy: Exact Alarm Insights](ExactAlarmPolicy.md.html)
- [ExceptionMessage: Please provide a string for the `lazyMessage` parameter](ExceptionMessage.md.html)
- [ExifInterface: Using `android.media.ExifInterface`](ExifInterface.md.html)
- [ExpensiveAssertion: Expensive Assertions](ExpensiveAssertion.md.html)
@@ -191,6 +199,7 @@
- [ExportedReceiver: Receiver does not require permission](ExportedReceiver.md.html)
- [ExportedService: Exported service does not require permission](ExportedService.md.html)
- [ExposedRootPath: Application specifies the device root directory](ExposedRootPath.md.html)
+ - [ExtendedBluetoothDiscoveryDuration: The EXTRA_DISCOVERABLE_DURATION parameter is unsafely high](ExtendedBluetoothDiscoveryDuration.md.html)
- [ExtraText: Extraneous text in resource files](ExtraText.md.html)
- [ExtraTranslation: Extra translation](ExtraTranslation.md.html)
- [FieldSiteTargetOnQualifierAnnotation: Redundant 'field:' used for Dagger qualifier annotation](FieldSiteTargetOnQualifierAnnotation.md.html)
@@ -201,6 +210,7 @@
- [FontValidation: Validation of font files](FontValidation.md.html)
- [ForegroundServicePermission: Missing permissions required by foregroundServiceType](ForegroundServicePermission.md.html)
- [ForegroundServiceType: Missing `foregroundServiceType` attribute in manifest](ForegroundServiceType.md.html)
+ - [ForegroundServicesPolicy: Foreground Services Insights](ForegroundServicesPolicy.md.html)
- [FormalGerman: Marks strings which contain formal German words](FormalGerman.md.html)
- [FragmentAddMenuProvider: Use getViewLifecycleOwner() as the LifecycleOwner instead of a Fragment instance](FragmentAddMenuProvider.md.html)
- [FragmentBackPressedCallback: Use getViewLifecycleOwner() as the LifecycleOwner instead of a Fragment instance](FragmentBackPressedCallback.md.html)
@@ -212,12 +222,14 @@
- [FragmentTagUsage: Use FragmentContainerView instead of the tag](FragmentTagUsage.md.html)
- [FrequentlyChangingValue: Reading a value annotated with @FrequentlyChangingValue inside composition](FrequentlyChangingValue.md.html)
- [FullBackupContent: Valid Full Backup Content File](FullBackupContent.md.html)
+ - [FullScreenIntentPolicy: Full Screen Intent Insights](FullScreenIntentPolicy.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)
- [GetContentDescriptionOverride: Overriding `getContentDescription()` on a View](GetContentDescriptionOverride.md.html)
- [GetInstance: Cipher.getInstance with ECB](GetInstance.md.html)
- [GetLocales: Locale crash](GetLocales.md.html)
- [GifUsage: Using `.gif` format for bitmaps is discouraged](GifUsage.md.html)
+ - [GlobalOptionInConsumerRules: Library has global options in consumer rules](GlobalOptionInConsumerRules.md.html)
- [GradleCompatible: Incompatible Gradle Versions](GradleCompatible.md.html)
- [GradleDependency: Obsolete Gradle Dependency](GradleDependency.md.html)
- [GradleDeprecated: Deprecated Gradle Construct](GradleDeprecated.md.html)
@@ -236,9 +248,11 @@
- [GuavaPreconditionsUsedInKotlin: Kotlin precondition checks should use the Kotlin standard library checks](GuavaPreconditionsUsedInKotlin.md.html)
- [HalfFloat: Incorrect Half Float](HalfFloat.md.html)
- [HandlerLeak: Handler reference leaks](HandlerLeak.md.html)
+ - [HardcodedAbsolutePath: The "path" attribute should not be an absolute path](HardcodedAbsolutePath.md.html)
- [HardcodedDebugMode: Hardcoded value of `android:debuggable` in the manifest](HardcodedDebugMode.md.html)
- [HardcodedText: Hardcoded text](HardcodedText.md.html)
- [HardwareIds: Hardware Id Usage](HardwareIds.md.html)
+ - [HealthConnectPolicy: Health Connect Insights](HealthConnectPolicy.md.html)
- [HighAppVersionCode: VersionCode too high](HighAppVersionCode.md.html)
- [HighSamplingRate: High sensor sampling rate](HighSamplingRate.md.html)
- [IconColors: Icon colors do not follow the recommended visual style](IconColors.md.html)
@@ -279,9 +293,12 @@
- [InnerclassSeparator: Inner classes should use `$` rather than `.`](InnerclassSeparator.md.html)
- [InsecureBaseConfiguration: Insecure Base Configuration](InsecureBaseConfiguration.md.html)
- [InsecureDnsSdkLevel: Application vulnerable to DNS spoofing attacks](InsecureDnsSdkLevel.md.html)
+ - [InsecureLegacyExternalStorage: The `requestLegacyExternalStorage` attribute is set to true, opting the app out of scoped storage](InsecureLegacyExternalStorage.md.html)
- [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)
+ - [InstantAppCall: Instant App call](InstantAppCall.md.html)
+ - [InstantAppDeprecation: Instant App Deprecation](InstantAppDeprecation.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)
@@ -290,6 +307,7 @@
- [InternalAgpApiUsage: Avoid using internal Android Gradle Plugin APIs](InternalAgpApiUsage.md.html)
- [InternalGradleApiUsage: Avoid using internal Gradle APIs](InternalGradleApiUsage.md.html)
- [InternalInsetResource: Using internal inset dimension resource](InternalInsetResource.md.html)
+ - [InternalKgpApiUsage: Avoid using internal Kotlin Gradle Plugin APIs](InternalKgpApiUsage.md.html)
- [InvalidAccessibility: Marks invalid accessibility usages](InvalidAccessibility.md.html)
- [InvalidAnalyticsName: Invalid Analytics Name](InvalidAnalyticsName.md.html)
- [InvalidColorHexValue: Invalid Color hex value](InvalidColorHexValue.md.html)
@@ -298,10 +316,12 @@
- [InvalidImeActionId: Invalid imeActionId declaration](InvalidImeActionId.md.html)
- [InvalidImport: Flags invalid imports](InvalidImport.md.html)
- [InvalidLanguageTagDelimiter: Underscore (`_`) is an unsupported delimiter for subtags](InvalidLanguageTagDelimiter.md.html)
+ - [InvalidManifestAttribute: Invalid manifest attribute](InvalidManifestAttribute.md.html)
- [InvalidNavigation: No start destination specified](InvalidNavigation.md.html)
- [InvalidPackage: Package not included in Android](InvalidPackage.md.html)
- [InvalidPeriodicWorkRequestInterval: Invalid interval duration](InvalidPeriodicWorkRequestInterval.md.html)
- [InvalidPermission: Invalid Permission Attribute](InvalidPermission.md.html)
+ - [InvalidPurposeString: Invalid purpose string for permission](InvalidPurposeString.md.html)
- [InvalidResourceFolder: Invalid Resource Folder](InvalidResourceFolder.md.html)
- [InvalidSetHasFixedSize: When using `setHasFixedSize()` in an `RecyclerView`, `wrap_content` cannot be used as a value for `size` in the scrolling direction.](InvalidSetHasFixedSize.md.html)
- [InvalidSingleLineComment: Marks single line comments that are not sentences](InvalidSingleLineComment.md.html)
@@ -347,11 +367,13 @@
- [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)
+ - [LocalContextGetResourceValueCall: Querying resource properties using LocalContext.current](LocalContextGetResourceValueCall.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)
- [LogConditional: Unconditional Logging Calls](LogConditional.md.html)
+ - [LogInfoDisclosure: Potentially sensitive information logged to Logcat](LogInfoDisclosure.md.html)
- [LogNotTimber: Logging call to Log instead of Timber](LogNotTimber.md.html)
- [LogTagMismatch: Mismatched Log Tags](LogTagMismatch.md.html)
- [LongLogTag: Too Long Log Tags](LongLogTag.md.html)
@@ -369,7 +391,7 @@
- [MinSdkTooLow: API Version Too Low](MinSdkTooLow.md.html)
- [MipmapIcons: Use Mipmap Launcher Icons](MipmapIcons.md.html)
- [MissingApplicationIcon: Missing application icon](MissingApplicationIcon.md.html)
- - [MissingAutoVerifyAttribute: Application has custom scheme intent filters with missing `autoVerify` attributes](MissingAutoVerifyAttribute.md.html)
+ - [MissingAutoVerifyAttribute: Application has http/https scheme intent filters with missing `autoVerify` attributes](MissingAutoVerifyAttribute.md.html)
- [MissingBackupPin: Missing Backup Pin](MissingBackupPin.md.html)
- [MissingClass: Missing registered class](MissingClass.md.html)
- [MissingColorAlphaChannel: Missing Color alpha channel](MissingColorAlphaChannel.md.html)
@@ -388,6 +410,7 @@
- [MissingOnPlayFromSearch: Missing `onPlayFromSearch`](MissingOnPlayFromSearch.md.html)
- [MissingPermission: Missing Permissions](MissingPermission.md.html)
- [MissingPrefix: Missing Android XML namespace](MissingPrefix.md.html)
+ - [MissingPurpose: Missing purpose for permission](MissingPurpose.md.html)
- [MissingQuantity: Missing quantity translation](MissingQuantity.md.html)
- [MissingResourceImportAlias: Missing import alias for R class](MissingResourceImportAlias.md.html)
- [MissingResourcesProperties: Missing resources.properties file](MissingResourcesProperties.md.html)
@@ -476,6 +499,7 @@
- [NoHardKeywords: No Hard Kotlin Keywords](NoHardKeywords.md.html)
- [NoOp: NoOp Code](NoOp.md.html)
- [NonConstantResourceId: Checks use of resource IDs in places requiring constants](NonConstantResourceId.md.html)
+ - [NonObservableLocale: Reading locale in a non-observable way in a composable function](NonObservableLocale.md.html)
- [NonResizeableActivity: Activity is set to be non-resizeable](NonResizeableActivity.md.html)
- [NotConstructor: Not a Constructor](NotConstructor.md.html)
- [NotInterpolated: Incorrect Interpolation](NotInterpolated.md.html)
@@ -499,6 +523,7 @@
- [OutdatedLibrary: Outdated Library](OutdatedLibrary.md.html)
- [Overdraw: Overdraw: Painting regions more than once](Overdraw.md.html)
- [OverrideAbstract: Not overriding abstract methods on older platforms](OverrideAbstract.md.html)
+ - [PackageVisibilityPolicy: Package/App Visibility Insights](PackageVisibilityPolicy.md.html)
- [PackagedPrivateKey: Packaged private key](PackagedPrivateKey.md.html)
- [ParcelClassLoader: Default Parcel Class Loader](ParcelClassLoader.md.html)
- [ParcelCreator: Missing Parcelable `CREATOR` field](ParcelCreator.md.html)
@@ -507,6 +532,7 @@
- [PermissionImpliesUnsupportedChromeOsHardware: Permission Implies Unsupported Chrome OS Hardware](PermissionImpliesUnsupportedChromeOsHardware.md.html)
- [PermissionImpliesUnsupportedHardware: Permission Implies Unsupported Hardware](PermissionImpliesUnsupportedHardware.md.html)
- [PermissionNamingConvention: Permission name does not follow recommended convention](PermissionNamingConvention.md.html)
+ - [PhotoAndVideoPolicy: Photos & Video Insights](PhotoAndVideoPolicy.md.html)
- [PictureInPictureIssue: Picture In Picture best practices not followed](PictureInPictureIssue.md.html)
- [PinSetExpiry: Validate `` expiration attribute](PinSetExpiry.md.html)
- [PlaySdkIndexDeprecated: Library is marked as deprecated in SDK Index](PlaySdkIndexDeprecated.md.html)
@@ -519,12 +545,16 @@
- [PrivateResource: Using private resources](PrivateResource.md.html)
- [ProduceStateDoesNotAssignValue: produceState calls should assign `value` inside the producer lambda](ProduceStateDoesNotAssignValue.md.html)
- [Proguard: Using obsolete ProGuard configuration](Proguard.md.html)
+ - [ProguardAndroidTxtUsage: Use proguard-android-optimize.txt to enable optimizations](ProguardAndroidTxtUsage.md.html)
- [ProguardSplit: Proguard.cfg file contains generic Android rules](ProguardSplit.md.html)
- [PropertyEscape: Incorrect property escapes](PropertyEscape.md.html)
- [ProtectedPermissions: Using system app permission](ProtectedPermissions.md.html)
- - [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive.md.html)
- - [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema.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)
+ - [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive.md.html) (from androidx.wear.protolayout:protolayout-expression:+)
+ - [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive-2.md.html) (from androidx.wear.protolayout:protolayout:+)
+ - [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema.md.html) (from androidx.wear.protolayout:protolayout-expression:+)
+ - [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema-2.md.html) (from androidx.wear.protolayout:protolayout:+)
+ - [ProtoLayoutPrimaryLayoutResponsive: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales](ProtoLayoutPrimaryLayoutResponsive.md.html) (from androidx.wear.protolayout:protolayout-expression:+)
+ - [ProtoLayoutPrimaryLayoutResponsive: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales](ProtoLayoutPrimaryLayoutResponsive-2.md.html) (from androidx.wear.protolayout:protolayout:+)
- [ProviderReadPermissionOnly: Provider with readPermission only and implemented write APIs](ProviderReadPermissionOnly.md.html)
- [ProvidesMustNotBeAbstract: @Provides functions cannot be abstract](ProvidesMustNotBeAbstract.md.html)
- [ProxyPassword: Proxy Password in Cleartext](ProxyPassword.md.html)
@@ -532,6 +562,7 @@
- [PxUsage: Using 'px' dimension](PxUsage.md.html)
- [QueryAllPackagesPermission: Using the QUERY_ALL_PACKAGES permission](QueryAllPackagesPermission.md.html)
- [QueryPermissionsNeeded: Using APIs affected by query permissions](QueryPermissionsNeeded.md.html)
+ - [R8GradualApi: R8 Gradual API can be used only with experimental flag](R8GradualApi.md.html)
- [Range: Outside Range](Range.md.html)
- [RawColor: Flags color that are not defined as resource](RawColor.md.html)
- [RawDimen: Flags dimensions that are not defined as resource](RawDimen.md.html)
@@ -543,6 +574,7 @@
- [RedundantLabel: Redundant label on activity](RedundantLabel.md.html)
- [RedundantNamespace: Redundant namespace](RedundantNamespace.md.html)
- [ReferenceType: Incorrect reference types](ReferenceType.md.html)
+ - [ReflectionAnnotation: Missing Reflection Annotation](ReflectionAnnotation.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)
@@ -553,6 +585,7 @@
- [RepeatOnLifecycleWrongUsage: Wrong usage of repeatOnLifecycle](RepeatOnLifecycleWrongUsage.md.html) (from androidx.lifecycle:lifecycle-runtime-android:+)
- [RepeatOnLifecycleWrongUsage: Wrong usage of repeatOnLifecycle](RepeatOnLifecycleWrongUsage-2.md.html) (from androidx.lifecycle:lifecycle-runtime-ktx:+)
- [ReportShortcutUsage: Report shortcut usage](ReportShortcutUsage.md.html)
+ - [RequestInstallPackagesPolicy: Request Install Packages Insights](RequestInstallPackagesPolicy.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)
@@ -567,6 +600,10 @@
- [ResourcesGetDrawableCall: Marks usage of deprecated getDrawable() on Resources](ResourcesGetDrawableCall.md.html)
- [RestrictCallsTo: Methods annotated with @RestrictedCallsTo should only be called from the specified scope](RestrictCallsTo.md.html)
- [RestrictedApi: Restricted API](RestrictedApi.md.html)
+ - [RetainLeaksContext: Using `retain { ... }` to store a value that extends from or references `Context` will cause a memory leak.](RetainLeaksContext.md.html)
+ - [RetainRememberObserver: Values returned by `retain { ... }` must not implement RememberObserver unless they also implement RetainObserver.](RetainRememberObserver.md.html)
+ - [RetainUnitType: `retain` calls must not return `Unit`](RetainUnitType.md.html)
+ - [RetainingDoNotRetainType: Types annotated with `@DoNotRetain` should not be returned as the result of `retain`, either directly or transitively](RetainingDoNotRetainType.md.html)
- [RetrofitUsage: This is replaced by the caller](RetrofitUsage.md.html)
- [ReturnFromAwaitPointerEventScope: Returning from awaitPointerEventScope may cause some input events to be dropped](ReturnFromAwaitPointerEventScope.md.html)
- [ReturnThis: Method must return `this`](ReturnThis.md.html)
@@ -609,9 +646,11 @@
- [SignatureOrSystemPermissions: Declaring signatureOrSystem permissions](SignatureOrSystemPermissions.md.html)
- [SimilarGradleDependency: Multiple Versions Gradle Dependency](SimilarGradleDependency.md.html)
- [SimpleDateFormat: Implied locale in date format](SimpleDateFormat.md.html)
+ - [SlashPathAttribute: The "path" attribute should not be set to "/" as a path](SlashPathAttribute.md.html)
- [Slices: Slices](Slices.md.html)
- [SlotReused: Slots should be invoked in at most one place](SlotReused.md.html)
- [SmallSp: Text size is too small](SmallSp.md.html)
+ - [SmsAndCallLogPolicy: SMS/Call Log Insights](SmsAndCallLogPolicy.md.html)
- [SoonBlockedPrivateApi: Using Soon-to-Be Blocked Private API](SoonBlockedPrivateApi.md.html)
- [SourceLockedOrientationActivity: Incompatible setRequestedOrientation value](SourceLockedOrientationActivity.md.html)
- [SpUsage: Using `dp` instead of `sp` for text sizes](SpUsage.md.html)
@@ -651,8 +690,10 @@
- [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)
+ - [TextConcatSpace: Missing space in text concatenation?](TextConcatSpace.md.html)
- [TextFields: Missing `inputType`](TextFields.md.html)
- [TextViewEdits: TextView should probably be an EditText instead](TextViewEdits.md.html)
+ - [ThreadConstraint: Wrong Thread (with inference)](ThreadConstraint.md.html)
- [ThrowableNotAtBeginning: Exception in Timber not at the beginning](ThrowableNotAtBeginning.md.html)
- [TilePreviewImageFormat: Tile preview is not compliant with standards](TilePreviewImageFormat.md.html)
- [TileProviderPermissions: TileProvider does not set permission](TileProviderPermissions.md.html)
@@ -701,7 +742,6 @@
- [UnsafeOptInUsageWarning: Unsafe opt-in usage intended to be warning-level severity](UnsafeOptInUsageWarning.md.html)
- [UnsafeProtectedBroadcastReceiver: Unsafe Protected `BroadcastReceiver`](UnsafeProtectedBroadcastReceiver.md.html)
- [UnsafeRepeatOnLifecycleDetector: RepeatOnLifecycle should be used with viewLifecycleOwner in Fragments](UnsafeRepeatOnLifecycleDetector.md.html)
- - [UnsanitizedContentProviderFilename: Trusting ContentProvider filenames without any sanitization](UnsanitizedContentProviderFilename.md.html)
- [UnsanitizedFilenameFromContentProvider: Trusting ContentProvider filenames without any sanitization](UnsanitizedFilenameFromContentProvider.md.html)
- [UnspecifiedImmutableFlag: Missing `PendingIntent` mutability flag](UnspecifiedImmutableFlag.md.html)
- [UnspecifiedRegisterReceiverFlag: Missing `registerReceiver()` exported flag](UnspecifiedRegisterReceiverFlag.md.html)
@@ -766,6 +806,7 @@
- [ViewHolder: View Holder Candidates](ViewHolder.md.html)
- [ViewModelConstructorInComposable: Constructing a view model in a composable](ViewModelConstructorInComposable.md.html)
- [VisibleForTests: Visible Only For Tests](VisibleForTests.md.html)
+ - [VpnServicePolicy: VPN Service Insights](VpnServicePolicy.md.html)
- [VulnerableCordovaVersion: Vulnerable Cordova Version](VulnerableCordovaVersion.md.html)
- [VulnerableCryptoAlgorithm: Application uses vulnerable cryptography algorithms](VulnerableCryptoAlgorithm.md.html)
- [Wakelock: Incorrect `WakeLock` usage](Wakelock.md.html)
@@ -773,6 +814,7 @@
- [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)
+ - [WatchFaceFormatInvalidVersion: The Watch Face Format version is invalid](WatchFaceFormatInvalidVersion.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)
@@ -824,6 +866,7 @@
- [WrongViewIdFormat: Flag view ids that are not in lowerCamelCase Format](WrongViewIdFormat.md.html)
- [XmlEscapeNeeded: Missing XML Escape](XmlEscapeNeeded.md.html)
- [XmlSpacing: XML files should not contain any new lines](XmlSpacing.md.html)
+ - [ZeroBluetoothDiscoveryDuration: The EXTRA_DISCOVERABLE_DURATION parameter is set to zero](ZeroBluetoothDiscoveryDuration.md.html)
* Withdrawn or Obsolete Issues (21)
diff --git a/docs/checks/libraries.md.html b/docs/checks/libraries.md.html
index c4b505a9..6dc6b9d0 100644
--- a/docs/checks/libraries.md.html
+++ b/docs/checks/libraries.md.html
@@ -5,8 +5,9 @@
Lint-specific libraries:
-* [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)
+* [androidx.lint:lint-gradle](androidx_lint_lint-gradle.md.html) (9 checks)
+* [com.google.play.policy.insights:insights-lint](com_google_play_policy_insights_insights-lint.md.html) (13 checks)
+* [com.android.security.lint:lint](com_android_security_lint_lint.md.html) (24 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)
@@ -17,16 +18,18 @@
Android archive libraries which also contain bundled lint checks:
+* [androidx.test.uiautomator:uiautomator](androidx_test_uiautomator_uiautomator.md.html) (1 checks)
* [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) (13 checks)
+* [androidx.compose.ui:ui-android](androidx_compose_ui_ui-android.md.html) (15 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) (16 checks)
+* [androidx.compose.runtime:runtime-retain-android](androidx_compose_runtime_runtime-retain-android.md.html) (4 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.animation:animation-android](androidx_compose_animation_animation-android.md.html) (6 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)
@@ -48,6 +51,7 @@
* [androidx.work:work-runtime](androidx_work_work-runtime.md.html) (9 checks)
* [androidx.appcompat:appcompat](androidx_appcompat_appcompat.md.html) (10 checks)
* [androidx.startup:startup-runtime](androidx_startup_startup-runtime.md.html) (2 checks)
+* [androidx.wear.protolayout:protolayout-expression](androidx_wear_protolayout_protolayout-expression.md.html) (3 checks)
* [androidx.wear.protolayout:protolayout](androidx_wear_protolayout_protolayout.md.html) (3 checks)
* [androidx.constraintlayout:constraintlayout-compose](androidx_constraintlayout_constraintlayout-compose.md.html) (3 checks)
* [com.jakewharton.timber:timber](com_jakewharton_timber_timber.md.html) (8 checks)
diff --git a/docs/checks/severity.md.html b/docs/checks/severity.md.html
index c7a05c4e..daeb44fa 100644
--- a/docs/checks/severity.md.html
+++ b/docs/checks/severity.md.html
@@ -3,11 +3,12 @@
Order: [Alphabetical](index.md.html) | [By category](categories.md.html) | [By vendor](vendors.md.html) | By severity | [By year](year.md.html) | [Libraries](libraries.md.html)
-* Fatal (54)
+* Fatal (57)
- [AaptCrash: Potential AAPT crash](AaptCrash.md.html)
- [BadConfigurationProvider: Invalid WorkManager Configuration Provider](BadConfigurationProvider.md.html)
- [BlockedPrivateApi: Using Blocked Private API](BlockedPrivateApi.md.html)
+ - [DisallowLookaheadAnimationVisualDebug: LookaheadAnimationVisualDebugging and CustomizedLookaheadAnimationVisualDebugging are disallowed in production code](DisallowLookaheadAnimationVisualDebug.md.html)
- [DuplicateActivity: Activity registered more than once](DuplicateActivity.md.html)
- [DuplicateIds: Duplicate ids within a single layout](DuplicateIds.md.html)
- [DuplicatePlatformClasses: Duplicate Platform Classes](DuplicatePlatformClasses.md.html)
@@ -24,11 +25,13 @@
- [InvalidFragmentVersionForActivityResult: Update to Fragment 1.3.0 to use ActivityResult APIs](InvalidFragmentVersionForActivityResult.md.html)
- [InvalidId: Invalid ID declaration](InvalidId.md.html)
- [InvalidPeriodicWorkRequestInterval: Invalid interval duration](InvalidPeriodicWorkRequestInterval.md.html)
+ - [InvalidPurposeString: Invalid purpose string for permission](InvalidPurposeString.md.html)
- [InvalidSetHasFixedSize: When using `setHasFixedSize()` in an `RecyclerView`, `wrap_content` cannot be used as a value for `size` in the scrolling direction.](InvalidSetHasFixedSize.md.html)
- [LibraryCustomView: Custom views in libraries should use res-auto-namespace](LibraryCustomView.md.html)
- [ManifestResource: Manifest Resource References](ManifestResource.md.html)
- [ManifestTypo: Typos in manifest tags](ManifestTypo.md.html)
- [MissingDefaultResource: Missing Default](MissingDefaultResource.md.html)
+ - [MissingPurpose: Missing purpose for permission](MissingPurpose.md.html)
- [MockLocation: Using mock location provider in production](MockLocation.md.html)
- [MultipleUsesSdk: Multiple `` elements in the manifest](MultipleUsesSdk.md.html)
- [NamespaceTypo: Misspelled namespace declaration](NamespaceTypo.md.html)
@@ -60,7 +63,7 @@
- [WrongFolder: Resource file in the wrong `res` folder](WrongFolder.md.html)
- [WrongManifestParent: Wrong manifest parent](WrongManifestParent.md.html)
-* Error (323)
+* Error (334)
- [AccidentalOctal: Accidental Octal](AccidentalOctal.md.html)
- [AppCompatCustomView: Appcompat Custom Widgets](AppCompatCustomView.md.html)
@@ -167,6 +170,7 @@
- [InjectInJava: Only Kotlin classes should be injected in order for Anvil to work](InjectInJava.md.html)
- [InternalAgpApiUsage: Avoid using internal Android Gradle Plugin APIs](InternalAgpApiUsage.md.html)
- [InternalGradleApiUsage: Avoid using internal Gradle APIs](InternalGradleApiUsage.md.html)
+ - [InternalKgpApiUsage: Avoid using internal Kotlin Gradle Plugin APIs](InternalKgpApiUsage.md.html)
- [InvalidAnalyticsName: Invalid Analytics Name](InvalidAnalyticsName.md.html)
- [InvalidImeActionId: Invalid imeActionId declaration](InvalidImeActionId.md.html)
- [InvalidLanguageTagDelimiter: Underscore (`_`) is an unsupported delimiter for subtags](InvalidLanguageTagDelimiter.md.html)
@@ -191,6 +195,7 @@
- [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)
+ - [LocalContextGetResourceValueCall: Querying resource properties using LocalContext.current](LocalContextGetResourceValueCall.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 +264,7 @@
- [NewApi: Calling new methods on older versions](NewApi.md.html)
- [NioDesugaring: Unsupported `java.nio` operations](NioDesugaring.md.html)
- [NoCollectCallFound: You must call collect on the given progress flow when using PredictiveBackHandler](NoCollectCallFound.md.html)
+ - [NonObservableLocale: Reading locale in a non-observable way in a composable function](NonObservableLocale.md.html)
- [NotInterpolated: Incorrect Interpolation](NotInterpolated.md.html)
- [NotificationId0: Notification Id is 0](NotificationId0.md.html)
- [NotificationPermission: Notifications Without Permission](NotificationPermission.md.html)
@@ -281,6 +287,7 @@
- [PropertyEscape: Incorrect property escapes](PropertyEscape.md.html)
- [ProtectedPermissions: Using system app permission](ProtectedPermissions.md.html)
- [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema.md.html)
+ - [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema-2.md.html)
- [ProvidesMustNotBeAbstract: @Provides functions cannot be abstract](ProvidesMustNotBeAbstract.md.html)
- [QueryAllPackagesPermission: Using the QUERY_ALL_PACKAGES permission](QueryAllPackagesPermission.md.html)
- [Range: Outside Range](Range.md.html)
@@ -301,6 +308,10 @@
- [ResourceType: Wrong Resource Type](ResourceType.md.html)
- [RestrictCallsTo: Methods annotated with @RestrictedCallsTo should only be called from the specified scope](RestrictCallsTo.md.html)
- [RestrictedApi: Restricted API](RestrictedApi.md.html)
+ - [RetainLeaksContext: Using `retain { ... }` to store a value that extends from or references `Context` will cause a memory leak.](RetainLeaksContext.md.html)
+ - [RetainRememberObserver: Values returned by `retain { ... }` must not implement RememberObserver unless they also implement RetainObserver.](RetainRememberObserver.md.html)
+ - [RetainUnitType: `retain` calls must not return `Unit`](RetainUnitType.md.html)
+ - [RetainingDoNotRetainType: Types annotated with `@DoNotRetain` should not be returned as the result of `retain`, either directly or transitively](RetainingDoNotRetainType.md.html)
- [RetrofitUsage: This is replaced by the caller](RetrofitUsage.md.html)
- [ReturnThis: Method must return `this`](ReturnThis.md.html)
- [RtlCompat: Right-to-left text compatibility issues](RtlCompat.md.html)
@@ -326,6 +337,7 @@
- [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)
+ - [ThreadConstraint: Wrong Thread (with inference)](ThreadConstraint.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)
@@ -361,6 +373,7 @@
- [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)
+ - [WatchFaceFormatInvalidVersion: The Watch Face Format version is invalid](WatchFaceFormatInvalidVersion.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)
@@ -385,19 +398,23 @@
- [WrongThreadInterprocedural: Wrong Thread (Interprocedural)](WrongThreadInterprocedural.md.html)
- [WrongViewCast: Mismatched view type](WrongViewCast.md.html)
- [XmlEscapeNeeded: Missing XML Escape](XmlEscapeNeeded.md.html)
+ - [ZeroBluetoothDiscoveryDuration: The EXTRA_DISCOVERABLE_DURATION parameter is set to zero](ZeroBluetoothDiscoveryDuration.md.html)
-* Warning (433)
+* Warning (462)
- [AcceptsUserCertificates: Allowing User Certificates](AcceptsUserCertificates.md.html)
- [AccessibilityFocus: Forcing accessibility focus](AccessibilityFocus.md.html)
+ - [AccessibilityPolicy: Accessibility Insights](AccessibilityPolicy.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)
- [AdapterViewChildren: `AdapterView` cannot have children in XML](AdapterViewChildren.md.html)
- [AddJavascriptInterface: `addJavascriptInterface` Called](AddJavascriptInterface.md.html)
+ - [AdvertisingIdPolicy: Advertising Id Insights](AdvertisingIdPolicy.md.html)
- [AlertDialogUsage: Use the support library AlertDialog instead of android.app.AlertDialog](AlertDialogUsage.md.html)
- [Aligned16KB: Native library dependency not 16 KB aligned](Aligned16KB.md.html)
- [AllCaps: Combining textAllCaps and markup](AllCaps.md.html)
+ - [AllFilesAccessPolicy: All Files Access Insights](AllFilesAccessPolicy.md.html)
- [AllowAllHostnameVerifier: Insecure `HostnameVerifier`](AllowAllHostnameVerifier.md.html)
- [AlwaysShowAction: Usage of `showAsAction=always`](AlwaysShowAction.md.html)
- [AndroidGradlePluginVersion: Obsolete Android Gradle Plugin Version](AndroidGradlePluginVersion.md.html)
@@ -417,6 +434,7 @@
- [Autofill: Use Autofill](Autofill.md.html)
- [AvoidUsingNotNullOperator: Avoid using the !! operator in Kotlin](AvoidUsingNotNullOperator.md.html)
- [BackButton: Back button](BackButton.md.html)
+ - [BackgroundLocationPolicy: Background Location Insights](BackgroundLocationPolicy.md.html)
- [BadHostnameVerifier: Insecure HostnameVerifier](BadHostnameVerifier.md.html)
- [BadPeriodicWorkRequestEnqueue: Use `enqueueUniquePeriodicWork()` instead of `enqueue()`](BadPeriodicWorkRequestEnqueue.md.html)
- [BatteryLife: Battery Life Issues](BatteryLife.md.html)
@@ -476,6 +494,8 @@
- [DisabledAllSafeBrowsing: Application has disabled safe browsing for all WebView objects](DisabledAllSafeBrowsing.md.html)
- [DiscouragedApi: Using discouraged APIs](DiscouragedApi.md.html)
- [DiscouragedPrivateApi: Using Discouraged Private API](DiscouragedPrivateApi.md.html)
+ - [DontUseAccessibilityNodeInfoGetText: Do not use AccessibilityNodeInfo#getText in a UiAutomatorTestScope](DontUseAccessibilityNodeInfoGetText.md.html)
+ - [DotPathAttribute: The "path" attribute should not be set to "." as a path](DotPathAttribute.md.html)
- [DrawAllocation: Memory allocations within drawing code](DrawAllocation.md.html)
- [DuplicateDivider: Unnecessary Divider Copy](DuplicateDivider.md.html)
- [DuplicateIncludedIds: Duplicate ids across layouts combined with include tags](DuplicateIncludedIds.md.html)
@@ -485,6 +505,7 @@
- [EmptySuperCall: Calling an empty super method](EmptySuperCall.md.html)
- [EnqueueWork: WorkManager Enqueue](EnqueueWork.md.html)
- [ErroneousLayoutAttribute: Layout attribute that's not applicable to a particular view](ErroneousLayoutAttribute.md.html)
+ - [ExactAlarmPolicy: Exact Alarm Insights](ExactAlarmPolicy.md.html)
- [ExifInterface: Using `android.media.ExifInterface`](ExifInterface.md.html)
- [ExpensiveAssertion: Expensive Assertions](ExpensiveAssertion.md.html)
- [ExpiringTargetSdkVersion: TargetSdkVersion Soon Expiring](ExpiringTargetSdkVersion.md.html)
@@ -493,15 +514,19 @@
- [ExportedReceiver: Receiver does not require permission](ExportedReceiver.md.html)
- [ExportedService: Exported service does not require permission](ExportedService.md.html)
- [ExposedRootPath: Application specifies the device root directory](ExposedRootPath.md.html)
+ - [ExtendedBluetoothDiscoveryDuration: The EXTRA_DISCOVERABLE_DURATION parameter is unsafely high](ExtendedBluetoothDiscoveryDuration.md.html)
- [FieldSiteTargetOnQualifierAnnotation: Redundant 'field:' used for Dagger qualifier annotation](FieldSiteTargetOnQualifierAnnotation.md.html)
- [FileEndsWithExt: File endsWith on file extensions](FileEndsWithExt.md.html)
- [FindViewByIdCast: Add Explicit Cast](FindViewByIdCast.md.html)
+ - [ForegroundServicesPolicy: Foreground Services Insights](ForegroundServicesPolicy.md.html)
- [FormalGerman: Marks strings which contain formal German words](FormalGerman.md.html)
- [FragmentTagUsage: Use FragmentContainerView instead of the tag](FragmentTagUsage.md.html)
- [FrequentlyChangingValue: Reading a value annotated with @FrequentlyChangingValue inside composition](FrequentlyChangingValue.md.html)
+ - [FullScreenIntentPolicy: Full Screen Intent Insights](FullScreenIntentPolicy.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)
+ - [GlobalOptionInConsumerRules: Library has global options in consumer rules](GlobalOptionInConsumerRules.md.html)
- [GradleDependency: Obsolete Gradle Dependency](GradleDependency.md.html)
- [GradleDeprecated: Deprecated Gradle Construct](GradleDeprecated.md.html)
- [GradleDeprecatedConfiguration: Deprecated Gradle Configuration](GradleDeprecatedConfiguration.md.html)
@@ -510,8 +535,10 @@
- [GradlePath: Gradle Path Issues](GradlePath.md.html)
- [GrantAllUris: Content provider shares everything](GrantAllUris.md.html)
- [HandlerLeak: Handler reference leaks](HandlerLeak.md.html)
+ - [HardcodedAbsolutePath: The "path" attribute should not be an absolute path](HardcodedAbsolutePath.md.html)
- [HardcodedText: Hardcoded text](HardcodedText.md.html)
- [HardwareIds: Hardware Id Usage](HardwareIds.md.html)
+ - [HealthConnectPolicy: Health Connect Insights](HealthConnectPolicy.md.html)
- [HighSamplingRate: High sensor sampling rate](HighSamplingRate.md.html)
- [IconColors: Icon colors do not follow the recommended visual style](IconColors.md.html)
- [IconDensities: Icon densities validation](IconDensities.md.html)
@@ -544,9 +571,12 @@
- [InnerclassSeparator: Inner classes should use `$` rather than `.`](InnerclassSeparator.md.html)
- [InsecureBaseConfiguration: Insecure Base Configuration](InsecureBaseConfiguration.md.html)
- [InsecureDnsSdkLevel: Application vulnerable to DNS spoofing attacks](InsecureDnsSdkLevel.md.html)
+ - [InsecureLegacyExternalStorage: The `requestLegacyExternalStorage` attribute is set to true, opting the app out of scoped storage](InsecureLegacyExternalStorage.md.html)
- [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)
+ - [InstantAppCall: Instant App call](InstantAppCall.md.html)
+ - [InstantAppDeprecation: Instant App Deprecation](InstantAppDeprecation.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)
@@ -555,6 +585,7 @@
- [InvalidAccessibility: Marks invalid accessibility usages](InvalidAccessibility.md.html)
- [InvalidColorHexValue: Invalid Color hex value](InvalidColorHexValue.md.html)
- [InvalidImport: Flags invalid imports](InvalidImport.md.html)
+ - [InvalidManifestAttribute: Invalid manifest attribute](InvalidManifestAttribute.md.html)
- [InvalidNavigation: No start destination specified](InvalidNavigation.md.html)
- [InvalidSingleLineComment: Marks single line comments that are not sentences](InvalidSingleLineComment.md.html)
- [InvalidString: Marks invalid translation strings](InvalidString.md.html)
@@ -583,6 +614,7 @@
- [LocaleFolder: Wrong locale name](LocaleFolder.md.html)
- [LockedOrientationActivity: Incompatible screenOrientation value](LockedOrientationActivity.md.html)
- [LogConditional: Unconditional Logging Calls](LogConditional.md.html)
+ - [LogInfoDisclosure: Potentially sensitive information logged to Logcat](LogInfoDisclosure.md.html)
- [LogNotTimber: Logging call to Log instead of Timber](LogNotTimber.md.html)
- [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)
@@ -592,7 +624,7 @@
- [MinSdkTooLow: API Version Too Low](MinSdkTooLow.md.html)
- [MipmapIcons: Use Mipmap Launcher Icons](MipmapIcons.md.html)
- [MissingApplicationIcon: Missing application icon](MissingApplicationIcon.md.html)
- - [MissingAutoVerifyAttribute: Application has custom scheme intent filters with missing `autoVerify` attributes](MissingAutoVerifyAttribute.md.html)
+ - [MissingAutoVerifyAttribute: Application has http/https scheme intent filters with missing `autoVerify` attributes](MissingAutoVerifyAttribute.md.html)
- [MissingBackupPin: Missing Backup Pin](MissingBackupPin.md.html)
- [MissingColorAlphaChannel: Missing Color alpha channel](MissingColorAlphaChannel.md.html)
- [MissingFirebaseInstanceTokenRefresh: Missing Firebase Messaging Callback](MissingFirebaseInstanceTokenRefresh.md.html)
@@ -638,30 +670,38 @@
- [OpaqueUnitKey: Passing an expression which always returns `Unit` as a key argument](OpaqueUnitKey.md.html)
- [OutdatedLibrary: Outdated Library](OutdatedLibrary.md.html)
- [Overdraw: Overdraw: Painting regions more than once](Overdraw.md.html)
+ - [PackageVisibilityPolicy: Package/App Visibility Insights](PackageVisibilityPolicy.md.html)
- [ParcelClassLoader: Default Parcel Class Loader](ParcelClassLoader.md.html)
- [PermissionImpliesUnsupportedHardware: Permission Implies Unsupported Hardware](PermissionImpliesUnsupportedHardware.md.html)
- [PermissionNamingConvention: Permission name does not follow recommended convention](PermissionNamingConvention.md.html)
+ - [PhotoAndVideoPolicy: Photos & Video Insights](PhotoAndVideoPolicy.md.html)
- [PictureInPictureIssue: Picture In Picture best practices not followed](PictureInPictureIssue.md.html)
- [PinSetExpiry: Validate `` expiration attribute](PinSetExpiry.md.html)
- [PluralsCandidate: Potential Plurals](PluralsCandidate.md.html)
- [PrivacySandboxBlockedCall: Call is blocked in the Privacy Sandbox](PrivacySandboxBlockedCall.md.html)
- [PrivateApi: Using Private APIs](PrivateApi.md.html)
- [PrivateResource: Using private resources](PrivateResource.md.html)
+ - [ProguardAndroidTxtUsage: Use proguard-android-optimize.txt to enable optimizations](ProguardAndroidTxtUsage.md.html)
- [ProguardSplit: Proguard.cfg file contains generic Android rules](ProguardSplit.md.html)
- [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive.md.html)
+ - [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive-2.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)
+ - [ProtoLayoutPrimaryLayoutResponsive: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales](ProtoLayoutPrimaryLayoutResponsive-2.md.html)
- [ProviderReadPermissionOnly: Provider with readPermission only and implemented write APIs](ProviderReadPermissionOnly.md.html)
- [ProxyPassword: Proxy Password in Cleartext](ProxyPassword.md.html)
- [PublicKeyCredential: Creating public key credential](PublicKeyCredential.md.html)
- [PxUsage: Using 'px' dimension](PxUsage.md.html)
- [QueryPermissionsNeeded: Using APIs affected by query permissions](QueryPermissionsNeeded.md.html)
+ - [R8GradualApi: R8 Gradual API can be used only with experimental flag](R8GradualApi.md.html)
- [RawColor: Flags color that are not defined as resource](RawColor.md.html)
- [RawDimen: Flags dimensions that are not defined as resource](RawDimen.md.html)
- [Recycle: Missing `recycle()` calls](Recycle.md.html)
- [RedundantLabel: Redundant label on activity](RedundantLabel.md.html)
- [RedundantNamespace: Redundant namespace](RedundantNamespace.md.html)
+ - [ReflectionAnnotation: Missing Reflection Annotation](ReflectionAnnotation.md.html)
- [Registered: Class is not registered in the manifest](Registered.md.html)
- [RelativeOverlap: Overlapping items in RelativeLayout](RelativeOverlap.md.html)
+ - [RequestInstallPackagesPolicy: Request Install Packages Insights](RequestInstallPackagesPolicy.md.html)
- [RequiresFeature: Requires Feature](RequiresFeature.md.html)
- [ResourcesGetColorCall: Marks usage of deprecated getColor() on Resources](ResourcesGetColorCall.md.html)
- [ResourcesGetColorStateListCall: Marks usage of deprecated getColorStateList() on Resources](ResourcesGetColorStateListCall.md.html)
@@ -699,8 +739,10 @@
- [ShowToast: Toast created but not shown](ShowToast.md.html)
- [SignatureOrSystemPermissions: Declaring signatureOrSystem permissions](SignatureOrSystemPermissions.md.html)
- [SimpleDateFormat: Implied locale in date format](SimpleDateFormat.md.html)
+ - [SlashPathAttribute: The "path" attribute should not be set to "/" as a path](SlashPathAttribute.md.html)
- [Slices: Slices](Slices.md.html)
- [SmallSp: Text size is too small](SmallSp.md.html)
+ - [SmsAndCallLogPolicy: SMS/Call Log Insights](SmsAndCallLogPolicy.md.html)
- [SourceLockedOrientationActivity: Incompatible setRequestedOrientation value](SourceLockedOrientationActivity.md.html)
- [SpUsage: Using `dp` instead of `sp` for text sizes](SpUsage.md.html)
- [SpecifyJobSchedulerIdRange: Specify a range of JobScheduler ids](SpecifyJobSchedulerIdRange.md.html)
@@ -721,6 +763,7 @@
- [SystemPermissionTypo: Permission appears to be a standard permission with a typo](SystemPermissionTypo.md.html)
- [TapjackingVulnerable: Application's UI is vulnerable to tapjacking attacks](TapjackingVulnerable.md.html)
- [TestManifestGradleConfiguration: The ui-test-manifest library should be included using the debugImplementation configuration](TestManifestGradleConfiguration.md.html)
+ - [TextConcatSpace: Missing space in text concatenation?](TextConcatSpace.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)
@@ -754,7 +797,6 @@
- [UnsafeNativeCodeLocation: Native code outside library directory](UnsafeNativeCodeLocation.md.html)
- [UnsafeOptInUsageWarning: Unsafe opt-in usage intended to be warning-level severity](UnsafeOptInUsageWarning.md.html)
- [UnsafeProtectedBroadcastReceiver: Unsafe Protected `BroadcastReceiver`](UnsafeProtectedBroadcastReceiver.md.html)
- - [UnsanitizedContentProviderFilename: Trusting ContentProvider filenames without any sanitization](UnsanitizedContentProviderFilename.md.html)
- [UnsanitizedFilenameFromContentProvider: Trusting ContentProvider filenames without any sanitization](UnsanitizedFilenameFromContentProvider.md.html)
- [UnsupportedChromeOsCameraSystemFeature: Looking for Rear Camera only feature](UnsupportedChromeOsCameraSystemFeature.md.html)
- [Untranslatable: Translated Untranslatable](Untranslatable.md.html)
@@ -794,6 +836,7 @@
- [ViewConstructor: Missing View constructors for XML inflation](ViewConstructor.md.html)
- [ViewHolder: View Holder Candidates](ViewHolder.md.html)
- [VisibleForTests: Visible Only For Tests](VisibleForTests.md.html)
+ - [VpnServicePolicy: VPN Service Insights](VpnServicePolicy.md.html)
- [VulnerableCordovaVersion: Vulnerable Cordova Version](VulnerableCordovaVersion.md.html)
- [Wakelock: Incorrect `WakeLock` usage](Wakelock.md.html)
- [WakelockTimeout: Using wakeLock without timeout](WakelockTimeout.md.html)
@@ -836,7 +879,7 @@
- [TrimLambda: Unnecessary lambda with `trim()`](TrimLambda.md.html)
- [UnnecessaryArrayInit: Unnecessary array initialization](UnnecessaryArrayInit.md.html)
-* Disabled By Default (43)
+* Disabled By Default (45)
- [AppCompatMethod](AppCompatMethod.md.html)
- [AppLinksAutoVerify](AppLinksAutoVerify.md.html)
@@ -868,12 +911,14 @@
- [NoOp](NoOp.md.html)
- [PermissionNamingConvention](PermissionNamingConvention.md.html)
- [PrivacySandboxBlockedCall](PrivacySandboxBlockedCall.md.html)
+ - [ReflectionAnnotation](ReflectionAnnotation.md.html)
- [Registered](Registered.md.html)
- [RequiredSize](RequiredSize.md.html)
- [SelectableText](SelectableText.md.html)
- [StopShip](StopShip.md.html)
- [StringFormatTrivial](StringFormatTrivial.md.html)
- [SyntheticAccessor](SyntheticAccessor.md.html)
+ - [ThreadConstraint](ThreadConstraint.md.html)
- [TypographyQuotes](TypographyQuotes.md.html)
- [UnknownNullness](UnknownNullness.md.html)
- [UnsupportedChromeOsHardware](UnsupportedChromeOsHardware.md.html)
diff --git a/docs/checks/vendors.md.html b/docs/checks/vendors.md.html
index 51824c20..120337c1 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 (497)
+* Built In (509)
- [AaptCrash: Potential AAPT crash](AaptCrash.md.html)
- [AcceptsUserCertificates: Allowing User Certificates](AcceptsUserCertificates.md.html)
@@ -125,6 +125,7 @@
- [GetInstance: Cipher.getInstance with ECB](GetInstance.md.html)
- [GetLocales: Locale crash](GetLocales.md.html)
- [GifUsage: Using `.gif` format for bitmaps is discouraged](GifUsage.md.html)
+ - [GlobalOptionInConsumerRules: Library has global options in consumer rules](GlobalOptionInConsumerRules.md.html)
- [GradleCompatible: Incompatible Gradle Versions](GradleCompatible.md.html)
- [GradleDependency: Obsolete Gradle Dependency](GradleDependency.md.html)
- [GradleDeprecated: Deprecated Gradle Construct](GradleDeprecated.md.html)
@@ -172,6 +173,8 @@
- [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)
+ - [InstantAppCall: Instant App call](InstantAppCall.md.html)
+ - [InstantAppDeprecation: Instant App Deprecation](InstantAppDeprecation.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)
@@ -181,9 +184,11 @@
- [InvalidAnalyticsName: Invalid Analytics Name](InvalidAnalyticsName.md.html)
- [InvalidId: Invalid ID declaration](InvalidId.md.html)
- [InvalidImeActionId: Invalid imeActionId declaration](InvalidImeActionId.md.html)
+ - [InvalidManifestAttribute: Invalid manifest attribute](InvalidManifestAttribute.md.html)
- [InvalidNavigation: No start destination specified](InvalidNavigation.md.html)
- [InvalidPackage: Package not included in Android](InvalidPackage.md.html)
- [InvalidPermission: Invalid Permission Attribute](InvalidPermission.md.html)
+ - [InvalidPurposeString: Invalid purpose string for permission](InvalidPurposeString.md.html)
- [InvalidResourceFolder: Invalid Resource Folder](InvalidResourceFolder.md.html)
- [InvalidUsesTagAttribute: Invalid `name` attribute for `uses` element](InvalidUsesTagAttribute.md.html)
- [InvalidVectorPath: Invalid vector paths](InvalidVectorPath.md.html)
@@ -247,6 +252,7 @@
- [MissingOnPlayFromSearch: Missing `onPlayFromSearch`](MissingOnPlayFromSearch.md.html)
- [MissingPermission: Missing Permissions](MissingPermission.md.html)
- [MissingPrefix: Missing Android XML namespace](MissingPrefix.md.html)
+ - [MissingPurpose: Missing purpose for permission](MissingPurpose.md.html)
- [MissingQuantity: Missing quantity translation](MissingQuantity.md.html)
- [MissingResourcesProperties: Missing resources.properties file](MissingResourcesProperties.md.html)
- [MissingSuperCall: Missing Super Call](MissingSuperCall.md.html)
@@ -310,6 +316,7 @@
- [PrivateApi: Using Private APIs](PrivateApi.md.html)
- [PrivateResource: Using private resources](PrivateResource.md.html)
- [Proguard: Using obsolete ProGuard configuration](Proguard.md.html)
+ - [ProguardAndroidTxtUsage: Use proguard-android-optimize.txt to enable optimizations](ProguardAndroidTxtUsage.md.html)
- [ProguardSplit: Proguard.cfg file contains generic Android rules](ProguardSplit.md.html)
- [PropertyEscape: Incorrect property escapes](PropertyEscape.md.html)
- [ProtectedPermissions: Using system app permission](ProtectedPermissions.md.html)
@@ -319,12 +326,14 @@
- [PxUsage: Using 'px' dimension](PxUsage.md.html)
- [QueryAllPackagesPermission: Using the QUERY_ALL_PACKAGES permission](QueryAllPackagesPermission.md.html)
- [QueryPermissionsNeeded: Using APIs affected by query permissions](QueryPermissionsNeeded.md.html)
+ - [R8GradualApi: R8 Gradual API can be used only with experimental flag](R8GradualApi.md.html)
- [Range: Outside Range](Range.md.html)
- [Recycle: Missing `recycle()` calls](Recycle.md.html)
- [RecyclerView: RecyclerView Problems](RecyclerView.md.html)
- [RedundantLabel: Redundant label on activity](RedundantLabel.md.html)
- [RedundantNamespace: Redundant namespace](RedundantNamespace.md.html)
- [ReferenceType: Incorrect reference types](ReferenceType.md.html)
+ - [ReflectionAnnotation: Missing Reflection Annotation](ReflectionAnnotation.md.html)
- [Registered: Class is not registered in the manifest](Registered.md.html)
- [RelativeOverlap: Overlapping items in RelativeLayout](RelativeOverlap.md.html)
- [RemoteViewLayout: Unsupported View in RemoteView](RemoteViewLayout.md.html)
@@ -393,8 +402,10 @@
- [SyntheticAccessor: Synthetic Accessor](SyntheticAccessor.md.html)
- [SystemPermissionTypo: Permission appears to be a standard permission with a typo](SystemPermissionTypo.md.html)
- [TestAppLink: Unmatched URLs](TestAppLink.md.html)
+ - [TextConcatSpace: Missing space in text concatenation?](TextConcatSpace.md.html)
- [TextFields: Missing `inputType`](TextFields.md.html)
- [TextViewEdits: TextView should probably be an EditText instead](TextViewEdits.md.html)
+ - [ThreadConstraint: Wrong Thread (with inference)](ThreadConstraint.md.html)
- [TilePreviewImageFormat: Tile preview is not compliant with standards](TilePreviewImageFormat.md.html)
- [TileProviderPermissions: TileProvider does not set permission](TileProviderPermissions.md.html)
- [TooDeepLayout: Layout hierarchy is too deep](TooDeepLayout.md.html)
@@ -470,6 +481,7 @@
- [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)
+ - [WatchFaceFormatInvalidVersion: The Watch Face Format version is invalid](WatchFaceFormatInvalidVersion.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)
@@ -570,7 +582,7 @@
- [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) (8)
+* Android Open Source Project (androidx.lint:lint-gradle) (9)
- [EagerGradleConfiguration: Avoid using eager task APIs](EagerGradleConfiguration.md.html)
- [FilePropertyDetector: Avoid using Property](FilePropertyDetector.md.html)
@@ -578,6 +590,7 @@
- [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)
+ - [InternalKgpApiUsage: Avoid using internal Kotlin Gradle Plugin APIs](InternalKgpApiUsage.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)
@@ -605,11 +618,18 @@
- [EnsureInitializerMetadata: Every Initializer needs to be accompanied by a corresponding entry in the AndroidManifest.xml file](EnsureInitializerMetadata.md.html)
- [EnsureInitializerNoArgConstr: Missing Initializer no-arg constructor](EnsureInitializerNoArgConstr.md.html)
-* Android Open Source Project (androidx.wear.protolayout) (3)
+* Android Open Source Project (androidx.test.uiautomator) (1)
+
+ - [DontUseAccessibilityNodeInfoGetText: Do not use AccessibilityNodeInfo#getText in a UiAutomatorTestScope](DontUseAccessibilityNodeInfoGetText.md.html)
+
+* Android Open Source Project (androidx.wear.protolayout) (6)
- [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive.md.html)
+ - [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive-2.md.html)
- [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema.md.html)
+ - [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema-2.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)
+ - [ProtoLayoutPrimaryLayoutResponsive: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales](ProtoLayoutPrimaryLayoutResponsive-2.md.html)
* Android Open Source Project (androidx.work) (9)
@@ -630,26 +650,32 @@
- [ModuleCompanionObjects: Module companion objects should not be annotated with @Module](ModuleCompanionObjects.md.html)
- [ModuleCompanionObjectsNotInModuleParent: Companion objects should not be annotated with @Module](ModuleCompanionObjectsNotInModuleParent.md.html)
-* Google - Android 3P Vulnerability Research (18)
+* Google - Android 3P Vulnerability Research (24)
- [DefaultCleartextTraffic: Application by default permits cleartext traffic](DefaultCleartextTraffic.md.html)
- [DefaultTrustedUserCerts: Application by default trusts user-added CA certificates](DefaultTrustedUserCerts.md.html)
- [DisabledAllSafeBrowsing: Application has disabled safe browsing for all WebView objects](DisabledAllSafeBrowsing.md.html)
+ - [DotPathAttribute: The "path" attribute should not be set to "." as a path](DotPathAttribute.md.html)
- [ExposedRootPath: Application specifies the device root directory](ExposedRootPath.md.html)
+ - [ExtendedBluetoothDiscoveryDuration: The EXTRA_DISCOVERABLE_DURATION parameter is unsafely high](ExtendedBluetoothDiscoveryDuration.md.html)
+ - [HardcodedAbsolutePath: The "path" attribute should not be an absolute path](HardcodedAbsolutePath.md.html)
- [InsecureDnsSdkLevel: Application vulnerable to DNS spoofing attacks](InsecureDnsSdkLevel.md.html)
+ - [InsecureLegacyExternalStorage: The `requestLegacyExternalStorage` attribute is set to true, opting the app out of scoped storage](InsecureLegacyExternalStorage.md.html)
- [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)
- - [MissingAutoVerifyAttribute: Application has custom scheme intent filters with missing `autoVerify` attributes](MissingAutoVerifyAttribute.md.html)
+ - [LogInfoDisclosure: Potentially sensitive information logged to Logcat](LogInfoDisclosure.md.html)
+ - [MissingAutoVerifyAttribute: Application has http/https scheme intent filters with missing `autoVerify` attributes](MissingAutoVerifyAttribute.md.html)
- [SensitiveExternalPath: Application may expose sensitive info like PII by storing it in external storage](SensitiveExternalPath.md.html)
+ - [SlashPathAttribute: The "path" attribute should not be set to "/" as a path](SlashPathAttribute.md.html)
- [StrandhoggVulnerable: Application vulnerable to Strandhogg attacks](StrandhoggVulnerable.md.html)
- [TapjackingVulnerable: Application's UI is vulnerable to tapjacking attacks](TapjackingVulnerable.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)
- [UnsafeCryptoAlgorithmUsage: Application uses unsafe cipher modes or paddings with cryptographic algorithms](UnsafeCryptoAlgorithmUsage.md.html)
- - [UnsanitizedContentProviderFilename: Trusting ContentProvider filenames without any sanitization](UnsanitizedContentProviderFilename.md.html)
- [VulnerableCryptoAlgorithm: Application uses vulnerable cryptography algorithms](VulnerableCryptoAlgorithm.md.html)
- [WeakPrng: Application uses non-cryptographically secure pseudorandom number generators](WeakPrng.md.html)
+ - [ZeroBluetoothDiscoveryDuration: The EXTRA_DISCOVERABLE_DURATION parameter is set to zero](ZeroBluetoothDiscoveryDuration.md.html)
* JakeWharton/timber (com.jakewharton.timber:timber:{version}) (8)
@@ -668,9 +694,10 @@
- [LaunchDuringComposition: Calls to `launch` should happen inside of a SideEffect and not during composition](LaunchDuringComposition.md.html)
- [NoCollectCallFound: You must call collect on the given progress flow when using PredictiveBackHandler](NoCollectCallFound.md.html)
-* Jetpack Compose (androidx.compose.animation) (5)
+* Jetpack Compose (androidx.compose.animation) (6)
- [ConstantContentStateKeyInItemsCall: Composables within an LazyList `items` call should have unique content state keys](ConstantContentStateKeyInItemsCall.md.html)
+ - [DisallowLookaheadAnimationVisualDebug: LookaheadAnimationVisualDebugging and CustomizedLookaheadAnimationVisualDebugging are disallowed in production code](DisallowLookaheadAnimationVisualDebug.md.html)
- [UnusedContentLambdaTargetStateParameter: AnimatedContent calls should use the provided `T` parameter in the content lambda](UnusedContentLambdaTargetStateParameter.md.html)
- [UnusedCrossfadeTargetStateParameter: Crossfade calls should use the provided `T` parameter in the content lambda](UnusedCrossfadeTargetStateParameter.md.html)
- [UnusedSharedTransitionModifierParameter: SharedTransitionScope calls should use the provided Modifier parameter](UnusedSharedTransitionModifierParameter.md.html)
@@ -715,14 +742,22 @@
- [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)
+* Jetpack Compose (androidx.compose.runtime.retain) (4)
+
+ - [RetainLeaksContext: Using `retain { ... }` to store a value that extends from or references `Context` will cause a memory leak.](RetainLeaksContext.md.html)
+ - [RetainRememberObserver: Values returned by `retain { ... }` must not implement RememberObserver unless they also implement RetainObserver.](RetainRememberObserver.md.html)
+ - [RetainUnitType: `retain` calls must not return `Unit`](RetainUnitType.md.html)
+ - [RetainingDoNotRetainType: Types annotated with `@DoNotRetain` should not be returned as the result of `retain`, either directly or transitively](RetainingDoNotRetainType.md.html)
+
* Jetpack Compose (androidx.compose.runtime.saveable) (1)
- [RememberSaveableSaverParameter: `Saver` objects should be passed to the saver parameter, not the vararg `inputs` parameter](RememberSaveableSaverParameter.md.html)
-* Jetpack Compose (androidx.compose.ui) (13)
+* Jetpack Compose (androidx.compose.ui) (15)
- [ConfigurationScreenWidthHeight: Using Configuration.screenWidthDp/screenHeightDp instead of LocalWindowInfo.current.containerSize](ConfigurationScreenWidthHeight.md.html)
- [LocalContextConfigurationRead: Reading Configuration using LocalContext.current.resources.configuration](LocalContextConfigurationRead.md.html)
+ - [LocalContextGetResourceValueCall: Querying resource properties using LocalContext.current](LocalContextGetResourceValueCall.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)
@@ -730,6 +765,7 @@
- [ModifierNodeInspectableProperties: ModifierNodeElement missing inspectableProperties](ModifierNodeInspectableProperties.md.html)
- [ModifierParameter: Guidelines for Modifier parameters in a Composable function](ModifierParameter.md.html)
- [MultipleAwaitPointerEventScopes: Suspicious use of multiple awaitPointerEventScope blocks. Using multiple awaitPointerEventScope blocks may cause some input events to be dropped.](MultipleAwaitPointerEventScopes.md.html)
+ - [NonObservableLocale: Reading locale in a non-observable way in a composable function](NonObservableLocale.md.html)
- [ReturnFromAwaitPointerEventScope: Returning from awaitPointerEventScope may cause some input events to be dropped](ReturnFromAwaitPointerEventScope.md.html)
- [SuspiciousCompositionLocalModifierRead: CompositionLocals should not be read in Modifier.onAttach() or Modifier.onDetach()](SuspiciousCompositionLocalModifierRead.md.html)
- [SuspiciousModifierThen: Using Modifier.then with a Modifier factory function with an implicit receiver](SuspiciousModifierThen.md.html)
@@ -753,6 +789,22 @@
- [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-2.md.html)
+* Play policy insights beta (13)
+
+ - [AccessibilityPolicy: Accessibility Insights](AccessibilityPolicy.md.html)
+ - [AdvertisingIdPolicy: Advertising Id Insights](AdvertisingIdPolicy.md.html)
+ - [AllFilesAccessPolicy: All Files Access Insights](AllFilesAccessPolicy.md.html)
+ - [BackgroundLocationPolicy: Background Location Insights](BackgroundLocationPolicy.md.html)
+ - [ExactAlarmPolicy: Exact Alarm Insights](ExactAlarmPolicy.md.html)
+ - [ForegroundServicesPolicy: Foreground Services Insights](ForegroundServicesPolicy.md.html)
+ - [FullScreenIntentPolicy: Full Screen Intent Insights](FullScreenIntentPolicy.md.html)
+ - [HealthConnectPolicy: Health Connect Insights](HealthConnectPolicy.md.html)
+ - [PackageVisibilityPolicy: Package/App Visibility Insights](PackageVisibilityPolicy.md.html)
+ - [PhotoAndVideoPolicy: Photos & Video Insights](PhotoAndVideoPolicy.md.html)
+ - [RequestInstallPackagesPolicy: Request Install Packages Insights](RequestInstallPackagesPolicy.md.html)
+ - [SmsAndCallLogPolicy: SMS/Call Log Insights](SmsAndCallLogPolicy.md.html)
+ - [VpnServicePolicy: VPN Service Insights](VpnServicePolicy.md.html)
+
* slack (com.slack.lint.compose:compose-lints) (21)
- [ComposeCompositionLocalGetter: CompositionLocals should not use getters](ComposeCompositionLocalGetter.md.html)
diff --git a/docs/checks/year.md.html b/docs/checks/year.md.html
index 0046e0fc..b3214fd0 100644
--- a/docs/checks/year.md.html
+++ b/docs/checks/year.md.html
@@ -3,7 +3,17 @@
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 (30)
+* 2026 (7)
+
+ - [GlobalOptionInConsumerRules: Library has global options in consumer rules](GlobalOptionInConsumerRules.md.html)
+ - [InvalidManifestAttribute: Invalid manifest attribute](InvalidManifestAttribute.md.html)
+ - [InvalidPurposeString: Invalid purpose string for permission](InvalidPurposeString.md.html)
+ - [MissingPurpose: Missing purpose for permission](MissingPurpose.md.html)
+ - [ProguardAndroidTxtUsage: Use proguard-android-optimize.txt to enable optimizations](ProguardAndroidTxtUsage.md.html)
+ - [R8GradualApi: R8 Gradual API can be used only with experimental flag](R8GradualApi.md.html)
+ - [TextConcatSpace: Missing space in text concatenation?](TextConcatSpace.md.html)
+
+* 2025 (41)
- [Aligned16KB: Native library dependency not 16 KB aligned](Aligned16KB.md.html)
- [AppLinkSplitToWebAndCustom: Android App links should only use http(s) schemes](AppLinkSplitToWebAndCustom.md.html)
@@ -13,18 +23,28 @@
- [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)
+ - [DontUseAccessibilityNodeInfoGetText: Do not use AccessibilityNodeInfo#getText in a UiAutomatorTestScope](DontUseAccessibilityNodeInfoGetText.md.html)
- [FrequentlyChangingValue: Reading a value annotated with @FrequentlyChangingValue inside composition](FrequentlyChangingValue.md.html)
+ - [InstantAppCall: Instant App call](InstantAppCall.md.html)
+ - [InstantAppDeprecation: Instant App Deprecation](InstantAppDeprecation.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)
+ - [NonObservableLocale: Reading locale in a non-observable way in a composable function](NonObservableLocale.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)
+ - [ReflectionAnnotation: Missing Reflection Annotation](ReflectionAnnotation.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)
+ - [RetainLeaksContext: Using `retain { ... }` to store a value that extends from or references `Context` will cause a memory leak.](RetainLeaksContext.md.html)
+ - [RetainRememberObserver: Values returned by `retain { ... }` must not implement RememberObserver unless they also implement RetainObserver.](RetainRememberObserver.md.html)
+ - [RetainUnitType: `retain` calls must not return `Unit`](RetainUnitType.md.html)
+ - [RetainingDoNotRetainType: Types annotated with `@DoNotRetain` should not be returned as the result of `retain`, either directly or transitively](RetainingDoNotRetainType.md.html)
- [TestParameterSiteTarget: `TestParameter` annotation has the wrong site target](TestParameterSiteTarget.md.html)
+ - [ThreadConstraint: Wrong Thread (with inference)](ThreadConstraint.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)
@@ -32,11 +52,12 @@
- [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)
+ - [WatchFaceFormatInvalidVersion: The Watch Face Format version is invalid](WatchFaceFormatInvalidVersion.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 (58)
+* 2024 (65)
- [AccessibilityFocus: Forcing accessibility focus](AccessibilityFocus.md.html)
- [AccessibilityScrollActions: Incomplete Scroll Action support](AccessibilityScrollActions.md.html)
@@ -53,21 +74,26 @@
- [DisabledAllSafeBrowsing: Application has disabled safe browsing for all WebView objects](DisabledAllSafeBrowsing.md.html)
- [DoNotCallViewToString: Do not use `View.toString()`](DoNotCallViewToString.md.html)
- [EagerGradleConfiguration: Avoid using eager task APIs](EagerGradleConfiguration.md.html)
+ - [ExtendedBluetoothDiscoveryDuration: The EXTRA_DISCOVERABLE_DURATION parameter is unsafely high](ExtendedBluetoothDiscoveryDuration.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)
+ - [InsecureLegacyExternalStorage: The `requestLegacyExternalStorage` attribute is set to true, opting the app out of scoped storage](InsecureLegacyExternalStorage.md.html)
- [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)
- [InternalAgpApiUsage: Avoid using internal Android Gradle Plugin APIs](InternalAgpApiUsage.md.html)
- [InternalGradleApiUsage: Avoid using internal Gradle APIs](InternalGradleApiUsage.md.html)
+ - [InternalKgpApiUsage: Avoid using internal Kotlin Gradle Plugin APIs](InternalKgpApiUsage.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)
+ - [LocalContextGetResourceValueCall: Querying resource properties using LocalContext.current](LocalContextGetResourceValueCall.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)
+ - [LogInfoDisclosure: Potentially sensitive information logged to Logcat](LogInfoDisclosure.md.html)
+ - [MissingAutoVerifyAttribute: Application has http/https 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)
@@ -76,7 +102,9 @@
- [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-3.md.html)
- [PictureInPictureIssue: Picture In Picture best practices not followed](PictureInPictureIssue.md.html)
- [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive.md.html)
+ - [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive-2.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)
+ - [ProtoLayoutPrimaryLayoutResponsive: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales](ProtoLayoutPrimaryLayoutResponsive-2.md.html)
- [PublicKeyCredential: Creating public key credential](PublicKeyCredential.md.html)
- [SecretInSource: Secret in source code](SecretInSource.md.html)
- [SelectedPhotoAccess: Behavior change when requesting photo library access](SelectedPhotoAccess.md.html)
@@ -85,7 +113,6 @@
- [SuspiciousModifierThen: Using Modifier.then with a Modifier factory function with an implicit receiver](SuspiciousModifierThen.md.html)
- [UnclosedTrace: Incorrect trace section usage](UnclosedTrace.md.html)
- [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)
- [UseSdkSuppress: Using `@SdkSuppress` instead of `@RequiresApi`](UseSdkSuppress.md.html)
- [ViewModelConstructorInComposable: Constructing a view model in a composable](ViewModelConstructorInComposable.md.html)
@@ -96,8 +123,9 @@
- [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)
+ - [ZeroBluetoothDiscoveryDuration: The EXTRA_DISCOVERABLE_DURATION parameter is set to zero](ZeroBluetoothDiscoveryDuration.md.html)
-* 2023 (84)
+* 2023 (87)
- [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)
@@ -112,7 +140,6 @@
- [ComposeModifierComposed: Don't use Modifier.composed {}](ComposeModifierComposed.md.html)
- [ComposeModifierMissing: Missing modifier parameter](ComposeModifierMissing.md.html)
- [ComposeModifierReused: Modifiers should only be used once](ComposeModifierReused.md.html)
- - [ComposeModifierWithoutDefault: Missing Modifier default value](ComposeModifierWithoutDefault.md.html)
- [ComposeMultipleContentEmitters: Composables should only be emit from one source](ComposeMultipleContentEmitters.md.html)
- [ComposeMutableParameters: Mutable objects in Compose will break state](ComposeMutableParameters.md.html)
- [ComposeNamingLowercase: Value-returning Composables should be lowercase](ComposeNamingLowercase.md.html)
@@ -128,6 +155,7 @@
- [CustomPermissionTypo: Permission appears to be a custom permission with a typo](CustomPermissionTypo.md.html)
- [DefaultCleartextTraffic: Application by default permits cleartext traffic](DefaultCleartextTraffic.md.html)
- [DefaultTrustedUserCerts: Application by default trusts user-added CA certificates](DefaultTrustedUserCerts.md.html)
+ - [DotPathAttribute: The "path" attribute should not be set to "." as a path](DotPathAttribute.md.html)
- [EditedTargetSdkVersion: Manually Edited TargetSdkVersion](EditedTargetSdkVersion.md.html)
- [ExactAlarm: Invalid Usage of Exact Alarms](ExactAlarm.md.html)
- [ExceptionMessage: Please provide a string for the `lazyMessage` parameter](ExceptionMessage.md.html)
@@ -135,6 +163,7 @@
- [ForegroundServicePermission: Missing permissions required by foregroundServiceType](ForegroundServicePermission.md.html)
- [ForegroundServiceType: Missing `foregroundServiceType` attribute in manifest](ForegroundServiceType.md.html)
- [GestureBackNavigation: Usage of KeyEvent.KEYCODE_BACK](GestureBackNavigation.md.html)
+ - [HardcodedAbsolutePath: The "path" attribute should not be an absolute path](HardcodedAbsolutePath.md.html)
- [IntentWithNullActionLaunch: Unsafe intent launched with no action set](IntentWithNullActionLaunch.md.html)
- [KaptUsageInsteadOfKsp: Kapt usage should be replaced with KSP](KaptUsageInsteadOfKsp.md.html)
- [KnownPermissionError: Value specified for permission is a known error](KnownPermissionError.md.html)
@@ -151,12 +180,14 @@
- [PermissionNamingConvention: Permission name does not follow recommended convention](PermissionNamingConvention.md.html)
- [PlaySdkIndexGenericIssues: Library has issues in SDK Index](PlaySdkIndexGenericIssues.md.html)
- [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema.md.html)
+ - [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema-2.md.html)
- [ProviderReadPermissionOnly: Provider with readPermission only and implemented write APIs](ProviderReadPermissionOnly.md.html)
- [ReportShortcutUsage: Report shortcut usage](ReportShortcutUsage.md.html)
- [ReservedSystemPermission: Permission name is a reserved Android permission](ReservedSystemPermission.md.html)
- [ScheduleExactAlarm: Scheduling Exact Alarms Without Required Permission](ScheduleExactAlarm.md.html)
- [SensitiveExternalPath: Application may expose sensitive info like PII by storing it in external storage](SensitiveExternalPath.md.html)
- [SetAndClearCommunicationDevice: Clearing communication device](SetAndClearCommunicationDevice.md.html)
+ - [SlashPathAttribute: The "path" attribute should not be set to "/" as a path](SlashPathAttribute.md.html)
- [SquareAndRoundTilePreviews: TileProvider does not have round and square previews](SquareAndRoundTilePreviews.md.html)
- [StartActivityAndCollapseDeprecated: TileService.startActivityAndCollapse(Intent) is deprecated](StartActivityAndCollapseDeprecated.md.html)
- [StrandhoggVulnerable: Application vulnerable to Strandhogg attacks](StrandhoggVulnerable.md.html)
@@ -362,7 +393,7 @@
- [WatchFaceEditor: Watch face editor must use launchMode="standard"](WatchFaceEditor.md.html)
- [WrongRequiresOptIn: Experimental annotations defined in Kotlin must use kotlin.RequiresOptIn](WrongRequiresOptIn.md.html)
-* 2020 (66)
+* 2020 (62)
- [AcceptsUserCertificates: Allowing User Certificates](AcceptsUserCertificates.md.html)
- [AnnotationProcessorOnCompilePath: Annotation Processor on Compile Classpath](AnnotationProcessorOnCompilePath.md.html)
@@ -374,13 +405,11 @@
- [EnsureInitializerMetadata: Every Initializer needs to be accompanied by a corresponding entry in the AndroidManifest.xml file](EnsureInitializerMetadata.md.html)
- [EnsureInitializerNoArgConstr: Missing Initializer no-arg constructor](EnsureInitializerNoArgConstr.md.html)
- [ExpensiveAssertion: Expensive Assertions](ExpensiveAssertion.md.html)
- - [FieldSiteTargetOnQualifierAnnotation: Redundant 'field:' used for Dagger qualifier annotation](FieldSiteTargetOnQualifierAnnotation.md.html)
- [IdleBatteryChargingConstraints: Constraints may not be met for some devices](IdleBatteryChargingConstraints.md.html)
- [InvalidFragmentVersionForActivityResult: Update to Fragment 1.3.0 to use ActivityResult APIs](InvalidFragmentVersionForActivityResult.md.html)
- [InvalidPeriodicWorkRequestInterval: Invalid interval duration](InvalidPeriodicWorkRequestInterval.md.html)
- [InvalidSetHasFixedSize: When using `setHasFixedSize()` in an `RecyclerView`, `wrap_content` cannot be used as a value for `size` in the scrolling direction.](InvalidSetHasFixedSize.md.html)
- [JavaOnlyDetector: Using @JavaOnly elements in Kotlin code](JavaOnlyDetector.md.html)
- - [JvmStaticProvidesInObjectDetector: @JvmStatic used for @Provides function in an object class](JvmStaticProvidesInObjectDetector.md.html)
- [KtxExtensionAvailable: KTX Extension Available](KtxExtensionAvailable.md.html)
- [LaunchActivityFromNotification: Notification Launches Services or BroadcastReceivers](LaunchActivityFromNotification.md.html)
- [LintImplBadUrl: Bad More Info Link](LintImplBadUrl.md.html)
@@ -398,8 +427,6 @@
- [ModifierFactoryReturnType: Modifier factory functions should return Modifier](ModifierFactoryReturnType.md.html)
- [ModifierFactoryUnreferencedReceiver: Modifier factory functions must use the receiver Modifier instance](ModifierFactoryUnreferencedReceiver.md.html)
- [ModifierParameter: Guidelines for Modifier parameters in a Composable function](ModifierParameter.md.html)
- - [ModuleCompanionObjects: Module companion objects should not be annotated with @Module](ModuleCompanionObjects.md.html)
- - [ModuleCompanionObjectsNotInModuleParent: Companion objects should not be annotated with @Module](ModuleCompanionObjectsNotInModuleParent.md.html)
- [MotionLayoutInvalidSceneFileReference: layoutDescription must specify a scene file](MotionLayoutInvalidSceneFileReference.md.html)
- [MotionSceneFileValidationError: Validation errors in `MotionScene` files](MotionSceneFileValidationError.md.html)
- [NonConstantResourceId: Checks use of resource IDs in places requiring constants](NonConstantResourceId.md.html)
@@ -812,22 +839,34 @@
- [WrongManifestParent: Wrong manifest parent](WrongManifestParent.md.html)
- [WrongViewCast: Mismatched view type](WrongViewCast.md.html)
-* Unknown (57)
+* Unknown (76)
+ - [AccessibilityPolicy: Accessibility Insights](AccessibilityPolicy.md.html)
+ - [AdvertisingIdPolicy: Advertising Id Insights](AdvertisingIdPolicy.md.html)
- [AlertDialogUsage: Use the support library AlertDialog instead of android.app.AlertDialog](AlertDialogUsage.md.html)
+ - [AllFilesAccessPolicy: All Files Access Insights](AllFilesAccessPolicy.md.html)
- [AssertjImport: Flags Java 6 incompatible imports](AssertjImport.md.html)
+ - [BackgroundLocationPolicy: Background Location Insights](BackgroundLocationPolicy.md.html)
- [BinaryOperationInTimber: Use String#format()](BinaryOperationInTimber.md.html)
- [ColorCasing: Raw colors should be defined with uppercase letters](ColorCasing.md.html)
+ - [ComposeModifierWithoutDefault: Missing Modifier default value](ComposeModifierWithoutDefault.md.html)
- [ConstraintLayoutToolsEditorAttribute: Flags tools:layout_editor xml properties](ConstraintLayoutToolsEditorAttribute.md.html)
- [DefaultLayoutAttribute: Flags default layout values](DefaultLayoutAttribute.md.html)
+ - [DisallowLookaheadAnimationVisualDebug: LookaheadAnimationVisualDebugging and CustomizedLookaheadAnimationVisualDebugging are disallowed in production code](DisallowLookaheadAnimationVisualDebug.md.html)
- [ErroneousLayoutAttribute: Layout attribute that's not applicable to a particular view](ErroneousLayoutAttribute.md.html)
+ - [ExactAlarmPolicy: Exact Alarm Insights](ExactAlarmPolicy.md.html)
+ - [FieldSiteTargetOnQualifierAnnotation: Redundant 'field:' used for Dagger qualifier annotation](FieldSiteTargetOnQualifierAnnotation.md.html)
+ - [ForegroundServicesPolicy: Foreground Services Insights](ForegroundServicesPolicy.md.html)
- [FormalGerman: Marks strings which contain formal German words](FormalGerman.md.html)
+ - [FullScreenIntentPolicy: Full Screen Intent Insights](FullScreenIntentPolicy.md.html)
+ - [HealthConnectPolicy: Health Connect Insights](HealthConnectPolicy.md.html)
- [ImplicitStringPlaceholder: Marks implicit placeholders in strings without an index](ImplicitStringPlaceholder.md.html)
- [InvalidAccessibility: Marks invalid accessibility usages](InvalidAccessibility.md.html)
- [InvalidImport: Flags invalid imports](InvalidImport.md.html)
- [InvalidSingleLineComment: Marks single line comments that are not sentences](InvalidSingleLineComment.md.html)
- [InvalidString: Marks invalid translation strings](InvalidString.md.html)
- [JCenter: Marks usage of the jcenter() repository](JCenter.md.html)
+ - [JvmStaticProvidesInObjectDetector: @JvmStatic used for @Provides function in an object class](JvmStaticProvidesInObjectDetector.md.html)
- [KotlinRequireNotNullUseMessage: Marks usage of the requireNotNull method without lazy messages](KotlinRequireNotNullUseMessage.md.html)
- [LayoutFileNameMatchesClass: Checks that the layout file matches the class name](LayoutFileNameMatchesClass.md.html)
- [LogNotTimber: Logging call to Log instead of Timber](LogNotTimber.md.html)
@@ -835,9 +874,14 @@
- [MatchingViewId: Flags view ids that don't match with the file name](MatchingViewId.md.html)
- [MissingScrollbars: Scroll views should declare a scrollbar](MissingScrollbars.md.html)
- [MissingXmlHeader: Flags xml files that don't have a header](MissingXmlHeader.md.html)
+ - [ModuleCompanionObjects: Module companion objects should not be annotated with @Module](ModuleCompanionObjects.md.html)
+ - [ModuleCompanionObjectsNotInModuleParent: Companion objects should not be annotated with @Module](ModuleCompanionObjectsNotInModuleParent.md.html)
- [NamingPattern: Names should be well named](NamingPattern.md.html)
+ - [PackageVisibilityPolicy: Package/App Visibility Insights](PackageVisibilityPolicy.md.html)
+ - [PhotoAndVideoPolicy: Photos & Video Insights](PhotoAndVideoPolicy.md.html)
- [RawColor: Flags color that are not defined as resource](RawColor.md.html)
- [RawDimen: Flags dimensions that are not defined as resource](RawDimen.md.html)
+ - [RequestInstallPackagesPolicy: Request Install Packages Insights](RequestInstallPackagesPolicy.md.html)
- [ResourcesGetColorCall: Marks usage of deprecated getColor() on Resources](ResourcesGetColorCall.md.html)
- [ResourcesGetColorStateListCall: Marks usage of deprecated getColorStateList() on Resources](ResourcesGetColorStateListCall.md.html)
- [ResourcesGetDrawableCall: Marks usage of deprecated getDrawable() on Resources](ResourcesGetDrawableCall.md.html)
@@ -849,6 +893,7 @@
- [RxJava2SchedulersFactoryCall: Instead of calling the Schedulers factory methods directly inject the Schedulers](RxJava2SchedulersFactoryCall.md.html)
- [RxJava2SubscribeMissingOnError: Flags a version of the subscribe() method without an error Consumer](RxJava2SubscribeMissingOnError.md.html)
- [ShouldUseStaticImport: Flags declarations that should be statically imported](ShouldUseStaticImport.md.html)
+ - [SmsAndCallLogPolicy: SMS/Call Log Insights](SmsAndCallLogPolicy.md.html)
- [StringFormatInTimber: Logging call with Timber contains String#format()](StringFormatInTimber.md.html)
- [StringNotCapitalized: Marks strings which are not capitalized](StringNotCapitalized.md.html)
- [SuperfluousMarginDeclaration: Flags margin declarations that can be simplified](SuperfluousMarginDeclaration.md.html)
@@ -862,6 +907,7 @@
- [Todo: Marks todos in any given file](Todo.md.html)
- [UnsupportedLayoutAttribute: Marks layout attributes which are not supported](UnsupportedLayoutAttribute.md.html)
- [UnusedMergeAttributes: Flags android and app attributes that are used on a attribute for custom Views](UnusedMergeAttributes.md.html)
+ - [VpnServicePolicy: VPN Service Insights](VpnServicePolicy.md.html)
- [WrongAnnotationOrder: Checks that Annotations comply with a certain order](WrongAnnotationOrder.md.html)
- [WrongConstraintLayoutUsage: Marks a wrong usage of the Constraint Layout](WrongConstraintLayoutUsage.md.html)
- [WrongDrawableName: Drawable names should be prefixed accordingly](WrongDrawableName.md.html)
diff --git a/docs/internal/guidelines.md.html b/docs/internal/guidelines.md.html
index 2cb0de16..460b419b 100644
--- a/docs/internal/guidelines.md.html
+++ b/docs/internal/guidelines.md.html
@@ -7,7 +7,8 @@
# Setup
To develop lint, use a recent IntelliJ, check out the Android tools
-repository and then open up the folder `tools/` as a Gradle project.
+repository and then open up the folder `tools/adt/idea` as an IntelliJ
+project.
# Code
diff --git a/docs/usage/agp-dsl.md.html b/docs/usage/agp-dsl.md.html
index bf5c66a6..d304350d 100644
--- a/docs/usage/agp-dsl.md.html
+++ b/docs/usage/agp-dsl.md.html
@@ -16,7 +16,7 @@
htmlOutput = file("lint-report.html")
textReport = true
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Tip
The lint options block was called `lintOptions` until 7.0. You can
@@ -41,7 +41,7 @@
textReport = true
}
}
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Configuring Issues and Severity
diff --git a/docs/usage/changes.md.html b/docs/usage/changes.md.html
index 4280fa9c..61292fc6 100644
--- a/docs/usage/changes.md.html
+++ b/docs/usage/changes.md.html
@@ -13,6 +13,39 @@
`Aligned16KB` | Native library dependency not 16 KB aligned
`TrimLambda` | Unnecessary lambda with `trim()`
`UnnecessaryArrayInit` | Unnecessary array initialization
+ `CoreLibDesugaringV1` | Android 15 requires `desugar_jdk_libs` 2.+
+ `RequiresWindowSdk` | API requires a `WindowSdkExtensions.extensionVersion` check
+ `WrongGradleKtsMethod` | Wrong Gradle method invoked
+
+* Normally, when analyzing test sources, lint only runs a
+ small set of lint checks -- those that specifically apply to tests,
+ such as `IgnoreWithoutReason` (using `@Ignore` without a reason
+ parameter in a test declaration). However, if you don't want to
+ turn on all lint checks on test sources (via the `checkTestSources`
+ flag or Gradle DSL option), you can opt in individual lint checks
+ via a [lint XML file](lintxml.md.html) option like the following:
+
+ ```xml
+
+
+
+ ```
+
+* Lint now warns when there are newer versions of Gradle available for the
+ gradle wrapper properties file. Similarly, the
+ [NewerVersionAvailable](../checks/NewerVersionAvailable.md.html)
+ check is now enabled by default.
+
+* Lint now applies the same checks for `minSdkVersion`, `targetSdkVersion` and
+ `compileSdkVersion` that it already provides for `build.gradle` and `build.gradle.kts`
+ files to definitions of these values in version catalogs (`libs.versions.toml`),
+ provided they're using one of a few standard key names, such as
+ ```toml
+ [versions]
+ compileSdk = "34"
+ minSdk = "15"
+ targetSdk = "34"
+ ```
**8.9**
diff --git a/docs/usage/lintxml.md.html b/docs/usage/lintxml.md.html
index 62441636..6b95950a 100644
--- a/docs/usage/lintxml.md.html
+++ b/docs/usage/lintxml.md.html
@@ -25,6 +25,8 @@
the special value “all”, which will match all issue id's. And when
configuring severity, the id is also allowed to be a category, such
as “Security”.
+- `severity`: The severity level (fatal, error, warning, ignore) to use
+ instead of whatever the default is
- `in`: Specifies that this configuration only applies when lint
runs in the given hosts. There are predefined names for various
integrations of lint; “gradle” refers to lint running in the Gradle
@@ -35,6 +37,15 @@
you can also add a “!” in front of each host to negate the check. For
example, to enable a check anywhere except when running in Studio,
use `in="!studio"`.
+- `tests`: Normally, when analyzing test sources, lint only runs a
+ small set of lint checks -- those that specifically apply to tests,
+ such as `IgnoreWithoutReason` (using `@Ignore` without a reason
+ parameter in a test declaration). However, if you don't want to
+ turn on all lint checks on test sources, with the `checkTestSources`
+ attribute set to true on the root `` element (or via command
+ line flags or Gradle DSL options), you can individually opt in
+ specific issues with a `checks="true"` attribute, e.g.
+ ``.
In addition, the element can specify one or more children:
@@ -82,6 +93,21 @@
running in Studio and a configuration specifies
“!gradle”, this will match after the other attempts.
+!!! Tip
+ While you can place `lint.xml` files within your source folders
+ to apply to a specific file or directory, there are a couple of
+ restrictions where you can only set the configuration at the
+ project level. First, you cannot change the severity of a
+ disabled by default issue back to enabled, and similarly you
+ can't use the `tests` attribute below the project level either.
+ The reason for this is that lint configures the set of detectors
+ to be run at the project level. When issues are found, it will
+ check the nearest lint.xml file to see if there's a new severity
+ or ignore option to apply to override the current settings for
+ the issue, but this doesn't happen if the detector isn't running
+ at all (and lint doesn't run all detectors all the time, just
+ in case they're needed at the file level, for performance reasons.)
+
## Sample lint.xml file
Typically lint.xml files are pretty short and simple, but here's
diff --git a/docs/usage/newer-lint.md.html b/docs/usage/newer-lint.md.html
index 9ea16d94..d233f455 100644
--- a/docs/usage/newer-lint.md.html
+++ b/docs/usage/newer-lint.md.html
@@ -40,7 +40,7 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~properties
android.experimental.lint.version = 7.1.0-beta01
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Warning
This feature flag is experimental and will change once the flag is
@@ -82,6 +82,6 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~properties
#noinspection GradleDependency
android.experimental.lint.version=8.0.0
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 41d9927a..9bbc975c 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 48c0a02c..37f853b1 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index 1b6c7873..faf93008 100755
--- a/gradlew
+++ b/gradlew
@@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+# SPDX-License-Identifier: Apache-2.0
+#
##############################################################################
#
@@ -55,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
-# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,13 +82,11 @@ do
esac
done
-APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
-
-APP_NAME="Gradle"
+# This is normally unused
+# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -133,22 +133,29 @@ location of your Java installation."
fi
else
JAVACMD=java
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
+ fi
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -193,11 +200,15 @@ if "$cygwin" || "$msys" ; then
done
fi
-# Collect all arguments for the java command;
-# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
-# shell script including quotes and variable substitutions, so put them in
-# double quotes to make sure that they get re-expanded; and
-# * put everything else in single quotes, so that it's not re-expanded.
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
@@ -205,6 +216,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \
"$@"
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
diff --git a/gradlew.bat b/gradlew.bat
index 107acd32..9d21a218 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -13,8 +13,10 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
-@if "%DEBUG%" == "" @echo off
+@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@@ -25,7 +27,8 @@
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@@ -40,13 +43,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
+if %ERRORLEVEL% equ 0 goto execute
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
@@ -56,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
@@ -75,13 +78,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
:end
@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
+if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal