Skip to content

Commit e304701

Browse files
committed
allow subclasses for @CheckedChange
1 parent 26649ab commit e304701

2 files changed

Lines changed: 10 additions & 5 deletions

File tree

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@
3737
* The method MAY have multiple parameter:
3838
* </p>
3939
* <ul>
40-
* <li>A {@link android.widget.CompoundButton} parameter to know which view has
41-
* targeted this event</li>
40+
* <li>A {@link android.widget.CompoundButton} (or a subclass) parameter to know
41+
* which view has targeted this event</li>
4242
* <li>An {@link boolean} to know the new state of the view.</li>
4343
* </ul>
4444
* <blockquote>
@@ -56,6 +56,11 @@
5656
* // Something Here
5757
* }
5858
*
59+
* &#064;CheckedChange
60+
* void <b>myButton</b>CheckedChanged(CheckBox button) {
61+
* // Something Here
62+
* }
63+
*
5964
* &#064;CheckedChange(<b>{R.id.myButton, R.id.myButton1}</b>)
6065
* void checkedChangedOnSomeButtons(CompoundButton button, boolean isChecked) {
6166
* // Something Here

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/CheckedChangeHandler.java‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public void validate(Element element, AnnotationElements validatedElements, IsVa
5252
validatorHelper.returnTypeIsVoid(executableElement, valid);
5353

5454
validatorHelper.param.anyOrder() //
55-
.type(CanonicalNameConstants.COMPOUND_BUTTON).optional() //
55+
.extendsType(CanonicalNameConstants.COMPOUND_BUTTON).optional() //
5656
.primitiveOrWrapper(TypeKind.BOOLEAN).optional() //
5757
.validate(executableElement, valid);
5858
}
@@ -69,8 +69,8 @@ protected void processParameters(EComponentWithViewSupportHolder holder, JMethod
6969

7070
for (VariableElement parameter : parameters) {
7171
String parameterType = parameter.asType().toString();
72-
if (parameterType.equals(CanonicalNameConstants.COMPOUND_BUTTON)) {
73-
call.arg(btnParam);
72+
if (isTypeOrSubclass(CanonicalNameConstants.COMPOUND_BUTTON, parameter)) {
73+
call.arg(castArgumentIfNecessary(holder, CanonicalNameConstants.COMPOUND_BUTTON, btnParam, parameter));
7474
} else if (parameterType.equals(CanonicalNameConstants.BOOLEAN) || parameter.asType().getKind() == TypeKind.BOOLEAN) {
7575
call.arg(isCheckedParam);
7676
}

0 commit comments

Comments
 (0)