diff --git a/tangram/src/main/java/com/tmall/wireless/tangram/support/ExposureSupport.java b/tangram/src/main/java/com/tmall/wireless/tangram/support/ExposureSupport.java index 32c3c19..d81c275 100644 --- a/tangram/src/main/java/com/tmall/wireless/tangram/support/ExposureSupport.java +++ b/tangram/src/main/java/com/tmall/wireless/tangram/support/ExposureSupport.java @@ -93,10 +93,7 @@ public abstract class ExposureSupport { private void findTraceMethods(Method[] methods) { for (Method method : methods) { String methodName = method.getName(); - if (!methodName.equals(ON_TRACE_METHOD_NAME) && methodName.startsWith( - ON_TRACE_METHOD_NAME) || - (methodName.startsWith(ON_TRACE_METHOD_PREFIX) && methodName.endsWith( - ON_TRACE_METHOD_POSTFIX))) { + if (isValidTraceMethodName(methodName)) { int modifiers = method.getModifiers(); if ((modifiers & Modifier.PUBLIC) != 0 && (modifiers & MODIFIERS_IGNORE) == 0) { Class[] parameterTypes = method.getParameterTypes(); @@ -116,13 +113,15 @@ public abstract class ExposureSupport { } } + private boolean isValidTraceMethodName(String methodName) { + return !methodName.equals(ON_TRACE_METHOD_NAME) && methodName.startsWith(ON_TRACE_METHOD_NAME) || + (methodName.startsWith(ON_TRACE_METHOD_PREFIX) && methodName.endsWith(ON_TRACE_METHOD_POSTFIX)); + } + private void findExposureMethods(Method[] methods) { for (Method method : methods) { String methodName = method.getName(); - if (!methodName.equals(ON_EXPOSURE_METHOD_NAME) && methodName.startsWith( - ON_EXPOSURE_METHOD_NAME) || - (methodName.startsWith(ON_EXPOSURE_METHOD_PREFIX) && methodName.endsWith( - ON_EXPOSURE_METHOD_POSTFIX))) { + if (isValidExposureMethodName(methodName)) { int modifiers = method.getModifiers(); if ((modifiers & Modifier.PUBLIC) != 0 && (modifiers & MODIFIERS_IGNORE) == 0) { Class[] parameterTypes = method.getParameterTypes(); @@ -142,6 +141,11 @@ public abstract class ExposureSupport { } } + private boolean isValidExposureMethodName(String methodName) { + return !methodName.equals(ON_EXPOSURE_METHOD_NAME) && methodName.startsWith(ON_EXPOSURE_METHOD_NAME) || + (methodName.startsWith(ON_EXPOSURE_METHOD_PREFIX) && methodName.endsWith(ON_EXPOSURE_METHOD_POSTFIX)); + } + /** * enable opt mode, users route exposure handler by themselves, otherwise exposure handler is routed by inner and invoked by reflection * @param optimizedMode true to enable opt mode diff --git a/tangram/src/main/java/com/tmall/wireless/tangram/support/SimpleClickSupport.java b/tangram/src/main/java/com/tmall/wireless/tangram/support/SimpleClickSupport.java index 08bf234..986c365 100644 --- a/tangram/src/main/java/com/tmall/wireless/tangram/support/SimpleClickSupport.java +++ b/tangram/src/main/java/com/tmall/wireless/tangram/support/SimpleClickSupport.java @@ -86,8 +86,7 @@ public abstract class SimpleClickSupport { private void findClickMethods(Method[] methods) { for (Method method : methods) { String methodName = method.getName(); - if (!methodName.equals(ON_CLICK_METHOD_NAME) && methodName.startsWith(ON_CLICK_METHOD_NAME) || - (methodName.startsWith(ON_CLICK_METHOD_PREFIX) && methodName.endsWith(ON_CLICK_METHOD_POSTFIX))) { + if (isValidMethodName(methodName)) { int modifiers = method.getModifiers(); if ((modifiers & Modifier.PUBLIC) != 0 && (modifiers & MODIFIERS_IGNORE) == 0) { Class[] parameterTypes = method.getParameterTypes(); @@ -113,6 +112,11 @@ public abstract class SimpleClickSupport { } } + private boolean isValidMethodName(String methodName) { + return !methodName.equals(ON_CLICK_METHOD_NAME) && methodName.startsWith(ON_CLICK_METHOD_NAME) || + (methodName.startsWith(ON_CLICK_METHOD_PREFIX) && methodName.endsWith(ON_CLICK_METHOD_POSTFIX)); + } + /** * Handler click event on item *