diff options
author | Jake Wharton <jakew@google.com> | 2019-03-14 09:14:14 -0400 |
---|---|---|
committer | Jake Wharton <jakew@google.com> | 2019-03-15 01:49:22 +0000 |
commit | 8977f49c96ec5972b33ee8a26d8a449ddce4a512 (patch) | |
tree | 51f17bfad6f79c30b0e348b2a3b6ec9905509451 /compiler | |
parent | 7167fd2757eafb354b2ea6f9c8ec8c8a3430841a (diff) | |
download | data-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.kt | 11 |
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}" } } |