diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/AndroidAnnotationProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/AndroidAnnotationProcessor.java
index 2f6483a7f9..089e419d14 100644
--- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/AndroidAnnotationProcessor.java
+++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/AndroidAnnotationProcessor.java
@@ -126,7 +126,6 @@
import org.androidannotations.processing.BeanProcessor;
import org.androidannotations.processing.BeforeTextChangeProcessor;
import org.androidannotations.processing.ClickProcessor;
-import org.androidannotations.processing.HierarchyViewerSupportProcessor;
import org.androidannotations.processing.EActivityProcessor;
import org.androidannotations.processing.EApplicationProcessor;
import org.androidannotations.processing.EBeanProcessor;
@@ -142,6 +141,7 @@
import org.androidannotations.processing.FragmentByTagProcessor;
import org.androidannotations.processing.FromHtmlProcessor;
import org.androidannotations.processing.FullscreenProcessor;
+import org.androidannotations.processing.HierarchyViewerSupportProcessor;
import org.androidannotations.processing.HttpsClientProcessor;
import org.androidannotations.processing.InstanceStateProcessor;
import org.androidannotations.processing.ItemClickProcessor;
@@ -191,7 +191,6 @@
import org.androidannotations.validation.BeanValidator;
import org.androidannotations.validation.BeforeTextChangeValidator;
import org.androidannotations.validation.ClickValidator;
-import org.androidannotations.validation.HierarchyViewerSupportValidator;
import org.androidannotations.validation.EActivityValidator;
import org.androidannotations.validation.EApplicationValidator;
import org.androidannotations.validation.EBeanValidator;
@@ -207,6 +206,7 @@
import org.androidannotations.validation.FragmentByTagValidator;
import org.androidannotations.validation.FromHtmlValidator;
import org.androidannotations.validation.FullscreenValidator;
+import org.androidannotations.validation.HierarchyViewerSupportValidator;
import org.androidannotations.validation.HttpsClientValidator;
import org.androidannotations.validation.InstanceStateValidator;
import org.androidannotations.validation.ItemClickValidator;
@@ -465,7 +465,7 @@ private ModelValidator buildModelValidator(IRClass rClass, AndroidSystemServices
modelValidator.register(new SystemServiceValidator(processingEnv, androidSystemServices));
modelValidator.register(new SharedPrefValidator(processingEnv));
modelValidator.register(new PrefValidator(processingEnv));
- modelValidator.register(new RestValidator(processingEnv));
+ modelValidator.register(new RestValidator(processingEnv, androidManifest));
modelValidator.register(new DeleteValidator(processingEnv));
modelValidator.register(new GetValidator(processingEnv));
modelValidator.register(new HeadValidator(processingEnv));
diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/validation/rest/RestValidator.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/validation/rest/RestValidator.java
index 2ff11ca705..a332089b2b 100644
--- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/validation/rest/RestValidator.java
+++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/validation/rest/RestValidator.java
@@ -22,6 +22,7 @@
import javax.lang.model.element.TypeElement;
import org.androidannotations.annotations.rest.Rest;
+import org.androidannotations.helper.AndroidManifest;
import org.androidannotations.helper.TargetAnnotationHelper;
import org.androidannotations.helper.ValidatorHelper;
import org.androidannotations.model.AnnotationElements;
@@ -31,8 +32,10 @@
public class RestValidator implements ElementValidator {
private final ValidatorHelper validatorHelper;
+ private final AndroidManifest androidManifest;
- public RestValidator(ProcessingEnvironment processingEnv) {
+ public RestValidator(ProcessingEnvironment processingEnv, AndroidManifest androidManifest) {
+ this.androidManifest = androidManifest;
TargetAnnotationHelper annotationHelper = new TargetAnnotationHelper(processingEnv, getTarget());
validatorHelper = new ValidatorHelper(annotationHelper);
}
@@ -64,6 +67,8 @@ public boolean validate(Element element, AnnotationElements validatedElements) {
validatorHelper.validateInterceptors(element, valid);
+ validatorHelper.hasInternetPermission(typeElement, androidManifest, valid);
+
return valid.isValid();
}
diff --git a/AndroidAnnotations/androidannotations/src/test/java/org/androidannotations/rest/RestTest.java b/AndroidAnnotations/androidannotations/src/test/java/org/androidannotations/rest/RestTest.java
index 4d875b88fa..7c381fd24e 100644
--- a/AndroidAnnotations/androidannotations/src/test/java/org/androidannotations/rest/RestTest.java
+++ b/AndroidAnnotations/androidannotations/src/test/java/org/androidannotations/rest/RestTest.java
@@ -17,11 +17,10 @@
import java.io.IOException;
-import org.junit.Before;
-import org.junit.Test;
-
import org.androidannotations.AndroidAnnotationProcessor;
import org.androidannotations.utils.AAProcessorTestHelper;
+import org.junit.Before;
+import org.junit.Test;
public class RestTest extends AAProcessorTestHelper {
@@ -37,4 +36,11 @@ public void class_client_does_not_compile() throws IOException {
assertCompilationErrorOn(ClassClient.class, "@Rest", result);
}
+ @Test
+ public void client_no_internet_permission_does_not_compile() throws IOException {
+ addManifestProcessorParameter(RestTest.class, "NoInternetPermissionManifest.xml");
+ CompileResult result = compileFiles(ClientWithNoConverters.class);
+ assertCompilationErrorOn(ClientWithNoConverters.class, "@Rest", result);
+ }
+
}
diff --git a/AndroidAnnotations/androidannotations/src/test/resources/org/androidannotations/rest/AndroidManifest.xml b/AndroidAnnotations/androidannotations/src/test/resources/org/androidannotations/rest/AndroidManifest.xml
index 2dc195a21d..5fb56a2756 100644
--- a/AndroidAnnotations/androidannotations/src/test/resources/org/androidannotations/rest/AndroidManifest.xml
+++ b/AndroidAnnotations/androidannotations/src/test/resources/org/androidannotations/rest/AndroidManifest.xml
@@ -20,6 +20,8 @@
package="org.androidannotations.testprocessor"
android:versionCode="1"
android:versionName="1.0" >
+
+
diff --git a/AndroidAnnotations/androidannotations/src/test/resources/org/androidannotations/rest/NoInternetPermissionManifest.xml b/AndroidAnnotations/androidannotations/src/test/resources/org/androidannotations/rest/NoInternetPermissionManifest.xml
new file mode 100644
index 0000000000..2dc195a21d
--- /dev/null
+++ b/AndroidAnnotations/androidannotations/src/test/resources/org/androidannotations/rest/NoInternetPermissionManifest.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+