1 package com.google.android.lint.aidl 2 3 import com.android.tools.lint.checks.infrastructure.LintDetectorTest.java 4 import com.android.tools.lint.checks.infrastructure.TestFile 5 6 val aidlStub: TestFile = java( 7 """ 8 package android.test; 9 public interface ITest extends android.os.IInterface { 10 public static abstract class Stub extends android.os.Binder implements android.test.ITest { 11 protected void test_enforcePermission() throws SecurityException {} 12 } 13 public void test() throws android.os.RemoteException; 14 } 15 """ 16 ).indented() 17 18 val contextStub: TestFile = java( 19 """ 20 package android.content; 21 public class Context { 22 @android.annotation.PermissionMethod(orSelf = true) 23 public void enforceCallingOrSelfPermission(@android.annotation.PermissionName String permission, String message) {} 24 @android.annotation.PermissionMethod 25 public void enforceCallingPermission(@android.annotation.PermissionName String permission, String message) {} 26 @android.annotation.PermissionMethod(orSelf = true) 27 public int checkCallingOrSelfPermission(@android.annotation.PermissionName String permission, String message) {} 28 @android.annotation.PermissionMethod 29 public int checkCallingPermission(@android.annotation.PermissionName String permission, String message) {} 30 } 31 """ 32 ).indented() 33 34 val binderStub: TestFile = java( 35 """ 36 package android.os; 37 public class Binder { 38 public static int getCallingUid() {} 39 } 40 """ 41 ).indented() 42 43 val permissionMethodStub: TestFile = java( 44 """ 45 package android.annotation; 46 47 import static java.lang.annotation.ElementType.METHOD; 48 import static java.lang.annotation.RetentionPolicy.CLASS; 49 50 import java.lang.annotation.Retention; 51 import java.lang.annotation.Target; 52 53 @Retention(CLASS) 54 @Target({METHOD}) 55 public @interface PermissionMethod {} 56 """ 57 ).indented() 58 59 val permissionNameStub: TestFile = java( 60 """ 61 package android.annotation; 62 63 import static java.lang.annotation.ElementType.FIELD; 64 import static java.lang.annotation.ElementType.LOCAL_VARIABLE; 65 import static java.lang.annotation.ElementType.METHOD; 66 import static java.lang.annotation.ElementType.PARAMETER; 67 import static java.lang.annotation.RetentionPolicy.CLASS; 68 69 import java.lang.annotation.Retention; 70 import java.lang.annotation.Target; 71 72 @Retention(CLASS) 73 @Target({PARAMETER, METHOD, LOCAL_VARIABLE, FIELD}) 74 public @interface PermissionName {} 75 """ 76 ).indented() 77 78 val manifestStub: TestFile = java( 79 """ 80 package android; 81 82 public final class Manifest { 83 public static final class permission { 84 public static final String READ_CONTACTS="android.permission.READ_CONTACTS"; 85 } 86 } 87 """.trimIndent() 88 )