Skip to content

Commit f2af436

Browse files
Merge branch '459_common_listener_processor2' into develop
Conflicts: AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/AndroidAnnotationProcessor.java AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/ValidatorHelper.java AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/processing/ClickProcessor.java AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/processing/LongClickProcessor.java AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/processing/TouchProcessor.java
2 parents 2aa295e + 07468b2 commit f2af436

29 files changed

Lines changed: 878 additions & 210 deletions
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.androidannotations.annotations;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
9+
/**
10+
*
11+
* @author Rostislav Chekan
12+
*/
13+
@Retention(RetentionPolicy.CLASS)
14+
@Target(ElementType.METHOD)
15+
public @interface CheckedChange {
16+
int[] value() default ResId.DEFAULT_VALUE;
17+
18+
String[] resName() default "";
19+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.androidannotations.annotations;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
/**
9+
*
10+
* @author Rostislav Chekan
11+
*/
12+
@Retention(RetentionPolicy.CLASS)
13+
@Target(ElementType.METHOD)
14+
public @interface FocusChange {
15+
int[] value() default ResId.DEFAULT_VALUE;
16+
17+
String[] resName() default "";
18+
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@
133133
import org.androidannotations.processing.BackgroundProcessor;
134134
import org.androidannotations.processing.BeanProcessor;
135135
import org.androidannotations.processing.BeforeTextChangeProcessor;
136+
import org.androidannotations.processing.CheckedChangeProcessor;
136137
import org.androidannotations.processing.ClickProcessor;
137138
import org.androidannotations.processing.CustomTitleProcessor;
138139
import org.androidannotations.processing.EActivityProcessor;
@@ -145,6 +146,7 @@
145146
import org.androidannotations.processing.EViewGroupProcessor;
146147
import org.androidannotations.processing.EViewProcessor;
147148
import org.androidannotations.processing.ExtraProcessor;
149+
import org.androidannotations.processing.FocusChangeProcessor;
148150
import org.androidannotations.processing.FragmentArgProcessor;
149151
import org.androidannotations.processing.FragmentByIdProcessor;
150152
import org.androidannotations.processing.FragmentByTagProcessor;
@@ -201,6 +203,7 @@
201203
import org.androidannotations.validation.AppValidator;
202204
import org.androidannotations.validation.BeanValidator;
203205
import org.androidannotations.validation.BeforeTextChangeValidator;
206+
import org.androidannotations.validation.CheckedChangeValidator;
204207
import org.androidannotations.validation.ClickValidator;
205208
import org.androidannotations.validation.CustomTitleValidator;
206209
import org.androidannotations.validation.EActivityValidator;
@@ -213,6 +216,7 @@
213216
import org.androidannotations.validation.EViewGroupValidator;
214217
import org.androidannotations.validation.EViewValidator;
215218
import org.androidannotations.validation.ExtraValidator;
219+
import org.androidannotations.validation.FocusChangeValidator;
216220
import org.androidannotations.validation.FragmentArgValidator;
217221
import org.androidannotations.validation.FragmentByIdValidator;
218222
import org.androidannotations.validation.FragmentByTagValidator;
@@ -392,6 +396,8 @@ private ModelValidator buildModelValidator(IRClass rClass, AndroidSystemServices
392396
modelValidator.register(new ClickValidator(processingEnv, rClass));
393397
modelValidator.register(new LongClickValidator(processingEnv, rClass));
394398
modelValidator.register(new TouchValidator(processingEnv, rClass));
399+
modelValidator.register(new FocusChangeValidator(processingEnv, rClass));
400+
modelValidator.register(new CheckedChangeValidator(processingEnv, rClass));
395401
modelValidator.register(new ItemClickValidator(processingEnv, rClass));
396402
modelValidator.register(new ItemSelectedValidator(processingEnv, rClass));
397403
modelValidator.register(new ItemLongClickValidator(processingEnv, rClass));
@@ -487,6 +493,8 @@ private ModelProcessor buildModelProcessor(IRClass rClass, AndroidSystemServices
487493
modelProcessor.register(new ClickProcessor(processingEnv, rClass));
488494
modelProcessor.register(new LongClickProcessor(processingEnv, rClass));
489495
modelProcessor.register(new TouchProcessor(processingEnv, rClass));
496+
modelProcessor.register(new FocusChangeProcessor(processingEnv, rClass));
497+
modelProcessor.register(new CheckedChangeProcessor(processingEnv, rClass));
490498
modelProcessor.register(new ItemClickProcessor(processingEnv, rClass));
491499
modelProcessor.register(new ItemSelectedProcessor(processingEnv, rClass));
492500
modelProcessor.register(new ItemLongClickProcessor(processingEnv, rClass));

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/CanonicalNameConstants.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,12 @@ public final class CanonicalNameConstants {
5858
public static final String SEEKBAR = "android.widget.SeekBar";
5959
public static final String ON_SEEKBAR_CHANGE_LISTENER = "android.widget.SeekBar.OnSeekBarChangeListener";
6060
public static final String TEXT_VIEW = "android.widget.TextView";
61+
public static final String COMPOUND_BUTTON = "android.widget.CompoundButton";
6162
public static final String VIEW = "android.view.View";
6263
public static final String VIEW_ON_CLICK_LISTENER = "android.view.View.OnClickListener";
64+
public static final String VIEW_ON_TOUCH_LISTENER = "android.view.View.OnTouchListener";
65+
public static final String VIEW_ON_LONG_CLICK_LISTENER = "android.view.View.OnLongClickListener";
66+
public static final String VIEW_ON_FOCUS_CHANGE_LISTENER = "android.view.View.OnFocusChangeListener";
6367
public static final String VIEW_GROUP_LAYOUT_PARAMS = "android.view.ViewGroup.LayoutParams";
6468
public static final String VIEW_GROUP = "android.view.ViewGroup";
6569
public static final String CONTEXT = "android.content.Context";
@@ -74,7 +78,6 @@ public final class CanonicalNameConstants {
7478
public static final String ON_ITEM_CLICK_LISTENER = "android.widget.AdapterView.OnItemClickListener";
7579
public static final String ON_ITEM_LONG_CLICK_LISTENER = "android.widget.AdapterView.OnItemLongClickListener";
7680
public static final String ON_ITEM_SELECTED_LISTENER = "android.widget.AdapterView.OnItemSelectedListener";
77-
public static final String ON_LONG_CLICK_LISTENER = "android.view.View.OnLongClickListener";
7881
public static final String WINDOW = "android.view.Window";
7982
public static final String MENU_ITEM = "android.view.MenuItem";
8083
public static final String MENU_INFLATER = "android.view.MenuInflater";
@@ -84,7 +87,6 @@ public final class CanonicalNameConstants {
8487
public static final String RESOURCES = "android.content.res.Resources";
8588
public static final String CONFIGURATION = "android.content.res.Configuration";
8689
public static final String MOTION_EVENT = "android.view.MotionEvent";
87-
public static final String ON_TOUCH_LISTENER = "android.view.View.OnTouchListener";
8890
public static final String HANDLER = "android.os.Handler";
8991
public static final String SERVICE = "android.app.Service";
9092
public static final String BROADCAST_RECEIVER = "android.content.BroadcastReceiver";

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/ValidatorHelper.java‎

Lines changed: 3 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@
7676

7777
public class ValidatorHelper {
7878

79-
private static final List<String> ANDROID_SHERLOCK_MENU_ITEM_QUALIFIED_NAMES = asList(CanonicalNameConstants.MENU_ITEM, CanonicalNameConstants.SHERLOCK_MENU_ITEM);
8079
private static final List<String> ANDROID_FRAGMENT_QUALIFIED_NAMES = asList(CanonicalNameConstants.FRAGMENT, CanonicalNameConstants.SUPPORT_V4_FRAGMENT);
8180

8281
private static final String METHOD_NAME_SET_ROOT_URL = "setRootUrl";
@@ -89,8 +88,11 @@ public class ValidatorHelper {
8988

9089
protected final TargetAnnotationHelper annotationHelper;
9190

91+
public final ValidatorParameterHelper param;
92+
9293
public ValidatorHelper(TargetAnnotationHelper targetAnnotationHelper) {
9394
annotationHelper = targetAnnotationHelper;
95+
param = new ValidatorParameterHelper(annotationHelper);
9496
}
9597

9698
public void isNotFinal(Element element, IsValid valid) {
@@ -491,14 +493,6 @@ public void zeroParameter(ExecutableElement executableElement, IsValid valid) {
491493
}
492494
}
493495

494-
public void zeroOrOneViewParameters(ExecutableElement executableElement, IsValid valid) {
495-
zeroOrOneSpecificParameter(executableElement, CanonicalNameConstants.VIEW, valid);
496-
}
497-
498-
public void zeroOrOneMenuItemParameters(ExecutableElement executableElement, IsValid valid) {
499-
zeroOrOneSpecificParameter(executableElement, ANDROID_SHERLOCK_MENU_ITEM_QUALIFIED_NAMES, valid);
500-
}
501-
502496
public void zeroOrOneSpecificParameter(ExecutableElement executableElement, String parameterTypeQualifiedName, IsValid valid) {
503497
zeroOrOneSpecificParameter(executableElement, Arrays.asList(parameterTypeQualifiedName), valid);
504498
}
@@ -696,24 +690,6 @@ public void hasExactlyOneParameter(ExecutableElement executableElement, IsValid
696690
}
697691
}
698692

699-
public void hasOneOrTwoParametersAndFirstIsBoolean(ExecutableElement executableElement, IsValid valid) {
700-
List<? extends VariableElement> parameters = executableElement.getParameters();
701-
702-
if (parameters.size() < 1 || parameters.size() > 2) {
703-
valid.invalidate();
704-
annotationHelper.printAnnotationError(executableElement, "%s can only be used on a method with 1 or 2 parameter, instead of " + parameters.size());
705-
} else {
706-
VariableElement firstParameter = parameters.get(0);
707-
708-
TypeKind parameterKind = firstParameter.asType().getKind();
709-
710-
if (parameterKind != TypeKind.BOOLEAN && !firstParameter.toString().equals(CanonicalNameConstants.BOOLEAN)) {
711-
valid.invalidate();
712-
annotationHelper.printAnnotationError(executableElement, "the first parameter should be a boolean");
713-
}
714-
}
715-
}
716-
717693
public void allowedType(Element element, IsValid valid, TypeMirror fieldTypeMirror, List<String> allowedTypes) {
718694

719695
String qualifiedName = fieldTypeMirror.toString();
@@ -774,46 +750,6 @@ public void androidService(AndroidSystemServices androidSystemServices, Element
774750
}
775751
}
776752

777-
public void hasOneMotionEventOrTwoMotionEventViewParameters(ExecutableElement executableElement, IsValid valid) {
778-
List<? extends VariableElement> parameters = executableElement.getParameters();
779-
780-
if (parameters.size() < 1 || parameters.size() > 2) {
781-
valid.invalidate();
782-
annotationHelper.printAnnotationError(executableElement, "%s can only be used on a method with 1 (MotionEvent) or 2 (MotionEvent, View) parameters, instead of " + parameters.size());
783-
} else {
784-
VariableElement firstParameter = parameters.get(0);
785-
String firstParameterType = firstParameter.asType().toString();
786-
if (!firstParameterType.equals(CanonicalNameConstants.MOTION_EVENT)) {
787-
valid.invalidate();
788-
annotationHelper.printAnnotationError(executableElement, "the first parameter must be a " + CanonicalNameConstants.MOTION_EVENT + ", not a " + firstParameterType);
789-
}
790-
if (parameters.size() == 2) {
791-
VariableElement secondParameter = parameters.get(1);
792-
String secondParameterType = secondParameter.asType().toString();
793-
if (!secondParameterType.equals(CanonicalNameConstants.VIEW)) {
794-
valid.invalidate();
795-
annotationHelper.printAnnotationError(executableElement, "the second parameter must be a " + CanonicalNameConstants.VIEW + ", not a " + secondParameterType);
796-
}
797-
}
798-
}
799-
}
800-
801-
public void hasOneOrTwoParametersAndFirstIsDb(ExecutableElement executableElement, IsValid valid) {
802-
List<? extends VariableElement> parameters = executableElement.getParameters();
803-
804-
if (parameters.size() < 1) {
805-
valid.invalidate();
806-
annotationHelper.printAnnotationError(executableElement, "There should be at least 1 parameter: a " + CanonicalNameConstants.SQLITE_DATABASE);
807-
} else {
808-
VariableElement firstParameter = parameters.get(0);
809-
String firstParameterType = firstParameter.asType().toString();
810-
if (!firstParameterType.equals(CanonicalNameConstants.SQLITE_DATABASE)) {
811-
valid.invalidate();
812-
annotationHelper.printAnnotationError(executableElement, "the first parameter must be a " + CanonicalNameConstants.SQLITE_DATABASE + ", not a " + firstParameterType);
813-
}
814-
}
815-
}
816-
817753
public void isDeclaredType(Element element, IsValid valid, TypeMirror uiFieldTypeMirror) {
818754
if (!(uiFieldTypeMirror instanceof DeclaredType)) {
819755
valid.invalidate();

0 commit comments

Comments
 (0)