Skip to content

Commit 2323d7a

Browse files
committed
Merge pull request androidannotations#609 from adrianroos/develop
Add option to specify package of R class. Implements issue androidannotations#607.
2 parents 215e062 + 74fc886 commit 2323d7a

2 files changed

Lines changed: 13 additions & 2 deletions

File tree

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/AndroidAnnotationProcessor.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import static org.androidannotations.helper.CanonicalNameConstants.PRODUCE;
2020
import static org.androidannotations.helper.CanonicalNameConstants.SUBSCRIBE;
2121
import static org.androidannotations.helper.ModelConstants.TRACE_OPTION;
22+
import static org.androidannotations.rclass.ProjectRClassFinder.RESOURCE_PACKAGE_NAME_OPTION;
2223

2324
import java.io.IOException;
2425
import java.io.PrintWriter;
@@ -270,7 +271,7 @@
270271
import org.androidannotations.validation.rest.RestValidator;
271272

272273
@SupportedSourceVersion(SourceVersion.RELEASE_6)
273-
@SupportedOptions({ TRACE_OPTION, ANDROID_MANIFEST_FILE_OPTION })
274+
@SupportedOptions({ TRACE_OPTION, ANDROID_MANIFEST_FILE_OPTION, RESOURCE_PACKAGE_NAME_OPTION })
274275
public class AndroidAnnotationProcessor extends AbstractProcessor {
275276

276277
private final TimeStats timeStats = new TimeStats();

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/rclass/ProjectRClassFinder.java‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626

2727
public class ProjectRClassFinder {
2828

29+
public static final String RESOURCE_PACKAGE_NAME_OPTION = "resourcePackageName";
30+
2931
private ProcessingEnvironment processingEnv;
3032

3133
public ProjectRClassFinder(ProcessingEnvironment processingEnv) {
@@ -35,7 +37,7 @@ public ProjectRClassFinder(ProcessingEnvironment processingEnv) {
3537
public Option<IRClass> find(AndroidManifest manifest) {
3638

3739
Elements elementUtils = processingEnv.getElementUtils();
38-
String rClass = manifest.getApplicationPackage() + ".R";
40+
String rClass = getRClassPackageName(manifest) + ".R";
3941
TypeElement rType = elementUtils.getTypeElement(rClass);
4042

4143
if (rType == null) {
@@ -46,4 +48,12 @@ public Option<IRClass> find(AndroidManifest manifest) {
4648

4749
return Option.<IRClass> of(new RClass(rType));
4850
}
51+
52+
public String getRClassPackageName(AndroidManifest manifest) {
53+
if (processingEnv.getOptions().containsKey(RESOURCE_PACKAGE_NAME_OPTION)) {
54+
return processingEnv.getOptions().get(RESOURCE_PACKAGE_NAME_OPTION);
55+
} else {
56+
return manifest.getApplicationPackage();
57+
}
58+
}
4959
}

0 commit comments

Comments
 (0)