|
28 | 28 | import java.util.ArrayList; |
29 | 29 | import java.util.List; |
30 | 30 |
|
31 | | -import javax.lang.model.element.Element; |
32 | | -import javax.lang.model.element.ExecutableElement; |
33 | | -import javax.lang.model.element.Modifier; |
34 | 31 | import javax.lang.model.element.TypeElement; |
35 | | -import javax.lang.model.type.TypeKind; |
36 | 32 | import javax.lang.model.type.TypeMirror; |
37 | | -import javax.lang.model.util.ElementFilter; |
38 | 33 |
|
39 | | -import org.androidannotations.api.SdkVersionHelper; |
40 | 34 | import org.androidannotations.helper.ActivityIntentBuilder; |
41 | 35 | import org.androidannotations.helper.AndroidManifest; |
42 | 36 | import org.androidannotations.helper.AnnotationHelper; |
@@ -107,7 +101,6 @@ public EActivityHolder(ProcessHolder processHolder, TypeElement annotatedElement |
107 | 101 | setSetContentView(); |
108 | 102 | intentBuilder = new ActivityIntentBuilder(this, androidManifest); |
109 | 103 | intentBuilder.build(); |
110 | | - handleBackPressed(); |
111 | 104 | } |
112 | 105 |
|
113 | 106 | @Override |
@@ -341,63 +334,6 @@ public JVar getInitSavedInstanceParam() { |
341 | 334 | return initSavedInstanceParam; |
342 | 335 | } |
343 | 336 |
|
344 | | - private void handleBackPressed() { |
345 | | - Element declaredOnBackPressedMethod = getOnBackPressedMethod(annotatedElement); |
346 | | - if (declaredOnBackPressedMethod != null) { |
347 | | - |
348 | | - JMethod onKeyDownMethod = generatedClass.method(PUBLIC, codeModel().BOOLEAN, "onKeyDown"); |
349 | | - onKeyDownMethod.annotate(Override.class); |
350 | | - JVar keyCodeParam = onKeyDownMethod.param(codeModel().INT, "keyCode"); |
351 | | - JClass keyEventClass = classes().KEY_EVENT; |
352 | | - JVar eventParam = onKeyDownMethod.param(keyEventClass, "event"); |
353 | | - |
354 | | - JClass versionHelperClass = refClass(SdkVersionHelper.class); |
355 | | - |
356 | | - JInvocation sdkInt = versionHelperClass.staticInvoke("getSdkInt"); |
357 | | - |
358 | | - JBlock onKeyDownBody = onKeyDownMethod.body(); |
359 | | - |
360 | | - onKeyDownBody._if( // |
361 | | - sdkInt.lt(JExpr.lit(5)) // |
362 | | - .cand(keyCodeParam.eq(keyEventClass.staticRef("KEYCODE_BACK"))) // |
363 | | - .cand(eventParam.invoke("getRepeatCount").eq(JExpr.lit(0)))) // |
364 | | - ._then() // |
365 | | - .invoke("onBackPressed"); |
366 | | - |
367 | | - onKeyDownBody._return( // |
368 | | - JExpr._super().invoke(onKeyDownMethod) // |
369 | | - .arg(keyCodeParam) // |
370 | | - .arg(eventParam)); |
371 | | - } |
372 | | - } |
373 | | - |
374 | | - private ExecutableElement getOnBackPressedMethod(TypeElement activityElement) { |
375 | | - |
376 | | - AnnotationHelper annotationHelper = new AnnotationHelper(processingEnvironment()); |
377 | | - |
378 | | - List<? extends Element> allMembers = annotationHelper.getElementUtils().getAllMembers(activityElement); |
379 | | - |
380 | | - List<ExecutableElement> activityInheritedMethods = ElementFilter.methodsIn(allMembers); |
381 | | - |
382 | | - for (ExecutableElement activityInheritedMethod : activityInheritedMethods) { |
383 | | - if (isCustomOnBackPressedMethod(activityInheritedMethod)) { |
384 | | - return activityInheritedMethod; |
385 | | - } |
386 | | - } |
387 | | - return null; |
388 | | - } |
389 | | - |
390 | | - private boolean isCustomOnBackPressedMethod(ExecutableElement method) { |
391 | | - TypeElement methodClass = (TypeElement) method.getEnclosingElement(); |
392 | | - boolean methodBelongsToActivityClass = methodClass.getQualifiedName().toString().equals(CanonicalNameConstants.ACTIVITY); |
393 | | - return !methodBelongsToActivityClass // |
394 | | - && method.getSimpleName().toString().equals("onBackPressed") // |
395 | | - && method.getThrownTypes().size() == 0 // |
396 | | - && method.getModifiers().contains(Modifier.PUBLIC) // |
397 | | - && method.getReturnType().getKind().equals(TypeKind.VOID) // |
398 | | - && method.getParameters().size() == 0; |
399 | | - } |
400 | | - |
401 | 337 | @Override |
402 | 338 | public IntentBuilder getIntentBuilder() { |
403 | 339 | return intentBuilder; |
|
0 commit comments