diff options
author | Yigit Boyar <yboyar@google.com> | 2015-09-25 14:48:56 -0700 |
---|---|---|
committer | Yigit Boyar <yboyar@google.com> | 2015-09-25 14:53:26 -0700 |
commit | 890b4850c628f04eb75397e427ba7074e4f9c386 (patch) | |
tree | bed1e00e186ced57fa3074c8df0d74417c777abf /gradlePlugin | |
parent | d58bb64076c5fdd12a082c595eb858fa9d32d6ae (diff) | |
download | data-binding-890b4850c628f04eb75397e427ba7074e4f9c386.tar.gz |
Add support for gradle 1.4.0-beta3
This CL changes how we find original xml file.
Previously, it was a comment in the XML file. Now
it is another interface we can query (nicer).
This CL adds support for it but still keeps the
XML reference support.
Bug: 24408701
Change-Id: I0ac91b2f81f7264735f11d4ded154a2fd807e776
Diffstat (limited to 'gradlePlugin')
-rw-r--r-- | gradlePlugin/src/main/java/android/databinding/tool/DataBinderPlugin.java | 1 | ||||
-rw-r--r-- | gradlePlugin/src/main/java/android/databinding/tool/DataBindingProcessLayoutsTask.java | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gradlePlugin/src/main/java/android/databinding/tool/DataBinderPlugin.java b/gradlePlugin/src/main/java/android/databinding/tool/DataBinderPlugin.java index a116dc13..ae010548 100644 --- a/gradlePlugin/src/main/java/android/databinding/tool/DataBinderPlugin.java +++ b/gradlePlugin/src/main/java/android/databinding/tool/DataBinderPlugin.java @@ -295,6 +295,7 @@ public class DataBinderPlugin implements Plugin<Project> { task.setSdkDir(sdkDir); task.setXmlOutFolder(xmlOutDir); task.setMinSdk(minSdkVersion.getApiLevel()); + task.setBlameLogDir(variantData.getScope().getResourceBlameLogDir()); logD("TASK adding dependency on %s for %s", task, processResTask); processResTask.dependsOn(task); diff --git a/gradlePlugin/src/main/java/android/databinding/tool/DataBindingProcessLayoutsTask.java b/gradlePlugin/src/main/java/android/databinding/tool/DataBindingProcessLayoutsTask.java index 320d4dce..1e6906bc 100644 --- a/gradlePlugin/src/main/java/android/databinding/tool/DataBindingProcessLayoutsTask.java +++ b/gradlePlugin/src/main/java/android/databinding/tool/DataBindingProcessLayoutsTask.java @@ -15,6 +15,9 @@ */ package android.databinding.tool; +import com.android.ide.common.blame.MergingLog; +import com.android.ide.common.blame.SourceFile; + import android.databinding.tool.processing.Scope; import android.databinding.tool.util.L; @@ -41,12 +44,26 @@ public class DataBindingProcessLayoutsTask extends DefaultTask { private File xmlOutFolder; private int minSdk; + private File mBlameLogDir; @TaskAction public void processResources() throws ParserConfigurationException, SAXException, XPathExpressionException, IOException { L.d("running process layouts task %s", getName()); + if (mBlameLogDir != null) { + final MergingLog mergingLog = new MergingLog(mBlameLogDir); + xmlProcessor.setOriginalFileLookup(new LayoutXmlProcessor.OriginalFileLookup() { + @Override + public File getOriginalFileFor(File file) { + SourceFile input = new SourceFile(file); + SourceFile original = mergingLog.find(input); + // merged log api returns the file back if original cannot be found. + // it is not what we want so we alter the response. + return original == input ? null : original.getSourceFile(); + } + }); + } xmlProcessor.processResources(minSdk); Scope.assertNoError(); } @@ -86,4 +103,8 @@ public class DataBindingProcessLayoutsTask extends DefaultTask { public void setMinSdk(int minSdk) { this.minSdk = minSdk; } + + public void setBlameLogDir(File blameLogDir) { + mBlameLogDir = blameLogDir; + } } |