Disable non-sample lint checks for non-sample projects in sample lint tasks

Only removes one lint baseline to minimize merge conflicts since we keep
updating baselines globally. Re-enables NewApi for sample project lint.

Fixes: 206852370
Test: ./gradlew :activity:activity-compose:activity-compose-samples:lintDebug
Change-Id: I1a090588029dee9b4641081e06cb3baaaa162b14
diff --git a/buildSrc/lint.xml b/buildSrc/lint.xml
index 12cad2a..5ec6632 100644
--- a/buildSrc/lint.xml
+++ b/buildSrc/lint.xml
@@ -1,5 +1,24 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Please copy any lint rules added here to all other modules local lint.xml files -->
+<!--
+  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.*"/>
diff --git a/buildSrc/lint_samples.xml b/buildSrc/lint_samples.xml
new file mode 100644
index 0000000..8ec48c4
--- /dev/null
+++ b/buildSrc/lint_samples.xml
@@ -0,0 +1,35 @@
+<?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.
+  -->
+
+<!--
+  This configuration is applied to LibraryType.SAMPLES projects which must run
+  specific lint checks on dependencies, but don't want the full suite running.
+  -->
+<lint>
+    <issue id="LintBaseline" severity="ignore">
+        <ignore regexp=".* filtered out because .* listed in the baseline file.*"/>
+    </issue>
+    <!-- Disable all lint checks in non-sample projects. -->
+    <issue id="all">
+        <ignore regexp="^((?!samples).)*$" />
+    </issue>
+    <!-- Re-enable sampled lint checks for all projects. -->
+    <issue id="InvalidSamplesLocation" severity="fatal" />
+    <issue id="MultipleSampledFunctions" severity="fatal" />
+    <issue id="UnresolvedSampleLink" severity="fatal" />
+    <issue id="ObsoleteSampledAnnotation" severity="fatal" />
+</lint>
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt b/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
index 97cc2cb..aa52ac8 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
@@ -303,13 +303,6 @@
             //  This is needed because SampledAnnotationDetector uses partial analysis, and
             //  hence requires dependencies to be analyzed.
             checkDependencies = true
-            // TODO: baselines from dependencies aren't used when we run lint with
-            //  isCheckDependencies = true. NewApi was recently enabled for tests, and so
-            //  there are a large amount of baselined issues that would be reported here
-            //  again, and we don't want to add them to the baseline for the sample modules.
-            //  Instead just temporarily disable this lint check until the underlying issues
-            //  are fixed.
-            disable.add("NewApi")
         }
 
         // Only run certain checks where API tracking is important.
@@ -319,9 +312,14 @@
 
         // If the project has not overridden the lint config, set the default one.
         if (lintConfig == null) {
+            val lintXmlPath = if (extension.type == LibraryType.SAMPLES) {
+                "buildSrc/lint_samples.xml"
+            } else {
+                "buildSrc/lint.xml"
+            }
             // suppress warnings more specifically than issue-wide severity (regexes)
             // Currently suppresses warnings from baseline files working as intended
-            lintConfig = File(project.getSupportRootFolder(), "buildSrc/lint.xml")
+            lintConfig = File(project.getSupportRootFolder(), lintXmlPath)
         }
 
         // Ideally, teams aren't able to add new violations to a baseline file; they should only