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 += 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) + '