From e926ae34c548330967c0eb5fb011e2fce00eb69c Mon Sep 17 00:00:00 2001 From: Eli Hart Date: Mon, 16 Oct 2017 20:45:32 -0700 Subject: [PATCH] Only use styleable view if layout not set (#323) --- .../java/com/airbnb/epoxy/GeneratedModelInfo.java | 4 ---- .../java/com/airbnb/epoxy/GeneratedModelWriter.kt | 13 ++++++------- .../src/main/java/com/airbnb/epoxy/KotlinUtils.kt | 8 +++++++- .../main/java/com/airbnb/epoxy/ModelProcessor.kt | 1 + 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/epoxy-processor/src/main/java/com/airbnb/epoxy/GeneratedModelInfo.java b/epoxy-processor/src/main/java/com/airbnb/epoxy/GeneratedModelInfo.java index 0f8005f53d..52214fb773 100755 --- a/epoxy-processor/src/main/java/com/airbnb/epoxy/GeneratedModelInfo.java +++ b/epoxy-processor/src/main/java/com/airbnb/epoxy/GeneratedModelInfo.java @@ -176,10 +176,6 @@ private void removeMethodIfDuplicatedBySetter(Collection attribut } } - TypeElement getSuperClassElement() { - return superClassElement; - } - TypeName getSuperClassName() { return superClassName; } diff --git a/epoxy-processor/src/main/java/com/airbnb/epoxy/GeneratedModelWriter.kt b/epoxy-processor/src/main/java/com/airbnb/epoxy/GeneratedModelWriter.kt index c196006e72..3aacf3a181 100644 --- a/epoxy-processor/src/main/java/com/airbnb/epoxy/GeneratedModelWriter.kt +++ b/epoxy-processor/src/main/java/com/airbnb/epoxy/GeneratedModelWriter.kt @@ -752,7 +752,7 @@ internal class GeneratedModelWriter( methods: MutableList ) { - val originalClassElement = modelClassInfo.getSuperClassElement() + val originalClassElement = modelClassInfo.superClassElement if (!isEpoxyModelWithHolder(originalClassElement)) { return } @@ -813,9 +813,8 @@ internal class GeneratedModelWriter( return modelInfo.getLayoutResource(resourceProcessor) } - val superClassElement = modelInfo.getSuperClassElement() - if (implementsMethod(superClassElement, buildDefaultLayoutMethodBase(), types, - elements)) { + val superClassElement = modelInfo.superClassElement + if (implementsMethod(superClassElement, buildDefaultLayoutMethodBase(), types, elements)) { return null } @@ -840,7 +839,7 @@ internal class GeneratedModelWriter( * changed. */ private fun generateDataBindingMethodsIfNeeded(info: GeneratedModelInfo): Iterable { - if (!isDataBindingModel(info.getSuperClassElement())) { + if (!isDataBindingModel(info.superClassElement)) { return emptyList() } @@ -852,14 +851,14 @@ internal class GeneratedModelWriter( .build() // If the base method is already implemented don't bother checking for the payload method - if (implementsMethod(info.getSuperClassElement(), bindVariablesMethod, types, + if (implementsMethod(info.superClassElement, bindVariablesMethod, types, elements)) { return emptyList() } val generatedModelClass = info.generatedName - val moduleName = dataBindingModuleLookup.getModuleName(info.getSuperClassElement()) + val moduleName = dataBindingModuleLookup.getModuleName(info.superClassElement) val baseMethodBuilder = bindVariablesMethod.toBuilder() diff --git a/epoxy-processor/src/main/java/com/airbnb/epoxy/KotlinUtils.kt b/epoxy-processor/src/main/java/com/airbnb/epoxy/KotlinUtils.kt index 6b675ae54c..a227eafcaf 100644 --- a/epoxy-processor/src/main/java/com/airbnb/epoxy/KotlinUtils.kt +++ b/epoxy-processor/src/main/java/com/airbnb/epoxy/KotlinUtils.kt @@ -60,6 +60,12 @@ fun AnnotatedConstruct.hasAnyAnnotation(annotationClasses: List) + = hasAnyAnnotation(listOf(annotationClass.java)) + +inline fun AnnotatedConstruct.annotation(): T? + = getAnnotation(T::class.java) + /** Creates a new version of the classname where the simple name has the given suffix added to it. * * If there are multiple simple names they are combined into 1. @@ -67,7 +73,7 @@ fun AnnotatedConstruct.hasAnyAnnotation(annotationClasses: List()?.layout == 0 && modelInfo.boundObjectTypeElement?.hasStyleableAnnotation(elements) == true) { styleableModelsToWrite.add(modelInfo) } else {