Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Feb 26, 2023. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.androidannotations.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
*
* @author Rostislav Chekan
*/
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.METHOD)
public @interface CheckedChange {
int[] value() default ResId.DEFAULT_VALUE;

String[] resName() default "";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.androidannotations.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
*
* @author Rostislav Chekan
*/
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.METHOD)
public @interface FocusChange {
int[] value() default ResId.DEFAULT_VALUE;

String[] resName() default "";
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
import org.androidannotations.annotations.Background;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.BeforeTextChange;
import org.androidannotations.annotations.CheckedChange;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.CustomTitle;
import org.androidannotations.annotations.EActivity;
Expand All @@ -58,6 +59,7 @@
import org.androidannotations.annotations.EView;
import org.androidannotations.annotations.EViewGroup;
import org.androidannotations.annotations.Extra;
import org.androidannotations.annotations.FocusChange;
import org.androidannotations.annotations.FragmentArg;
import org.androidannotations.annotations.FragmentById;
import org.androidannotations.annotations.FragmentByTag;
Expand Down Expand Up @@ -133,6 +135,7 @@
import org.androidannotations.processing.BackgroundProcessor;
import org.androidannotations.processing.BeanProcessor;
import org.androidannotations.processing.BeforeTextChangeProcessor;
import org.androidannotations.processing.CheckedChangeProcessor;
import org.androidannotations.processing.ClickProcessor;
import org.androidannotations.processing.CustomTitleProcessor;
import org.androidannotations.processing.EActivityProcessor;
Expand All @@ -145,6 +148,7 @@
import org.androidannotations.processing.EViewGroupProcessor;
import org.androidannotations.processing.EViewProcessor;
import org.androidannotations.processing.ExtraProcessor;
import org.androidannotations.processing.FocusChangeProcessor;
import org.androidannotations.processing.FragmentArgProcessor;
import org.androidannotations.processing.FragmentByIdProcessor;
import org.androidannotations.processing.FragmentByTagProcessor;
Expand Down Expand Up @@ -201,6 +205,7 @@
import org.androidannotations.validation.AppValidator;
import org.androidannotations.validation.BeanValidator;
import org.androidannotations.validation.BeforeTextChangeValidator;
import org.androidannotations.validation.CheckedChangeValidator;
import org.androidannotations.validation.ClickValidator;
import org.androidannotations.validation.CustomTitleValidator;
import org.androidannotations.validation.EActivityValidator;
Expand All @@ -213,6 +218,7 @@
import org.androidannotations.validation.EViewGroupValidator;
import org.androidannotations.validation.EViewValidator;
import org.androidannotations.validation.ExtraValidator;
import org.androidannotations.validation.FocusChangeValidator;
import org.androidannotations.validation.FragmentArgValidator;
import org.androidannotations.validation.FragmentByIdValidator;
import org.androidannotations.validation.FragmentByTagValidator;
Expand Down Expand Up @@ -392,6 +398,8 @@ private ModelValidator buildModelValidator(IRClass rClass, AndroidSystemServices
modelValidator.register(new ClickValidator(processingEnv, rClass));
modelValidator.register(new LongClickValidator(processingEnv, rClass));
modelValidator.register(new TouchValidator(processingEnv, rClass));
modelValidator.register(new FocusChangeValidator(processingEnv, rClass));
modelValidator.register(new CheckedChangeValidator(processingEnv, rClass));
modelValidator.register(new ItemClickValidator(processingEnv, rClass));
modelValidator.register(new ItemSelectedValidator(processingEnv, rClass));
modelValidator.register(new ItemLongClickValidator(processingEnv, rClass));
Expand Down Expand Up @@ -487,6 +495,8 @@ private ModelProcessor buildModelProcessor(IRClass rClass, AndroidSystemServices
modelProcessor.register(new ClickProcessor(processingEnv, rClass));
modelProcessor.register(new LongClickProcessor(processingEnv, rClass));
modelProcessor.register(new TouchProcessor(processingEnv, rClass));
modelProcessor.register(new FocusChangeProcessor(processingEnv, rClass));
modelProcessor.register(new CheckedChangeProcessor(processingEnv, rClass));
modelProcessor.register(new ItemClickProcessor(processingEnv, rClass));
modelProcessor.register(new ItemSelectedProcessor(processingEnv, rClass));
modelProcessor.register(new ItemLongClickProcessor(processingEnv, rClass));
Expand Down Expand Up @@ -589,6 +599,8 @@ public Set<String> getSupportedAnnotationTypes() {
Click.class, //
LongClick.class, //
ItemClick.class, //
FocusChange.class, //
CheckedChange.class, //
ItemLongClick.class, //
Touch.class, //
ItemSelect.class, //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,12 @@ public final class CanonicalNameConstants {
public static final String SEEKBAR = "android.widget.SeekBar";
public static final String ON_SEEKBAR_CHANGE_LISTENER = "android.widget.SeekBar.OnSeekBarChangeListener";
public static final String TEXT_VIEW = "android.widget.TextView";
public static final String COMPOUND_BUTTON = "android.widget.CompoundButton";
public static final String VIEW = "android.view.View";
public static final String VIEW_ON_CLICK_LISTENER = "android.view.View.OnClickListener";
public static final String VIEW_ON_TOUCH_LISTENER = "android.view.View.OnTouchListener";
public static final String VIEW_ON_LONG_CLICK_LISTENER = "android.view.View.OnLongClickListener";
public static final String VIEW_ON_FOCUS_CHANGE_LISTENER = "android.view.View.OnFocusChangeListener";
public static final String VIEW_GROUP_LAYOUT_PARAMS = "android.view.ViewGroup.LayoutParams";
public static final String VIEW_GROUP = "android.view.ViewGroup";
public static final String CONTEXT = "android.content.Context";
Expand All @@ -74,7 +78,6 @@ public final class CanonicalNameConstants {
public static final String ON_ITEM_CLICK_LISTENER = "android.widget.AdapterView.OnItemClickListener";
public static final String ON_ITEM_LONG_CLICK_LISTENER = "android.widget.AdapterView.OnItemLongClickListener";
public static final String ON_ITEM_SELECTED_LISTENER = "android.widget.AdapterView.OnItemSelectedListener";
public static final String ON_LONG_CLICK_LISTENER = "android.view.View.OnLongClickListener";
public static final String WINDOW = "android.view.Window";
public static final String MENU_ITEM = "android.view.MenuItem";
public static final String MENU_INFLATER = "android.view.MenuInflater";
Expand All @@ -84,7 +87,6 @@ public final class CanonicalNameConstants {
public static final String RESOURCES = "android.content.res.Resources";
public static final String CONFIGURATION = "android.content.res.Configuration";
public static final String MOTION_EVENT = "android.view.MotionEvent";
public static final String ON_TOUCH_LISTENER = "android.view.View.OnTouchListener";
public static final String HANDLER = "android.os.Handler";
public static final String SERVICE = "android.app.Service";
public static final String BROADCAST_RECEIVER = "android.content.BroadcastReceiver";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@

public class ValidatorHelper {

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

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

protected final TargetAnnotationHelper annotationHelper;

public final ValidatorParameterHelper param;

public ValidatorHelper(TargetAnnotationHelper targetAnnotationHelper) {
annotationHelper = targetAnnotationHelper;
param = new ValidatorParameterHelper(annotationHelper);
}

public void isNotFinal(Element element, IsValid valid) {
Expand Down Expand Up @@ -473,56 +475,6 @@ public void returnTypeIsNotVoid(ExecutableElement executableElement, IsValid val
}
}

public void zeroOrOneParameter(ExecutableElement executableElement, IsValid valid) {
List<? extends VariableElement> parameters = executableElement.getParameters();

if (parameters.size() > 1) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "%s can only be used on a method with zero or one parameter, instead of " + parameters.size());
}
}

public void zeroParameter(ExecutableElement executableElement, IsValid valid) {
List<? extends VariableElement> parameters = executableElement.getParameters();

if (parameters.size() > 0) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "%s can only be used on a method with zero parameter, instead of " + parameters.size());
}
}

public void zeroOrOneViewParameters(ExecutableElement executableElement, IsValid valid) {
zeroOrOneSpecificParameter(executableElement, CanonicalNameConstants.VIEW, valid);
}

public void zeroOrOneMenuItemParameters(ExecutableElement executableElement, IsValid valid) {
zeroOrOneSpecificParameter(executableElement, ANDROID_SHERLOCK_MENU_ITEM_QUALIFIED_NAMES, valid);
}

public void zeroOrOneSpecificParameter(ExecutableElement executableElement, String parameterTypeQualifiedName, IsValid valid) {
zeroOrOneSpecificParameter(executableElement, Arrays.asList(parameterTypeQualifiedName), valid);
}

public void zeroOrOneSpecificParameter(ExecutableElement executableElement, List<String> parameterTypeQualifiedNames, IsValid valid) {

zeroOrOneParameter(executableElement, valid);

List<? extends VariableElement> parameters = executableElement.getParameters();

if (parameters.size() == 1) {
VariableElement parameter = parameters.get(0);
TypeMirror parameterType = parameter.asType();
if (!parameterTypeQualifiedNames.contains(parameterType.toString())) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "%s can only be used on a method with no parameter or a parameter of type " + parameterTypeQualifiedNames + ", not " + parameterType);
}
}
}

public void zeroOrOneBundleParameter(ExecutableElement executableElement, IsValid valid) {
zeroOrOneSpecificParameter(executableElement, CanonicalNameConstants.BUNDLE, valid);
}

public void extendsActivity(Element element, IsValid valid) {
extendsType(element, CanonicalNameConstants.ACTIVITY, valid);
}
Expand Down Expand Up @@ -688,32 +640,6 @@ public void extendsType(Element element, String typeQualifiedName, IsValid valid
}
}

