Skip to content

Commit f61c956

Browse files
Illia BershadskyiIllia Bershadskyi
authored andcommitted
Updated JavaDoc; Added output of R field in processor
1 parent 35b94f4 commit f61c956

3 files changed

Lines changed: 15 additions & 7 deletions

File tree

‎AndroidAnnotations/androidannotations-api/src/main/java/org/androidannotations/annotations/CustomTitle.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import java.lang.annotation.Target;
2323

2424
/**
25-
* Should be used on Activity classes that must have custom title layout.
25+
* Use it on activities to set a custom title layout.
2626
*
2727
* The activity must be annotated with {@link EActivity}.
2828
*

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ private ModelProcessor buildModelProcessor(IRClass rClass, AndroidSystemServices
555555
modelProcessor.register(new OptionsMenuProcessor(processingEnv, rClass));
556556
modelProcessor.register(new OptionsItemProcessor(processingEnv, rClass));
557557
modelProcessor.register(new NoTitleProcessor());
558-
modelProcessor.register(new CustomTitleProcessor());
558+
modelProcessor.register(new CustomTitleProcessor(processingEnv, rClass));
559559
modelProcessor.register(new FullscreenProcessor());
560560
modelProcessor.register(new RestServiceProcessor());
561561
modelProcessor.register(new OrmLiteDaoProcessor(processingEnv));

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/processing/CustomTitleProcessor.java‎

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,22 @@
1818
import org.androidannotations.annotations.CustomTitle;
1919
import com.sun.codemodel.JCodeModel;
2020
import com.sun.codemodel.JFieldRef;
21+
import org.androidannotations.helper.AnnotationHelper;
22+
import org.androidannotations.rclass.IRClass;
23+
import org.androidannotations.rclass.IRClass.Res;
2124

25+
import javax.annotation.processing.ProcessingEnvironment;
2226
import javax.lang.model.element.Element;
2327
import java.lang.annotation.Annotation;
2428

25-
import static com.sun.codemodel.JExpr.lit;
26-
27-
2829
public class CustomTitleProcessor implements DecoratingElementProcessor {
30+
private final AnnotationHelper annotationHelper;
31+
private final IRClass rClass;
32+
33+
public CustomTitleProcessor(ProcessingEnvironment processingEnv, IRClass rClass) {
34+
annotationHelper = new AnnotationHelper(processingEnv);
35+
this.rClass = rClass;
36+
}
2937

3038
@Override
3139
public Class<? extends Annotation> getTarget() {
@@ -34,10 +42,10 @@ public Class<? extends Annotation> getTarget() {
3442

3543
@Override
3644
public void process(Element element, JCodeModel codeModel, EBeanHolder holder) {
37-
CustomTitle annotation = element.getAnnotation(CustomTitle.class);
3845
JFieldRef customTitleFeature = holder.classes().WINDOW.staticRef("FEATURE_CUSTOM_TITLE");
3946

4047
holder.init.body().invoke("requestWindowFeature").arg(customTitleFeature);
41-
holder.afterSetContentView.body().add(holder.contextRef.invoke("getWindow").invoke("setFeatureInt").arg(customTitleFeature).arg(lit(annotation.value())));
48+
JFieldRef contentViewId = annotationHelper.extractAnnotationFieldRefs(holder, element, CustomTitle.class, rClass.get(Res.LAYOUT), false).get(0);
49+
holder.afterSetContentView.body().add(holder.contextRef.invoke("getWindow").invoke("setFeatureInt").arg(customTitleFeature).arg(contentViewId));
4250
}
4351
}

0 commit comments

Comments
 (0)