PermissionsLaunchDetector

class PermissionsLaunchDetector : Detector, SourceCodeScanner(source)

Detector that checks PermissionState.launchPermissionRequest and MultiplePermissionsState.launchMultiplePermissionRequest calls to make sure they don't happen inside the body of a composable function / lambda.

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open fun afterCheckEachProject(context: Context)
Link copied to clipboard
open fun afterCheckFile(context: Context)
Link copied to clipboard
open fun afterCheckRootProject(context: Context)
Link copied to clipboard
open fun analyzeCallGraph(context: Context, callGraph: CallGraphResult)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun appliesTo(folderType: ResourceFolderType): Boolean
Link copied to clipboard
Link copied to clipboard
open fun beforeCheckEachProject(context: Context)
Link copied to clipboard
open fun beforeCheckFile(context: Context)
Link copied to clipboard
open fun beforeCheckRootProject(context: Context)
Link copied to clipboard
open fun checkBinaryResource(context: ResourceContext)
Link copied to clipboard
open fun checkCall(context: ClassContext, classNode: ClassNode, method: MethodNode, call: MethodInsnNode)
Link copied to clipboard
open fun checkClass(context: ClassContext, classNode: ClassNode)
open fun checkClass(context: JavaContext, declaration: PsiClass)
Link copied to clipboard
open fun checkDslPropertyAssignment(context: GradleContext, property: String, value: String, parent: String, parentParent: String?, valueCookie: Any, statementCookie: Any)
open fun checkDslPropertyAssignment(context: GradleContext, property: String, value: String, parent: String, parentParent: String?, propertyCookie: Any, valueCookie: Any, statementCookie: Any)
Link copied to clipboard
open fun checkFolder(context: ResourceContext, folderName: String)
Link copied to clipboard
open fun checkInstruction(context: ClassContext, classNode: ClassNode, method: MethodNode, instruction: AbstractInsnNode)
Link copied to clipboard
open fun checkMergedProject(context: Context)
Link copied to clipboard
open fun checkMethodCall(context: GradleContext, statement: String, parent: String?, namedArguments: Map<String, String>, unnamedArguments: List<String>, cookie: Any)
open fun checkMethodCall(context: GradleContext, statement: String, parent: String?, parentParent: String?, namedArguments: Map<String, String>, unnamedArguments: List<String>, cookie: Any)
Link copied to clipboard
open fun checkPartialResults(context: Context, partialResults: PartialResult)
Link copied to clipboard
open fun createPsiVisitor(context: JavaContext): JavaElementVisitor?
Link copied to clipboard
open fun createUastHandler(context: JavaContext): UElementHandler?
Link copied to clipboard
open fun filterIncident(context: Context, incident: Incident, map: LintMap): Boolean
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun getApplicableFiles(): EnumSet<Scope>
Link copied to clipboard
open override fun getApplicableMethodNames(): List<String>
Link copied to clipboard
open fun getApplicablePsiTypes(): List<Class<out PsiElement>>?
Link copied to clipboard
Link copied to clipboard
open fun getApplicableUastTypes(): List<Class<out UElement>>?
Link copied to clipboard
open fun inheritAnnotation(annotation: String): Boolean
Link copied to clipboard
open fun isApplicableAnnotationUsage(type: AnnotationUsageType): Boolean
Link copied to clipboard
Link copied to clipboard
open fun run(context: Context)
Link copied to clipboard
open fun visitAnnotationUsage(context: JavaContext, usage: UElement, type: AnnotationUsageType, annotation: UAnnotation, qualifiedName: String, method: PsiMethod?, annotations: List<UAnnotation>, allMemberAnnotations: List<UAnnotation>, allClassAnnotations: List<UAnnotation>, allPackageAnnotations: List<UAnnotation>)
open fun visitAnnotationUsage(context: JavaContext, usage: UElement, type: AnnotationUsageType, annotation: UAnnotation, qualifiedName: String, method: PsiMethod?, referenced: PsiElement?, annotations: List<UAnnotation>, allMemberAnnotations: List<UAnnotation>, allClassAnnotations: List<UAnnotation>, allPackageAnnotations: List<UAnnotation>)
Link copied to clipboard
open fun visitAttribute(context: XmlContext, attribute: Attr)
Link copied to clipboard
open fun visitBuildScript(context: Context)
Link copied to clipboard
open fun visitClass(context: JavaContext, declaration: UClass)
open fun visitClass(context: JavaContext, lambda: ULambdaExpression)
Link copied to clipboard
open fun visitConstructor(context: JavaContext, node: UCallExpression, constructor: PsiMethod)
open fun visitConstructor(context: JavaContext, visitor: JavaElementVisitor?, node: PsiNewExpression, constructor: PsiMethod)
Link copied to clipboard
open fun visitDocument(context: XmlContext, document: Document)
Link copied to clipboard
open fun visitElement(context: XmlContext, element: Element)
Link copied to clipboard
open fun visitElementAfter(context: XmlContext, element: Element)
Link copied to clipboard
open fun visitMethod(context: JavaContext, visitor: JavaElementVisitor?, call: PsiMethodCallExpression, method: PsiMethod)
Link copied to clipboard
open override fun visitMethodCall(context: JavaContext, node: UCallExpression, method: PsiMethod)
Link copied to clipboard
open fun visitReference(context: JavaContext, reference: UReferenceExpression, referenced: PsiElement)
open fun visitReference(context: JavaContext, visitor: JavaElementVisitor?, reference: PsiJavaCodeReferenceElement, referenced: PsiElement)
Link copied to clipboard
open fun visitResourceReference(context: JavaContext, node: UElement, type: ResourceType, name: String, isFramework: Boolean)
open fun visitResourceReference(context: JavaContext, visitor: JavaElementVisitor?, node: PsiElement, type: ResourceType, name: String, isFramework: Boolean)

Properties

Link copied to clipboard