diff options
author | Yigit Boyar <yboyar@google.com> | 2015-03-13 15:58:53 -0700 |
---|---|---|
committer | Yigit Boyar <yboyar@google.com> | 2015-03-19 12:40:00 -0700 |
commit | a6e4583962e19e8e93b4ca3f9fe3d34560b6d96c (patch) | |
tree | dde75451f7a867c4f881a9bea623b02360d232a9 /compiler/src/main/kotlin/com/android/databinding/writer/LayoutBinderWriter.kt | |
parent | 4c5cc009bcbcfb19e33fb19db5ec80f83f7b3326 (diff) | |
download | data-binding-a6e4583962e19e8e93b4ca3f9fe3d34560b6d96c.tar.gz |
Support for multi module setups
This CL adds support for building multi module apps
with proper context.
For library modules, we only generate base classes in the initial
compilation. We also generate a temporary BR file which does
not have final methods.
When final app is being generated, all layout binders, adapters
and Bindable information gets merged and all final classes
are generated in their appropriate packages.
This CL also adds support for Test runs and any
number of build variants.
Bug: 19714904
Change-Id: I9b50b54db05f3fa206eec33709d43c2ac94a9e5e
Diffstat (limited to 'compiler/src/main/kotlin/com/android/databinding/writer/LayoutBinderWriter.kt')
-rw-r--r-- | compiler/src/main/kotlin/com/android/databinding/writer/LayoutBinderWriter.kt | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/compiler/src/main/kotlin/com/android/databinding/writer/LayoutBinderWriter.kt b/compiler/src/main/kotlin/com/android/databinding/writer/LayoutBinderWriter.kt index fec3b460..e82de91d 100644 --- a/compiler/src/main/kotlin/com/android/databinding/writer/LayoutBinderWriter.kt +++ b/compiler/src/main/kotlin/com/android/databinding/writer/LayoutBinderWriter.kt @@ -331,7 +331,8 @@ class LayoutBinderWriter(val layoutBinder : LayoutBinder) { public fun write() : String { layoutBinder.resolveWhichExpressionsAreUsed() return kcode("package ${layoutBinder.getPackage()};") { - nl("import ${layoutBinder.getProjectPackage()}.R;") + nl("import ${layoutBinder.getModulePackage()}.R;") + nl("import ${layoutBinder.getModulePackage()}.BR;") nl("import android.view.View;") nl("public class ${className} extends ${baseClassName} {") { tab(declareIncludeViews()) @@ -401,7 +402,7 @@ class LayoutBinderWriter(val layoutBinder : LayoutBinder) { if (originalTag != null) { tagValue = "\"${originalTag}\"" if (originalTag.startsWith("@")) { - var packageName = layoutBinder.getProjectPackage() + var packageName = layoutBinder.getModulePackage() if (originalTag.startsWith("@android:")) { packageName = "android" } @@ -749,15 +750,15 @@ class LayoutBinderWriter(val layoutBinder : LayoutBinder) { } nl("") tab("public static ${baseClassName} inflate(android.view.ViewGroup root) {") { - tab("return DataBindingUtil.<${baseClassName}>inflate(root.getContext(), ${layoutBinder.getProjectPackage()}.R.layout.${layoutBinder.getLayoutname()}, root, true);") + tab("return DataBindingUtil.<${baseClassName}>inflate(root.getContext(), ${layoutBinder.getModulePackage()}.R.layout.${layoutBinder.getLayoutname()}, root, true);") } tab("}") tab("public static ${baseClassName} inflate(android.content.Context context) {") { - tab("return DataBindingUtil.<${baseClassName}>inflate(context, ${layoutBinder.getProjectPackage()}.R.layout.${layoutBinder.getLayoutname()}, null, false);") + tab("return DataBindingUtil.<${baseClassName}>inflate(context, ${layoutBinder.getModulePackage()}.R.layout.${layoutBinder.getLayoutname()}, null, false);") } tab("}") tab("public static ${baseClassName} bind(android.view.View view) {") { - tab("return (${baseClassName})DataBindingUtil.bindTo(view, ${layoutBinder.getProjectPackage()}.R.layout.${layoutBinder.getLayoutname()});") + tab("return (${baseClassName})DataBindingUtil.bindTo(view, ${layoutBinder.getModulePackage()}.R.layout.${layoutBinder.getLayoutname()});") } tab("}") nl("}") |