You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by na...@apache.org on 2014/12/06 17:07:43 UTC

cordova-lib git commit: Amazon related changes. Added a type named "gradleReference" in framework according to https://git-wip-us.apache.org/repos/asf?p=cordova-lib.git; a=commit; h=02a96d757acc604610eb403cf11f79513ead4ac5

Repository: cordova-lib
Updated Branches:
  refs/heads/master f99de0d2c -> 61c1c2862


Amazon related changes.
Added a type named "gradleReference" in framework according to
https://git-wip-us.apache.org/repos/asf?p=cordova-lib.git;a=commit;h=02a96d757acc604610eb403cf11f79513ead4ac5


Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/61c1c286
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/61c1c286
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/61c1c286

Branch: refs/heads/master
Commit: 61c1c2862ca632171b9c3b9088449f3d452d77a0
Parents: f99de0d
Author: Ajitha <aj...@amazon.com>
Authored: Mon Dec 1 13:21:47 2014 +0530
Committer: Archana Naik <na...@lab126.com>
Committed: Sat Dec 6 08:07:32 2014 -0800

----------------------------------------------------------------------
 .../src/plugman/platforms/amazon-fireos.js      | 78 +++++++++++++++++++-
 1 file changed, 76 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/61c1c286/cordova-lib/src/plugman/platforms/amazon-fireos.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/platforms/amazon-fireos.js b/cordova-lib/src/plugman/platforms/amazon-fireos.js
index 952a5d2..3b03d8e 100644
--- a/cordova-lib/src/plugman/platforms/amazon-fireos.js
+++ b/cordova-lib/src/plugman/platforms/amazon-fireos.js
@@ -26,8 +26,12 @@ var path = require('path')
    , common = require('./common')
    , events = require('../../events')
    , xml_helpers = require(path.join(__dirname, '..', '..', 'util', 'xml-helpers'))
+   , properties_parser = require('properties-parser')
+   , android_project = require('../util/android-project')
    ;
 
+var projectFileCache = {};
+
 module.exports = {
     www_dir:function(project_dir) {
         return path.join(project_dir, 'assets', 'www');
@@ -84,10 +88,80 @@ module.exports = {
     },
     'framework': {
         install:function(source_el, plugin_dir, project_dir, plugin_id) {
-            events.emit('verbose', 'framework.install is not supported for amazon-fireos');
+            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) {
+                var subRelativeDir = module.exports.getCustomSubprojectRelativeDir(plugin_id, project_dir, src);
+                common.copyNewFile(plugin_dir, src, project_dir, subRelativeDir);
+                subDir = path.resolve(project_dir, subRelativeDir);
+            } else {
+                var sdk_dir = module.exports.getProjectSdkDir(project_dir);
+                subDir = path.resolve(sdk_dir, src);
+            }
+
+            var projectConfig = module.exports.parseProjectFile(project_dir);
+            var type = source_el.attrib.type;
+            if (type == 'gradleReference') {
+                //add reference to build.gradle
+                projectConfig.addGradleReference(parentDir, subDir);
+            } else {
+                projectConfig.addSubProject(parentDir, subDir);
+            }
         },
         uninstall:function(source_el, project_dir, plugin_id) {
-            events.emit('verbose', 'framework.uninstall is not supported for amazon-fireos');
+            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', 'Uninstalling Android library: ' + src);
+            var parent = source_el.attrib.parent;
+            var parentDir = parent ? path.resolve(project_dir, parent) : project_dir;
+            var subDir;
+
+            if (custom) {
+                var subRelativeDir = module.exports.getCustomSubprojectRelativeDir(plugin_id, project_dir, src);
+                common.removeFile(project_dir, subRelativeDir);
+                subDir = path.resolve(project_dir, subRelativeDir);
+            } else {
+                var sdk_dir = module.exports.getProjectSdkDir(project_dir);
+                subDir = path.resolve(sdk_dir, src);
+            }
+
+            var projectConfig = module.exports.parseProjectFile(project_dir);
+            var type = source_el.attrib.type;
+            if (type == 'gradleReference') {
+                projectConfig.removeGradleReference(parentDir, subDir);
+            } else {
+                projectConfig.removeSubProject(parentDir, subDir);
+            }
         }
+    },
+    parseProjectFile: function(project_dir){
+        if (!projectFileCache[project_dir]) {
+            projectFileCache[project_dir] = new android_project.AndroidProject();
+        }
+
+        return projectFileCache[project_dir];
+    },
+    purgeProjectFileCache:function(project_dir) {
+        delete projectFileCache[project_dir];
+    },
+    getProjectSdkDir: function (project_dir) {
+        var localProperties = properties_parser.createEditor(path.resolve(project_dir, 'local.properties'));
+        return localProperties.get('sdk.dir');
+    },
+    getCustomSubprojectRelativeDir: function (plugin_id, project_dir, src) {
+        // All custom subprojects are prefixed with the last portion of the package id.
+        // This is to avoid collisions when opening multiple projects in Eclipse that have subprojects with the same name.
+        var prefix = module.exports.package_suffix(project_dir);
+        var subRelativeDir = path.join(plugin_id, prefix + '-' + path.basename(src));
+        return subRelativeDir;
     }
 };


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org