<?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/androidAndroidTest/**" />
        <!-- Required for AppSearch icing tests. -->
        <ignore path="**/java/tests/**" />
    </issue>

    <issue id="IllegalExperimentalApiUsage">

        <!--
         The placeholder string "USE_SYSTEM_OUT_DIR" must match the string
         ATOMIC_LIBRARY_GROUP_FILE_PLACEHOLDER defined in BanInappropriateExperimentalUsage.
         The suffix must match `fileLocation` defined in AndroidXRootImplPlugin.
        -->
        <option
            name="atomicLibraryGroupFilename"
            value="USE_SYSTEM_OUT_DIR/lint/atomic-library-groups.txt"/>
    </issue>

    <!-- Re-enable high-priority checks for tests (and everything else). -->
    <issue id="NewApi" severity="fatal" />
    <issue id="WrongThread" severity="fatal" />
    <issue id="MissingTestSizeAnnotation" severity="fatal" />
</lint>
