diff --git a/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/ViewAdapterAnnotationProcessor.kt b/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/ViewAdapterAnnotationProcessor.kt index 62f7056a2..d58e1d53c 100644 --- a/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/ViewAdapterAnnotationProcessor.kt +++ b/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/ViewAdapterAnnotationProcessor.kt @@ -28,6 +28,7 @@ import javax.lang.model.element.Element import javax.lang.model.element.ElementKind.CLASS import javax.lang.model.element.ElementKind.PACKAGE import javax.lang.model.element.ExecutableElement +import javax.lang.model.element.Modifier.FINAL import javax.lang.model.element.TypeElement import javax.tools.Diagnostic.Kind.ERROR @@ -55,7 +56,7 @@ class ViewAdapterAnnotationProcessor : AbstractProcessor() { if (roundEnv.processingOver()) { return true } - + generator.init(processingEnv) roundEnv.getElementsAnnotatedWith(ViewAdapter::class.java).forEach { @@ -134,6 +135,11 @@ class ViewAdapterAnnotationProcessor : AbstractProcessor() { ) } + if (element.modifiers.contains(FINAL)) { + processingEnv.messager.printMessage(ERROR, "${element.qualifiedName} cannot be final") + return + } + generator.addViewAdapter(processingEnv, element) } } diff --git a/tests/test-home/.androidide/init/model.jar b/tests/test-home/.androidide/init/model.jar index 44b540b33..98d01d5f5 100644 Binary files a/tests/test-home/.androidide/init/model.jar and b/tests/test-home/.androidide/init/model.jar differ diff --git a/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/HorizontalScrollViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/HorizontalScrollViewAdapter.kt index 00c675bcb..0485c5c9b 100644 --- a/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/HorizontalScrollViewAdapter.kt +++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/HorizontalScrollViewAdapter.kt @@ -32,7 +32,7 @@ import com.itsaky.androidide.inflater.models.UiWidget */ @com.itsaky.androidide.annotations.inflater.ViewAdapter(HorizontalScrollView::class) @IncludeInDesigner(group = LAYOUTS) -class HorizontalScrollViewAdapter : FrameLayoutAdapter() { +open class HorizontalScrollViewAdapter : FrameLayoutAdapter() { override fun createAttrHandlers(create: (String, AttributeHandlerScope.() -> Unit) -> Unit) { super.createAttrHandlers(create) diff --git a/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ScrollViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ScrollViewAdapter.kt index fe653257c..0cd97c825 100644 --- a/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ScrollViewAdapter.kt +++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ScrollViewAdapter.kt @@ -32,7 +32,7 @@ import com.itsaky.androidide.inflater.models.UiWidget */ @com.itsaky.androidide.annotations.inflater.ViewAdapter(forView = ScrollView::class) @IncludeInDesigner(group = LAYOUTS) -class ScrollViewAdapter : FrameLayoutAdapter() { +open class ScrollViewAdapter : FrameLayoutAdapter() { override fun createAttrHandlers(create: (String, AttributeHandlerScope.() -> Unit) -> Unit) { super.createAttrHandlers(create)