diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaTypeScanner.cs b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaTypeScanner.cs index 49fc8ca2d..f85427e70 100644 --- a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaTypeScanner.cs +++ b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaTypeScanner.cs @@ -50,11 +50,12 @@ public List GetJavaTypes (IEnumerable assemblies, IAssem void AddJavaTypes (List javaTypes, TypeDefinition type) { - if (type.IsSubclassOf ("Java.Lang.Object", cache) || type.IsSubclassOf ("Java.Lang.Throwable", cache)) { - + if (type.IsSubclassOf ("Java.Lang.Object", cache) || + type.IsSubclassOf ("Java.Lang.Throwable", cache) || + (type.IsInterface && type.ImplementsInterface ("Java.Interop.IJavaPeerable", cache))) { // For subclasses of e.g. Android.App.Activity. javaTypes.Add (type); - } else if (type.IsClass && !type.IsSubclassOf ("System.Exception", cache) && type.ImplementsInterface ("Android.Runtime.IJavaObject", cache)) { + } else if (type.IsClass && !type.IsSubclassOf ("System.Exception", cache) && type.ImplementsInterface ("Android.Runtime.IJa", cache)) { var level = ErrorOnCustomJavaObject ? TraceLevel.Error : TraceLevel.Warning; var prefix = ErrorOnCustomJavaObject ? "error" : "warning"; Logger (