diff --git a/js/main.js b/js/main.js
index 5752d45..6231a55 100644
--- a/js/main.js
+++ b/js/main.js
@@ -148,6 +148,7 @@ var lastFileName = "";
var lastFileData;
var warnings = [];
var svgStyles = {};
+var gradients = {};
var globalSvg;
var clipPathEnabled = false;
@@ -234,6 +235,10 @@ function recursiveTreeWalk(parent, groupLevel, clipPath) {
}
function preprocessReferences(svg) {
+ svg.find("defs").children().each(function () {
+ var current = $(this);
+ substituteUseRef(svg, current);
+ });
svg.find("use").each(function () {
var current = $(this);
substituteUseRef(svg, current);
@@ -529,16 +534,37 @@ function printPath(pathData, stylesArray, groupLevel, clipPath) {
if (!clipPath) {
generatedOutput += INDENT.repeat(groupLevel + 1) + '\n';
+ generatedOutput += INDENT.repeat(groupLevel + 2) + '\n';
+ generatedOutput += gradients[gradientID] + '\n';
+ generatedOutput += INDENT.repeat(groupLevel + 2) + '\n';
+ generatedOutput += INDENT.repeat(groupLevel + 1) + '\n';
+ } else {
+ generatedOutput += generateAttr('pathData', pathData, groupLevel, null, true);
+ }
pathsParsedCount++;
} else {
clipPathMerged.push(pathData);
@@ -550,6 +576,39 @@ function printPath(pathData, stylesArray, groupLevel, clipPath) {
}
}
+function parseGradients(svg) {
+ svg.find("defs").children().each(function () {
+ var current = $(this);
+ if (current.prop("tagName").endsWith("Gradient")) {
+ var androidXML = '';
+ } else if (current.prop("tagName").startsWith("radial")) {
+ androidXML += INDENT.repeat(1) + 'android:type="radial">';
+ }
+ current.children().each(function () {
+ var stopTag = $(this);
+ androidXML += INDENT.repeat(2) + '- ';
+ gradients[current.attr("id")] = androidXML;
+ }
+ });
+}
+
function generateCode(inputXml) {
var resultData = { error:null, warnings:null, code:null };
@@ -569,7 +628,8 @@ function generateCode(inputXml) {
var svg = xml.find("svg");
globalSvg = svg;
preprocessReferences(svg);
-
+ parseGradients(svg);
+
if (toBool(localStorage.bakeTransforms)) {
try {
flatten(svg[0], false, true);
@@ -593,6 +653,7 @@ function generateCode(inputXml) {
//XML Vector start
generatedOutput = '\n';
generatedOutput += '