feat(xml-inflater): require view adapters to be non-final

This commit is contained in:
Akash Yadav
2022-12-20 16:03:55 +05:30
parent f20a2acdb6
commit 006b1105c9
4 changed files with 9 additions and 3 deletions
@@ -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)
}
}
Binary file not shown.
@@ -32,7 +32,7 @@ import com.itsaky.androidide.inflater.models.UiWidget
*/
@com.itsaky.androidide.annotations.inflater.ViewAdapter(HorizontalScrollView::class)
@IncludeInDesigner(group = LAYOUTS)
class HorizontalScrollViewAdapter<T : HorizontalScrollView> : FrameLayoutAdapter<T>() {
open class HorizontalScrollViewAdapter<T : HorizontalScrollView> : FrameLayoutAdapter<T>() {
override fun createAttrHandlers(create: (String, AttributeHandlerScope<T>.() -> Unit) -> Unit) {
super.createAttrHandlers(create)
@@ -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<T : ScrollView> : FrameLayoutAdapter<T>() {
open class ScrollViewAdapter<T : ScrollView> : FrameLayoutAdapter<T>() {
override fun createAttrHandlers(create: (String, AttributeHandlerScope<T>.() -> Unit) -> Unit) {
super.createAttrHandlers(create)