Start running Metalava with --api-lint
- Move to naming *.ignore files as baseline to match metalava naming
- Add new api_lint.ignore API baselines to suppress existing API lint issues.
- Add a new task ./gradlew updateApiLintBaseline
Bug: 135478003
Test: ./gradlew checkApi --> passes
Change-Id: Ic5ba99f426973c7d756d04a23598636c7252ab1d
diff --git a/activity/activity-ktx/api/api_lint.ignore b/activity/activity-ktx/api/api_lint.ignore
new file mode 100644
index 0000000..285b745
--- /dev/null
+++ b/activity/activity-ktx/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+RegistrationName: androidx.activity.OnBackPressedDispatcherKt#addCallback(androidx.activity.OnBackPressedDispatcher, androidx.lifecycle.LifecycleOwner, boolean, kotlin.jvm.functions.Function1<? super androidx.activity.OnBackPressedCallback,kotlin.Unit>):
+ Callback methods should be named register/unregister; was addCallback
diff --git a/activity/activity/api/api_lint.ignore b/activity/activity/api/api_lint.ignore
new file mode 100644
index 0000000..da1d0a9
--- /dev/null
+++ b/activity/activity/api/api_lint.ignore
@@ -0,0 +1,13 @@
+// Baseline format: 1.0
+CallbackMethodName: androidx.activity.OnBackPressedCallback:
+ Callback method names must follow the on<Something> style: setEnabled
+
+
+ForbiddenSuperClass: androidx.activity.ComponentActivity:
+ ComponentActivity should not extend `Activity`. Activity subclasses are impossible to compose. Expose a composable API instead.
+
+
+RegistrationName: androidx.activity.OnBackPressedDispatcher#addCallback(androidx.activity.OnBackPressedCallback):
+ Callback methods should be named register/unregister; was addCallback
+RegistrationName: androidx.activity.OnBackPressedDispatcher#addCallback(androidx.lifecycle.LifecycleOwner, androidx.activity.OnBackPressedCallback):
+ Callback methods should be named register/unregister; was addCallback
diff --git a/appcompat/api/api_lint.ignore b/appcompat/api/api_lint.ignore
new file mode 100644
index 0000000..7c227b9
--- /dev/null
+++ b/appcompat/api/api_lint.ignore
@@ -0,0 +1,31 @@
+// Baseline format: 1.0
+AcronymName: androidx.appcompat.widget.AppCompatImageButton#setImageURI(android.net.Uri):
+ Acronyms should not be capitalized in method names: was `setImageURI`, should this be `setImageUri`?
+AcronymName: androidx.appcompat.widget.AppCompatImageView#setImageURI(android.net.Uri):
+ Acronyms should not be capitalized in method names: was `setImageURI`, should this be `setImageUri`?
+
+
+ContextFirst: androidx.appcompat.app.AppCompatDelegate#createView(android.view.View, String, android.content.Context, android.util.AttributeSet) parameter #2:
+ Context is distinct, so it must be the first argument (method `createView`)
+
+
+ForbiddenSuperClass: androidx.appcompat.app.AppCompatActivity:
+ AppCompatActivity should not extend `Activity`. Activity subclasses are impossible to compose. Expose a composable API instead.
+
+
+ParcelConstructor: androidx.appcompat.widget.Toolbar.SavedState#SavedState(android.os.Parcel):
+ Parcelable inflation is exposed through CREATOR, not raw constructors, in androidx.appcompat.widget.Toolbar.SavedState
+
+
+ParcelCreator: androidx.appcompat.widget.Toolbar.SavedState:
+ Parcelable requires `public int describeContents()`; missing in androidx.appcompat.widget.Toolbar.SavedState
+
+
+ParcelNotFinal: androidx.appcompat.widget.Toolbar.SavedState:
+ Parcelable classes must be final: androidx.appcompat.widget.Toolbar.SavedState is not final
+
+
+VisiblySynchronized: androidx.appcompat.widget.AppCompatRatingBar#onMeasure(int, int):
+ Internal locks must not be exposed: method androidx.appcompat.widget.AppCompatRatingBar.onMeasure(int,int)
+VisiblySynchronized: androidx.appcompat.widget.AppCompatSeekBar#onDraw(android.graphics.Canvas):
+ Internal locks must not be exposed: method androidx.appcompat.widget.AppCompatSeekBar.onDraw(android.graphics.Canvas)
diff --git a/benchmark/api/api_lint.ignore b/benchmark/api/api_lint.ignore
new file mode 100644
index 0000000..0a0591c
--- /dev/null
+++ b/benchmark/api/api_lint.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+DocumentExceptions: androidx.benchmark.BenchmarkRule#getState():
+ Method BenchmarkRule.getState appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.benchmark.BenchmarkState#pauseTiming():
+ Method BenchmarkState.pauseTiming appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.benchmark.BenchmarkState#resumeTiming():
+ Method BenchmarkState.resumeTiming appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
diff --git a/browser/api/api_lint.ignore b/browser/api/api_lint.ignore
new file mode 100644
index 0000000..880cc30
--- /dev/null
+++ b/browser/api/api_lint.ignore
@@ -0,0 +1,73 @@
+// Baseline format: 1.0
+AcronymName: androidx.browser.customtabs.CustomTabsIntent#setAlwaysUseBrowserUI(android.content.Intent):
+ Acronyms should not be capitalized in method names: was `setAlwaysUseBrowserUI`, should this be `setAlwaysUseBrowserUi`?
+AcronymName: androidx.browser.customtabs.CustomTabsIntent#shouldAlwaysUseBrowserUI(android.content.Intent):
+ Acronyms should not be capitalized in method names: was `shouldAlwaysUseBrowserUI`, should this be `shouldAlwaysUseBrowserUi`?
+
+
+ActionValue: androidx.browser.browseractions.BrowserActionsIntent#ACTION_BROWSER_ACTIONS_OPEN:
+ Inconsistent action value; expected `androidx.browser.browseractions.action.BROWSER_ACTIONS_OPEN`, was `androidx.browser.browseractions.browser_action_open`
+ActionValue: androidx.browser.browseractions.BrowserActionsIntent#EXTRA_APP_ID:
+ Inconsistent extra value; expected `androidx.browser.browseractions.extra.APP_ID`, was `androidx.browser.browseractions.APP_ID`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_ACTION_BUTTON_BUNDLE:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.ACTION_BUTTON_BUNDLE`, was `android.support.customtabs.extra.ACTION_BUTTON_BUNDLE`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_CLOSE_BUTTON_ICON:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.CLOSE_BUTTON_ICON`, was `android.support.customtabs.extra.CLOSE_BUTTON_ICON`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_DEFAULT_SHARE_MENU_ITEM:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.DEFAULT_SHARE_MENU_ITEM`, was `android.support.customtabs.extra.SHARE_MENU_ITEM`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_ENABLE_INSTANT_APPS:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.ENABLE_INSTANT_APPS`, was `android.support.customtabs.extra.EXTRA_ENABLE_INSTANT_APPS`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_ENABLE_URLBAR_HIDING:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.ENABLE_URLBAR_HIDING`, was `android.support.customtabs.extra.ENABLE_URLBAR_HIDING`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_EXIT_ANIMATION_BUNDLE:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.EXIT_ANIMATION_BUNDLE`, was `android.support.customtabs.extra.EXIT_ANIMATION_BUNDLE`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_MENU_ITEMS:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.MENU_ITEMS`, was `android.support.customtabs.extra.MENU_ITEMS`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_REMOTEVIEWS:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.REMOTEVIEWS`, was `android.support.customtabs.extra.EXTRA_REMOTEVIEWS`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_REMOTEVIEWS_CLICKED_ID:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.REMOTEVIEWS_CLICKED_ID`, was `android.support.customtabs.extra.EXTRA_REMOTEVIEWS_CLICKED_ID`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_REMOTEVIEWS_PENDINGINTENT:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.REMOTEVIEWS_PENDINGINTENT`, was `android.support.customtabs.extra.EXTRA_REMOTEVIEWS_PENDINGINTENT`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_REMOTEVIEWS_VIEW_IDS:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.REMOTEVIEWS_VIEW_IDS`, was `android.support.customtabs.extra.EXTRA_REMOTEVIEWS_VIEW_IDS`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_SECONDARY_TOOLBAR_COLOR:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.SECONDARY_TOOLBAR_COLOR`, was `android.support.customtabs.extra.SECONDARY_TOOLBAR_COLOR`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_SESSION:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.SESSION`, was `android.support.customtabs.extra.SESSION`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_TINT_ACTION_BUTTON:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.TINT_ACTION_BUTTON`, was `android.support.customtabs.extra.TINT_ACTION_BUTTON`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_TITLE_VISIBILITY_STATE:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.TITLE_VISIBILITY_STATE`, was `android.support.customtabs.extra.TITLE_VISIBILITY`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_TOOLBAR_COLOR:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.TOOLBAR_COLOR`, was `android.support.customtabs.extra.TOOLBAR_COLOR`
+ActionValue: androidx.browser.customtabs.CustomTabsIntent#EXTRA_TOOLBAR_ITEMS:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.TOOLBAR_ITEMS`, was `android.support.customtabs.extra.TOOLBAR_ITEMS`
+ActionValue: androidx.browser.customtabs.CustomTabsService#ACTION_CUSTOM_TABS_CONNECTION:
+ Inconsistent action value; expected `androidx.browser.customtabs.action.CUSTOM_TABS_CONNECTION`, was `android.support.customtabs.action.CustomTabsService`
+ActionValue: androidx.browser.customtabs.TrustedWebUtils#EXTRA_LAUNCH_AS_TRUSTED_WEB_ACTIVITY:
+ Inconsistent extra value; expected `androidx.browser.customtabs.extra.LAUNCH_AS_TRUSTED_WEB_ACTIVITY`, was `android.support.customtabs.extra.LAUNCH_AS_TRUSTED_WEB_ACTIVITY`
+
+
+AutoBoxing: androidx.browser.customtabs.CustomTabColorSchemeParams#navigationBarColor:
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.browser.customtabs.CustomTabColorSchemeParams#secondaryToolbarColor:
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.browser.customtabs.CustomTabColorSchemeParams#toolbarColor:
+ Must avoid boxed primitives (`java.lang.Integer`)
+
+
+CallbackMethodName: androidx.browser.customtabs.CustomTabsCallback:
+ Callback method names must follow the on<Something> style: extraCallback
+
+
+ConcreteCollection: androidx.browser.browseractions.BrowserActionsIntent#openBrowserAction(android.content.Context, android.net.Uri, int, java.util.ArrayList<androidx.browser.browseractions.BrowserActionItem>, android.app.PendingIntent) parameter #3:
+ Parameter type is concrete collection (`java.util.ArrayList`); must be higher-level interface
+ConcreteCollection: androidx.browser.browseractions.BrowserActionsIntent#parseBrowserActionItems(java.util.ArrayList<android.os.Bundle>) parameter #0:
+ Parameter type is concrete collection (`java.util.ArrayList`); must be higher-level interface
+ConcreteCollection: androidx.browser.browseractions.BrowserActionsIntent.Builder#setCustomItems(java.util.ArrayList<androidx.browser.browseractions.BrowserActionItem>) parameter #0:
+ Parameter type is concrete collection (`java.util.ArrayList`); must be higher-level interface
+
+
+IntentName: androidx.browser.browseractions.BrowserActionsIntent#KEY_ACTION:
+ Intent action constant name must be ACTION_FOO: KEY_ACTION
diff --git a/buildSrc/src/main/kotlin/androidx/build/checkapi/ApiLocation.kt b/buildSrc/src/main/kotlin/androidx/build/checkapi/ApiLocation.kt
index 31ccc32..4002616 100644
--- a/buildSrc/src/main/kotlin/androidx/build/checkapi/ApiLocation.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/checkapi/ApiLocation.kt
@@ -23,6 +23,8 @@
// An ApiLocation contains the filepath of a public API and restricted API of a library
data class ApiLocation(
+ // file specifying the directory of API files for the library
+ val apiFileDirectory: File,
// file specifying the public API of the library
val publicApiFile: File,
// file specifying the restricted API (marked by the RestrictTo annotation) of the library
@@ -44,6 +46,7 @@
companion object {
fun fromPublicApiFile(f: File): ApiLocation {
return ApiLocation(
+ f.parentFile,
f,
File(f.parentFile, "restricted_" + f.name),
File(f.parentFile, "res-" + f.name)
@@ -52,21 +55,28 @@
}
}
-// An ApiViolationExclusions contains the paths of the API exclusions files for an API
-data class ApiViolationExclusions(
+// An ApiViolationBaselines contains the paths of the API baselines files for an API
+data class ApiViolationBaselines(
val publicApiFile: File,
- val restrictedApiFile: File
+ val restrictedApiFile: File,
+ val apiLintFile: File
) : Serializable {
fun files() = listOf(publicApiFile, restrictedApiFile)
companion object {
- fun fromApiLocation(apiLocation: ApiLocation): ApiViolationExclusions {
- val publicExclusionsFile =
+ fun fromApiLocation(apiLocation: ApiLocation): ApiViolationBaselines {
+ val publicBaselineFile =
File(apiLocation.publicApiFile.toString().removeSuffix(".txt") + ".ignore")
- val restrictedExclusionsFile =
+ val restrictedBaselineFile =
File(apiLocation.restrictedApiFile.toString().removeSuffix(".txt") + ".ignore")
- return ApiViolationExclusions(publicExclusionsFile, restrictedExclusionsFile)
+ val apiLintBaselineFile =
+ File(apiLocation.apiFileDirectory, "api_lint.ignore")
+ return ApiViolationBaselines(
+ publicBaselineFile,
+ restrictedBaselineFile,
+ apiLintBaselineFile
+ )
}
}
}
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/CheckApiCompatibilityTask.kt b/buildSrc/src/main/kotlin/androidx/build/metalava/CheckApiCompatibilityTask.kt
index 3cbc3c2..0481504 100644
--- a/buildSrc/src/main/kotlin/androidx/build/metalava/CheckApiCompatibilityTask.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/metalava/CheckApiCompatibilityTask.kt
@@ -17,7 +17,7 @@
package androidx.build.metalava
import androidx.build.checkapi.ApiLocation
-import androidx.build.checkapi.ApiViolationExclusions
+import androidx.build.checkapi.ApiViolationBaselines
import org.gradle.api.provider.Property
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFiles
@@ -32,7 +32,7 @@
abstract val referenceApi: Property<ApiLocation>
// Text file listing violations that should be ignored
@get:Input
- abstract val exclusions: Property<ApiViolationExclusions>
+ abstract val baselines: Property<ApiViolationBaselines>
// Whether to confirm that no restricted APIs were removed since the previous release
@get:Input
@@ -41,9 +41,9 @@
@InputFiles
fun getTaskInputs(): List<File> {
if (checkRestrictedAPIs) {
- return referenceApi.get().files() + exclusions.get().files()
+ return referenceApi.get().files() + baselines.get().files()
}
- return listOf(referenceApi.get().publicApiFile, exclusions.get().publicApiFile)
+ return listOf(referenceApi.get().publicApiFile, baselines.get().publicApiFile)
}
// Declaring outputs prevents Gradle from rerunning this task if the inputs haven't changed
@@ -56,17 +56,17 @@
fun exec() {
check(bootClasspath.isNotEmpty()) { "Android boot classpath not set." }
- checkApiFile(referenceApi.get().publicApiFile, exclusions.get().publicApiFile, false)
+ checkApiFile(referenceApi.get().publicApiFile, baselines.get().publicApiFile, false)
if (checkRestrictedAPIs) {
checkApiFile(referenceApi.get().restrictedApiFile,
- exclusions.get().restrictedApiFile,
+ baselines.get().restrictedApiFile,
true)
}
}
// Confirms that the public API of this library (or the restricted API, if <checkRestrictedAPIs> is set
- // is compatible with <apiFile> except for any exclusions listed in <exclusionsFile>
- fun checkApiFile(apiFile: File, exclusionsFile: File, checkRestrictedAPIs: Boolean) {
+ // is compatible with <apiFile> except for any baselines listed in <baselineFile>
+ fun checkApiFile(apiFile: File, baselineFile: File, checkRestrictedAPIs: Boolean) {
var args = listOf("--classpath",
(bootClasspath + dependencyClasspath!!.files).joinToString(File.pathSeparator),
@@ -79,8 +79,8 @@
"--warnings-as-errors",
"--format=v3"
)
- if (exclusionsFile.exists()) {
- args = args + listOf("--baseline", exclusionsFile.toString())
+ if (baselineFile.exists()) {
+ args = args + listOf("--baseline", baselineFile.toString())
}
if (checkRestrictedAPIs) {
args = args + listOf("--show-annotation", "androidx.annotation.RestrictTo")
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/GenerateApiTask.kt b/buildSrc/src/main/kotlin/androidx/build/metalava/GenerateApiTask.kt
index 65877a1..39598e3 100644
--- a/buildSrc/src/main/kotlin/androidx/build/metalava/GenerateApiTask.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/metalava/GenerateApiTask.kt
@@ -17,8 +17,11 @@
package androidx.build.metalava
import androidx.build.checkapi.ApiLocation
+import androidx.build.checkapi.ApiViolationBaselines
import org.gradle.api.provider.Property
import org.gradle.api.tasks.Input
+import org.gradle.api.tasks.InputFile
+import org.gradle.api.tasks.Optional
import org.gradle.api.tasks.OutputFiles
import org.gradle.api.tasks.TaskAction
import java.io.File
@@ -30,8 +33,18 @@
abstract val apiLocation: Property<ApiLocation>
@get:Input
+ abstract val baselines: Property<ApiViolationBaselines>
+
+ @get:Input
var generateRestrictedAPIs = false
+ @Optional
+ @InputFile
+ fun getApiLintBaseline(): File? {
+ val baseline = baselines.get().apiLintFile
+ return if (baseline.exists()) baseline else null
+ }
+
@OutputFiles
fun getTaskOutputs(): List<File>? {
if (generateRestrictedAPIs) {
@@ -52,7 +65,7 @@
dependencyClasspath,
sourcePaths,
apiLocation.get().publicApiFile,
- false
+ GenerateApiMode.PublicApi(baselines.get().apiLintFile)
)
if (generateRestrictedAPIs) {
@@ -61,7 +74,7 @@
dependencyClasspath,
sourcePaths,
apiLocation.get().restrictedApiFile,
- true
+ GenerateApiMode.RestrictedApi
)
}
}
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/IgnoreApiChangesTask.kt b/buildSrc/src/main/kotlin/androidx/build/metalava/IgnoreApiChangesTask.kt
deleted file mode 100644
index 2550f78..0000000
--- a/buildSrc/src/main/kotlin/androidx/build/metalava/IgnoreApiChangesTask.kt
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package androidx.build.metalava
-
-import androidx.build.checkapi.ApiLocation
-import androidx.build.checkapi.ApiViolationExclusions
-import com.google.common.io.Files
-import org.gradle.api.provider.Property
-import org.gradle.api.tasks.Input
-import org.gradle.api.tasks.InputFiles
-import org.gradle.api.tasks.OutputFiles
-import org.gradle.api.tasks.TaskAction
-import java.io.File
-
-// Updates an API tracking exceptions file (api/*.*.*.ignore) to match the current set of violations
-abstract class IgnoreApiChangesTask : MetalavaTask() {
- // The API that the library is supposed to be compatible with
- @get:Input
- abstract val referenceApi: Property<ApiLocation>
-
- // The exclusions files (api/*.*.*.ignore) to update
- @get:Input
- abstract val exclusions: Property<ApiViolationExclusions>
-
- // Whether to update the file having restricted APIs too
- @get:Input
- var processRestrictedAPIs = false
-
- // Path of temporary api-changes exemptions file
- abstract val intermediateExclusionsFile: Property<File>
-
- @InputFiles
- fun getTaskInputs(): List<File> {
- if (processRestrictedAPIs) {
- return referenceApi.get().files()
- }
- return listOf(referenceApi.get().publicApiFile)
- }
-
- // Declaring outputs prevents Gradle from rerunning this task if the inputs haven't changed
- @OutputFiles
- fun getTaskOutputs(): List<File>? {
- if (processRestrictedAPIs) {
- return exclusions.get().files()
- }
- return listOf(exclusions.get().publicApiFile)
- }
-
- @TaskAction
- fun exec() {
- check(bootClasspath.isNotEmpty()) { "Android boot classpath not set." }
-
- updateExclusions(referenceApi.get().publicApiFile, exclusions.get().publicApiFile, false)
- if (processRestrictedAPIs && referenceApi.get().restrictedApiFile.exists()) {
- updateExclusions(referenceApi.get().restrictedApiFile,
- exclusions.get().restrictedApiFile,
- true)
- }
- }
-
- // Updates the contents of exclusionsFile to specify an exception for every API present in apiFile but not
- // present in the current source path
- fun updateExclusions(apiFile: File, exclusionsFile: File, processRestrictedAPIs: Boolean) {
- val intermediateExclusions = intermediateExclusionsFile.get()
- intermediateExclusions.parentFile.mkdirs()
- intermediateExclusions.createNewFile()
-
- var args = listOf("--classpath",
- (bootClasspath + dependencyClasspath!!.files).joinToString(File.pathSeparator),
-
- "--source-path",
- sourcePaths.filter { it.exists() }.joinToString(File.pathSeparator),
-
- "--check-compatibility:api:released",
- apiFile.toString(),
-
- "--update-baseline",
- intermediateExclusions.toString(),
- "--baseline", intermediateExclusions.toString(),
- "--pass-baseline-updates",
-
- "--format=v3",
- "--omit-common-packages=yes"
- )
- if (processRestrictedAPIs) {
- args = args + listOf("--show-annotation", "androidx.annotation.RestrictTo")
- }
- runWithArgs(args)
-
- var moreThanHeader = false
- intermediateExclusions.forEachLine {
- if (!it.startsWith("// Baseline format: ")) {
- moreThanHeader = true
- return@forEachLine
- }
- }
- if (moreThanHeader) {
- Files.copy(intermediateExclusions, exclusionsFile)
- } else {
- if (exclusionsFile.exists()) {
- exclusionsFile.delete()
- }
- }
- }
-}
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt b/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
index f2874d3..ab1575b 100644
--- a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
@@ -38,29 +38,78 @@
it.args = listOf(
"--no-banner",
"--error",
- "DeprecationMismatch", // Enforce deprecation mismatch
- "--hide",
- "HiddenSuperclass" // We allow having a hidden parent class
+ "DeprecationMismatch" // Enforce deprecation mismatch
) + args
}
}
+val API_LINT_ARGS: List<String> = listOf(
+ "--api-lint",
+ "--hide",
+ listOf(
+ // The list of checks that are hidden as they are not useful in androidx
+ "Enum", // Enums are allowed to be use in androidx
+ "CallbackInterface", // With target Java 8, we have default methods
+ "HiddenSuperclass", // We allow having a hidden parent class
+ "ProtectedMember", // We allow using protected members in androidx
+ "ManagerLookup", // Managers in androidx are not the same as platfrom services
+ "ManagerConstructor",
+
+ // List of checks that have bugs, but should be enabled once fixed.
+ "GetterSetterNames", // b/135498039
+ "StaticUtils", // b/135489083
+ "AllUpper", // b/135708486
+ "StartWithLower", // b/135710527
+
+ // The list of checks that are API lint warnings and are yet to be enabled
+ "MinMaxConstant",
+ "IntentBuilderName",
+ "OnNameExpected",
+ "TopLevelBuilder",
+ "MissingBuild",
+ "BuilderSetStyle",
+ "SetterReturnsThis",
+ "PackageLayering",
+ "OverlappingConstants",
+ "IllegalStateException",
+ "ListenerLast",
+ "ExecutorRegistration",
+ "StreamFiles",
+ "ParcelableList",
+ "AbstractInner",
+ "NotCloseable",
+ "ArrayReturn",
+ "UserHandle",
+ "UserHandleName",
+ "MethodNameTense",
+ "UseIcu",
+ "NoByteOrShort",
+ "CommonArgsFirst",
+ "SamShouldBeLast",
+ "MissingJvmStatic"
+ ).joinToString()
+)
+
+sealed class GenerateApiMode {
+ class PublicApi(val apiLintBaseline: File) : GenerateApiMode()
+ object RestrictedApi : GenerateApiMode()
+}
+
fun Project.generateApi(
bootClasspath: Collection<File>,
dependencyClasspath: FileCollection,
sourcePaths: Collection<File>,
outputFile: File,
- includeRestrictedApis: Boolean
+ generateApiMode: GenerateApiMode
) {
-
- val tempOutputFile = if (includeRestrictedApis) {
+ val tempOutputFile = if (generateApiMode is GenerateApiMode.RestrictedApi) {
File(outputFile.path + ".tmp")
} else {
outputFile
}
// generate public API txt
- var args = listOf("--classpath",
+ val args = mutableListOf("--classpath",
(bootClasspath + dependencyClasspath.files).joinToString(File.pathSeparator),
"--source-path",
@@ -73,15 +122,23 @@
"--output-kotlin-nulls=yes"
)
- if (includeRestrictedApis) {
- args = args + listOf("--show-annotation", "androidx.annotation.RestrictTo")
+ when (generateApiMode) {
+ is GenerateApiMode.PublicApi -> {
+ args += API_LINT_ARGS
+ if (generateApiMode.apiLintBaseline.exists()) {
+ args += listOf("--baseline", generateApiMode.apiLintBaseline.toString())
+ }
+ }
+ is GenerateApiMode.RestrictedApi -> {
+ args += listOf("--show-annotation", "androidx.annotation.RestrictTo")
+ }
}
val metalavaConfiguration = getMetalavaConfiguration()
runMetalavaWithArgs(metalavaConfiguration, args)
- if (includeRestrictedApis) {
+ if (generateApiMode is GenerateApiMode.RestrictedApi) {
removeRestrictToLibraryLines(tempOutputFile, outputFile)
}
}
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaTasks.kt b/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaTasks.kt
index 94adfba..534bc88 100644
--- a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaTasks.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaTasks.kt
@@ -19,7 +19,7 @@
import androidx.build.AndroidXPlugin.Companion.BUILD_ON_SERVER_TASK
import androidx.build.AndroidXExtension
import androidx.build.checkapi.ApiLocation
-import androidx.build.checkapi.ApiViolationExclusions
+import androidx.build.checkapi.ApiViolationBaselines
import androidx.build.checkapi.getCurrentApiLocation
import androidx.build.checkapi.getRequiredCompatibilityApiLocation
import androidx.build.checkapi.hasApiFolder
@@ -112,6 +112,8 @@
val builtApiLocation = ApiLocation.fromPublicApiFile(
File(project.docsDir(), "release/${project.name}/current.txt"))
+ val baselines = ApiViolationBaselines.fromApiLocation(libraryVersionApi)
+
val generateApi = project.tasks.register("generateApi", GenerateApiTask::class.java) {
task ->
task.group = "API"
@@ -119,12 +121,12 @@
task.apiLocation.set(builtApiLocation)
task.configuration = metalavaConfiguration
task.generateRestrictedAPIs = extension.trackRestrictedAPIs
+ task.baselines.set(baselines)
task.dependsOn(metalavaConfiguration)
applyInputs(javaCompileInputs, task)
}
var checkApiRelease: TaskProvider<CheckApiCompatibilityTask>? = null
- val exclusions = ApiViolationExclusions.fromApiLocation(libraryVersionApi)
project.getRequiredCompatibilityApiLocation()?.let { lastReleasedApiFile ->
checkApiRelease = project.tasks.register(
@@ -133,7 +135,7 @@
) { task ->
task.configuration = metalavaConfiguration
task.referenceApi.set(lastReleasedApiFile)
- task.exclusions.set(exclusions)
+ task.baselines.set(baselines)
task.dependsOn(metalavaConfiguration)
task.checkRestrictedAPIs = extension.trackRestrictedAPIs
applyInputs(javaCompileInputs, task)
@@ -142,14 +144,21 @@
project.tasks.register("ignoreApiChanges", IgnoreApiChangesTask::class.java) { task ->
task.configuration = metalavaConfiguration
task.referenceApi.set(checkApiRelease!!.flatMap { it.referenceApi })
- task.exclusions.set(checkApiRelease!!.flatMap { it.exclusions })
- task.processRestrictedAPIs = extension.trackRestrictedAPIs
- task.intermediateExclusionsFile.set(
- File(project.docsDir(), "release/${project.name}/api-changes.ignore"))
+ task.baselines.set(checkApiRelease!!.flatMap { it.baselines })
+ task.processRestrictedApis = extension.trackRestrictedAPIs
applyInputs(javaCompileInputs, task)
}
}
+ project.tasks.register(
+ "updateApiLintBaseline",
+ UpdateApiLintBaselineTask::class.java
+ ) { task ->
+ task.configuration = metalavaConfiguration
+ task.baselines.set(baselines)
+ applyInputs(javaCompileInputs, task)
+ }
+
val checkApi =
project.tasks.register("checkApi", CheckApiEquivalenceTask::class.java) { task ->
task.group = "API"
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/UpdateBaselineTasks.kt b/buildSrc/src/main/kotlin/androidx/build/metalava/UpdateBaselineTasks.kt
new file mode 100644
index 0000000..aff462b
--- /dev/null
+++ b/buildSrc/src/main/kotlin/androidx/build/metalava/UpdateBaselineTasks.kt
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package androidx.build.metalava
+
+import androidx.build.checkapi.ApiLocation
+import androidx.build.checkapi.ApiViolationBaselines
+import org.gradle.api.file.FileCollection
+import org.gradle.api.provider.Property
+import org.gradle.api.tasks.Input
+import org.gradle.api.tasks.InputFiles
+import org.gradle.api.tasks.OutputFile
+import org.gradle.api.tasks.OutputFiles
+import org.gradle.api.tasks.TaskAction
+import java.io.File
+
+abstract class UpdateApiLintBaselineTask : MetalavaTask() {
+ init {
+ description = "Updates an API lint baseline file (api/api_lint.ignore) to match the " +
+ "current set of violations"
+ }
+
+ @get:Input
+ abstract val baselines: Property<ApiViolationBaselines>
+
+ @OutputFile
+ fun getApiLintBaseline(): File = baselines.get().apiLintFile
+
+ @TaskAction
+ fun updateBaseline() {
+ check(bootClasspath.isNotEmpty()) { "Android boot classpath not set." }
+ val args = getCommonBaselineUpdateArgs(
+ bootClasspath,
+ dependencyClasspath!!,
+ sourcePaths,
+ baselines.get().apiLintFile
+ )
+ args += API_LINT_ARGS
+ runWithArgs(args)
+ }
+}
+
+abstract class IgnoreApiChangesTask : MetalavaTask() {
+ init {
+ description = "Updates an API tracking baseline file (api/X.Y.Z.ignore) to match the " +
+ "current set of violations"
+ }
+
+ // The API that the library is supposed to be compatible with
+ @get:Input
+ abstract val referenceApi: Property<ApiLocation>
+
+ // The baseline files (api/*.*.*.ignore) to update
+ @get:Input
+ abstract val baselines: Property<ApiViolationBaselines>
+
+ // Whether to update the file having restricted APIs too
+ @get:Input
+ var processRestrictedApis = false
+
+ @InputFiles
+ fun getTaskInputs(): List<File> {
+ if (processRestrictedApis) {
+ return referenceApi.get().files()
+ }
+ return listOf(referenceApi.get().publicApiFile)
+ }
+
+ // Declaring outputs prevents Gradle from rerunning this task if the inputs haven't changed
+ @OutputFiles
+ fun getTaskOutputs(): List<File>? {
+ if (processRestrictedApis) {
+ return listOf(baselines.get().publicApiFile, baselines.get().restrictedApiFile)
+ }
+ return listOf(baselines.get().publicApiFile)
+ }
+
+ @TaskAction
+ fun exec() {
+ check(bootClasspath.isNotEmpty()) { "Android boot classpath not set." }
+
+ updateBaseline(
+ referenceApi.get().publicApiFile,
+ baselines.get().publicApiFile,
+ false
+ )
+ if (processRestrictedApis && referenceApi.get().restrictedApiFile.exists()) {
+ updateBaseline(
+ referenceApi.get().restrictedApiFile,
+ baselines.get().restrictedApiFile,
+ true
+ )
+ }
+ }
+
+ // Updates the contents of baselineFile to specify an exception for every API present in apiFile but not
+ // present in the current source path
+ private fun updateBaseline(
+ apiFile: File,
+ baselineFile: File,
+ processRestrictedApis: Boolean
+ ) {
+ val args = getCommonBaselineUpdateArgs(
+ bootClasspath,
+ dependencyClasspath!!,
+ sourcePaths,
+ baselineFile
+ )
+ args += listOf(
+ "--check-compatibility:api:released",
+ apiFile.toString()
+ )
+ if (processRestrictedApis) {
+ args += listOf(
+ "--show-annotation",
+ "androidx.annotation.RestrictTo"
+ )
+ }
+ runWithArgs(args)
+ }
+}
+
+private fun getCommonBaselineUpdateArgs(
+ bootClasspath: Collection<File>,
+ dependencyClasspath: FileCollection,
+ sourcePaths: Collection<File>,
+ baselineFile: File
+): MutableList<String> {
+ // Create the baseline file if it does exist, as Metalava cannot handle non-existent files.
+ baselineFile.createNewFile()
+ return mutableListOf(
+ "--classpath",
+ (bootClasspath + dependencyClasspath.files).joinToString(File.pathSeparator),
+
+ "--source-path",
+ sourcePaths.filter { it.exists() }.joinToString(File.pathSeparator),
+
+ "--update-baseline",
+ baselineFile.toString(),
+ "--baseline", baselineFile.toString(),
+ "--pass-baseline-updates",
+ "--delete-empty-baselines",
+
+ "--format=v3",
+ "--omit-common-packages=yes"
+ )
+}
diff --git a/car/core/api/api_lint.ignore b/car/core/api/api_lint.ignore
new file mode 100644
index 0000000..ce9444c
--- /dev/null
+++ b/car/core/api/api_lint.ignore
@@ -0,0 +1,5 @@
+// Baseline format: 1.0
+KotlinOperator: androidx.car.widget.ListItemProvider#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.car.widget.ListItemProvider.ListProvider#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
diff --git a/collection/collection/api/api_lint.ignore b/collection/collection/api/api_lint.ignore
new file mode 100644
index 0000000..589b899
--- /dev/null
+++ b/collection/collection/api/api_lint.ignore
@@ -0,0 +1,55 @@
+// Baseline format: 1.0
+KotlinOperator: androidx.collection.ArraySet#contains(Object):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.collection.CircularArray#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.collection.CircularIntArray#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.collection.LongSparseArray#get(long):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.collection.LongSparseArray#get(long, E):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.collection.LruCache#get(K):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.collection.SimpleArrayMap#get(Object):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.collection.SparseArrayCompat#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.collection.SparseArrayCompat#get(int, E):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+
+
+NoClone: androidx.collection.LongSparseArray#clone():
+ Provide an explicit copy constructor instead of implementing `clone()`
+NoClone: androidx.collection.SparseArrayCompat#clone():
+ Provide an explicit copy constructor instead of implementing `clone()`
+
+
+VisiblySynchronized: androidx.collection.LruCache#createCount():
+ Internal locks must not be exposed: method androidx.collection.LruCache.createCount()
+VisiblySynchronized: androidx.collection.LruCache#evictionCount():
+ Internal locks must not be exposed: method androidx.collection.LruCache.evictionCount()
+VisiblySynchronized: androidx.collection.LruCache#get(K):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.collection.LruCache.get(K)
+VisiblySynchronized: androidx.collection.LruCache#hitCount():
+ Internal locks must not be exposed: method androidx.collection.LruCache.hitCount()
+VisiblySynchronized: androidx.collection.LruCache#maxSize():
+ Internal locks must not be exposed: method androidx.collection.LruCache.maxSize()
+VisiblySynchronized: androidx.collection.LruCache#missCount():
+ Internal locks must not be exposed: method androidx.collection.LruCache.missCount()
+VisiblySynchronized: androidx.collection.LruCache#put(K, V):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.collection.LruCache.put(K,V)
+VisiblySynchronized: androidx.collection.LruCache#putCount():
+ Internal locks must not be exposed: method androidx.collection.LruCache.putCount()
+VisiblySynchronized: androidx.collection.LruCache#remove(K):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.collection.LruCache.remove(K)
+VisiblySynchronized: androidx.collection.LruCache#resize(int):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.collection.LruCache.resize(int)
+VisiblySynchronized: androidx.collection.LruCache#size():
+ Internal locks must not be exposed: method androidx.collection.LruCache.size()
+VisiblySynchronized: androidx.collection.LruCache#snapshot():
+ Internal locks must not be exposed: method androidx.collection.LruCache.snapshot()
+VisiblySynchronized: androidx.collection.LruCache#toString():
+ Internal locks must not be exposed: method androidx.collection.LruCache.toString()
+VisiblySynchronized: androidx.collection.LruCache#trimToSize(int):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.collection.LruCache.trimToSize(int)
diff --git a/concurrent/futures/api/api_lint.ignore b/concurrent/futures/api/api_lint.ignore
new file mode 100644
index 0000000..2539658
--- /dev/null
+++ b/concurrent/futures/api/api_lint.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+GenericException: androidx.concurrent.futures.CallbackToFutureAdapter.Resolver#attachCompleter(androidx.concurrent.futures.CallbackToFutureAdapter.Completer<T>):
+ Methods must not throw generic exceptions (`java.lang.Exception`)
+
+
+PairedRegistration: androidx.concurrent.futures.CallbackToFutureAdapter.Completer#addCancellationListener(Runnable, java.util.concurrent.Executor):
+ Found addCancellationListener but not removeCancellationListener in androidx.concurrent.futures.CallbackToFutureAdapter.Completer
diff --git a/content/api/api_lint.ignore b/content/api/api_lint.ignore
new file mode 100644
index 0000000..4bd59a5b
--- /dev/null
+++ b/content/api/api_lint.ignore
@@ -0,0 +1,9 @@
+// Baseline format: 1.0
+ActionValue: androidx.contentpager.content.ContentPager#EXTRA_HONORED_ARGS:
+ Inconsistent extra value; expected `androidx.contentpager.content.extra.HONORED_ARGS`, was `android.content.extra.HONORED_ARGS`
+ActionValue: androidx.contentpager.content.ContentPager#EXTRA_REQUESTED_LIMIT:
+ Inconsistent extra value; expected `androidx.contentpager.content.extra.REQUESTED_LIMIT`, was `android-support:extra-ignored-limit`
+ActionValue: androidx.contentpager.content.ContentPager#EXTRA_SUGGESTED_LIMIT:
+ Inconsistent extra value; expected `androidx.contentpager.content.extra.SUGGESTED_LIMIT`, was `android-support:extra-suggested-limit`
+ActionValue: androidx.contentpager.content.ContentPager#EXTRA_TOTAL_COUNT:
+ Inconsistent extra value; expected `androidx.contentpager.content.extra.TOTAL_COUNT`, was `android.content.extra.TOTAL_COUNT`
diff --git a/coordinatorlayout/api/api_lint.ignore b/coordinatorlayout/api/api_lint.ignore
new file mode 100644
index 0000000..129ea6f
--- /dev/null
+++ b/coordinatorlayout/api/api_lint.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+ParcelCreator: androidx.coordinatorlayout.widget.CoordinatorLayout.SavedState:
+ Parcelable requires `public int describeContents()`; missing in androidx.coordinatorlayout.widget.CoordinatorLayout.SavedState
+
+
+ParcelNotFinal: androidx.coordinatorlayout.widget.CoordinatorLayout.SavedState:
+ Parcelable classes must be final: androidx.coordinatorlayout.widget.CoordinatorLayout.SavedState is not final
diff --git a/core/core-ktx/api/api_lint.ignore b/core/core-ktx/api/api_lint.ignore
new file mode 100644
index 0000000..642bfa7
--- /dev/null
+++ b/core/core-ktx/api/api_lint.ignore
@@ -0,0 +1,33 @@
+// Baseline format: 1.0
+AcronymName: androidx.core.database.sqlite.SQLiteDatabaseKt:
+ Acronyms should not be capitalized in class names: was `SQLiteDatabaseKt`, should this be `SqLiteDatabaseKt`?
+
+
+AutoBoxing: androidx.core.database.CursorKt#getDoubleOrNull(android.database.Cursor, int):
+ Must avoid boxed primitives (`java.lang.Double`)
+AutoBoxing: androidx.core.database.CursorKt#getFloatOrNull(android.database.Cursor, int):
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.core.database.CursorKt#getIntOrNull(android.database.Cursor, int):
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.core.database.CursorKt#getLongOrNull(android.database.Cursor, int):
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.core.database.CursorKt#getShortOrNull(android.database.Cursor, int):
+ Must avoid boxed primitives (`java.lang.Short`)
+
+
+DocumentExceptions: androidx.core.graphics.RegionKt#iterator(android.graphics.Region):
+ Method RegionKt.iterator appears to be throwing java.lang.IndexOutOfBoundsException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.core.view.MenuKt#iterator(android.view.Menu):
+ Method MenuKt.iterator appears to be throwing java.lang.IndexOutOfBoundsException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.core.view.ViewGroupKt#iterator(android.view.ViewGroup):
+ Method ViewGroupKt.iterator appears to be throwing java.lang.IndexOutOfBoundsException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+
+
+PairedRegistration: androidx.core.animation.AnimatorKt#addListener(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit>, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit>, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit>, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit>):
+ Found addListener but not removeListener in androidx.core.animation.AnimatorKt
+PairedRegistration: androidx.core.animation.AnimatorKt#addPauseListener(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit>, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit>):
+ Found addPauseListener but not removePauseListener in androidx.core.animation.AnimatorKt
+PairedRegistration: androidx.core.transition.TransitionKt#addListener(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit>, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit>, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit>, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit>, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit>):
+ Found addListener but not removeListener in androidx.core.transition.TransitionKt
+PairedRegistration: androidx.core.widget.TextViewKt#addTextChangedListener(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit>, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit>, kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit>):
+ Found addTextChangedListener but not removeTextChangedListener in androidx.core.widget.TextViewKt
diff --git a/core/core/api/api_lint.ignore b/core/core/api/api_lint.ignore
new file mode 100644
index 0000000..e607711
--- /dev/null
+++ b/core/core/api/api_lint.ignore
@@ -0,0 +1,191 @@
+// Baseline format: 1.0
+AcronymName: androidx.core.database.sqlite.SQLiteCursorCompat:
+ Acronyms should not be capitalized in class names: was `SQLiteCursorCompat`, should this be `SqLiteCursorCompat`?
+AcronymName: androidx.core.graphics.ColorUtils#blendARGB(int, int, float):
+ Acronyms should not be capitalized in method names: was `blendARGB`, should this be `blendArgb`?
+AcronymName: androidx.core.graphics.ColorUtils#blendHSL(float[], float[], float, float[]):
+ Acronyms should not be capitalized in method names: was `blendHSL`, should this be `blendHsl`?
+AcronymName: androidx.core.graphics.ColorUtils#blendLAB(double[], double[], double, double[]):
+ Acronyms should not be capitalized in method names: was `blendLAB`, should this be `blendLab`?
+AcronymName: androidx.core.graphics.ColorUtils#colorToHSL(int, float[]):
+ Acronyms should not be capitalized in method names: was `colorToHSL`, should this be `colorToHsl`?
+AcronymName: androidx.core.graphics.ColorUtils#colorToLAB(int, double[]):
+ Acronyms should not be capitalized in method names: was `colorToLAB`, should this be `colorToLab`?
+AcronymName: androidx.core.graphics.ColorUtils#colorToXYZ(int, double[]):
+ Acronyms should not be capitalized in method names: was `colorToXYZ`, should this be `colorToXyz`?
+AcronymName: androidx.core.text.ICUCompat:
+ Acronyms should not be capitalized in class names: was `ICUCompat`, should this be `IcuCompat`?
+AcronymName: androidx.core.view.accessibility.AccessibilityViewCommand.MoveHtmlArguments#getHTMLElement():
+ Acronyms should not be capitalized in method names: was `getHTMLElement`, should this be `getHtmlElement`?
+
+
+ActionValue: androidx.core.app.ActivityOptionsCompat#EXTRA_USAGE_TIME_REPORT:
+ Inconsistent extra value; expected `androidx.core.app.extra.USAGE_TIME_REPORT`, was `android.activity.usage_time`
+ActionValue: androidx.core.app.ActivityOptionsCompat#EXTRA_USAGE_TIME_REPORT_PACKAGES:
+ Inconsistent extra value; expected `androidx.core.app.extra.USAGE_TIME_REPORT_PACKAGES`, was `android.usage_time_packages`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_AUDIO_CONTENTS_URI:
+ Inconsistent extra value; expected `androidx.core.app.extra.AUDIO_CONTENTS_URI`, was `android.audioContents`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_BACKGROUND_IMAGE_URI:
+ Inconsistent extra value; expected `androidx.core.app.extra.BACKGROUND_IMAGE_URI`, was `android.backgroundImageUri`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_BIG_TEXT:
+ Inconsistent extra value; expected `androidx.core.app.extra.BIG_TEXT`, was `android.bigText`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_COMPACT_ACTIONS:
+ Inconsistent extra value; expected `androidx.core.app.extra.COMPACT_ACTIONS`, was `android.compactActions`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_CONVERSATION_TITLE:
+ Inconsistent extra value; expected `androidx.core.app.extra.CONVERSATION_TITLE`, was `android.conversationTitle`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_HIDDEN_CONVERSATION_TITLE:
+ Inconsistent extra value; expected `androidx.core.app.extra.HIDDEN_CONVERSATION_TITLE`, was `android.hiddenConversationTitle`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_INFO_TEXT:
+ Inconsistent extra value; expected `androidx.core.app.extra.INFO_TEXT`, was `android.infoText`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_IS_GROUP_CONVERSATION:
+ Inconsistent extra value; expected `androidx.core.app.extra.IS_GROUP_CONVERSATION`, was `android.isGroupConversation`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_LARGE_ICON:
+ Inconsistent extra value; expected `androidx.core.app.extra.LARGE_ICON`, was `android.largeIcon`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_LARGE_ICON_BIG:
+ Inconsistent extra value; expected `androidx.core.app.extra.LARGE_ICON_BIG`, was `android.largeIcon.big`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_MEDIA_SESSION:
+ Inconsistent extra value; expected `androidx.core.app.extra.MEDIA_SESSION`, was `android.mediaSession`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_MESSAGES:
+ Inconsistent extra value; expected `androidx.core.app.extra.MESSAGES`, was `android.messages`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_MESSAGING_STYLE_USER:
+ Inconsistent extra value; expected `androidx.core.app.extra.MESSAGING_STYLE_USER`, was `android.messagingStyleUser`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_PEOPLE:
+ Inconsistent extra value; expected `androidx.core.app.extra.PEOPLE`, was `android.people`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_PICTURE:
+ Inconsistent extra value; expected `androidx.core.app.extra.PICTURE`, was `android.picture`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_PROGRESS:
+ Inconsistent extra value; expected `androidx.core.app.extra.PROGRESS`, was `android.progress`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_PROGRESS_INDETERMINATE:
+ Inconsistent extra value; expected `androidx.core.app.extra.PROGRESS_INDETERMINATE`, was `android.progressIndeterminate`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_PROGRESS_MAX:
+ Inconsistent extra value; expected `androidx.core.app.extra.PROGRESS_MAX`, was `android.progressMax`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_REMOTE_INPUT_HISTORY:
+ Inconsistent extra value; expected `androidx.core.app.extra.REMOTE_INPUT_HISTORY`, was `android.remoteInputHistory`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_SELF_DISPLAY_NAME:
+ Inconsistent extra value; expected `androidx.core.app.extra.SELF_DISPLAY_NAME`, was `android.selfDisplayName`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_SHOW_CHRONOMETER:
+ Inconsistent extra value; expected `androidx.core.app.extra.SHOW_CHRONOMETER`, was `android.showChronometer`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_SHOW_WHEN:
+ Inconsistent extra value; expected `androidx.core.app.extra.SHOW_WHEN`, was `android.showWhen`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_SMALL_ICON:
+ Inconsistent extra value; expected `androidx.core.app.extra.SMALL_ICON`, was `android.icon`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_SUB_TEXT:
+ Inconsistent extra value; expected `androidx.core.app.extra.SUB_TEXT`, was `android.subText`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_SUMMARY_TEXT:
+ Inconsistent extra value; expected `androidx.core.app.extra.SUMMARY_TEXT`, was `android.summaryText`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_TEMPLATE:
+ Inconsistent extra value; expected `androidx.core.app.extra.TEMPLATE`, was `android.template`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_TEXT:
+ Inconsistent extra value; expected `androidx.core.app.extra.TEXT`, was `android.text`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_TEXT_LINES:
+ Inconsistent extra value; expected `androidx.core.app.extra.TEXT_LINES`, was `android.textLines`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_TITLE:
+ Inconsistent extra value; expected `androidx.core.app.extra.TITLE`, was `android.title`
+ActionValue: androidx.core.app.NotificationCompat#EXTRA_TITLE_BIG:
+ Inconsistent extra value; expected `androidx.core.app.extra.TITLE_BIG`, was `android.title.big`
+ActionValue: androidx.core.app.NotificationCompatExtras#EXTRA_ACTION_EXTRAS:
+ Inconsistent extra value; expected `androidx.core.app.extra.ACTION_EXTRAS`, was `android.support.actionExtras`
+ActionValue: androidx.core.app.NotificationCompatExtras#EXTRA_GROUP_KEY:
+ Inconsistent extra value; expected `androidx.core.app.extra.GROUP_KEY`, was `android.support.groupKey`
+ActionValue: androidx.core.app.NotificationCompatExtras#EXTRA_GROUP_SUMMARY:
+ Inconsistent extra value; expected `androidx.core.app.extra.GROUP_SUMMARY`, was `android.support.isGroupSummary`
+ActionValue: androidx.core.app.NotificationCompatExtras#EXTRA_LOCAL_ONLY:
+ Inconsistent extra value; expected `androidx.core.app.extra.LOCAL_ONLY`, was `android.support.localOnly`
+ActionValue: androidx.core.app.NotificationCompatExtras#EXTRA_REMOTE_INPUTS:
+ Inconsistent extra value; expected `androidx.core.app.extra.REMOTE_INPUTS`, was `android.support.remoteInputs`
+ActionValue: androidx.core.app.NotificationCompatExtras#EXTRA_SORT_KEY:
+ Inconsistent extra value; expected `androidx.core.app.extra.SORT_KEY`, was `android.support.sortKey`
+ActionValue: androidx.core.app.NotificationManagerCompat#ACTION_BIND_SIDE_CHANNEL:
+ Inconsistent action value; expected `androidx.core.app.action.BIND_SIDE_CHANNEL`, was `android.support.BIND_NOTIFICATION_SIDE_CHANNEL`
+ActionValue: androidx.core.app.NotificationManagerCompat#EXTRA_USE_SIDE_CHANNEL:
+ Inconsistent extra value; expected `androidx.core.app.extra.USE_SIDE_CHANNEL`, was `android.support.useSideChannel`
+ActionValue: androidx.core.app.RemoteInput#EXTRA_RESULTS_DATA:
+ Inconsistent extra value; expected `androidx.core.app.extra.RESULTS_DATA`, was `android.remoteinput.resultsData`
+ActionValue: androidx.core.app.ShareCompat#EXTRA_CALLING_ACTIVITY:
+ Inconsistent extra value; expected `androidx.core.app.extra.CALLING_ACTIVITY`, was `androidx.core.app.EXTRA_CALLING_ACTIVITY`
+ActionValue: androidx.core.app.ShareCompat#EXTRA_CALLING_ACTIVITY_INTEROP:
+ Inconsistent extra value; expected `androidx.core.app.extra.CALLING_ACTIVITY_INTEROP`, was `android.support.v4.app.EXTRA_CALLING_ACTIVITY`
+ActionValue: androidx.core.app.ShareCompat#EXTRA_CALLING_PACKAGE:
+ Inconsistent extra value; expected `androidx.core.app.extra.CALLING_PACKAGE`, was `androidx.core.app.EXTRA_CALLING_PACKAGE`
+ActionValue: androidx.core.app.ShareCompat#EXTRA_CALLING_PACKAGE_INTEROP:
+ Inconsistent extra value; expected `androidx.core.app.extra.CALLING_PACKAGE_INTEROP`, was `android.support.v4.app.EXTRA_CALLING_PACKAGE`
+ActionValue: androidx.core.content.IntentCompat#EXTRA_HTML_TEXT:
+ Inconsistent extra value; expected `androidx.core.content.extra.HTML_TEXT`, was `android.intent.extra.HTML_TEXT`
+ActionValue: androidx.core.content.IntentCompat#EXTRA_START_PLAYBACK:
+ Inconsistent extra value; expected `androidx.core.content.extra.START_PLAYBACK`, was `android.intent.extra.START_PLAYBACK`
+ActionValue: androidx.core.content.pm.ShortcutManagerCompat#EXTRA_SHORTCUT_ID:
+ Inconsistent extra value; expected `androidx.core.content.pm.extra.SHORTCUT_ID`, was `android.intent.extra.shortcut.ID`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_COLUMN_INT:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_COLUMN_INT`, was `android.view.accessibility.action.ARGUMENT_COLUMN_INT`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_EXTEND_SELECTION_BOOLEAN`, was `ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_HTML_ELEMENT_STRING:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_HTML_ELEMENT_STRING`, was `ACTION_ARGUMENT_HTML_ELEMENT_STRING`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_MOVEMENT_GRANULARITY_INT`, was `ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_MOVE_WINDOW_X:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_MOVE_WINDOW_X`, was `ACTION_ARGUMENT_MOVE_WINDOW_X`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_MOVE_WINDOW_Y:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_MOVE_WINDOW_Y`, was `ACTION_ARGUMENT_MOVE_WINDOW_Y`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_PROGRESS_VALUE:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_PROGRESS_VALUE`, was `android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_ROW_INT:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_ROW_INT`, was `android.view.accessibility.action.ARGUMENT_ROW_INT`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_SELECTION_END_INT:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_SELECTION_END_INT`, was `ACTION_ARGUMENT_SELECTION_END_INT`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_SELECTION_START_INT:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_SELECTION_START_INT`, was `ACTION_ARGUMENT_SELECTION_START_INT`
+ActionValue: androidx.core.view.accessibility.AccessibilityNodeInfoCompat#ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE:
+ Inconsistent action value; expected `androidx.core.view.accessibility.action.ARGUMENT_SET_TEXT_CHARSEQUENCE`, was `ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE`
+
+
+BannedThrow: androidx.core.widget.TextViewCompat#setAutoSizeTextTypeUniformWithConfiguration(android.widget.TextView, int, int, int, int):
+ Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.IllegalArgumentException`)
+BannedThrow: androidx.core.widget.TextViewCompat#setAutoSizeTextTypeUniformWithPresetSizes(android.widget.TextView, int[], int):
+ Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.IllegalArgumentException`)
+
+
+ContextFirst: androidx.core.view.LayoutInflaterFactory#onCreateView(android.view.View, String, android.content.Context, android.util.AttributeSet) parameter #2:
+ Context is distinct, so it must be the first argument (method `onCreateView`)
+ContextFirst: androidx.core.view.ViewConfigurationCompat#getScaledHorizontalScrollFactor(android.view.ViewConfiguration, android.content.Context) parameter #1:
+ Context is distinct, so it must be the first argument (method `getScaledHorizontalScrollFactor`)
+ContextFirst: androidx.core.view.ViewConfigurationCompat#getScaledVerticalScrollFactor(android.view.ViewConfiguration, android.content.Context) parameter #1:
+ Context is distinct, so it must be the first argument (method `getScaledVerticalScrollFactor`)
+ContextFirst: androidx.core.view.ViewConfigurationCompat#shouldShowMenuShortcutsWhenKeyboardPresent(android.view.ViewConfiguration, android.content.Context) parameter #1:
+ Context is distinct, so it must be the first argument (method `shouldShowMenuShortcutsWhenKeyboardPresent`)
+
+
+KotlinOperator: androidx.core.os.LocaleListCompat#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+
+
+ListenerInterface: androidx.core.view.OneShotPreDrawListener:
+ Listeners should be an interface, or otherwise renamed Callback: OneShotPreDrawListener
+
+
+NoClone: androidx.core.app.NotificationCompat.Action.WearableExtender#clone():
+ Provide an explicit copy constructor instead of implementing `clone()`
+NoClone: androidx.core.app.NotificationCompat.WearableExtender#clone():
+ Provide an explicit copy constructor instead of implementing `clone()`
+
+
+PairedRegistration: androidx.core.view.OneShotPreDrawListener#removeListener():
+ Found removeListener but not addListener in androidx.core.view.OneShotPreDrawListener
+
+
+ServiceName: androidx.core.app.NotificationCompat#CATEGORY_SERVICE:
+ Inconsistent service value; expected `CATEGORY`, was `service`
+
+
+VisiblySynchronized: androidx.core.os.CancellationSignal#cancel():
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.core.os.CancellationSignal.cancel()
+VisiblySynchronized: androidx.core.os.CancellationSignal#getCancellationSignalObject():
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.core.os.CancellationSignal.getCancellationSignalObject()
+VisiblySynchronized: androidx.core.os.CancellationSignal#isCanceled():
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.core.os.CancellationSignal.isCanceled()
+VisiblySynchronized: androidx.core.os.CancellationSignal#setOnCancelListener(androidx.core.os.CancellationSignal.OnCancelListener):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.core.os.CancellationSignal.setOnCancelListener(androidx.core.os.CancellationSignal.OnCancelListener)
+VisiblySynchronized: androidx.core.widget.ContentLoadingProgressBar#hide():
+ Internal locks must not be exposed: method androidx.core.widget.ContentLoadingProgressBar.hide()
+VisiblySynchronized: androidx.core.widget.ContentLoadingProgressBar#show():
+ Internal locks must not be exposed: method androidx.core.widget.ContentLoadingProgressBar.show()
diff --git a/cursoradapter/api/api_lint.ignore b/cursoradapter/api/api_lint.ignore
new file mode 100644
index 0000000..7b5962b
--- /dev/null
+++ b/cursoradapter/api/api_lint.ignore
@@ -0,0 +1,5 @@
+// Baseline format: 1.0
+ContextFirst: androidx.cursoradapter.widget.CursorAdapter#bindView(android.view.View, android.content.Context, android.database.Cursor) parameter #1:
+ Context is distinct, so it must be the first argument (method `bindView`)
+ContextFirst: androidx.cursoradapter.widget.SimpleCursorAdapter#bindView(android.view.View, android.content.Context, android.database.Cursor) parameter #1:
+ Context is distinct, so it must be the first argument (method `bindView`)
diff --git a/customview/api/api_lint.ignore b/customview/api/api_lint.ignore
new file mode 100644
index 0000000..b809558
--- /dev/null
+++ b/customview/api/api_lint.ignore
@@ -0,0 +1,11 @@
+// Baseline format: 1.0
+CallbackMethodName: androidx.customview.widget.ViewDragHelper.Callback:
+ Callback method names must follow the on<Something> style: getOrderedChildIndex
+
+
+ParcelConstructor: androidx.customview.view.AbsSavedState#AbsSavedState(android.os.Parcel):
+ Parcelable inflation is exposed through CREATOR, not raw constructors, in androidx.customview.view.AbsSavedState
+
+
+ParcelNotFinal: androidx.customview.view.AbsSavedState:
+ Parcelable classes must be final: androidx.customview.view.AbsSavedState is not final
diff --git a/drawerlayout/api/api_lint.ignore b/drawerlayout/api/api_lint.ignore
new file mode 100644
index 0000000..e4e6148
--- /dev/null
+++ b/drawerlayout/api/api_lint.ignore
@@ -0,0 +1,15 @@
+// Baseline format: 1.0
+ConcreteCollection: androidx.drawerlayout.widget.DrawerLayout#addFocusables(java.util.ArrayList<android.view.View>, int, int) parameter #0:
+ Parameter type is concrete collection (`java.util.ArrayList`); must be higher-level interface
+
+
+ListenerInterface: androidx.drawerlayout.widget.DrawerLayout.SimpleDrawerListener:
+ Listeners should be an interface, or otherwise renamed Callback: SimpleDrawerListener
+
+
+ParcelCreator: androidx.drawerlayout.widget.DrawerLayout.SavedState:
+ Parcelable requires `public int describeContents()`; missing in androidx.drawerlayout.widget.DrawerLayout.SavedState
+
+
+ParcelNotFinal: androidx.drawerlayout.widget.DrawerLayout.SavedState:
+ Parcelable classes must be final: androidx.drawerlayout.widget.DrawerLayout.SavedState is not final
diff --git a/enterprise/feedback/api/api_lint.ignore b/enterprise/feedback/api/api_lint.ignore
new file mode 100644
index 0000000..4350e62
--- /dev/null
+++ b/enterprise/feedback/api/api_lint.ignore
@@ -0,0 +1,5 @@
+// Baseline format: 1.0
+VisiblySynchronized: androidx.enterprise.feedback.SingletonKeyedAppStatesReporter#getInstance(android.content.Context):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.enterprise.feedback.SingletonKeyedAppStatesReporter.getInstance(android.content.Context)
+VisiblySynchronized: androidx.enterprise.feedback.SingletonKeyedAppStatesReporter#initialize(android.content.Context, java.util.concurrent.Executor):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.enterprise.feedback.SingletonKeyedAppStatesReporter.initialize(android.content.Context,java.util.concurrent.Executor)
diff --git a/exifinterface/api/api_lint.ignore b/exifinterface/api/api_lint.ignore
new file mode 100644
index 0000000..e0f65e9
--- /dev/null
+++ b/exifinterface/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+NoClone: androidx.exifinterface.media.ExifInterface#ExifInterface(java.io.FileDescriptor) parameter #0:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fileDescriptor in androidx.exifinterface.media.ExifInterface(java.io.FileDescriptor fileDescriptor)
diff --git a/fragment/fragment/api/api_lint.ignore b/fragment/fragment/api/api_lint.ignore
new file mode 100644
index 0000000..ad3841c
--- /dev/null
+++ b/fragment/fragment/api/api_lint.ignore
@@ -0,0 +1,35 @@
+// Baseline format: 1.0
+ContextFirst: androidx.fragment.app.FragmentActivity#onCreateView(String, android.content.Context, android.util.AttributeSet) parameter #1:
+ Context is distinct, so it must be the first argument (method `onCreateView`)
+ContextFirst: androidx.fragment.app.FragmentActivity#onCreateView(android.view.View, String, android.content.Context, android.util.AttributeSet) parameter #2:
+ Context is distinct, so it must be the first argument (method `onCreateView`)
+ContextFirst: androidx.fragment.app.FragmentController#onCreateView(android.view.View, String, android.content.Context, android.util.AttributeSet) parameter #2:
+ Context is distinct, so it must be the first argument (method `onCreateView`)
+ContextFirst: androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks#onFragmentAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context) parameter #2:
+ Context is distinct, so it must be the first argument (method `onFragmentAttached`)
+ContextFirst: androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks#onFragmentPreAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context) parameter #2:
+ Context is distinct, so it must be the first argument (method `onFragmentPreAttached`)
+
+
+ForbiddenSuperClass: androidx.fragment.app.FragmentActivity:
+ FragmentActivity should not extend `Activity`. Activity subclasses are impossible to compose. Expose a composable API instead.
+
+
+NoClone: androidx.fragment.app.Fragment#dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.fragment.app.Fragment.dump(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+NoClone: androidx.fragment.app.FragmentActivity#dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.fragment.app.FragmentActivity.dump(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+NoClone: androidx.fragment.app.FragmentController#dumpLoaders(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.fragment.app.FragmentController.dumpLoaders(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+NoClone: androidx.fragment.app.FragmentHostCallback#onDump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.fragment.app.FragmentHostCallback.onDump(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+NoClone: androidx.fragment.app.FragmentManager#dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.fragment.app.FragmentManager.dump(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+
+
+ParcelNotFinal: androidx.fragment.app.Fragment.SavedState:
+ Parcelable classes must be final: androidx.fragment.app.Fragment.SavedState is not final
+
+
+SingularCallback: androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks:
+ Callback class names should be singular: FragmentLifecycleCallbacks
diff --git a/heifwriter/api/api_lint.ignore b/heifwriter/api/api_lint.ignore
new file mode 100644
index 0000000..3dd94ae
--- /dev/null
+++ b/heifwriter/api/api_lint.ignore
@@ -0,0 +1,17 @@
+// Baseline format: 1.0
+GenericException: androidx.heifwriter.HeifWriter#stop(long):
+ Methods must not throw generic exceptions (`java.lang.Exception`)
+
+
+NoClone: androidx.heifwriter.HeifWriter.Builder#Builder(java.io.FileDescriptor, int, int, int) parameter #0:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.heifwriter.HeifWriter.Builder(java.io.FileDescriptor fd, int width, int height, int inputMode)
+
+
+VisiblySynchronized: androidx.heifwriter.HeifWriter#addBitmap(android.graphics.Bitmap):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.heifwriter.HeifWriter.addBitmap(android.graphics.Bitmap)
+VisiblySynchronized: androidx.heifwriter.HeifWriter#addYuvBuffer(int, byte[]):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.heifwriter.HeifWriter.addYuvBuffer(int,byte[])
+VisiblySynchronized: androidx.heifwriter.HeifWriter#setInputEndOfStreamTimestamp(long):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.heifwriter.HeifWriter.setInputEndOfStreamTimestamp(long)
+VisiblySynchronized: androidx.heifwriter.HeifWriter#stop(long):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.heifwriter.HeifWriter.stop(long)
diff --git a/leanback-preference/api/api_lint.ignore b/leanback-preference/api/api_lint.ignore
new file mode 100644
index 0000000..1ec1d8d
--- /dev/null
+++ b/leanback-preference/api/api_lint.ignore
@@ -0,0 +1,5 @@
+// Baseline format: 1.0
+ActionValue: androidx.leanback.preference.LeanbackEditTextPreferenceDialogFragmentCompat#EXTRA_IME_OPTIONS:
+ Inconsistent extra value; expected `androidx.leanback.preference.extra.IME_OPTIONS`, was `ime_option`
+ActionValue: androidx.leanback.preference.LeanbackEditTextPreferenceDialogFragmentCompat#EXTRA_INPUT_TYPE:
+ Inconsistent extra value; expected `androidx.leanback.preference.extra.INPUT_TYPE`, was `input_type`
diff --git a/leanback/api/api_lint.ignore b/leanback/api/api_lint.ignore
new file mode 100644
index 0000000..b8d6059
--- /dev/null
+++ b/leanback/api/api_lint.ignore
@@ -0,0 +1,93 @@
+// Baseline format: 1.0
+ActionValue: androidx.leanback.app.GuidedStepFragment#EXTRA_UI_STYLE:
+ Inconsistent extra value; expected `androidx.leanback.app.extra.UI_STYLE`, was `uiStyle`
+ActionValue: androidx.leanback.app.GuidedStepSupportFragment#EXTRA_UI_STYLE:
+ Inconsistent extra value; expected `androidx.leanback.app.extra.UI_STYLE`, was `uiStyle`
+
+
+AutoBoxing: androidx.leanback.widget.Parallax.FloatProperty#get(androidx.leanback.widget.Parallax):
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.leanback.widget.Parallax.FloatProperty#set(androidx.leanback.widget.Parallax, Float) parameter #1:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.leanback.widget.Parallax.IntProperty#get(androidx.leanback.widget.Parallax):
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.leanback.widget.Parallax.IntProperty#set(androidx.leanback.widget.Parallax, Integer) parameter #1:
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.leanback.widget.ParallaxTarget#directUpdate(Number) parameter #0:
+ Must avoid boxed primitives (`java.lang.Number`)
+AutoBoxing: androidx.leanback.widget.ParallaxTarget.DirectPropertyTarget#directUpdate(Number) parameter #0:
+ Must avoid boxed primitives (`java.lang.Number`)
+
+
+CallbackMethodName: androidx.leanback.widget.DiffCallback:
+ Callback method names must follow the on<Something> style: areItemsTheSame
+CallbackMethodName: androidx.leanback.widget.GuidedActionDiffCallback:
+ Callback method names must follow the on<Something> style: getInstance
+CallbackMethodName: androidx.leanback.widget.SearchBar.SearchBarPermissionListener:
+ Listener method names must follow the on<Something> style: requestAudioPermission
+
+
+CallbackName: androidx.leanback.widget.ObjectAdapter.DataObserver:
+ Class should be named DataCallback
+
+
+ConcreteCollection: androidx.leanback.widget.ItemBridgeAdapter#getPresenterMapper():
+ Return type is concrete collection (`java.util.ArrayList`); must be higher-level interface
+ConcreteCollection: androidx.leanback.widget.ItemBridgeAdapter#setPresenterMapper(java.util.ArrayList<androidx.leanback.widget.Presenter>) parameter #0:
+ Parameter type is concrete collection (`java.util.ArrayList`); must be higher-level interface
+
+
+ContextFirst: androidx.leanback.widget.GuidedAction.BuilderBase#iconResourceId(int, android.content.Context) parameter #1:
+ Context is distinct, so it must be the first argument (method `iconResourceId`)
+ContextFirst: androidx.leanback.widget.PlaybackControlsRow.ThumbsAction#ThumbsAction(int, android.content.Context, int, int) parameter #1:
+ Context is distinct, so it must be the first argument (method `ThumbsAction`)
+
+
+FractionFloat: androidx.leanback.widget.Parallax.FloatProperty#atFraction(float):
+ Fractions must use floats, was `androidx.leanback.widget.Parallax.PropertyMarkerValue` in `atFraction`
+FractionFloat: androidx.leanback.widget.Parallax.IntProperty#atFraction(float):
+ Fractions must use floats, was `androidx.leanback.widget.Parallax.PropertyMarkerValue` in `atFraction`
+
+
+KotlinOperator: androidx.leanback.widget.ArrayObjectAdapter#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.leanback.widget.CursorObjectAdapter#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.leanback.widget.ObjectAdapter#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.leanback.widget.Parallax.FloatProperty#get(androidx.leanback.widget.Parallax):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.leanback.widget.Parallax.FloatProperty#set(androidx.leanback.widget.Parallax, Float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.leanback.widget.Parallax.IntProperty#get(androidx.leanback.widget.Parallax):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.leanback.widget.Parallax.IntProperty#set(androidx.leanback.widget.Parallax, Integer):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.leanback.widget.SparseArrayObjectAdapter#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.leanback.widget.SparseArrayObjectAdapter#set(int, Object):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+
+
+ListenerInterface: androidx.leanback.app.BrowseSupportFragment.BrowseTransitionListener:
+ Listeners should be an interface, or otherwise renamed Callback: BrowseTransitionListener
+ListenerInterface: androidx.leanback.widget.DetailsOverviewRow.Listener:
+ Listeners should be an interface, or otherwise renamed Callback: Listener
+ListenerInterface: androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.Listener:
+ Listeners should be an interface, or otherwise renamed Callback: Listener
+ListenerInterface: androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder.DetailsOverviewRowListener:
+ Listeners should be an interface, or otherwise renamed Callback: DetailsOverviewRowListener
+ListenerInterface: androidx.leanback.widget.ItemBridgeAdapter.AdapterListener:
+ Listeners should be an interface, or otherwise renamed Callback: AdapterListener
+ListenerInterface: androidx.leanback.widget.OnChildViewHolderSelectedListener:
+ Listeners should be an interface, or otherwise renamed Callback: OnChildViewHolderSelectedListener
+
+
+RegistrationName: androidx.leanback.media.PlaybackGlue#addPlayerCallback(androidx.leanback.media.PlaybackGlue.PlayerCallback):
+ Callback methods should be named register/unregister; was addPlayerCallback
+RegistrationName: androidx.leanback.media.PlaybackGlue#removePlayerCallback(androidx.leanback.media.PlaybackGlue.PlayerCallback):
+ Callback methods should be named register/unregister; was removePlayerCallback
+
+
+SingletonConstructor: androidx.leanback.widget.GuidedActionDiffCallback#GuidedActionDiffCallback():
+ Singleton classes should use `getInstance()` methods: `GuidedActionDiffCallback`
diff --git a/lifecycle/lifecycle-common/api/api_lint.ignore b/lifecycle/lifecycle-common/api/api_lint.ignore
new file mode 100644
index 0000000..b22f657
--- /dev/null
+++ b/lifecycle/lifecycle-common/api/api_lint.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+CallbackName: androidx.lifecycle.DefaultLifecycleObserver:
+ Class should be named DefaultLifecycleCallback
+CallbackName: androidx.lifecycle.LifecycleEventObserver:
+ Class should be named LifecycleEventCallback
+CallbackName: androidx.lifecycle.LifecycleObserver:
+ Class should be named LifecycleCallback
diff --git a/lifecycle/lifecycle-livedata-core/api/api_lint.ignore b/lifecycle/lifecycle-livedata-core/api/api_lint.ignore
new file mode 100644
index 0000000..f68178d
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-core/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+CallbackName: androidx.lifecycle.Observer:
+ Class should be named Callback
diff --git a/lifecycle/lifecycle-viewmodel-savedstate/api/api_lint.ignore b/lifecycle/lifecycle-viewmodel-savedstate/api/api_lint.ignore
new file mode 100644
index 0000000..420fd20
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-savedstate/api/api_lint.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+KotlinOperator: androidx.lifecycle.SavedStateHandle#contains(String):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.lifecycle.SavedStateHandle#get(String):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.lifecycle.SavedStateHandle#set(String, T):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
diff --git a/lifecycle/lifecycle-viewmodel/api/api_lint.ignore b/lifecycle/lifecycle-viewmodel/api/api_lint.ignore
new file mode 100644
index 0000000..8582fa1
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel/api/api_lint.ignore
@@ -0,0 +1,9 @@
+// Baseline format: 1.0
+KotlinOperator: androidx.lifecycle.ViewModelProvider#get(Class<T>):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.lifecycle.ViewModelProvider#get(String, Class<T>):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+
+
+SingletonConstructor: androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory#AndroidViewModelFactory(android.app.Application):
+ Singleton classes should use `getInstance()` methods: `AndroidViewModelFactory`
diff --git a/loader/loader/api/api_lint.ignore b/loader/loader/api/api_lint.ignore
new file mode 100644
index 0000000..cb37084
--- /dev/null
+++ b/loader/loader/api/api_lint.ignore
@@ -0,0 +1,37 @@
+// Baseline format: 1.0
+CallbackName: androidx.loader.content.Loader.ForceLoadContentObserver:
+ Class should be named ForceLoadContentCallback
+
+
+NoClone: androidx.loader.app.LoaderManager#dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.loader.app.LoaderManager.dump(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+NoClone: androidx.loader.content.AsyncTaskLoader#dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.loader.content.AsyncTaskLoader.dump(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+NoClone: androidx.loader.content.CursorLoader#dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.loader.content.CursorLoader.dump(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+NoClone: androidx.loader.content.Loader#dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.loader.content.Loader.dump(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+
+
+RegistrationName: androidx.loader.content.Loader#registerListener(int, androidx.loader.content.Loader.OnLoadCompleteListener<D>):
+ Listener methods should be named add/remove; was registerListener
+RegistrationName: androidx.loader.content.Loader#registerOnLoadCanceledListener(androidx.loader.content.Loader.OnLoadCanceledListener<D>):
+ Listener methods should be named add/remove; was registerOnLoadCanceledListener
+RegistrationName: androidx.loader.content.Loader#unregisterListener(androidx.loader.content.Loader.OnLoadCompleteListener<D>):
+ Listener methods should be named add/remove; was unregisterListener
+RegistrationName: androidx.loader.content.Loader#unregisterOnLoadCanceledListener(androidx.loader.content.Loader.OnLoadCanceledListener<D>):
+ Listener methods should be named add/remove; was unregisterOnLoadCanceledListener
+
+
+SingletonConstructor: androidx.loader.app.LoaderManager#LoaderManager():
+ Singleton classes should use `getInstance()` methods: `LoaderManager`
+
+
+SingularCallback: androidx.loader.app.LoaderManager.LoaderCallbacks:
+ Callback class names should be singular: LoaderCallbacks
+
+
+VisiblySynchronized: androidx.loader.content.CursorLoader#cancelLoadInBackground():
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.loader.content.CursorLoader.cancelLoadInBackground()
+VisiblySynchronized: androidx.loader.content.CursorLoader#loadInBackground():
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.loader.content.CursorLoader.loadInBackground()
diff --git a/media/api/api_lint.ignore b/media/api/api_lint.ignore
new file mode 100644
index 0000000..aa6beea
--- /dev/null
+++ b/media/api/api_lint.ignore
@@ -0,0 +1,57 @@
+// Baseline format: 1.0
+ActionValue: android.support.v4.media.MediaBrowserCompat#EXTRA_DOWNLOAD_PROGRESS:
+ Inconsistent extra value; expected `android.support.v4.media.extra.DOWNLOAD_PROGRESS`, was `android.media.browse.extra.DOWNLOAD_PROGRESS`
+ActionValue: android.support.v4.media.MediaBrowserCompat#EXTRA_MEDIA_ID:
+ Inconsistent extra value; expected `android.support.v4.media.extra.MEDIA_ID`, was `android.media.browse.extra.MEDIA_ID`
+ActionValue: android.support.v4.media.MediaBrowserCompat#EXTRA_PAGE:
+ Inconsistent extra value; expected `android.support.v4.media.extra.PAGE`, was `android.media.browse.extra.PAGE`
+ActionValue: android.support.v4.media.MediaBrowserCompat#EXTRA_PAGE_SIZE:
+ Inconsistent extra value; expected `android.support.v4.media.extra.PAGE_SIZE`, was `android.media.browse.extra.PAGE_SIZE`
+ActionValue: android.support.v4.media.MediaDescriptionCompat#EXTRA_BT_FOLDER_TYPE:
+ Inconsistent extra value; expected `android.support.v4.media.extra.BT_FOLDER_TYPE`, was `android.media.extra.BT_FOLDER_TYPE`
+ActionValue: android.support.v4.media.MediaDescriptionCompat#EXTRA_DOWNLOAD_STATUS:
+ Inconsistent extra value; expected `android.support.v4.media.extra.DOWNLOAD_STATUS`, was `android.media.extra.DOWNLOAD_STATUS`
+ActionValue: android.support.v4.media.session.MediaControllerCompat.TransportControls#EXTRA_LEGACY_STREAM_TYPE:
+ Inconsistent extra value; expected `android.support.v4.media.session.extra.LEGACY_STREAM_TYPE`, was `android.media.session.extra.LEGACY_STREAM_TYPE`
+ActionValue: androidx.media.MediaBrowserServiceCompat.BrowserRoot#EXTRA_OFFLINE:
+ Inconsistent extra value; expected `androidx.media.extra.OFFLINE`, was `android.service.media.extra.OFFLINE`
+ActionValue: androidx.media.MediaBrowserServiceCompat.BrowserRoot#EXTRA_RECENT:
+ Inconsistent extra value; expected `androidx.media.extra.RECENT`, was `android.service.media.extra.RECENT`
+ActionValue: androidx.media.MediaBrowserServiceCompat.BrowserRoot#EXTRA_SUGGESTED:
+ Inconsistent extra value; expected `androidx.media.extra.SUGGESTED`, was `android.service.media.extra.SUGGESTED`
+
+
+CallbackMethodName: android.support.v4.media.session.MediaControllerCompat.Callback:
+ Callback method names must follow the on<Something> style: binderDied
+
+
+ContextNameSuffix: androidx.media.MediaBrowserServiceCompat:
+ Inconsistent class name; should be `<Foo>Service`, was `MediaBrowserServiceCompat`
+
+
+IntentName: android.support.v4.media.MediaBrowserCompat#CUSTOM_ACTION_DOWNLOAD:
+ Intent action constant name must be ACTION_FOO: CUSTOM_ACTION_DOWNLOAD
+IntentName: android.support.v4.media.MediaBrowserCompat#CUSTOM_ACTION_REMOVE_DOWNLOADED_FILE:
+ Intent action constant name must be ACTION_FOO: CUSTOM_ACTION_REMOVE_DOWNLOADED_FILE
+
+
+InterfaceConstant: androidx.media.MediaBrowserServiceCompat#SERVICE_INTERFACE:
+ Inconsistent interface constant; expected 'MediaBrowserServiceCompat'`
+
+
+NoClone: androidx.media.MediaBrowserServiceCompat#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #0:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.media.MediaBrowserServiceCompat.dump(java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+
+
+ParcelConstructor: android.support.v4.media.session.ParcelableVolumeInfo#ParcelableVolumeInfo(android.os.Parcel):
+ Parcelable inflation is exposed through CREATOR, not raw constructors, in android.support.v4.media.session.ParcelableVolumeInfo
+
+
+ParcelNotFinal: android.support.v4.media.MediaBrowserCompat.MediaItem:
+ Parcelable classes must be final: android.support.v4.media.MediaBrowserCompat.MediaItem is not final
+ParcelNotFinal: android.support.v4.media.session.ParcelableVolumeInfo:
+ Parcelable classes must be final: android.support.v4.media.session.ParcelableVolumeInfo is not final
+
+
+RethrowRemoteException: android.support.v4.media.session.MediaControllerCompat#MediaControllerCompat(android.content.Context, android.support.v4.media.session.MediaSessionCompat.Token):
+ Methods calling into system server should rethrow `RemoteException` as `RuntimeException` (but do not list it in the throws clause)
diff --git a/media2/common/api/api_lint.ignore b/media2/common/api/api_lint.ignore
new file mode 100644
index 0000000..42cac4b
--- /dev/null
+++ b/media2/common/api/api_lint.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+CallbackMethodName: androidx.media2.common.DataSourceCallback:
+ Callback method names must follow the on<Something> style: readAt
+
+
+IntentName: androidx.media2.common.MediaMetadata#METADATA_KEY_EXTRAS:
+ Intent extra constant name must be EXTRA_FOO: METADATA_KEY_EXTRAS
diff --git a/media2/player/api/api_lint.ignore b/media2/player/api/api_lint.ignore
new file mode 100644
index 0000000..821e3a3
--- /dev/null
+++ b/media2/player/api/api_lint.ignore
@@ -0,0 +1,11 @@
+// Baseline format: 1.0
+AutoBoxing: androidx.media2.player.PlaybackParams#getAudioFallbackMode():
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.media2.player.PlaybackParams#getPitch():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.media2.player.PlaybackParams#getSpeed():
+ Must avoid boxed primitives (`java.lang.Float`)
+
+
+GenericException: androidx.media2.player.MediaPlayer#close():
+ Methods must not throw generic exceptions (`java.lang.Exception`)
diff --git a/media2/session/api/api_lint.ignore b/media2/session/api/api_lint.ignore
new file mode 100644
index 0000000..3cd34b0
--- /dev/null
+++ b/media2/session/api/api_lint.ignore
@@ -0,0 +1,5 @@
+// Baseline format: 1.0
+InterfaceConstant: androidx.media2.session.MediaLibraryService#SERVICE_INTERFACE:
+ Inconsistent interface constant; expected 'MediaLibraryService'`
+InterfaceConstant: androidx.media2.session.MediaSessionService#SERVICE_INTERFACE:
+ Inconsistent interface constant; expected 'MediaSessionService'`
diff --git a/mediarouter/api/api_lint.ignore b/mediarouter/api/api_lint.ignore
new file mode 100644
index 0000000..1090c0a
--- /dev/null
+++ b/mediarouter/api/api_lint.ignore
@@ -0,0 +1,69 @@
+// Baseline format: 1.0
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_END_SESSION:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.END_SESSION`, was `android.media.intent.action.END_SESSION`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_ENQUEUE:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.ENQUEUE`, was `android.media.intent.action.ENQUEUE`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_GET_SESSION_STATUS:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.GET_SESSION_STATUS`, was `android.media.intent.action.GET_SESSION_STATUS`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_GET_STATUS:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.GET_STATUS`, was `android.media.intent.action.GET_STATUS`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_PAUSE:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.PAUSE`, was `android.media.intent.action.PAUSE`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_PLAY:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.PLAY`, was `android.media.intent.action.PLAY`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_REMOVE:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.REMOVE`, was `android.media.intent.action.REMOVE`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_RESUME:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.RESUME`, was `android.media.intent.action.RESUME`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_SEEK:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.SEEK`, was `android.media.intent.action.SEEK`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_SEND_MESSAGE:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.SEND_MESSAGE`, was `android.media.intent.action.SEND_MESSAGE`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_START_SESSION:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.START_SESSION`, was `android.media.intent.action.START_SESSION`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#ACTION_STOP:
+ Inconsistent action value; expected `androidx.mediarouter.media.action.STOP`, was `android.media.intent.action.STOP`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_ERROR_CODE:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.ERROR_CODE`, was `android.media.intent.extra.ERROR_CODE`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_ITEM_CONTENT_POSITION:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.ITEM_CONTENT_POSITION`, was `android.media.intent.extra.ITEM_POSITION`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_ITEM_HTTP_HEADERS:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.ITEM_HTTP_HEADERS`, was `android.media.intent.extra.HTTP_HEADERS`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_ITEM_ID:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.ITEM_ID`, was `android.media.intent.extra.ITEM_ID`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_ITEM_METADATA:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.ITEM_METADATA`, was `android.media.intent.extra.ITEM_METADATA`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_ITEM_STATUS:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.ITEM_STATUS`, was `android.media.intent.extra.ITEM_STATUS`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_ITEM_STATUS_UPDATE_RECEIVER:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.ITEM_STATUS_UPDATE_RECEIVER`, was `android.media.intent.extra.ITEM_STATUS_UPDATE_RECEIVER`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_MESSAGE:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.MESSAGE`, was `android.media.intent.extra.MESSAGE`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_MESSAGE_RECEIVER:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.MESSAGE_RECEIVER`, was `android.media.intent.extra.MESSAGE_RECEIVER`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_SESSION_ID:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.SESSION_ID`, was `android.media.intent.extra.SESSION_ID`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_SESSION_STATUS:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.SESSION_STATUS`, was `android.media.intent.extra.SESSION_STATUS`
+ActionValue: androidx.mediarouter.media.MediaControlIntent#EXTRA_SESSION_STATUS_UPDATE_RECEIVER:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.SESSION_STATUS_UPDATE_RECEIVER`, was `android.media.intent.extra.SESSION_STATUS_UPDATE_RECEIVER`
+ActionValue: androidx.mediarouter.media.MediaItemStatus#EXTRA_HTTP_RESPONSE_HEADERS:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.HTTP_RESPONSE_HEADERS`, was `android.media.status.extra.HTTP_RESPONSE_HEADERS`
+ActionValue: androidx.mediarouter.media.MediaItemStatus#EXTRA_HTTP_STATUS_CODE:
+ Inconsistent extra value; expected `androidx.mediarouter.media.extra.HTTP_STATUS_CODE`, was `android.media.status.extra.HTTP_STATUS_CODE`
+
+
+InterfaceConstant: androidx.mediarouter.media.MediaRouteProviderService#SERVICE_INTERFACE:
+ Inconsistent interface constant; expected 'MediaRouteProviderService'`
+
+
+KotlinOperator: androidx.mediarouter.media.MediaRouteSelector#contains(androidx.mediarouter.media.MediaRouteSelector):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+
+
+RegistrationName: androidx.mediarouter.media.MediaRouter#addCallback(androidx.mediarouter.media.MediaRouteSelector, androidx.mediarouter.media.MediaRouter.Callback):
+ Callback methods should be named register/unregister; was addCallback
+RegistrationName: androidx.mediarouter.media.MediaRouter#addCallback(androidx.mediarouter.media.MediaRouteSelector, androidx.mediarouter.media.MediaRouter.Callback, int):
+ Callback methods should be named register/unregister; was addCallback
+RegistrationName: androidx.mediarouter.media.MediaRouter#removeCallback(androidx.mediarouter.media.MediaRouter.Callback):
+ Callback methods should be named register/unregister; was removeCallback
diff --git a/navigation/navigation-common-ktx/api/api_lint.ignore b/navigation/navigation-common-ktx/api/api_lint.ignore
new file mode 100644
index 0000000..6984790
--- /dev/null
+++ b/navigation/navigation-common-ktx/api/api_lint.ignore
@@ -0,0 +1,5 @@
+// Baseline format: 1.0
+DocumentExceptions: androidx.navigation.NavArgumentBuilder#getType():
+ Method NavArgumentBuilder.getType appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.navigation.NavGraphBuilder#build():
+ Method NavGraphBuilder.build appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
diff --git a/navigation/navigation-common/api/api_lint.ignore b/navigation/navigation-common/api/api_lint.ignore
new file mode 100644
index 0000000..59abda6
--- /dev/null
+++ b/navigation/navigation-common/api/api_lint.ignore
@@ -0,0 +1,11 @@
+// Baseline format: 1.0
+KotlinOperator: androidx.navigation.NavType#get(android.os.Bundle, String):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.navigation.NavType.ParcelableArrayType#get(android.os.Bundle, String):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.navigation.NavType.ParcelableType#get(android.os.Bundle, String):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.navigation.NavType.SerializableArrayType#get(android.os.Bundle, String):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.navigation.NavType.SerializableType#get(android.os.Bundle, String):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
diff --git a/navigation/navigation-fragment-ktx/api/api_lint.ignore b/navigation/navigation-fragment-ktx/api/api_lint.ignore
new file mode 100644
index 0000000..05fb76a
--- /dev/null
+++ b/navigation/navigation-fragment-ktx/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+DocumentExceptions: androidx.navigation.fragment.FragmentNavArgsLazyKt#navArgs(androidx.fragment.app.Fragment):
+ Method FragmentNavArgsLazyKt.navArgs appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
diff --git a/navigation/navigation-testing/api/api_lint.ignore b/navigation/navigation-testing/api/api_lint.ignore
new file mode 100644
index 0000000..f0130af
--- /dev/null
+++ b/navigation/navigation-testing/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+DocumentExceptions: androidx.navigation.testing.TestNavigator#getCurrent():
+ Method TestNavigator.getCurrent appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
diff --git a/navigation/navigation-ui/api/api_lint.ignore b/navigation/navigation-ui/api/api_lint.ignore
new file mode 100644
index 0000000..f05bc95
--- /dev/null
+++ b/navigation/navigation-ui/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+AcronymName: androidx.navigation.ui.NavigationUI:
+ Acronyms should not be capitalized in class names: was `NavigationUI`, should this be `NavigationUi`?
diff --git a/paging/common/api/api_lint.ignore b/paging/common/api/api_lint.ignore
new file mode 100644
index 0000000..b75b690
--- /dev/null
+++ b/paging/common/api/api_lint.ignore
@@ -0,0 +1,45 @@
+// Baseline format: 1.0
+DocumentExceptions: androidx.paging.DataSource#getExecutor():
+ Method DataSource.getExecutor appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.ItemKeyedDataSource.LoadCallback#onError(Throwable):
+ Method LoadCallback.onError appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.PageKeyedDataSource.LoadCallback#onError(Throwable):
+ Method LoadCallback.onError appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.PageKeyedDataSource.LoadInitialCallback#onError(Throwable):
+ Method LoadInitialCallback.onError appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.PagedList#loadAround(int):
+ Method PagedList.loadAround appears to be throwing java.lang.IndexOutOfBoundsException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.PagedList.Builder#build():
+ Method Builder.build appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.PagedList.Builder#buildAsync():
+ Method Builder.buildAsync appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.PagedList.Config.Builder#build():
+ Method Builder.build appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.PagedList.Config.Builder#setPageSize(int):
+ Method Builder.setPageSize appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.PositionalDataSource.LoadInitialCallback#onError(Throwable):
+ Method LoadInitialCallback.onError appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.PositionalDataSource.LoadRangeCallback#onError(Throwable):
+ Method LoadRangeCallback.onError appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+
+
+EqualsAndHashCode: androidx.paging.DataSource.BaseResult#equals(Object):
+ Must override both equals and hashCode; missing one in androidx.paging.DataSource.BaseResult
+
+
+KotlinOperator: androidx.paging.PagedList#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+
+
+RegistrationName: androidx.paging.DataSource#addInvalidatedCallback(androidx.paging.DataSource.InvalidatedCallback):
+ Callback methods should be named register/unregister; was addInvalidatedCallback
+RegistrationName: androidx.paging.DataSource#addInvalidatedCallback(kotlin.jvm.functions.Function0<kotlin.Unit>):
+ Callback methods should be named register/unregister; was addInvalidatedCallback
+RegistrationName: androidx.paging.DataSource#removeInvalidatedCallback(androidx.paging.DataSource.InvalidatedCallback):
+ Callback methods should be named register/unregister; was removeInvalidatedCallback
+RegistrationName: androidx.paging.DataSource#removeInvalidatedCallback(kotlin.jvm.functions.Function0<kotlin.Unit>):
+ Callback methods should be named register/unregister; was removeInvalidatedCallback
+RegistrationName: androidx.paging.PagedList#addWeakCallback(java.util.List<? extends T>, androidx.paging.PagedList.Callback):
+ Callback methods should be named register/unregister; was addWeakCallback
+RegistrationName: androidx.paging.PagedList#removeWeakCallback(androidx.paging.PagedList.Callback):
+ Callback methods should be named register/unregister; was removeWeakCallback
diff --git a/paging/runtime/api/api_lint.ignore b/paging/runtime/api/api_lint.ignore
new file mode 100644
index 0000000..68bf03a
--- /dev/null
+++ b/paging/runtime/api/api_lint.ignore
@@ -0,0 +1,5 @@
+// Baseline format: 1.0
+DocumentExceptions: androidx.paging.AsyncPagedListDiffer#getItem(int):
+ Method AsyncPagedListDiffer.getItem appears to be throwing java.lang.IndexOutOfBoundsException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.paging.AsyncPagedListDiffer#submitList(androidx.paging.PagedList<T>, Runnable):
+ Method AsyncPagedListDiffer.submitList appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
diff --git a/preference/api/api_lint.ignore b/preference/api/api_lint.ignore
new file mode 100644
index 0000000..5b1c512
--- /dev/null
+++ b/preference/api/api_lint.ignore
@@ -0,0 +1,23 @@
+// Baseline format: 1.0
+CallbackMethodName: androidx.preference.PreferenceManager.PreferenceComparisonCallback:
+ Callback method names must follow the on<Something> style: arePreferenceItemsTheSame
+CallbackMethodName: androidx.preference.PreferenceManager.SimplePreferenceComparisonCallback:
+ Callback method names must follow the on<Something> style: arePreferenceItemsTheSame
+
+
+ParcelConstructor: androidx.preference.Preference.BaseSavedState#BaseSavedState(android.os.Parcel):
+ Parcelable inflation is exposed through CREATOR, not raw constructors, in androidx.preference.Preference.BaseSavedState
+
+
+ParcelCreator: androidx.preference.Preference.BaseSavedState:
+ Parcelable requires `void writeToParcel(Parcel, int)`; missing in androidx.preference.Preference.BaseSavedState
+
+
+ParcelNotFinal: androidx.preference.Preference.BaseSavedState:
+ Parcelable classes must be final: androidx.preference.Preference.BaseSavedState is not final
+
+
+VisiblySynchronized: androidx.preference.PreferenceGroup#addPreference(androidx.preference.Preference):
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.preference.PreferenceGroup.addPreference(androidx.preference.Preference)
+VisiblySynchronized: androidx.preference.PreferenceGroup#removeAll():
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.preference.PreferenceGroup.removeAll()
diff --git a/preference/ktx/api/api_lint.ignore b/preference/ktx/api/api_lint.ignore
new file mode 100644
index 0000000..e006881
--- /dev/null
+++ b/preference/ktx/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+DocumentExceptions: androidx.preference.PreferenceGroupKt#iterator(androidx.preference.PreferenceGroup):
+ Method PreferenceGroupKt.iterator appears to be throwing java.lang.IndexOutOfBoundsException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
diff --git a/recyclerview/recyclerview/api/api_lint.ignore b/recyclerview/recyclerview/api/api_lint.ignore
new file mode 100644
index 0000000..7aa0720a
--- /dev/null
+++ b/recyclerview/recyclerview/api/api_lint.ignore
@@ -0,0 +1,61 @@
+// Baseline format: 1.0
+AcronymName: androidx.recyclerview.widget.ItemTouchHelper.Callback#getDefaultUIUtil():
+ Acronyms should not be capitalized in method names: was `getDefaultUIUtil`, should this be `getDefaultUiUtil`?
+AcronymName: androidx.recyclerview.widget.ItemTouchUIUtil:
+ Acronyms should not be capitalized in class names: was `ItemTouchUIUtil`, should this be `ItemTouchUiUtil`?
+AcronymName: androidx.recyclerview.widget.LinearLayoutManager#isLayoutRTL():
+ Acronyms should not be capitalized in method names: was `isLayoutRTL`, should this be `isLayoutRtl`?
+
+
+BannedThrow: androidx.recyclerview.widget.SnapHelper#attachToRecyclerView(androidx.recyclerview.widget.RecyclerView):
+ Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.IllegalStateException`)
+BannedThrow: androidx.recyclerview.widget.SortedList#get(int):
+ Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.IndexOutOfBoundsException`)
+
+
+CallbackMethodName: androidx.recyclerview.widget.AsyncListUtil.DataCallback:
+ Callback method names must follow the on<Something> style: refreshData
+CallbackMethodName: androidx.recyclerview.widget.AsyncListUtil.ViewCallback:
+ Callback method names must follow the on<Something> style: getItemRangeInto
+CallbackMethodName: androidx.recyclerview.widget.BatchingListUpdateCallback:
+ Callback method names must follow the on<Something> style: dispatchLastEvent
+CallbackMethodName: androidx.recyclerview.widget.DiffUtil.Callback:
+ Callback method names must follow the on<Something> style: getOldListSize
+CallbackMethodName: androidx.recyclerview.widget.DiffUtil.ItemCallback:
+ Callback method names must follow the on<Something> style: areItemsTheSame
+CallbackMethodName: androidx.recyclerview.widget.ItemTouchHelper.Callback:
+ Callback method names must follow the on<Something> style: getDefaultUIUtil
+CallbackMethodName: androidx.recyclerview.widget.ItemTouchHelper.SimpleCallback:
+ Callback method names must follow the on<Something> style: setDefaultSwipeDirs
+CallbackMethodName: androidx.recyclerview.widget.SortedList.BatchedCallback:
+ Callback method names must follow the on<Something> style: compare
+CallbackMethodName: androidx.recyclerview.widget.SortedList.Callback:
+ Callback method names must follow the on<Something> style: compare
+
+
+CallbackName: androidx.recyclerview.widget.RecyclerView.AdapterDataObserver:
+ Class should be named AdapterDataCallback
+
+
+ConcreteCollection: androidx.recyclerview.widget.RecyclerView#addFocusables(java.util.ArrayList<android.view.View>, int, int) parameter #0:
+ Parameter type is concrete collection (`java.util.ArrayList`); must be higher-level interface
+ConcreteCollection: androidx.recyclerview.widget.RecyclerView.LayoutManager#onAddFocusables(androidx.recyclerview.widget.RecyclerView, java.util.ArrayList<android.view.View>, int, int) parameter #1:
+ Parameter type is concrete collection (`java.util.ArrayList`); must be higher-level interface
+
+
+KotlinOperator: androidx.recyclerview.widget.RecyclerView.State#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.recyclerview.widget.SortedList#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+
+
+ListenerInterface: androidx.recyclerview.widget.RecyclerView.OnFlingListener:
+ Listeners should be an interface, or otherwise renamed Callback: OnFlingListener
+ListenerInterface: androidx.recyclerview.widget.RecyclerView.OnScrollListener:
+ Listeners should be an interface, or otherwise renamed Callback: OnScrollListener
+ListenerInterface: androidx.recyclerview.widget.RecyclerView.SimpleOnItemTouchListener:
+ Listeners should be an interface, or otherwise renamed Callback: SimpleOnItemTouchListener
+
+
+MethodNameUnits: androidx.recyclerview.widget.OrientationHelper#getTotalSpace():
+ Expected method name units to be `Bytes`, was `Space` in `getTotalSpace`
diff --git a/recyclerview/selection/api/api_lint.ignore b/recyclerview/selection/api/api_lint.ignore
new file mode 100644
index 0000000..1940c27
--- /dev/null
+++ b/recyclerview/selection/api/api_lint.ignore
@@ -0,0 +1,17 @@
+// Baseline format: 1.0
+AutoBoxing: androidx.recyclerview.selection.StableIdKeyProvider#getKey(int):
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.recyclerview.selection.StableIdKeyProvider#getPosition(Long) parameter #0:
+ Must avoid boxed primitives (`java.lang.Long`)
+
+
+CallbackName: androidx.recyclerview.selection.SelectionTracker.SelectionObserver:
+ Class should be named SelectionCallback
+
+
+KotlinOperator: androidx.recyclerview.selection.Selection#contains(K):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+
+
+VisiblySynchronized: androidx.recyclerview.selection.OperationMonitor#isStarted():
+ Internal locks must not be exposed: method androidx.recyclerview.selection.OperationMonitor.isStarted()
diff --git a/remotecallback/api/api_lint.ignore b/remotecallback/api/api_lint.ignore
new file mode 100644
index 0000000..9d77312
--- /dev/null
+++ b/remotecallback/api/api_lint.ignore
@@ -0,0 +1,23 @@
+// Baseline format: 1.0
+CallbackMethodName: androidx.remotecallback.RemoteCallback:
+ Callback method names must follow the on<Something> style: getType
+
+
+ContextFirst: androidx.remotecallback.RemoteCallback#create(Class<T>, android.content.Context) parameter #1:
+ Context is distinct, so it must be the first argument (method `create`)
+
+
+ContextNameSuffix: androidx.remotecallback.AppWidgetProviderWithCallbacks:
+ Inconsistent class name; should be `<Foo>Receiver`, was `AppWidgetProviderWithCallbacks`
+ContextNameSuffix: androidx.remotecallback.BroadcastReceiverWithCallbacks:
+ Inconsistent class name; should be `<Foo>Receiver`, was `BroadcastReceiverWithCallbacks`
+ContextNameSuffix: androidx.remotecallback.ContentProviderWithCallbacks:
+ Inconsistent class name; should be `<Foo>Provider`, was `ContentProviderWithCallbacks`
+
+
+SingularCallback: androidx.remotecallback.AppWidgetProviderWithCallbacks:
+ Callback class names should be singular: AppWidgetProviderWithCallbacks
+SingularCallback: androidx.remotecallback.BroadcastReceiverWithCallbacks:
+ Callback class names should be singular: BroadcastReceiverWithCallbacks
+SingularCallback: androidx.remotecallback.ContentProviderWithCallbacks:
+ Callback class names should be singular: ContentProviderWithCallbacks
diff --git a/room/common/api/api_lint.ignore b/room/common/api/api_lint.ignore
new file mode 100644
index 0000000..d34c89c2
--- /dev/null
+++ b/room/common/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+AcronymName: androidx.room.ColumnInfo.SQLiteTypeAffinity:
+ Acronyms should not be capitalized in class names: was `SQLiteTypeAffinity`, should this be `SqLiteTypeAffinity`?
diff --git a/room/runtime/api/api_lint.ignore b/room/runtime/api/api_lint.ignore
new file mode 100644
index 0000000..d491809
--- /dev/null
+++ b/room/runtime/api/api_lint.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+CallbackName: androidx.room.InvalidationTracker.Observer:
+ Class should be named Callback
+
+
+RegistrationName: androidx.room.RoomDatabase.Builder#addCallback(androidx.room.RoomDatabase.Callback):
+ Callback methods should be named register/unregister; was addCallback
diff --git a/security/crypto/api/api_lint.ignore b/security/crypto/api/api_lint.ignore
new file mode 100644
index 0000000..2635915
--- /dev/null
+++ b/security/crypto/api/api_lint.ignore
@@ -0,0 +1,15 @@
+// Baseline format: 1.0
+ContextFirst: androidx.security.crypto.EncryptedFile.Builder#Builder(java.io.File, android.content.Context, String, androidx.security.crypto.EncryptedFile.FileEncryptionScheme) parameter #1:
+ Context is distinct, so it must be the first argument (method `Builder`)
+ContextFirst: androidx.security.crypto.EncryptedSharedPreferences#create(String, String, android.content.Context, androidx.security.crypto.EncryptedSharedPreferences.PrefKeyEncryptionScheme, androidx.security.crypto.EncryptedSharedPreferences.PrefValueEncryptionScheme) parameter #2:
+ Context is distinct, so it must be the first argument (method `create`)
+
+
+KotlinOperator: androidx.security.crypto.EncryptedSharedPreferences#contains(String):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+
+
+RegistrationName: androidx.security.crypto.EncryptedSharedPreferences#registerOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener):
+ Listener methods should be named add/remove; was registerOnSharedPreferenceChangeListener
+RegistrationName: androidx.security.crypto.EncryptedSharedPreferences#unregisterOnSharedPreferenceChangeListener(android.content.SharedPreferences.OnSharedPreferenceChangeListener):
+ Listener methods should be named add/remove; was unregisterOnSharedPreferenceChangeListener
diff --git a/slices/core/api/api_lint.ignore b/slices/core/api/api_lint.ignore
new file mode 100644
index 0000000..cfd172f
--- /dev/null
+++ b/slices/core/api/api_lint.ignore
@@ -0,0 +1,15 @@
+// Baseline format: 1.0
+ActionValue: androidx.slice.Slice#EXTRA_SELECTION:
+ Inconsistent extra value; expected `androidx.slice.extra.SELECTION`, was `android.app.slice.extra.SELECTION`
+
+
+ContextFirst: androidx.slice.SliceConvert#wrap(android.app.slice.Slice, android.content.Context) parameter #1:
+ Context is distinct, so it must be the first argument (method `wrap`)
+
+
+ContextNameSuffix: androidx.slice.SliceProviderWithCallbacks:
+ Inconsistent class name; should be `<Foo>Provider`, was `SliceProviderWithCallbacks`
+
+
+SingularCallback: androidx.slice.SliceProviderWithCallbacks:
+ Callback class names should be singular: SliceProviderWithCallbacks
diff --git a/slices/view/api/api_lint.ignore b/slices/view/api/api_lint.ignore
new file mode 100644
index 0000000..7e7ad54
--- /dev/null
+++ b/slices/view/api/api_lint.ignore
@@ -0,0 +1,9 @@
+// Baseline format: 1.0
+BannedThrow: androidx.slice.SliceUtils#serializeSlice(androidx.slice.Slice, android.content.Context, java.io.OutputStream, androidx.slice.SliceUtils.SerializeOptions):
+ Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.IllegalArgumentException`)
+
+
+ContextFirst: androidx.slice.SliceUtils#serializeSlice(androidx.slice.Slice, android.content.Context, java.io.OutputStream, androidx.slice.SliceUtils.SerializeOptions) parameter #1:
+ Context is distinct, so it must be the first argument (method `serializeSlice`)
+ContextFirst: androidx.slice.SliceUtils.SliceActionListener#onSliceAction(android.net.Uri, android.content.Context, android.content.Intent) parameter #1:
+ Context is distinct, so it must be the first argument (method `onSliceAction`)
diff --git a/slidingpanelayout/api/api_lint.ignore b/slidingpanelayout/api/api_lint.ignore
new file mode 100644
index 0000000..0c6e84a
--- /dev/null
+++ b/slidingpanelayout/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+ListenerInterface: androidx.slidingpanelayout.widget.SlidingPaneLayout.SimplePanelSlideListener:
+ Listeners should be an interface, or otherwise renamed Callback: SimplePanelSlideListener
diff --git a/sqlite/sqlite-framework/api/api_lint.ignore b/sqlite/sqlite-framework/api/api_lint.ignore
new file mode 100644
index 0000000..e498b61
--- /dev/null
+++ b/sqlite/sqlite-framework/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+AcronymName: androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory:
+ Acronyms should not be capitalized in class names: was `FrameworkSQLiteOpenHelperFactory`, should this be `FrameworkSqLiteOpenHelperFactory`?
diff --git a/sqlite/sqlite-ktx/api/api_lint.ignore b/sqlite/sqlite-ktx/api/api_lint.ignore
new file mode 100644
index 0000000..3948bf5
--- /dev/null
+++ b/sqlite/sqlite-ktx/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+AcronymName: androidx.sqlite.db.SupportSQLiteDatabaseKt:
+ Acronyms should not be capitalized in class names: was `SupportSQLiteDatabaseKt`, should this be `SupportSqLiteDatabaseKt`?
diff --git a/sqlite/sqlite/api/api_lint.ignore b/sqlite/sqlite/api/api_lint.ignore
new file mode 100644
index 0000000..81bb000
--- /dev/null
+++ b/sqlite/sqlite/api/api_lint.ignore
@@ -0,0 +1,19 @@
+// Baseline format: 1.0
+AcronymName: androidx.sqlite.db.SimpleSQLiteQuery:
+ Acronyms should not be capitalized in class names: was `SimpleSQLiteQuery`, should this be `SimpleSqLiteQuery`?
+AcronymName: androidx.sqlite.db.SupportSQLiteDatabase:
+ Acronyms should not be capitalized in class names: was `SupportSQLiteDatabase`, should this be `SupportSqLiteDatabase`?
+AcronymName: androidx.sqlite.db.SupportSQLiteDatabase#execSQL(String):
+ Acronyms should not be capitalized in method names: was `execSQL`, should this be `execSql`?
+AcronymName: androidx.sqlite.db.SupportSQLiteDatabase#execSQL(String, Object[]):
+ Acronyms should not be capitalized in method names: was `execSQL`, should this be `execSql`?
+AcronymName: androidx.sqlite.db.SupportSQLiteOpenHelper:
+ Acronyms should not be capitalized in class names: was `SupportSQLiteOpenHelper`, should this be `SupportSqLiteOpenHelper`?
+AcronymName: androidx.sqlite.db.SupportSQLiteProgram:
+ Acronyms should not be capitalized in class names: was `SupportSQLiteProgram`, should this be `SupportSqLiteProgram`?
+AcronymName: androidx.sqlite.db.SupportSQLiteQuery:
+ Acronyms should not be capitalized in class names: was `SupportSQLiteQuery`, should this be `SupportSqLiteQuery`?
+AcronymName: androidx.sqlite.db.SupportSQLiteQueryBuilder:
+ Acronyms should not be capitalized in class names: was `SupportSQLiteQueryBuilder`, should this be `SupportSqLiteQueryBuilder`?
+AcronymName: androidx.sqlite.db.SupportSQLiteStatement:
+ Acronyms should not be capitalized in class names: was `SupportSQLiteStatement`, should this be `SupportSqLiteStatement`?
diff --git a/textclassifier/api/api_lint.ignore b/textclassifier/api/api_lint.ignore
new file mode 100644
index 0000000..235b2b8
--- /dev/null
+++ b/textclassifier/api/api_lint.ignore
@@ -0,0 +1,15 @@
+// Baseline format: 1.0
+AutoBoxing: androidx.textclassifier.ConversationActions.Message#getReferenceTime():
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.textclassifier.ConversationActions.Message.Builder#setReferenceTime(Long) parameter #0:
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.textclassifier.TextClassification.Request#getReferenceTime():
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.textclassifier.TextClassification.Request.Builder#setReferenceTime(Long) parameter #0:
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.textclassifier.TextLinks.Request#getReferenceTime():
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.textclassifier.TextLinks.Request.Builder#setReferenceTime(Long) parameter #0:
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.textclassifier.TextLinksParams.Builder#setReferenceTime(Long) parameter #0:
+ Must avoid boxed primitives (`java.lang.Long`)
diff --git a/transition/api/api_lint.ignore b/transition/api/api_lint.ignore
new file mode 100644
index 0000000..0a7434f
--- /dev/null
+++ b/transition/api/api_lint.ignore
@@ -0,0 +1,9 @@
+// Baseline format: 1.0
+ContextFirst: androidx.transition.Scene#getSceneForLayout(android.view.ViewGroup, int, android.content.Context) parameter #2:
+ Context is distinct, so it must be the first argument (method `getSceneForLayout`)
+
+
+NoClone: androidx.transition.Transition#clone():
+ Provide an explicit copy constructor instead of implementing `clone()`
+NoClone: androidx.transition.TransitionSet#clone():
+ Provide an explicit copy constructor instead of implementing `clone()`
diff --git a/tv-provider/api/api_lint.ignore b/tv-provider/api/api_lint.ignore
new file mode 100644
index 0000000..dcf4d5f
--- /dev/null
+++ b/tv-provider/api/api_lint.ignore
@@ -0,0 +1,51 @@
+// Baseline format: 1.0
+ActionValue: androidx.tvprovider.media.tv.TvContractCompat#ACTION_INITIALIZE_PROGRAMS:
+ Inconsistent action value; expected `androidx.tvprovider.media.tv.action.INITIALIZE_PROGRAMS`, was `android.media.tv.action.INITIALIZE_PROGRAMS`
+ActionValue: androidx.tvprovider.media.tv.TvContractCompat#ACTION_PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT:
+ Inconsistent action value; expected `androidx.tvprovider.media.tv.action.PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT`, was `android.media.tv.action.PREVIEW_PROGRAM_ADDED_TO_WATCH_NEXT`
+ActionValue: androidx.tvprovider.media.tv.TvContractCompat#ACTION_PREVIEW_PROGRAM_BROWSABLE_DISABLED:
+ Inconsistent action value; expected `androidx.tvprovider.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED`, was `android.media.tv.action.PREVIEW_PROGRAM_BROWSABLE_DISABLED`
+ActionValue: androidx.tvprovider.media.tv.TvContractCompat#ACTION_REQUEST_CHANNEL_BROWSABLE:
+ Inconsistent action value; expected `androidx.tvprovider.media.tv.action.REQUEST_CHANNEL_BROWSABLE`, was `android.media.tv.action.REQUEST_CHANNEL_BROWSABLE`
+ActionValue: androidx.tvprovider.media.tv.TvContractCompat#ACTION_WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED:
+ Inconsistent action value; expected `androidx.tvprovider.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED`, was `android.media.tv.action.WATCH_NEXT_PROGRAM_BROWSABLE_DISABLED`
+ActionValue: androidx.tvprovider.media.tv.TvContractCompat#EXTRA_CHANNEL_ID:
+ Inconsistent extra value; expected `androidx.tvprovider.media.tv.extra.CHANNEL_ID`, was `android.media.tv.extra.CHANNEL_ID`
+ActionValue: androidx.tvprovider.media.tv.TvContractCompat#EXTRA_PREVIEW_PROGRAM_ID:
+ Inconsistent extra value; expected `androidx.tvprovider.media.tv.extra.PREVIEW_PROGRAM_ID`, was `android.media.tv.extra.PREVIEW_PROGRAM_ID`
+ActionValue: androidx.tvprovider.media.tv.TvContractCompat#EXTRA_WATCH_NEXT_PROGRAM_ID:
+ Inconsistent extra value; expected `androidx.tvprovider.media.tv.extra.WATCH_NEXT_PROGRAM_ID`, was `android.media.tv.extra.WATCH_NEXT_PROGRAM_ID`
+
+
+AutoBoxing: androidx.tvprovider.media.tv.Channel#getInternalProviderFlag1():
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.tvprovider.media.tv.Channel#getInternalProviderFlag2():
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.tvprovider.media.tv.Channel#getInternalProviderFlag3():
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.tvprovider.media.tv.Channel#getInternalProviderFlag4():
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.tvprovider.media.tv.PreviewChannel#getInternalProviderFlag1():
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.tvprovider.media.tv.PreviewChannel#getInternalProviderFlag2():
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.tvprovider.media.tv.PreviewChannel#getInternalProviderFlag3():
+ Must avoid boxed primitives (`java.lang.Long`)
+AutoBoxing: androidx.tvprovider.media.tv.PreviewChannel#getInternalProviderFlag4():
+ Must avoid boxed primitives (`java.lang.Long`)
+
+
+EqualsAndHashCode: androidx.tvprovider.media.tv.PreviewProgram#equals(Object):
+ Must override both equals and hashCode; missing one in androidx.tvprovider.media.tv.PreviewProgram
+EqualsAndHashCode: androidx.tvprovider.media.tv.WatchNextProgram#equals(Object):
+ Must override both equals and hashCode; missing one in androidx.tvprovider.media.tv.WatchNextProgram
+
+
+IntentName: androidx.tvprovider.media.tv.TvContractCompat.PreviewPrograms#COLUMN_INTERACTION_COUNT:
+ Intent action constant name must be ACTION_FOO: COLUMN_INTERACTION_COUNT
+IntentName: androidx.tvprovider.media.tv.TvContractCompat.PreviewPrograms#COLUMN_INTERACTION_TYPE:
+ Intent action constant name must be ACTION_FOO: COLUMN_INTERACTION_TYPE
+IntentName: androidx.tvprovider.media.tv.TvContractCompat.WatchNextPrograms#COLUMN_INTERACTION_COUNT:
+ Intent action constant name must be ACTION_FOO: COLUMN_INTERACTION_COUNT
+IntentName: androidx.tvprovider.media.tv.TvContractCompat.WatchNextPrograms#COLUMN_INTERACTION_TYPE:
+ Intent action constant name must be ACTION_FOO: COLUMN_INTERACTION_TYPE
diff --git a/ui/core/api/api_lint.ignore b/ui/core/api/api_lint.ignore
new file mode 100644
index 0000000..bfdb136
--- /dev/null
+++ b/ui/core/api/api_lint.ignore
@@ -0,0 +1,537 @@
+// Baseline format: 1.0
+AcronymName: androidx.ui.core.Dp#div-KkBJKWw(float):
+ Acronyms should not be capitalized in method names: was `div-KkBJKWw`, should this be `div-KkBjkWw`?
+AcronymName: androidx.ui.core.Dp#times-KkBJKWw(float):
+ Acronyms should not be capitalized in method names: was `times-KkBJKWw`, should this be `times-KkBjkWw`?
+AcronymName: androidx.ui.core.DpCubed#div-KkBJKWw(float, float):
+ Acronyms should not be capitalized in method names: was `div-KkBJKWw`, should this be `div-KkBjkWw`?
+AcronymName: androidx.ui.core.DpInverse#compareTo-ASDJgtI(float, float):
+ Acronyms should not be capitalized in method names: was `compareTo-ASDJgtI`, should this be `compareTo-AsdJgtI`?
+AcronymName: androidx.ui.core.DpInverse#minus-ASDJgtI(float, float):
+ Acronyms should not be capitalized in method names: was `minus-ASDJgtI`, should this be `minus-AsdJgtI`?
+AcronymName: androidx.ui.core.DpInverse#plus-ASDJgtI(float, float):
+ Acronyms should not be capitalized in method names: was `plus-ASDJgtI`, should this be `plus-AsdJgtI`?
+AcronymName: androidx.ui.core.DpInverse#times-KkBJKWw(float, float):
+ Acronyms should not be capitalized in method names: was `times-KkBJKWw`, should this be `times-KkBjkWw`?
+AcronymName: androidx.ui.core.DpSquared#compareTo-KkBJKWw(float, float):
+ Acronyms should not be capitalized in method names: was `compareTo-KkBJKWw`, should this be `compareTo-KkBjkWw`?
+AcronymName: androidx.ui.core.DpSquared#div-KkBJKWw(float, float):
+ Acronyms should not be capitalized in method names: was `div-KkBJKWw`, should this be `div-KkBjkWw`?
+AcronymName: androidx.ui.core.DpSquared#minus-KkBJKWw(float, float):
+ Acronyms should not be capitalized in method names: was `minus-KkBJKWw`, should this be `minus-KkBjkWw`?
+AcronymName: androidx.ui.core.DpSquared#plus-KkBJKWw(float, float):
+ Acronyms should not be capitalized in method names: was `plus-KkBJKWw`, should this be `plus-KkBjkWw`?
+AcronymName: androidx.ui.core.Px#div-kVJEwbQ(float):
+ Acronyms should not be capitalized in method names: was `div-kVJEwbQ`, should this be `div-kVjEwbQ`?
+AcronymName: androidx.ui.core.Px#times-kVJEwbQ(float):
+ Acronyms should not be capitalized in method names: was `times-kVJEwbQ`, should this be `times-kVjEwbQ`?
+AcronymName: androidx.ui.core.PxCubed#div-kVJEwbQ(float, float):
+ Acronyms should not be capitalized in method names: was `div-kVJEwbQ`, should this be `div-kVjEwbQ`?
+AcronymName: androidx.ui.core.PxInverse#compareTo-MXEAIGs(float, float):
+ Acronyms should not be capitalized in method names: was `compareTo-MXEAIGs`, should this be `compareTo-MxeaiGs`?
+AcronymName: androidx.ui.core.PxInverse#minus-MXEAIGs(float, float):
+ Acronyms should not be capitalized in method names: was `minus-MXEAIGs`, should this be `minus-MxeaiGs`?
+AcronymName: androidx.ui.core.PxInverse#plus-MXEAIGs(float, float):
+ Acronyms should not be capitalized in method names: was `plus-MXEAIGs`, should this be `plus-MxeaiGs`?
+AcronymName: androidx.ui.core.PxInverse#times-kVJEwbQ(float, float):
+ Acronyms should not be capitalized in method names: was `times-kVJEwbQ`, should this be `times-kVjEwbQ`?
+AcronymName: androidx.ui.core.PxSquared#compareTo-kVJEwbQ(float, float):
+ Acronyms should not be capitalized in method names: was `compareTo-kVJEwbQ`, should this be `compareTo-kVjEwbQ`?
+AcronymName: androidx.ui.core.PxSquared#div-kVJEwbQ(float, float):
+ Acronyms should not be capitalized in method names: was `div-kVJEwbQ`, should this be `div-kVjEwbQ`?
+AcronymName: androidx.ui.core.PxSquared#minus-kVJEwbQ(float, float):
+ Acronyms should not be capitalized in method names: was `minus-kVJEwbQ`, should this be `minus-kVjEwbQ`?
+AcronymName: androidx.ui.core.PxSquared#plus-kVJEwbQ(float, float):
+ Acronyms should not be capitalized in method names: was `plus-kVJEwbQ`, should this be `plus-kVjEwbQ`?
+AcronymName: androidx.ui.engine.geometry.Rect.Companion#fromLTRB(float, float, float, float):
+ Acronyms should not be capitalized in method names: was `fromLTRB`, should this be `fromLtrb`?
+AcronymName: androidx.ui.engine.geometry.Rect.Companion#fromLTWH(float, float, float, float):
+ Acronyms should not be capitalized in method names: was `fromLTWH`, should this be `fromLtwh`?
+AcronymName: androidx.ui.painting.Canvas#drawDRRect(androidx.ui.engine.geometry.RRect, androidx.ui.engine.geometry.RRect, androidx.ui.painting.Paint):
+ Acronyms should not be capitalized in method names: was `drawDRRect`, should this be `drawDrRect`?
+
+
+AutoBoxing: androidx.ui.vectormath64.Matrix4#scale(Object, Float, Float) parameter #1:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.vectormath64.Matrix4#scale(Object, Float, Float) parameter #2:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.vectormath64.Matrix4Kt#getAsScale(androidx.ui.vectormath64.Matrix4):
+ Must avoid boxed primitives (`java.lang.Float`)
+
+
+DocumentExceptions: androidx.ui.graphics.ColorKt#Color(float, float, float, float, androidx.ui.graphics.ColorSpace):
+ Method ColorKt.Color appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.painting.Path#arcToPoint(androidx.ui.engine.geometry.Offset, androidx.ui.engine.geometry.Radius, float, boolean, boolean):
+ Method Path.arcToPoint appears to be throwing java.lang.UnsupportedOperationException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.painting.Path#conicTo(float, float, float, float, float):
+ Method Path.conicTo appears to be throwing java.lang.UnsupportedOperationException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.painting.Path#relativeConicTo(float, float, float, float, float):
+ Method Path.relativeConicTo appears to be throwing java.lang.UnsupportedOperationException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.painting.Path.Companion#combine(androidx.ui.painting.PathOperation, androidx.ui.painting.Path, androidx.ui.painting.Path):
+ Method Companion.combine appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Matrix2#get(androidx.ui.vectormath64.MatrixColumn):
+ Method Matrix2.get appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Matrix2#get(int):
+ Method Matrix2.get appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Matrix3#get(androidx.ui.vectormath64.MatrixColumn):
+ Method Matrix3.get appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Matrix3#get(int):
+ Method Matrix3.get appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Matrix4#get(int):
+ Method Matrix4.get appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Vector2#get(androidx.ui.vectormath64.VectorComponent):
+ Method Vector2.get appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Vector2#get(int):
+ Method Vector2.get appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Vector2#set(androidx.ui.vectormath64.VectorComponent, float):
+ Method Vector2.set appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Vector2#set(int, float):
+ Method Vector2.set appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Vector3#get(androidx.ui.vectormath64.VectorComponent):
+ Method Vector3.get appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Vector3#get(int):
+ Method Vector3.get appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Vector3#set(androidx.ui.vectormath64.VectorComponent, float):
+ Method Vector3.set appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Vector3#set(int, float):
+ Method Vector3.set appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Vector4#get(int):
+ Method Vector4.get appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.vectormath64.Vector4#set(int, float):
+ Method Vector4.set appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+
+
+EndsWithImpl: androidx.ui.core.DensityReceiverImpl:
+ Don't expose your implementation details: `DensityReceiverImpl` ends with `Impl`
+
+
+KotlinOperator: androidx.ui.core.Dp#div(androidx.ui.core.Dp):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Dp#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Dp#div(int):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Dp#minus(androidx.ui.core.Dp):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Dp#plus(androidx.ui.core.Dp):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Dp#times(androidx.ui.core.Dp):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Dp#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Dp#times(int):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Dp#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Duration#div(double):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Duration#div(int):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Duration#minus(androidx.ui.core.Duration):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Duration#plus(androidx.ui.core.Duration):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Duration#plus(androidx.ui.core.Timestamp):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Duration#times(double):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Duration#times(int):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPx#div(double):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPx#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPx#div(int):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPx#minus(androidx.ui.core.IntPx):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPx#plus(androidx.ui.core.IntPx):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPx#times(double):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPx#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPx#times(int):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPx#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPxPosition#minus(androidx.ui.core.IntPxPosition):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.IntPxPosition#plus(androidx.ui.core.IntPxPosition):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Position#minus(androidx.ui.core.Position):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Position#plus(androidx.ui.core.Position):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#div(androidx.ui.core.Px):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#div(int):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#minus(androidx.ui.core.IntPx):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#minus(androidx.ui.core.Px):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#plus(androidx.ui.core.IntPx):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#plus(androidx.ui.core.Px):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#times(androidx.ui.core.Px):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#times(int):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Px#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.PxPosition#minus(androidx.ui.core.IntPxPosition):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.PxPosition#minus(androidx.ui.core.PxPosition):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.PxPosition#plus(androidx.ui.core.IntPxPosition):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.PxPosition#plus(androidx.ui.core.PxPosition):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.PxPosition#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Sp#div(androidx.ui.core.Sp):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Sp#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Sp#div(int):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Sp#minus(androidx.ui.core.Sp):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Sp#plus(androidx.ui.core.Sp):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Sp#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Sp#times(int):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Sp#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.TextRange#contains(androidx.ui.core.TextRange):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.TextRange#contains(int):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Timestamp#minus(androidx.ui.core.Duration):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Timestamp#minus(androidx.ui.core.Timestamp):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Timestamp#plus(androidx.ui.core.Duration):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.core.Velocity#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Offset#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Offset#minus(androidx.ui.engine.geometry.Offset):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Offset#plus(androidx.ui.engine.geometry.Offset):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Offset#rem(float):
+ Method can be invoked as a binary operator from Kotlin: `rem` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Offset#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Offset#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.RRect#contains(androidx.ui.engine.geometry.Offset):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Radius#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Radius#minus(androidx.ui.engine.geometry.Radius):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Radius#plus(androidx.ui.engine.geometry.Radius):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Radius#rem(float):
+ Method can be invoked as a binary operator from Kotlin: `rem` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Radius#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Radius#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Rect#contains(androidx.ui.engine.geometry.Offset):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Size#contains(androidx.ui.engine.geometry.Offset):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Size#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Size#minus(androidx.ui.engine.geometry.Offset):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Size#minus(androidx.ui.engine.geometry.Size):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Size#plus(androidx.ui.engine.geometry.Offset):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Size#rem(float):
+ Method can be invoked as a binary operator from Kotlin: `rem` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.geometry.Size#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.graphics.ColorSpace.Companion#get(androidx.ui.graphics.ColorSpace.Named):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.painting.Path#contains(androidx.ui.engine.geometry.Offset):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#dec():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `dec` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#get(androidx.ui.vectormath64.MatrixColumn):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#get(androidx.ui.vectormath64.MatrixColumn, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#get(int, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#inc():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `inc` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#minus(float):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#plus(float):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#set(int, androidx.ui.vectormath64.Vector2):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#set(int, int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#times(androidx.ui.vectormath64.Matrix2):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#times(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix2#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#dec():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `dec` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#get(androidx.ui.vectormath64.MatrixColumn):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#get(androidx.ui.vectormath64.MatrixColumn, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#get(int, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#inc():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `inc` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#minus(float):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#plus(float):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#set(int, androidx.ui.vectormath64.Vector3):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#set(int, int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#times(androidx.ui.vectormath64.Matrix3):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#times(androidx.ui.vectormath64.Vector3):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix3#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#dec():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `dec` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#get(androidx.ui.vectormath64.MatrixColumn):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#get(androidx.ui.vectormath64.MatrixColumn, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#get(int, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#inc():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `inc` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#minus(float):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#plus(float):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#set(int, androidx.ui.vectormath64.Vector4):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#set(int, int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#times(androidx.ui.vectormath64.Matrix4):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#times(androidx.ui.vectormath64.Vector4):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#timesAssign(androidx.ui.vectormath64.Matrix4):
+ Method can be invoked as a compound assignment operator from Kotlin: `timesAssign` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Matrix4#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#dec():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `dec` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#div(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#get(androidx.ui.vectormath64.VectorComponent):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#get(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#get(int, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#inc():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `inc` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#minus(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#minus(float):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#plus(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#plus(float):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#set(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#set(androidx.ui.vectormath64.VectorComponent, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#set(int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#set(int, int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#times(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector2#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#dec():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `dec` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#div(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#div(androidx.ui.vectormath64.Vector3):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#get(androidx.ui.vectormath64.VectorComponent):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#get(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#get(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#get(int, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#get(int, int, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#inc():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `inc` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#minus(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#minus(androidx.ui.vectormath64.Vector3):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#minus(float):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#plus(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#plus(androidx.ui.vectormath64.Vector3):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#plus(float):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#set(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#set(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#set(androidx.ui.vectormath64.VectorComponent, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#set(int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#set(int, int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#set(int, int, int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#times(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#times(androidx.ui.vectormath64.Vector3):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector3#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#dec():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `dec` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#div(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#div(androidx.ui.vectormath64.Vector3):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#div(androidx.ui.vectormath64.Vector4):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#get(androidx.ui.vectormath64.VectorComponent):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#get(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#get(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#get(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#get(int, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#get(int, int, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#get(int, int, int, int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#inc():
+ Method can be invoked as a pre/postfix inc/decrement operator from Kotlin: `inc` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#minus(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#minus(androidx.ui.vectormath64.Vector3):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#minus(androidx.ui.vectormath64.Vector4):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#minus(float):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#plus(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#plus(androidx.ui.vectormath64.Vector3):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#plus(androidx.ui.vectormath64.Vector4):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#plus(float):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#set(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#set(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#set(androidx.ui.vectormath64.VectorComponent, androidx.ui.vectormath64.VectorComponent, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#set(androidx.ui.vectormath64.VectorComponent, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#set(int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#set(int, int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#set(int, int, int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#set(int, int, int, int, float):
+ Method can be invoked with an indexing operator from Kotlin: `set` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#times(androidx.ui.vectormath64.Vector2):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#times(androidx.ui.vectormath64.Vector3):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#times(androidx.ui.vectormath64.Vector4):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.vectormath64.Vector4#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+
+
+MethodNameUnits: androidx.ui.core.Durations#inSeconds(androidx.ui.core.Duration):
+ Returned time values must be in milliseconds, was `inSeconds`
+
+
+UniqueKotlinOperator: androidx.ui.vectormath64.Matrix4#times(androidx.ui.vectormath64.Matrix4):
+ Only one of `times` and `timesAssign` methods should be present for Kotlin
+UniqueKotlinOperator: androidx.ui.vectormath64.Matrix4#times(androidx.ui.vectormath64.Vector4):
+ Only one of `times` and `timesAssign` methods should be present for Kotlin
+UniqueKotlinOperator: androidx.ui.vectormath64.Matrix4#times(float):
+ Only one of `times` and `timesAssign` methods should be present for Kotlin
diff --git a/ui/framework/api/api_lint.ignore b/ui/framework/api/api_lint.ignore
new file mode 100644
index 0000000..5d1586d
--- /dev/null
+++ b/ui/framework/api/api_lint.ignore
@@ -0,0 +1,25 @@
+// Baseline format: 1.0
+AutoBoxing: androidx.ui.core.TextKt#Text(String, androidx.ui.painting.TextStyle, androidx.ui.painting.ParagraphStyle, boolean, androidx.ui.rendering.paragraph.TextOverflow, Integer) parameter #5:
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.ui.core.TextKt#Text(androidx.ui.painting.AnnotatedString, androidx.ui.painting.TextStyle, androidx.ui.painting.ParagraphStyle, boolean, androidx.ui.rendering.paragraph.TextOverflow, float, Integer, androidx.ui.graphics.Color) parameter #6:
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.ui.core.TextKt#Text(androidx.ui.painting.ParagraphStyle, boolean, androidx.ui.rendering.paragraph.TextOverflow, float, Integer, androidx.ui.graphics.Color, kotlin.jvm.functions.Function1<? super androidx.ui.core.TextSpanScope,kotlin.Unit>) parameter #4:
+ Must avoid boxed primitives (`java.lang.Integer`)
+
+
+BannedThrow: androidx.ui.core.vectorgraphics.PathCommandKt#toPathCommand(char):
+ Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.IllegalArgumentException`)
+BannedThrow: androidx.ui.core.vectorgraphics.PathParser#parsePathString(String):
+ Methods must not mention RuntimeException subclasses in throws clauses (was `java.lang.IllegalArgumentException`)
+
+
+CallbackName: androidx.ui.core.gesture.DragObserver:
+ Class should be named DragCallback
+
+
+DocumentExceptions: androidx.ui.core.vectorgraphics.BrushKt#obtainBrush(Object):
+ Method BrushKt.obtainBrush appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+
+
+KotlinOperator: androidx.ui.core.LayoutReceiver#get(java.util.List<? extends androidx.ui.core.Measurable>, kotlin.jvm.functions.Function0<kotlin.Unit>):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
diff --git a/ui/layout/api/api_lint.ignore b/ui/layout/api/api_lint.ignore
new file mode 100644
index 0000000..e1bb2f7
--- /dev/null
+++ b/ui/layout/api/api_lint.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+DocumentExceptions: androidx.ui.layout.FlexChildren#expanded(float, kotlin.jvm.functions.Function0<kotlin.Unit>):
+ Method FlexChildren.expanded appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.layout.FlexChildren#flexible(float, kotlin.jvm.functions.Function0<kotlin.Unit>):
+ Method FlexChildren.flexible appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.layout.ScrollerKt#VerticalScroller(androidx.ui.layout.ScrollerPosition, kotlin.jvm.functions.Function2<? super androidx.ui.core.Px,? super androidx.ui.core.Px,kotlin.Unit>, kotlin.jvm.functions.Function0<kotlin.Unit>):
+ Method ScrollerKt.VerticalScroller appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
diff --git a/ui/material/api/api_lint.ignore b/ui/material/api/api_lint.ignore
new file mode 100644
index 0000000..e5bfe7a
--- /dev/null
+++ b/ui/material/api/api_lint.ignore
@@ -0,0 +1,29 @@
+// Baseline format: 1.0
+DocumentExceptions: androidx.ui.baseui.DeterminateProgressIndicatorKt#DeterminateProgressIndicator(float, kotlin.jvm.functions.Function0<kotlin.Unit>):
+ Method DeterminateProgressIndicatorKt.DeterminateProgressIndicator appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.baseui.shape.corner.CornerSizeKt#CornerSize(float):
+ Method CornerSizeKt.CornerSize appears to be throwing java.lang.IllegalArgumentException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+
+
+KotlinOperator: androidx.ui.material.borders.BorderRadius#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.material.borders.BorderRadius#minus(androidx.ui.material.borders.BorderRadiusGeometry):
+ Method can be invoked as a binary operator from Kotlin: `minus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.material.borders.BorderRadius#plus(androidx.ui.material.borders.BorderRadius):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.material.borders.BorderRadius#rem(float):
+ Method can be invoked as a binary operator from Kotlin: `rem` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.material.borders.BorderRadius#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.material.borders.BorderRadius#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.material.borders.BorderRadiusGeometry#div(float):
+ Method can be invoked as a binary operator from Kotlin: `div` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.material.borders.BorderRadiusGeometry#rem(float):
+ Method can be invoked as a binary operator from Kotlin: `rem` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.material.borders.BorderRadiusGeometry#times(float):
+ Method can be invoked as a binary operator from Kotlin: `times` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.material.borders.BorderRadiusGeometry#unaryMinus():
+ Method can be invoked as a unary operator from Kotlin: `unaryMinus` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.material.borders.ShapeBorder#plus(androidx.ui.material.borders.ShapeBorder):
+ Method can be invoked as a binary operator from Kotlin: `plus` (this is usually desirable; just make sure it makes sense for this type of object)
diff --git a/ui/platform/api/api_lint.ignore b/ui/platform/api/api_lint.ignore
new file mode 100644
index 0000000..9bcd6f7
--- /dev/null
+++ b/ui/platform/api/api_lint.ignore
@@ -0,0 +1,27 @@
+// Baseline format: 1.0
+AutoBoxing: androidx.ui.core.semantics.SemanticsConfiguration#getScrollExtentMax():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.core.semantics.SemanticsConfiguration#getScrollExtentMin():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.core.semantics.SemanticsConfiguration#getScrollPosition():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.core.semantics.SemanticsConfiguration#setScrollExtentMax(Float) parameter #0:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.core.semantics.SemanticsConfiguration#setScrollExtentMin(Float) parameter #0:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.core.semantics.SemanticsConfiguration#setScrollPosition(Float) parameter #0:
+ Must avoid boxed primitives (`java.lang.Float`)
+
+
+DocumentExceptions: androidx.ui.core.AndroidCraneView#onAttach(androidx.ui.core.ComponentNode):
+ Method AndroidCraneView.onAttach appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.core.ComponentNodesKt#childToLocal(androidx.ui.core.LayoutNode, androidx.ui.core.LayoutNode, androidx.ui.core.PxPosition):
+ Method ComponentNodesKt.childToLocal appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+
+
+EndsWithImpl: androidx.ui.core.SemanticsTreeNodeImpl:
+ Don't expose your implementation details: `SemanticsTreeNodeImpl` ends with `Impl`
+
+
+KotlinOperator: androidx.ui.core.ComponentNode#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
diff --git a/ui/test/api/api_lint.ignore b/ui/test/api/api_lint.ignore
new file mode 100644
index 0000000..8fd9fca
--- /dev/null
+++ b/ui/test/api/api_lint.ignore
@@ -0,0 +1,15 @@
+// Baseline format: 1.0
+DocumentExceptions: androidx.ui.test.ActionsKt#doClick(androidx.ui.test.SemanticsNodeInteraction):
+ Method ActionsKt.doClick appears to be throwing java.lang.AssertionError; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.test.AssertionsKt#assertCountEquals(java.util.List<androidx.ui.test.SemanticsNodeInteraction>, int):
+ Method AssertionsKt.assertCountEquals appears to be throwing java.lang.AssertionError; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.test.AssertionsKt#assertNoLongerExists(androidx.ui.test.SemanticsNodeInteraction):
+ Method AssertionsKt.assertNoLongerExists appears to be throwing java.lang.AssertionError; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.test.AssertionsKt#assertStillExists(androidx.ui.test.SemanticsNodeInteraction):
+ Method AssertionsKt.assertStillExists appears to be throwing java.lang.AssertionError; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.ui.test.GoldenSemanticsKt#assertEquals(androidx.ui.core.semantics.SemanticsConfiguration, androidx.ui.core.semantics.SemanticsConfiguration):
+ Method GoldenSemanticsKt.assertEquals appears to be throwing java.lang.AssertionError; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+
+
+ForbiddenSuperClass: androidx.ui.test.android.DefaultTestActivity:
+ DefaultTestActivity should not extend `Activity`. Activity subclasses are impossible to compose. Expose a composable API instead.
diff --git a/ui/text/api/api_lint.ignore b/ui/text/api/api_lint.ignore
new file mode 100644
index 0000000..227f2fb
--- /dev/null
+++ b/ui/text/api/api_lint.ignore
@@ -0,0 +1,137 @@
+// Baseline format: 1.0
+AcronymName: androidx.ui.engine.text.TextBox.Companion#fromLTRBD(float, float, float, float, androidx.ui.engine.text.TextDirection):
+ Acronyms should not be capitalized in method names: was `fromLTRBD`, should this be `fromLtrbd`?
+AcronymName: androidx.ui.engine.text.TextIndent.Companion#getNONE():
+ Acronyms should not be capitalized in method names: was `getNONE`, should this be `getNone`?
+
+
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#ParagraphStyle(androidx.ui.engine.text.TextAlign, androidx.ui.engine.text.TextDirection, androidx.ui.engine.text.TextIndent, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, Integer, androidx.ui.engine.text.font.FontFamily, Float, androidx.ui.engine.text.FontSynthesis, Boolean, androidx.ui.engine.window.Locale) parameter #3:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#ParagraphStyle(androidx.ui.engine.text.TextAlign, androidx.ui.engine.text.TextDirection, androidx.ui.engine.text.TextIndent, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, Integer, androidx.ui.engine.text.font.FontFamily, Float, androidx.ui.engine.text.FontSynthesis, Boolean, androidx.ui.engine.window.Locale) parameter #6:
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#ParagraphStyle(androidx.ui.engine.text.TextAlign, androidx.ui.engine.text.TextDirection, androidx.ui.engine.text.TextIndent, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, Integer, androidx.ui.engine.text.font.FontFamily, Float, androidx.ui.engine.text.FontSynthesis, Boolean, androidx.ui.engine.window.Locale) parameter #8:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#component4():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#component7():
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#component9():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#copy(androidx.ui.engine.text.TextAlign, androidx.ui.engine.text.TextDirection, androidx.ui.engine.text.TextIndent, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, Integer, androidx.ui.engine.text.font.FontFamily, Float, androidx.ui.engine.text.FontSynthesis, Boolean, androidx.ui.engine.window.Locale) parameter #3:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#copy(androidx.ui.engine.text.TextAlign, androidx.ui.engine.text.TextDirection, androidx.ui.engine.text.TextIndent, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, Integer, androidx.ui.engine.text.font.FontFamily, Float, androidx.ui.engine.text.FontSynthesis, Boolean, androidx.ui.engine.window.Locale) parameter #6:
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#copy(androidx.ui.engine.text.TextAlign, androidx.ui.engine.text.TextDirection, androidx.ui.engine.text.TextIndent, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, Integer, androidx.ui.engine.text.font.FontFamily, Float, androidx.ui.engine.text.FontSynthesis, Boolean, androidx.ui.engine.window.Locale) parameter #8:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#getFontSize():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#getLineHeight():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.ParagraphStyle#getMaxLines():
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.ui.engine.text.TextGeometricTransform#TextGeometricTransform(Float, Float) parameter #0:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextGeometricTransform#TextGeometricTransform(Float, Float) parameter #1:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextGeometricTransform#component1():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextGeometricTransform#component2():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextGeometricTransform#copy(Float, Float) parameter #0:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextGeometricTransform#copy(Float, Float) parameter #1:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextGeometricTransform#getScaleX():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextGeometricTransform#getSkewX():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#TextStyle(androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.font.FontFamily, Float, Float, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.FontSynthesis, androidx.ui.painting.Shadow) parameter #5:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#TextStyle(androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.font.FontFamily, Float, Float, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.FontSynthesis, androidx.ui.painting.Shadow) parameter #6:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#TextStyle(androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.font.FontFamily, Float, Float, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.FontSynthesis, androidx.ui.painting.Shadow) parameter #8:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#TextStyle(androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.font.FontFamily, Float, Float, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.FontSynthesis, androidx.ui.painting.Shadow) parameter #9:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#component10():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#component6():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#component7():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#component9():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#copy(androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.font.FontFamily, Float, Float, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.FontSynthesis, androidx.ui.painting.Shadow) parameter #5:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#copy(androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.font.FontFamily, Float, Float, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.FontSynthesis, androidx.ui.painting.Shadow) parameter #6:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#copy(androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.font.FontFamily, Float, Float, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.FontSynthesis, androidx.ui.painting.Shadow) parameter #8:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#copy(androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.font.FontFamily, Float, Float, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.FontSynthesis, androidx.ui.painting.Shadow) parameter #9:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#getFontSize():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#getFontSizeScale():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#getLetterSpacing():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.engine.text.TextStyle#getWordSpacing():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.ParagraphStyle#ParagraphStyle(androidx.ui.engine.text.TextAlign, androidx.ui.engine.text.TextDirection, Float, androidx.ui.engine.text.TextIndent) parameter #2:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.ParagraphStyle#component3():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.ParagraphStyle#copy(androidx.ui.engine.text.TextAlign, androidx.ui.engine.text.TextDirection, Float, androidx.ui.engine.text.TextIndent) parameter #2:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.ParagraphStyle#getLineHeight():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextPainter#TextPainter(androidx.ui.painting.AnnotatedString, androidx.ui.painting.TextStyle, androidx.ui.painting.ParagraphStyle, float, Integer, boolean, androidx.ui.rendering.paragraph.TextOverflow, androidx.ui.engine.window.Locale) parameter #4:
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.ui.painting.TextStyle#TextStyle(androidx.ui.graphics.Color, Float, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.FontSynthesis, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.font.FontFamily, androidx.ui.painting.Shadow, String) parameter #1:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#TextStyle(androidx.ui.graphics.Color, Float, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.FontSynthesis, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.font.FontFamily, androidx.ui.painting.Shadow, String) parameter #2:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#TextStyle(androidx.ui.graphics.Color, Float, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.FontSynthesis, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.font.FontFamily, androidx.ui.painting.Shadow, String) parameter #7:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#TextStyle(androidx.ui.graphics.Color, Float, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.FontSynthesis, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.font.FontFamily, androidx.ui.painting.Shadow, String) parameter #8:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#component2():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#component3():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#component8():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#component9():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#copy(androidx.ui.graphics.Color, Float, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.FontSynthesis, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.font.FontFamily, androidx.ui.painting.Shadow, String) parameter #1:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#copy(androidx.ui.graphics.Color, Float, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.FontSynthesis, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.font.FontFamily, androidx.ui.painting.Shadow, String) parameter #2:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#copy(androidx.ui.graphics.Color, Float, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.FontSynthesis, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.font.FontFamily, androidx.ui.painting.Shadow, String) parameter #7:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#copy(androidx.ui.graphics.Color, Float, Float, androidx.ui.engine.text.FontWeight, androidx.ui.engine.text.FontStyle, androidx.ui.engine.text.FontSynthesis, String, Float, Float, androidx.ui.engine.text.BaselineShift, androidx.ui.engine.text.TextGeometricTransform, androidx.ui.engine.window.Locale, androidx.ui.graphics.Color, androidx.ui.engine.text.TextDecoration, androidx.ui.engine.text.font.FontFamily, androidx.ui.painting.Shadow, String) parameter #8:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#getFontSize():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#getFontSizeScale():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#getLetterSpacing():
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#getParagraphStyle(androidx.ui.engine.text.TextAlign, androidx.ui.engine.text.TextDirection, androidx.ui.engine.text.TextIndent, Float, float, Boolean, Integer, androidx.ui.engine.window.Locale) parameter #3:
+ Must avoid boxed primitives (`java.lang.Float`)
+AutoBoxing: androidx.ui.painting.TextStyle#getParagraphStyle(androidx.ui.engine.text.TextAlign, androidx.ui.engine.text.TextDirection, androidx.ui.engine.text.TextIndent, Float, float, Boolean, Integer, androidx.ui.engine.window.Locale) parameter #6:
+ Must avoid boxed primitives (`java.lang.Integer`)
+AutoBoxing: androidx.ui.painting.TextStyle#getWordSpacing():
+ Must avoid boxed primitives (`java.lang.Float`)
+
+
+KotlinOperator: androidx.ui.engine.text.TextDecoration#contains(androidx.ui.engine.text.TextDecoration):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.text.font.FontFamily#contains(androidx.ui.engine.text.font.Font):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.text.font.FontFamily#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.text.font.FontFamilyList#contains(androidx.ui.engine.text.font.FontFamily):
+ Method can be invoked as a "in" operator from Kotlin: `contains` (this is usually desirable; just make sure it makes sense for this type of object)
+KotlinOperator: androidx.ui.engine.text.font.FontFamilyList#get(int):
+ Method can be invoked with an indexing operator from Kotlin: `get` (this is usually desirable; just make sure it makes sense for this type of object)
diff --git a/viewpager/api/api_lint.ignore b/viewpager/api/api_lint.ignore
new file mode 100644
index 0000000..9a70682
--- /dev/null
+++ b/viewpager/api/api_lint.ignore
@@ -0,0 +1,21 @@
+// Baseline format: 1.0
+ConcreteCollection: androidx.viewpager.widget.ViewPager#addFocusables(java.util.ArrayList<android.view.View>, int, int) parameter #0:
+ Parameter type is concrete collection (`java.util.ArrayList`); must be higher-level interface
+ConcreteCollection: androidx.viewpager.widget.ViewPager#addTouchables(java.util.ArrayList<android.view.View>) parameter #0:
+ Parameter type is concrete collection (`java.util.ArrayList`); must be higher-level interface
+
+
+ListenerInterface: androidx.viewpager.widget.ViewPager.SimpleOnPageChangeListener:
+ Listeners should be an interface, or otherwise renamed Callback: SimpleOnPageChangeListener
+
+
+ParcelCreator: androidx.viewpager.widget.ViewPager.SavedState:
+ Parcelable requires `public int describeContents()`; missing in androidx.viewpager.widget.ViewPager.SavedState
+
+
+ParcelNotFinal: androidx.viewpager.widget.ViewPager.SavedState:
+ Parcelable classes must be final: androidx.viewpager.widget.ViewPager.SavedState is not final
+
+
+VisiblySynchronized: androidx.viewpager.widget.PagerAdapter#notifyDataSetChanged():
+ Internal locks must not be exposed (synchronizing on this or class is still externally observable): method androidx.viewpager.widget.PagerAdapter.notifyDataSetChanged()
diff --git a/wear/api/api_lint.ignore b/wear/api/api_lint.ignore
new file mode 100644
index 0000000..6af38c4
--- /dev/null
+++ b/wear/api/api_lint.ignore
@@ -0,0 +1,33 @@
+// Baseline format: 1.0
+AcronymName: androidx.wear.widget.CurvingLayoutCallback#adjustAnchorOffsetXY(android.view.View, float[]):
+ Acronyms should not be capitalized in method names: was `adjustAnchorOffsetXY`, should this be `adjustAnchorOffsetXy`?
+
+
+ActionValue: androidx.wear.ambient.AmbientMode#EXTRA_BURN_IN_PROTECTION:
+ Inconsistent extra value; expected `androidx.wear.ambient.extra.BURN_IN_PROTECTION`, was `com.google.android.wearable.compat.extra.BURN_IN_PROTECTION`
+ActionValue: androidx.wear.ambient.AmbientMode#EXTRA_LOWBIT_AMBIENT:
+ Inconsistent extra value; expected `androidx.wear.ambient.extra.LOWBIT_AMBIENT`, was `com.google.android.wearable.compat.extra.LOWBIT_AMBIENT`
+ActionValue: androidx.wear.ambient.AmbientModeSupport#EXTRA_BURN_IN_PROTECTION:
+ Inconsistent extra value; expected `androidx.wear.ambient.extra.BURN_IN_PROTECTION`, was `com.google.android.wearable.compat.extra.BURN_IN_PROTECTION`
+ActionValue: androidx.wear.ambient.AmbientModeSupport#EXTRA_LOWBIT_AMBIENT:
+ Inconsistent extra value; expected `androidx.wear.ambient.extra.LOWBIT_AMBIENT`, was `com.google.android.wearable.compat.extra.LOWBIT_AMBIENT`
+
+
+CallbackMethodName: androidx.wear.widget.CurvingLayoutCallback:
+ Callback method names must follow the on<Something> style: adjustAnchorOffsetXY
+
+
+ForbiddenSuperClass: androidx.wear.activity.ConfirmationActivity:
+ ConfirmationActivity should not extend `Activity`. Activity subclasses are impossible to compose. Expose a composable API instead.
+
+
+NoClone: androidx.wear.ambient.AmbientMode#dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.wear.ambient.AmbientMode.dump(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+NoClone: androidx.wear.ambient.AmbientModeSupport#dump(String, java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
+ Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in androidx.wear.ambient.AmbientModeSupport.dump(String prefix, java.io.FileDescriptor fd, java.io.PrintWriter writer, String[] args)
+
+
+RegistrationName: androidx.wear.widget.SwipeDismissFrameLayout#addCallback(androidx.wear.widget.SwipeDismissFrameLayout.Callback):
+ Callback methods should be named register/unregister; was addCallback
+RegistrationName: androidx.wear.widget.SwipeDismissFrameLayout#removeCallback(androidx.wear.widget.SwipeDismissFrameLayout.Callback):
+ Callback methods should be named register/unregister; was removeCallback
diff --git a/webkit/api/api_lint.ignore b/webkit/api/api_lint.ignore
new file mode 100644
index 0000000..992ae35
--- /dev/null
+++ b/webkit/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+IntentName: androidx.webkit.WebViewFeature#DISABLED_ACTION_MODE_MENU_ITEMS:
+ Intent action constant name must be ACTION_FOO: DISABLED_ACTION_MODE_MENU_ITEMS
diff --git a/work/workmanager/api/api_lint.ignore b/work/workmanager/api/api_lint.ignore
new file mode 100644
index 0000000..cc73c5c
--- /dev/null
+++ b/work/workmanager/api/api_lint.ignore
@@ -0,0 +1,7 @@
+// Baseline format: 1.0
+AcronymName: androidx.work.Operation.State.FAILURE:
+ Acronyms should not be capitalized in class names: was `FAILURE`, should this be `Failure`?
+AcronymName: androidx.work.Operation.State.IN_PROGRESS:
+ Acronyms should not be capitalized in class names: was `IN_PROGRESS`, should this be `InProgress`?
+AcronymName: androidx.work.Operation.State.SUCCESS:
+ Acronyms should not be capitalized in class names: was `SUCCESS`, should this be `Success`?