1 /*
2  * Copyright (C) 2022 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.android.lint
18 
19 import com.android.tools.lint.client.api.IssueRegistry
20 import com.android.tools.lint.client.api.Vendor
21 import com.android.tools.lint.detector.api.CURRENT_API
22 import com.google.android.lint.aidl.EnforcePermissionDetector
23 import com.google.android.lint.aidl.PermissionAnnotationDetector
24 import com.google.android.lint.aidl.SimpleManualPermissionEnforcementDetector
25 import com.google.android.lint.aidl.SimpleRequiresNoPermissionDetector
26 import com.google.auto.service.AutoService
27 
28 @AutoService(IssueRegistry::class)
29 @Suppress("UnstableApiUsage")
30 class AndroidGlobalIssueRegistry : IssueRegistry() {
31     override val issues = listOf(
32             EnforcePermissionDetector.ISSUE_MISSING_ENFORCE_PERMISSION,
33             EnforcePermissionDetector.ISSUE_MISMATCHING_ENFORCE_PERMISSION,
34             EnforcePermissionDetector.ISSUE_ENFORCE_PERMISSION_HELPER,
35             EnforcePermissionDetector.ISSUE_MISUSING_ENFORCE_PERMISSION,
36             PermissionAnnotationDetector.ISSUE_MISSING_PERMISSION_ANNOTATION,
37             SimpleManualPermissionEnforcementDetector.ISSUE_SIMPLE_MANUAL_PERMISSION_ENFORCEMENT,
38             SimpleRequiresNoPermissionDetector.ISSUE_SIMPLE_REQUIRES_NO_PERMISSION,
39     )
40 
41     override val api: Int
42         get() = CURRENT_API
43 
44     override val minApi: Int
45         get() = 8
46 
47     override val vendor: Vendor = Vendor(
48             vendorName = "Android",
49             feedbackUrl = "http://b/issues/new?component=315013",
50             contact = "[email protected]"
51     )
52 }
53