3131import com .googlecode .androidannotations .rclass .IRClass ;
3232import com .sun .codemodel .JBlock ;
3333import com .sun .codemodel .JCodeModel ;
34+ import com .sun .codemodel .JExpression ;
3435import com .sun .codemodel .JFieldRef ;
3536import com .sun .codemodel .JInvocation ;
3637import com .sun .codemodel .JMethod ;
4243public class TextChangeProcessor implements ElementProcessor {
4344
4445 private final TextWatcherHelper helper ;
45-
46+
4647 private final APTCodeModelHelper codeModelHelper ;
4748
4849 public TextChangeProcessor (ProcessingEnvironment processingEnv , IRClass rClass ) {
@@ -71,16 +72,15 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti
7172 int charSequenceParameterPosition = -1 ;
7273 int viewParameterPosition = -1 ;
7374 TypeMirror viewParameterType = null ;
74-
75- for (int i = 0 ; i < parameters .size () ; i ++) {
75+
76+ for (int i = 0 ; i < parameters .size (); i ++) {
7677 VariableElement parameter = parameters .get (i );
7778 String parameterName = parameter .toString ();
7879 TypeMirror parameterType = parameter .asType ();
79-
80+
8081 if ("java.lang.CharSequence" .equals (parameterType .toString ())) {
8182 charSequenceParameterPosition = i ;
82- } else if (parameterType .getKind () == TypeKind .INT
83- || "java.lang.integer" .equals (parameterType .toString ())) {
83+ } else if (parameterType .getKind () == TypeKind .INT || "java.lang.integer" .equals (parameterType .toString ())) {
8484 if ("start" .equals (parameterName )) {
8585 startParameterPosition = i ;
8686 } else if ("count" .equals (parameterName )) {
@@ -96,9 +96,9 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti
9696 }
9797 }
9898 }
99-
99+
100100 TextChange annotation = element .getAnnotation (TextChange .class );
101-
101+
102102 List <JFieldRef > idsRefs = helper .extractFieldRefsFromAnnotationValues (element , annotation .value (), "TextChanged" , holder );
103103
104104 for (JFieldRef idRef : idsRefs ) {
@@ -109,17 +109,18 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti
109109
110110 JBlock previousBody = codeModelHelper .removeBody (methodToCall );
111111 JBlock methodBody = methodToCall .body ();
112-
112+
113113 methodBody .add (previousBody );
114- textChangeCall = methodBody .invoke (methodName );
114+ JExpression activityRef = holder .eBean .staticRef ("this" );
115+ textChangeCall = methodBody .invoke (activityRef , methodName );
115116
116- for (int i = 0 ; i < parameters .size () ; i ++) {
117+ for (int i = 0 ; i < parameters .size (); i ++) {
117118 if (i == startParameterPosition ) {
118119 JVar startParameter = codeModelHelper .findParameterByName (methodToCall , "start" );
119120 textChangeCall .arg (startParameter );
120121 } else if (i == countParameterPosition ) {
121122 JVar countParameter = codeModelHelper .findParameterByName (methodToCall , "count" );
122- textChangeCall .arg (countParameter );
123+ textChangeCall .arg (countParameter );
123124 } else if (i == beforeParameterPosition ) {
124125 JVar beforeParameter = codeModelHelper .findParameterByName (methodToCall , "before" );
125126 textChangeCall .arg (beforeParameter );
0 commit comments