The plugin.xml spec is here http://docs.phonegap.com/en/3.4.0/plugin_ref_spec.md.html
On Wed, May 28, 2014 at 1:56 PM, Jesse <[email protected]> wrote: > Where is the document that outlines all of the tags supported in > plugin.xml, the expected meaning of those tags, and what attributes they > support. > > Other than that, I can only assume this doesn't break <framework > custom="true"> on iOS + Windows 8. > > > > @purplecabbage > risingj.com > > > On Wed, May 28, 2014 at 8:34 AM, kamrik <[email protected]> wrote: > > > Github user kamrik commented on a diff in the pull request: > > > > https://github.com/apache/cordova-lib/pull/21#discussion_r13137628 > > > > --- Diff: cordova-lib/src/plugman/platforms/android.js --- > > @@ -80,10 +84,115 @@ module.exports = { > > }, > > "framework": { > > install:function(source_el, plugin_dir, project_dir, > > plugin_id) { > > - events.emit('verbose', 'framework.install is not > > supported for android'); > > + var src = source_el.attrib.src; > > + var custom = source_el.attrib.custom; > > + if (!src) throw new Error('src not specified in > framework > > element'); > > + > > + events.emit('verbose', "Installing Android library: " + > > src); > > + var parent = source_el.attrib.parent; > > + var parentDir = parent ? path.resolve(project_dir, > > parent) : project_dir; > > + var subDir; > > + if (custom) { > > + subDir = path.resolve(project_dir, src); > > + } else { > > + var localProperties = > > properties_parser.createEditor(path.resolve(project_dir, > > "local.properties")); > > + subDir = > path.resolve(localProperties.get("sdk.dir"), > > src); > > + } > > + var projectConfig = > > module.exports.parseProjectFile(project_dir); > > + projectConfig.addSubProject(parentDir, subDir); > > }, > > uninstall:function(source_el, project_dir, plugin_id) { > > - events.emit('verbose', 'framework.uninstall is not > > supported for android'); > > + var src = source_el.attrib.src; > > + if (!src) throw new Error('src not specified in > framework > > element'); > > + > > + events.emit('verbose', "Uninstalling Android library: " > + > > src); > > + var parent = source_el.attrib.parent; > > + var parentDir = parent ? path.resolve(project_dir, > > parent) : project_dir; > > + var subDir = path.resolve(project_dir, src); > > + var projectConfig = > > module.exports.parseProjectFile(project_dir); > > + projectConfig.removeSubProject(parentDir, subDir); > > } > > + }, > > + parseProjectFile: function(project_dir){ > > + if (!projectFileCache[project_dir]) { > > + projectFileCache[project_dir] = { > > --- End diff -- > > > > This is an inline definition of a pretty rich object with non trivial > > methods. I think it will be way more readable to define a separate class > > like AndroidProjectFile (naming is up to you) and have this line look > like > > this: > > projectFileCache[project_dir] = new AndroidProjectFile(...); > > > > I would even define the AndroidProjectFile class in a separate js > > file, this way other platforms similar to Android might reuse or subclass > > it if they want. > > The windows8 parser does something similar with the util/w8jsproj.js > > > > Otherwise LGTM. > > > > > > --- > > If your project is set up for it, you can reply to this email and have > your > > reply appear on GitHub as well. If your project does not have this > feature > > enabled and wishes so, or if the feature is enabled but not working, > please > > contact infrastructure at [email protected] or file a JIRA > ticket > > with INFRA. > > --- > > >
