3030import com .googlecode .androidannotations .rclass .IRClass ;
3131import com .sun .codemodel .JBlock ;
3232import com .sun .codemodel .JCodeModel ;
33+ import com .sun .codemodel .JExpression ;
3334import com .sun .codemodel .JFieldRef ;
3435import com .sun .codemodel .JInvocation ;
3536import com .sun .codemodel .JMethod ;
4142public class AfterTextChangeProcessor implements ElementProcessor {
4243
4344 private final TextWatcherHelper helper ;
44-
45+
4546 private final APTCodeModelHelper codeModelHelper ;
4647
4748 public AfterTextChangeProcessor (ProcessingEnvironment processingEnv , IRClass rClass ) {
@@ -67,11 +68,11 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti
6768 int editableParameterPosition = -1 ;
6869 int viewParameterPosition = -1 ;
6970 TypeMirror viewParameterType = null ;
70-
71- for (int i = 0 ; i < parameters .size () ; i ++) {
71+
72+ for (int i = 0 ; i < parameters .size (); i ++) {
7273 VariableElement parameter = parameters .get (i );
7374 TypeMirror parameterType = parameter .asType ();
74-
75+
7576 if ("android.text.Editable" .equals (parameterType .toString ())) {
7677 editableParameterPosition = i ;
7778 } else {
@@ -85,7 +86,7 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti
8586 }
8687
8788 AfterTextChange annotation = element .getAnnotation (AfterTextChange .class );
88-
89+
8990 List <JFieldRef > idsRefs = helper .extractFieldRefsFromAnnotationValues (element , annotation .value (), "AfterTextChanged" , holder );
9091
9192 for (JFieldRef idRef : idsRefs ) {
@@ -96,12 +97,13 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti
9697
9798 JBlock previousBody = codeModelHelper .removeBody (methodToCall );
9899 JBlock methodBody = methodToCall .body ();
99-
100+
100101 methodBody .add (previousBody );
101- textChangeCall = methodBody .invoke (methodName );
102+ JExpression activityRef = holder .eBean .staticRef ("this" );
103+ textChangeCall = methodBody .invoke (activityRef , methodName );
102104
103- for (int i = 0 ; i < parameters .size () ; i ++) {
104- if (i == editableParameterPosition ) {
105+ for (int i = 0 ; i < parameters .size (); i ++) {
106+ if (i == editableParameterPosition ) {
105107 JVar afterTextChangeEditableParam = codeModelHelper .findParameterByName (methodToCall , "s" );
106108 textChangeCall .arg (afterTextChangeEditableParam );
107109 } else if (i == viewParameterPosition ) {
@@ -113,5 +115,5 @@ public void process(Element element, JCodeModel codeModel, EBeansHolder activiti
113115 }
114116
115117 }
116-
118+
117119}
0 commit comments