summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorJake Wharton <jakew@google.com>2019-03-14 09:14:14 -0400
committerJake Wharton <jakew@google.com>2019-03-15 01:49:22 +0000
commit8977f49c96ec5972b33ee8a26d8a449ddce4a512 (patch)
tree51f17bfad6f79c30b0e348b2a3b6ec9905509451 /compiler
parent7167fd2757eafb354b2ea6f9c8ec8c8a3430841a (diff)
downloaddata-binding-8977f49c96ec5972b33ee8a26d8a449ddce4a512.tar.gz
Implement resource reference parser which returns more than name
Bug: 128314294 Test: existing databinding Change-Id: Ibaa11327490f05d62ea50f6aa68ab7ea7a8507ad
Diffstat (limited to 'compiler')
-rw-r--r--compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt11
1 files changed, 6 insertions, 5 deletions
diff --git a/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt b/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt
index 3b8fa997..2bd67655 100644
--- a/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt
+++ b/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt
@@ -30,9 +30,9 @@ import android.databinding.tool.expr.TernaryExpr
import android.databinding.tool.expr.localizeGlobalVariables
import android.databinding.tool.expr.shouldLocalizeInCallbacks
import android.databinding.tool.expr.toCode
-import android.databinding.tool.ext.androidId
import android.databinding.tool.ext.br
import android.databinding.tool.ext.lazyProp
+import android.databinding.tool.ext.parseXmlResourceReference
import android.databinding.tool.ext.stripNonJava
import android.databinding.tool.ext.versionedLazy
import android.databinding.tool.processing.ErrorMessages
@@ -122,7 +122,7 @@ val BindingTarget.readableName by lazyProp { target: BindingTarget ->
if (target.id == null) {
"boundView" + indexFromTag(target.tag)
} else {
- target.id.androidId().stripNonJava()
+ target.id.parseXmlResourceReference().name.stripNonJava()
}
}
@@ -149,10 +149,11 @@ val BindingTarget.fieldName : String by lazyProp { target: BindingTarget ->
}
val BindingTarget.androidId by lazyProp { target: BindingTarget ->
- if (target.id.startsWith("@android:id/")) {
- "android.R.id.${target.id.androidId()}"
+ val reference = target.id.parseXmlResourceReference()
+ if (reference.namespace == "android") {
+ "android.R.id.${reference.name}"
} else {
- "R.id.${target.id.androidId()}"
+ "R.id.${reference.name}"
}
}