Skip to content

Commit c181adb

Browse files
Small refactor
1 parent 43e93bb commit c181adb

File tree

1 file changed

+16
-11
lines changed
  • androidannotationspermissionsdispatcherplugin/src/main/java/com/github/aleksandermielczarek/androidannotationspermissionsdispatcherplugin

1 file changed

+16
-11
lines changed

androidannotationspermissionsdispatcherplugin/src/main/java/com/github/aleksandermielczarek/androidannotationspermissionsdispatcherplugin/NeedsPermissionHandler.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,14 @@ public void process(Element element, EComponentHolder holder) throws Exception {
5050
TypeElement annotatedElement = holder.getAnnotatedElement();
5151
String delegateClassName = annotatedElement.getQualifiedName().toString() + "PermissionsDispatcher";
5252
AbstractJClass delegateClass = getJClass(delegateClassName);
53-
5453
PermissionDispatcherHolder permissionDispatcherHolder = holder.getPluginHolder(new PermissionDispatcherHolder(holder));
5554

56-
if (hasSpecialPermissions(element)) {
57-
permissionDispatcherHolder.setOnActivityResultDelegateCall(delegateClass);
58-
}
59-
if (hasNormalPermissions(element)) {
60-
permissionDispatcherHolder.setOnRequestPermissionsResultDelegateCall(delegateClass);
61-
}
62-
55+
setDispatcherCallbacks(element, delegateClass, permissionDispatcherHolder);
6356
JFieldVar dispatcherCalledField = permissionDispatcherHolder.getPermissionDispatcherCalledField();
57+
setPermissionMethods(element, holder, delegateClass, dispatcherCalledField);
58+
}
6459

60+
private void setPermissionMethods(Element element, EComponentHolder holder, AbstractJClass delegateClass, JFieldVar dispatcherCalledField) {
6561
ExecutableElement executableElement = (ExecutableElement) element;
6662

6763
JMethod overrideMethod = codeModelHelper.overrideAnnotatedMethod(executableElement, holder);
@@ -97,6 +93,15 @@ public void process(Element element, EComponentHolder holder) throws Exception {
9793
elseBlock.add(previousMethodBody);
9894
}
9995

96+
private void setDispatcherCallbacks(Element element, AbstractJClass delegateClass, PermissionDispatcherHolder permissionDispatcherHolder) {
97+
if (hasSpecialPermissions(element)) {
98+
permissionDispatcherHolder.setOnActivityResultDelegateCall(delegateClass);
99+
}
100+
if (hasNormalPermissions(element)) {
101+
permissionDispatcherHolder.setOnRequestPermissionsResultDelegateCall(delegateClass);
102+
}
103+
}
104+
100105
private AnnotationMirror findAnnotation(Element element) {
101106
return element.getAnnotationMirrors().stream()
102107
.filter(this::isNeedsPermission)
@@ -126,11 +131,11 @@ private boolean isNeedsPermission(AnnotationMirror annotationMirror) {
126131
}
127132

128133
@SuppressWarnings("unchecked")
129-
private boolean removeRuntimePermissionsAnnotation(JDefinedClass activity) {
134+
private boolean removeRuntimePermissionsAnnotation(JDefinedClass definedClass) {
130135
try {
131-
Field annotationsField = activity.getClass().getDeclaredField("m_aAnnotations");
136+
Field annotationsField = definedClass.getClass().getDeclaredField("m_aAnnotations");
132137
annotationsField.setAccessible(true);
133-
List<JAnnotationUse> annotations = (List<JAnnotationUse>) annotationsField.get(activity);
138+
List<JAnnotationUse> annotations = (List<JAnnotationUse>) annotationsField.get(definedClass);
134139
if (annotations == null) {
135140
return true;
136141
}

0 commit comments

Comments
 (0)