Skip to content

Commit 50ecf50

Browse files
committed
added check for UI Thread
1 parent 7f8afdf commit 50ecf50

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/processing/UiThreadProcessor.java‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,14 @@
2424
import org.androidannotations.annotations.UiThread;
2525
import org.androidannotations.helper.APTCodeModelHelper;
2626

27+
import com.sun.codemodel.JBlock;
2728
import com.sun.codemodel.JClass;
2829
import com.sun.codemodel.JClassAlreadyExistsException;
2930
import com.sun.codemodel.JCodeModel;
31+
import com.sun.codemodel.JConditional;
3032
import com.sun.codemodel.JDefinedClass;
3133
import com.sun.codemodel.JExpr;
34+
import com.sun.codemodel.JExpression;
3235
import com.sun.codemodel.JMethod;
3336
import com.sun.codemodel.JMod;
3437

@@ -61,6 +64,13 @@ public void process(Element element, JCodeModel codeModel, EBeanHolder holder) t
6164
holder.handler = holder.generatedClass.field(JMod.PRIVATE, handlerClass, "handler_", JExpr._new(handlerClass));
6265
}
6366

67+
JExpression jx = JExpr.direct("java.lang.Thread.currentThread() == android.os.Looper.getMainLooper().getThread()");
68+
69+
JConditional con = delegatingMethod.body()._if(jx);
70+
JBlock block = con._then();
71+
block.add(JExpr._super().invoke(delegatingMethod));
72+
block._return();
73+
6474
if (delay == 0) {
6575
delegatingMethod.body().invoke(holder.handler, "post").arg(_new(anonymousRunnableClass));
6676
} else {

0 commit comments

Comments
 (0)