From 39b879ec7da159968685382782f4817ead58bd3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Vimont=20=28=C2=AEom=29?= Date: Mon, 22 Apr 2013 18:28:13 +0200 Subject: [PATCH] @ItemClick and type parameters workaround This piece of code does not generate compilable code (see #504): @ItemClick void listItemClicked(List item) {} This is a workaround for a bug supposed to be in CodeModel. The generated code generates a type safety warning. --- .../org/androidannotations/processing/ItemClickProcessor.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/processing/ItemClickProcessor.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/processing/ItemClickProcessor.java index 4968155ddc..a583c48403 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/processing/ItemClickProcessor.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/processing/ItemClickProcessor.java @@ -91,6 +91,8 @@ public void process(Element element, JCodeModel codeModel, EBeanHolder holder) { itemClickCall.arg(onItemClickPositionParam); } else { String parameterTypeQualifiedName = parameterType.toString(); + /* Workaround a CodeModel bug when type have parameters */ + parameterTypeQualifiedName = parameterTypeQualifiedName.replaceFirst("<.*", ""); itemClickCall.arg(cast(holder.refClass(parameterTypeQualifiedName), invoke(onItemClickParentParam, "getAdapter").invoke("getItem").arg(onItemClickPositionParam))); } }