<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright 2021 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.
  -->

<!--
  Please copy any lint rules added here to all other modules local lint.xml
  files and lint_samples.xml (if applicable).
   -->
<lint>
    <issue id="LintBaseline" severity="ignore">
        <ignore regexp=".* filtered out because .* listed in the baseline file.*"/>
    </issue>
    <!-- Disable all lint checks on tests by default. -->
    <issue id="all">
        <ignore path="**/src/test/**" />
        <ignore path="**/src/androidTest/**" />
        <!-- Required for Kotlin multi-platform tests. -->
        <ignore path="**/src/androidInstrumentedTest/**" />
        <ignore path="**/src/androidUnitTest/**" />
        <ignore path="**/src/jvmTest/**" />
        <ignore path="**/src/commonTest/**" />
        <ignore path="**/src/nonEmulatorJvmTest/**" />
        <!-- Required for AppSearch icing tests. -->
        <ignore path="**/java/tests/**" />
    </issue>
    <!-- Re-enable high-priority checks for tests (and everything else). -->
    <issue id="BanThreadSleep" severity="fatal" />
    <issue id="NewApi" severity="fatal" />
    <issue id="WrongThread" severity="fatal" />
    <issue id="MissingTestSizeAnnotation" severity="fatal" />
    <issue id="IgnoreClassLevelDetector" severity="fatal" />
    <issue id="WithPluginClasspathUsage" severity="fatal" />
    <issue id="AutoValueNullnessOverride" severity="fatal" />
    <!-- Disable all lint checks on transformed classes by default. b/283812176 -->
    <issue id="all">
        <ignore path="**/.transforms/**" />
        <!-- playground builds have dependency files in "transformed" instead of ".transforms" -->
        <ignore path="**/.gradle/**/transforms*/**/transformed/**" />
    </issue>
</lint>
