From cc697d2c1a491e6664afcec00cedc3a9e80d037b Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 3 Apr 2015 17:35:15 +0300 Subject: [PATCH] Minor: remove isResourceDeclarationOrUsage --- .../lang/resolve/android/AndroidConst.kt | 18 +++++++----------- .../lang/resolve/android/AndroidXmlHandler.kt | 6 ++---- .../kotlin/plugin/android/AndroidXmlVisitor.kt | 9 +++------ 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidConst.kt b/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidConst.kt index 5dcd5eaecb5..d6a2967af19 100644 --- a/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidConst.kt +++ b/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidConst.kt @@ -22,9 +22,11 @@ import org.jetbrains.kotlin.lexer.JetTokens public object AndroidConst { val ANDROID_USER_PACKAGE: Key = Key.create("ANDROID_USER_PACKAGE") + val SYNTHETIC_FILENAME_PREFIX: String = "ANDROIDXML_" val LAYOUT_POSTFIX: String = "_LAYOUT" val VIEW_LAYOUT_POSTFIX: String = "_VIEW" + val SYNTHETIC_PACKAGE: String = "kotlinx.android.synthetic" val SYNTHETIC_PACKAGE_PATH_LENGTH = SYNTHETIC_PACKAGE.count { it == '.' } + 1 @@ -35,6 +37,7 @@ public object AndroidConst { val ID_DECLARATION_PREFIX = "@+id/" val ID_USAGE_PREFIX = "@id/" + val XML_ID_PREFIXES = array(ID_DECLARATION_PREFIX, ID_USAGE_PREFIX) val CLEAR_FUNCTION_NAME = "clearFindViewByIdCache" @@ -47,19 +50,12 @@ public object AndroidConst { public fun nameToIdDeclaration(name: String): String = AndroidConst.ID_DECLARATION_PREFIX + name public fun idToName(id: String): String? { - val unescaped = - if (isResourceIdDeclaration(id)) id.replace(AndroidConst.ID_DECLARATION_PREFIX, "") - else if (isResourceIdUsage(id)) id.replace(AndroidConst.ID_USAGE_PREFIX, "") - else null - return if (unescaped != null) escapeAndroidIdentifier(unescaped) else null + for (prefix in AndroidConst.XML_ID_PREFIXES) { + if (id.startsWith(prefix)) return escapeAndroidIdentifier(id.replace(prefix, "")) + } + return null } -public fun isResourceIdDeclaration(str: String?): Boolean = str?.startsWith(AndroidConst.ID_DECLARATION_PREFIX) ?: false - -public fun isResourceIdUsage(str: String?): Boolean = str?.startsWith(AndroidConst.ID_USAGE_PREFIX) ?: false - -public fun isResourceDeclarationOrUsage(id: String?): Boolean = isResourceIdDeclaration(id) || isResourceIdUsage(id) - public fun isWidgetTypeIgnored(xmlType: String): Boolean { return (xmlType.isEmpty() || xmlType in AndroidConst.IGNORED_XML_WIDGET_TYPES) } diff --git a/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidXmlHandler.kt b/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidXmlHandler.kt index eddbac7b516..fce7c656a79 100644 --- a/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidXmlHandler.kt +++ b/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidXmlHandler.kt @@ -35,10 +35,8 @@ class AndroidXmlHandler(private val elementCallback: (String, String) -> Unit) : val attributesMap = attributes.toMap() val idAttribute = attributesMap[AndroidConst.ID_ATTRIBUTE_NO_NAMESPACE] val widgetType = attributesMap[AndroidConst.CLASS_ATTRIBUTE_NO_NAMESPACE] ?: localName - if (isResourceDeclarationOrUsage(idAttribute)) { - val name = idToName(idAttribute) - if (name != null) elementCallback(name, widgetType) - } + val name = idAttribute?.let { idToName(idAttribute) } + if (name != null) elementCallback(name, widgetType) } override fun endElement(uri: String?, localName: String, qName: String) { diff --git a/plugins/android-idea-plugin/src/org/jetbrains/kotlin/plugin/android/AndroidXmlVisitor.kt b/plugins/android-idea-plugin/src/org/jetbrains/kotlin/plugin/android/AndroidXmlVisitor.kt index 44df1bcaeab..bb8e087c602 100644 --- a/plugins/android-idea-plugin/src/org/jetbrains/kotlin/plugin/android/AndroidXmlVisitor.kt +++ b/plugins/android-idea-plugin/src/org/jetbrains/kotlin/plugin/android/AndroidXmlVisitor.kt @@ -42,12 +42,9 @@ class AndroidXmlVisitor(val elementCallback: (String, String, XmlAttribute) -> U if (idAttribute != null) { val idAttributeValue = idAttribute.getValue() if (idAttributeValue != null) { - val classAttributeValue = tag?.getAttribute(AndroidConst.CLASS_ATTRIBUTE_NO_NAMESPACE)?.getValue() - val xmlType = classAttributeValue ?: localName - if (isResourceDeclarationOrUsage(idAttributeValue)) { - val name = idToName(idAttributeValue) - if (name != null) elementCallback(name, xmlType, idAttribute) - } + val xmlType = tag?.getAttribute(AndroidConst.CLASS_ATTRIBUTE_NO_NAMESPACE)?.getValue() ?: localName + val name = idToName(idAttributeValue) + if (name != null) elementCallback(name, xmlType, idAttribute) } } tag?.acceptChildren(this)