diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/AnnotationHandlers.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/AnnotationHandlers.java index c1c2c261b7..55a99f3ec4 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/AnnotationHandlers.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/AnnotationHandlers.java @@ -15,6 +15,14 @@ */ package org.androidannotations.handler; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.annotation.processing.ProcessingEnvironment; + import org.androidannotations.handler.rest.DeleteHandler; import org.androidannotations.handler.rest.GetHandler; import org.androidannotations.handler.rest.HeadHandler; @@ -32,13 +40,6 @@ import org.androidannotations.process.ProcessHolder; import org.androidannotations.rclass.IRClass; -import javax.annotation.processing.ProcessingEnvironment; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - public class AnnotationHandlers { private List> annotationHandlers = new ArrayList>(); @@ -147,8 +148,10 @@ public AnnotationHandlers(ProcessingEnvironment processingEnvironment) { * SupposeUiThreadHandler and SupposeBackgroundHandler must be after all * handlers that modifies generated method body */ - add(new SupposeUiThreadHandler(processingEnvironment)); - add(new SupposeBackgroundHandler(processingEnvironment)); + if (optionsHelper.shouldEnsureThreadControl()) { + add(new SupposeUiThreadHandler(processingEnvironment)); + add(new SupposeBackgroundHandler(processingEnvironment)); + } } public void add(AnnotationHandler annotationHandler) { diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/OptionsHelper.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/OptionsHelper.java index b97422f467..40b9e3d157 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/OptionsHelper.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/OptionsHelper.java @@ -26,22 +26,29 @@ public class OptionsHelper { enum Option { - TRACE("trace"), // - ANDROID_MANIFEST_FILE("androidManifestFile"), // - RESOURCE_PACKAGE_NAME("resourcePackageName"), // - LOG_FILE("logFile"), // - LOG_LEVEL("logLevel"), // - LOG_APPENDER_CONSOLE("logAppenderConsole"); + TRACE("trace", "false"), // + THREAD_CONTROL("threadControl", "true"), // + ANDROID_MANIFEST_FILE("androidManifestFile", null), // + RESOURCE_PACKAGE_NAME("resourcePackageName", null), // + LOG_FILE("logFile", null), // + LOG_LEVEL("logLevel", "DEBUG"), // + LOG_APPENDER_CONSOLE("logAppenderConsole", "false"); private String key; + private String defaultValue; - private Option(String key) { + private Option(String key, String defaultValue) { this.key = key; + this.defaultValue = defaultValue; } public String getKey() { return key; } + + public String getDefaultValue() { + return defaultValue; + } } private final Map options; @@ -62,6 +69,10 @@ public boolean shouldLogTrace() { return getBoolean(Option.TRACE); } + public boolean shouldEnsureThreadControl() { + return getBoolean(Option.THREAD_CONTROL); + } + public String getAndroidManifestFile() { return getString(Option.ANDROID_MANIFEST_FILE); } @@ -78,7 +89,7 @@ public Level getLogLevel() { try { return Level.parse(getString(Option.LOG_LEVEL)); } catch (Exception e) { - return Level.DEBUG; + return Level.parse(Option.LOG_LEVEL.getDefaultValue()); } } @@ -87,17 +98,16 @@ public boolean shouldUseConsoleAppender() { } private String getString(Option option) { - return options.get(option.getKey()); - } - - private boolean getBoolean(Option option) { String key = option.getKey(); if (options.containsKey(key)) { - String trace = options.get(key); - return !"false".equals(trace); + return options.get(key); } else { - return false; + return option.getDefaultValue(); } } + private boolean getBoolean(Option option) { + return Boolean.valueOf(getString(option)); + } + }