public void hasExactlyOneParameter(ExecutableElement executableElement, IsValid valid) {
List<? extends VariableElement> parameters = executableElement.getParameters();
if (parameters.size() != 1) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "%s can only be used on a method with exactly one parameter, instead of " + parameters.size());
}
}

public void hasOneOrTwoParametersAndFirstIsBoolean(ExecutableElement executableElement, IsValid valid) {
List<? extends VariableElement> parameters = executableElement.getParameters();

if (parameters.size() < 1 || parameters.size() > 2) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "%s can only be used on a method with 1 or 2 parameter, instead of " + parameters.size());
} else {
VariableElement firstParameter = parameters.get(0);

TypeKind parameterKind = firstParameter.asType().getKind();

if (parameterKind != TypeKind.BOOLEAN && !firstParameter.toString().equals(CanonicalNameConstants.BOOLEAN)) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "the first parameter should be a boolean");
}
}
}

public void allowedType(Element element, IsValid valid, TypeMirror fieldTypeMirror, List<String> allowedTypes) {

String qualifiedName = fieldTypeMirror.toString();
Expand Down Expand Up @@ -774,46 +700,6 @@ public void androidService(AndroidSystemServices androidSystemServices, Element
}
}

public void hasOneMotionEventOrTwoMotionEventViewParameters(ExecutableElement executableElement, IsValid valid) {
List<? extends VariableElement> parameters = executableElement.getParameters();

if (parameters.size() < 1 || parameters.size() > 2) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "%s can only be used on a method with 1 (MotionEvent) or 2 (MotionEvent, View) parameters, instead of " + parameters.size());
} else {
VariableElement firstParameter = parameters.get(0);
String firstParameterType = firstParameter.asType().toString();
if (!firstParameterType.equals(CanonicalNameConstants.MOTION_EVENT)) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "the first parameter must be a " + CanonicalNameConstants.MOTION_EVENT + ", not a " + firstParameterType);
}
if (parameters.size() == 2) {
VariableElement secondParameter = parameters.get(1);
String secondParameterType = secondParameter.asType().toString();
if (!secondParameterType.equals(CanonicalNameConstants.VIEW)) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "the second parameter must be a " + CanonicalNameConstants.VIEW + ", not a " + secondParameterType);
}
}
}
}

public void hasOneOrTwoParametersAndFirstIsDb(ExecutableElement executableElement, IsValid valid) {
List<? extends VariableElement> parameters = executableElement.getParameters();

if (parameters.size() < 1) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "There should be at least 1 parameter: a " + CanonicalNameConstants.SQLITE_DATABASE);
} else {
VariableElement firstParameter = parameters.get(0);
String firstParameterType = firstParameter.asType().toString();
if (!firstParameterType.equals(CanonicalNameConstants.SQLITE_DATABASE)) {
valid.invalidate();
annotationHelper.printAnnotationError(executableElement, "the first parameter must be a " + CanonicalNameConstants.SQLITE_DATABASE + ", not a " + firstParameterType);
}
}
}

public void isDeclaredType(Element element, IsValid valid, TypeMirror uiFieldTypeMirror) {
if (!(uiFieldTypeMirror instanceof DeclaredType)) {
valid.invalidate();
Expand Down
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.