You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ra...@apache.org on 2021/07/13 09:02:00 UTC

[cordova-android] branch master updated: refactor!: do not copy JS lib to platform project (#1269)

This is an automated email from the ASF dual-hosted git repository.

raphinesse pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-android.git


The following commit(s) were added to refs/heads/master by this push:
     new 16ff6e1  refactor!: do not copy JS lib to platform project (#1269)
16ff6e1 is described below

commit 16ff6e1b2fe1d29b47fed3411299173a9eb85487
Author: Raphael von der Grün <ra...@gmail.com>
AuthorDate: Tue Jul 13 11:01:50 2021 +0200

    refactor!: do not copy JS lib to platform project (#1269)
---
 .eslintignore                                      |   2 +-
 .ratignore                                         |   2 +-
 {bin/templates/cordova/lib => lib}/Adb.js          |   0
 .../cordova/lib => lib}/AndroidManifest.js         |   0
 .../cordova/lib => lib}/AndroidProject.js          |   0
 {bin/templates/cordova => lib}/Api.js              |  24 +++++++++----------
 {bin/templates/cordova/lib => lib}/PackageType.js  |   0
 {bin/templates/cordova/lib => lib}/android_sdk.js  |   0
 {bin/templates/cordova/lib => lib}/build.js        |   0
 .../cordova/lib => lib}/builders/ProjectBuilder.js |   2 +-
 .../cordova/lib => lib}/builders/builders.js       |   0
 .../lib => lib/builders}/plugin-build.gradle       |   0
 {bin/templates/cordova/lib => lib}/check_reqs.js   |   0
 .../lib => lib}/config/GradlePropertiesParser.js   |   0
 {bin/lib => lib}/create.js                         |  26 +++++++++------------
 {bin/templates/cordova/lib => lib}/emulator.js     |   0
 {bin/templates/cordova/lib => lib}/env/java.js     |   0
 {bin/templates/cordova/lib => lib}/getASPath.bat   |   0
 .../cordova/lib => lib}/gradle-config-defaults.js  |   3 +--
 .../cordova/lib => lib}/pluginHandlers.js          |   0
 {bin/templates/cordova/lib => lib}/prepare.js      |   0
 {bin/templates/cordova/lib => lib}/retry.js        |   0
 {bin/templates/cordova/lib => lib}/run.js          |   0
 {bin/templates/cordova/lib => lib}/target.js       |   0
 {bin/templates/cordova/lib => lib}/utils.js        |   0
 package.json                                       |   7 +++---
 spec/e2e/e2e.spec.js                               |   4 ++--
 spec/unit/Adb.spec.js                              |   2 +-
 spec/unit/AndroidManifest.spec.js                  |   2 +-
 spec/unit/AndroidProject.spec.js                   |   2 +-
 spec/unit/Api.spec.js                              |   4 ++--
 spec/unit/android_sdk.spec.js                      |   2 +-
 spec/unit/builders/ProjectBuilder.spec.js          |   2 +-
 spec/unit/builders/builders.spec.js                |   4 ++--
 spec/unit/check_reqs.spec.js                       |   6 ++---
 spec/unit/config/GradlePropertiesParser.spec.js    |   2 +-
 spec/unit/create.spec.js                           |   8 +++----
 spec/unit/emulator.spec.js                         |   4 ++--
 spec/unit/java.spec.js                             |   4 ++--
 spec/unit/pluginHandlers/common.spec.js            |   2 +-
 spec/unit/pluginHandlers/handlers.spec.js          |   4 ++--
 spec/unit/prepare.spec.js                          |   6 ++---
 spec/unit/retry.spec.js                            |   2 +-
 spec/unit/run.spec.js                              |   4 ++--
 spec/unit/target.spec.js                           |   2 +-
 .../lib/PackageType.js => templates/cordova/Api.js |   7 +-----
 .../cordova/android_sdk_version                    |   2 +-
 {bin/templates => templates}/cordova/defaults.xml  |   0
 .../cordova/lib/list-devices                       |   4 ++--
 .../cordova/lib/list-emulator-images               |   4 ++--
 {bin/templates => templates}/cordova/version       |   0
 {bin/templates => templates}/project/Activity.java |   0
 .../project/AndroidManifest.xml                    |   0
 .../project/app/build.gradle                       |   0
 .../project/app}/repositories.gradle               |   0
 .../project/assets/www/cordova.js                  |   0
 .../project/assets/www/css/index.css               |   0
 .../project/assets/www/img/cordova.png             | Bin
 .../project/assets/www/img/logo.png                | Bin
 .../project/assets/www/index.html                  |   0
 .../project/assets/www/js/index.js                 |   0
 {bin/templates => templates}/project/build.gradle  |   0
 {bin/templates => templates}/project/gitignore     |   0
 .../project/project.properties                     |   0
 .../app => templates/project}/repositories.gradle  |   0
 .../project/res/drawable-land-hdpi/screen.png      | Bin
 .../project/res/drawable-land-ldpi/screen.png      | Bin
 .../project/res/drawable-land-mdpi/screen.png      | Bin
 .../project/res/drawable-land-xhdpi/screen.png     | Bin
 .../project/res/drawable-land-xxhdpi/screen.png    | Bin
 .../project/res/drawable-land-xxxhdpi/screen.png   | Bin
 .../project/res/drawable-port-hdpi/screen.png      | Bin
 .../project/res/drawable-port-ldpi/screen.png      | Bin
 .../project/res/drawable-port-mdpi/screen.png      | Bin
 .../project/res/drawable-port-xhdpi/screen.png     | Bin
 .../project/res/drawable-port-xxhdpi/screen.png    | Bin
 .../project/res/drawable-port-xxxhdpi/screen.png   | Bin
 .../project/res/mipmap-hdpi-v26}/ic_launcher.xml   |   0
 .../res/mipmap-hdpi-v26/ic_launcher_background.png | Bin
 .../res/mipmap-hdpi-v26/ic_launcher_foreground.png | Bin
 .../project/res/mipmap-hdpi/ic_launcher.png        | Bin
 .../project/res/mipmap-ldpi-v26}/ic_launcher.xml   |   0
 .../res/mipmap-ldpi-v26/ic_launcher_background.png | Bin
 .../res/mipmap-ldpi-v26/ic_launcher_foreground.png | Bin
 .../project/res/mipmap-ldpi/ic_launcher.png        | Bin
 .../project/res/mipmap-mdpi-v26}/ic_launcher.xml   |   0
 .../res/mipmap-mdpi-v26/ic_launcher_background.png | Bin
 .../res/mipmap-mdpi-v26/ic_launcher_foreground.png | Bin
 .../project/res/mipmap-mdpi/ic_launcher.png        | Bin
 .../project/res/mipmap-xhdpi-v26}/ic_launcher.xml  |   0
 .../mipmap-xhdpi-v26/ic_launcher_background.png    | Bin
 .../mipmap-xhdpi-v26/ic_launcher_foreground.png    | Bin
 .../project/res/mipmap-xhdpi/ic_launcher.png       | Bin
 .../project/res/mipmap-xxhdpi-v26}/ic_launcher.xml |   0
 .../mipmap-xxhdpi-v26/ic_launcher_background.png   | Bin
 .../mipmap-xxhdpi-v26/ic_launcher_foreground.png   | Bin
 .../project/res/mipmap-xxhdpi/ic_launcher.png      | Bin
 .../res/mipmap-xxxhdpi-v26}/ic_launcher.xml        |   0
 .../mipmap-xxxhdpi-v26/ic_launcher_background.png  | Bin
 .../mipmap-xxxhdpi-v26/ic_launcher_foreground.png  | Bin
 .../project/res/mipmap-xxxhdpi/ic_launcher.png     | Bin
 .../project/res/values/strings.xml                 |   0
 .../project/res/xml/config.xml                     |   0
 .../templates => templates}/project/wrapper.gradle |   0
 test/run_java_unit_tests.js                        |   2 +-
 105 files changed, 70 insertions(+), 81 deletions(-)

diff --git a/.eslintignore b/.eslintignore
index 811a23b..815e1fe 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,3 +1,3 @@
-bin/templates/project/assets/www/cordova.js
+templates/project/assets/www/cordova.js
 test/android/app
 test/androidx/app
diff --git a/.ratignore b/.ratignore
index 2c57463..3216d90 100644
--- a/.ratignore
+++ b/.ratignore
@@ -1,5 +1,5 @@
 *.properties
-bin
+templates
 gen
 proguard-project.txt
 spec
diff --git a/bin/templates/cordova/lib/Adb.js b/lib/Adb.js
similarity index 100%
rename from bin/templates/cordova/lib/Adb.js
rename to lib/Adb.js
diff --git a/bin/templates/cordova/lib/AndroidManifest.js b/lib/AndroidManifest.js
similarity index 100%
rename from bin/templates/cordova/lib/AndroidManifest.js
rename to lib/AndroidManifest.js
diff --git a/bin/templates/cordova/lib/AndroidProject.js b/lib/AndroidProject.js
similarity index 100%
rename from bin/templates/cordova/lib/AndroidProject.js
rename to lib/AndroidProject.js
diff --git a/bin/templates/cordova/Api.js b/lib/Api.js
similarity index 94%
rename from bin/templates/cordova/Api.js
rename to lib/Api.js
index 4c5e0c5..24519c4 100644
--- a/bin/templates/cordova/Api.js
+++ b/lib/Api.js
@@ -28,13 +28,13 @@ const VERSION = '10.0.0-dev';
 
 var path = require('path');
 
-var AndroidProject = require('./lib/AndroidProject');
+var AndroidProject = require('./AndroidProject');
 var PluginManager = require('cordova-common').PluginManager;
 
 var CordovaLogger = require('cordova-common').CordovaLogger;
 var selfEvents = require('cordova-common').events;
 var ConfigParser = require('cordova-common').ConfigParser;
-const prepare = require('./lib/prepare').prepare;
+const prepare = require('./prepare').prepare;
 
 var PLATFORM = 'android';
 
@@ -86,7 +86,7 @@ class Api {
             javaSrc: path.join(appMain, 'java')
         };
 
-        this._builder = require('./lib/builders/builders').getBuilder(this.root);
+        this._builder = require('./builders/builders').getBuilder(this.root);
     }
 
     /**
@@ -249,8 +249,8 @@ class Api {
     build (buildOptions) {
         var self = this;
 
-        return require('./lib/check_reqs').run().then(function () {
-            return require('./lib/build').run.call(self, buildOptions);
+        return require('./check_reqs').run().then(function () {
+            return require('./build').run.call(self, buildOptions);
         }).then(function (buildResults) {
             // Cast build result to array of build artifacts
             return buildResults.paths.map(function (apkPath) {
@@ -278,8 +278,8 @@ class Api {
      */
     run (runOptions) {
         var self = this;
-        return require('./lib/check_reqs').run().then(function () {
-            return require('./lib/run').run.call(self, runOptions);
+        return require('./check_reqs').run().then(function () {
+            return require('./run').run.call(self, runOptions);
         });
     }
 
@@ -297,10 +297,10 @@ class Api {
             cleanOptions = {};
         }
 
-        return require('./lib/check_reqs').run().then(function () {
-            return require('./lib/build').runClean.call(self, cleanOptions);
+        return require('./check_reqs').run().then(function () {
+            return require('./build').runClean.call(self, cleanOptions);
         }).then(function () {
-            return require('./lib/prepare').clean.call(self, cleanOptions);
+            return require('./prepare').clean.call(self, cleanOptions);
         });
     }
 
@@ -313,7 +313,7 @@ class Api {
      *   objects for current platform.
      */
     requirements () {
-        return require('./lib/check_reqs').check_all(this.root);
+        return require('./check_reqs').check_all(this.root);
     }
 
     /**
@@ -338,7 +338,7 @@ class Api {
         events = setupEvents(events);
         var result;
         try {
-            result = require('../../lib/create').create(destination, config, options, events).then(function (destination) {
+            result = require('./create').create(destination, config, options, events).then(function (destination) {
                 return new Api(PLATFORM, destination, events);
             });
         } catch (e) {
diff --git a/bin/templates/cordova/lib/PackageType.js b/lib/PackageType.js
similarity index 100%
copy from bin/templates/cordova/lib/PackageType.js
copy to lib/PackageType.js
diff --git a/bin/templates/cordova/lib/android_sdk.js b/lib/android_sdk.js
similarity index 100%
rename from bin/templates/cordova/lib/android_sdk.js
rename to lib/android_sdk.js
diff --git a/bin/templates/cordova/lib/build.js b/lib/build.js
similarity index 100%
rename from bin/templates/cordova/lib/build.js
rename to lib/build.js
diff --git a/bin/templates/cordova/lib/builders/ProjectBuilder.js b/lib/builders/ProjectBuilder.js
similarity index 99%
rename from bin/templates/cordova/lib/builders/ProjectBuilder.js
rename to lib/builders/ProjectBuilder.js
index cdc67a9..1dcaaf7 100644
--- a/bin/templates/cordova/lib/builders/ProjectBuilder.js
+++ b/lib/builders/ProjectBuilder.js
@@ -160,7 +160,7 @@ class ProjectBuilder {
     // Makes the project buildable, minus the gradle wrapper.
     prepBuildFiles () {
         // Update the version of build.gradle in each dependent library.
-        var pluginBuildGradle = path.join(this.root, 'cordova', 'lib', 'plugin-build.gradle');
+        var pluginBuildGradle = path.join(__dirname, 'plugin-build.gradle');
         var propertiesObj = this.readProjectProperties();
         var subProjects = propertiesObj.libs;
 
diff --git a/bin/templates/cordova/lib/builders/builders.js b/lib/builders/builders.js
similarity index 100%
rename from bin/templates/cordova/lib/builders/builders.js
rename to lib/builders/builders.js
diff --git a/bin/templates/cordova/lib/plugin-build.gradle b/lib/builders/plugin-build.gradle
similarity index 100%
rename from bin/templates/cordova/lib/plugin-build.gradle
rename to lib/builders/plugin-build.gradle
diff --git a/bin/templates/cordova/lib/check_reqs.js b/lib/check_reqs.js
similarity index 100%
rename from bin/templates/cordova/lib/check_reqs.js
rename to lib/check_reqs.js
diff --git a/bin/templates/cordova/lib/config/GradlePropertiesParser.js b/lib/config/GradlePropertiesParser.js
similarity index 100%
rename from bin/templates/cordova/lib/config/GradlePropertiesParser.js
rename to lib/config/GradlePropertiesParser.js
diff --git a/bin/lib/create.js b/lib/create.js
similarity index 93%
rename from bin/lib/create.js
rename to lib/create.js
index 3ebb024..8b9a61e 100755
--- a/bin/lib/create.js
+++ b/lib/create.js
@@ -19,13 +19,13 @@
 
 var path = require('path');
 var fs = require('fs-extra');
-var utils = require('../templates/cordova/lib/utils');
-var check_reqs = require('./../templates/cordova/lib/check_reqs');
-var ROOT = path.join(__dirname, '..', '..');
+var utils = require('./utils');
+var check_reqs = require('./check_reqs');
+var ROOT = path.join(__dirname, '..');
 const { createEditor } = require('properties-parser');
 
 var CordovaError = require('cordova-common').CordovaError;
-var AndroidManifest = require('../templates/cordova/lib/AndroidManifest');
+var AndroidManifest = require('./AndroidManifest');
 
 // Export all helper functions, and make sure internally within this module, we
 // reference these methods via the `exports` object - this helps with testing
@@ -45,7 +45,7 @@ function getFrameworkDir (projectPath, shared) {
 
 function copyJsAndLibrary (projectPath, shared, projectName, targetAPI) {
     var nestedCordovaLibPath = getFrameworkDir(projectPath, false);
-    var srcCordovaJsPath = path.join(ROOT, 'bin', 'templates', 'project', 'assets', 'www', 'cordova.js');
+    var srcCordovaJsPath = path.join(ROOT, 'templates', 'project', 'assets', 'www', 'cordova.js');
     var app_path = path.join(projectPath, 'app', 'src', 'main');
     const platform_www = path.join(projectPath, 'platform_www');
 
@@ -89,7 +89,7 @@ function extractSubProjectPaths (data) {
 
 function writeProjectProperties (projectPath, target_api) {
     var dstPath = path.join(projectPath, 'project.properties');
-    var templatePath = path.join(ROOT, 'bin', 'templates', 'project', 'project.properties');
+    var templatePath = path.join(ROOT, 'templates', 'project', 'project.properties');
     var srcPath = fs.existsSync(dstPath) ? dstPath : templatePath;
 
     var data = fs.readFileSync(srcPath, 'utf8');
@@ -113,12 +113,12 @@ function writeProjectProperties (projectPath, target_api) {
 
 // This makes no sense, what if you're building with a different build system?
 function prepBuildFiles (projectPath) {
-    var buildModule = require('../templates/cordova/lib/builders/builders');
+    var buildModule = require('./builders/builders');
     buildModule.getBuilder(projectPath).prepBuildFiles();
 }
 
 function copyBuildRules (projectPath, isLegacy) {
-    var srcDir = path.join(ROOT, 'bin', 'templates', 'project');
+    var srcDir = path.join(ROOT, 'templates', 'project');
 
     if (isLegacy) {
         // The project's build.gradle is identical to the earlier build.gradle, so it should still work
@@ -134,16 +134,12 @@ function copyBuildRules (projectPath, isLegacy) {
 }
 
 function copyScripts (projectPath) {
-    var bin = path.join(ROOT, 'bin');
-    var srcScriptsDir = path.join(bin, 'templates', 'cordova');
+    var srcScriptsDir = path.join(ROOT, 'templates', 'cordova');
     var destScriptsDir = path.join(projectPath, 'cordova');
     // Delete old scripts directory if this is an update.
     fs.removeSync(destScriptsDir);
     // Copy in the new ones.
     fs.copySync(srcScriptsDir, destScriptsDir);
-
-    const nodeModulesDir = path.join(ROOT, 'node_modules');
-    if (fs.existsSync(nodeModulesDir)) fs.copySync(nodeModulesDir, path.join(destScriptsDir, 'node_modules'));
 }
 
 /**
@@ -247,7 +243,7 @@ exports.create = function (project_path, config, options, events) {
 
             events.emit('verbose', 'Copying android template project to ' + project_path);
 
-            var project_template_dir = options.customTemplate || path.join(ROOT, 'bin', 'templates', 'project');
+            var project_template_dir = options.customTemplate || path.join(ROOT, 'templates', 'project');
             var app_path = path.join(project_path, 'app', 'src', 'main');
 
             // copy project template
@@ -300,7 +296,7 @@ exports.create = function (project_path, config, options, events) {
 };
 
 function generateDoneMessage (type, link) {
-    var pkg = require('../../package');
+    var pkg = require('../package');
     var msg = 'Android project ' + (type === 'update' ? 'updated ' : 'created ') + 'with ' + pkg.name + '@' + pkg.version;
     if (link) {
         msg += ' and has a linked CordovaLib';
diff --git a/bin/templates/cordova/lib/emulator.js b/lib/emulator.js
similarity index 100%
rename from bin/templates/cordova/lib/emulator.js
rename to lib/emulator.js
diff --git a/bin/templates/cordova/lib/env/java.js b/lib/env/java.js
similarity index 100%
rename from bin/templates/cordova/lib/env/java.js
rename to lib/env/java.js
diff --git a/bin/templates/cordova/lib/getASPath.bat b/lib/getASPath.bat
similarity index 100%
rename from bin/templates/cordova/lib/getASPath.bat
rename to lib/getASPath.bat
diff --git a/bin/templates/cordova/lib/gradle-config-defaults.js b/lib/gradle-config-defaults.js
similarity index 92%
rename from bin/templates/cordova/lib/gradle-config-defaults.js
rename to lib/gradle-config-defaults.js
index be3be3a..933fe64 100644
--- a/bin/templates/cordova/lib/gradle-config-defaults.js
+++ b/lib/gradle-config-defaults.js
@@ -21,8 +21,7 @@ const ABS_MODULE_PATH = '/framework/cdv-gradle-config-defaults.json';
 
 try {
     // Try relative require first, …
-    const REPO_ROOT = '../../../..';
-    module.exports = require(REPO_ROOT + ABS_MODULE_PATH);
+    module.exports = require('..' + ABS_MODULE_PATH);
 } catch (error) {
     // … then fall back to installed-package require
     if (error.code !== 'MODULE_NOT_FOUND') throw error;
diff --git a/bin/templates/cordova/lib/pluginHandlers.js b/lib/pluginHandlers.js
similarity index 100%
rename from bin/templates/cordova/lib/pluginHandlers.js
rename to lib/pluginHandlers.js
diff --git a/bin/templates/cordova/lib/prepare.js b/lib/prepare.js
similarity index 100%
rename from bin/templates/cordova/lib/prepare.js
rename to lib/prepare.js
diff --git a/bin/templates/cordova/lib/retry.js b/lib/retry.js
similarity index 100%
rename from bin/templates/cordova/lib/retry.js
rename to lib/retry.js
diff --git a/bin/templates/cordova/lib/run.js b/lib/run.js
similarity index 100%
rename from bin/templates/cordova/lib/run.js
rename to lib/run.js
diff --git a/bin/templates/cordova/lib/target.js b/lib/target.js
similarity index 100%
rename from bin/templates/cordova/lib/target.js
rename to lib/target.js
diff --git a/bin/templates/cordova/lib/utils.js b/lib/utils.js
similarity index 100%
rename from bin/templates/cordova/lib/utils.js
rename to lib/utils.js
diff --git a/package.json b/package.json
index 00c0eb7..f8c124f 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "cordova-android",
   "version": "10.0.0-dev",
   "description": "cordova-android release",
-  "main": "bin/templates/cordova/Api.js",
+  "main": "lib/Api.js",
   "repository": "github:apache/cordova-android",
   "bugs": "https://github.com/apache/cordova-android/issues",
   "keywords": [
@@ -12,7 +12,7 @@
   ],
   "scripts": {
     "test": "npm run lint && npm run cover && npm run java-unit-tests",
-    "lint": "eslint . \"bin/**/!(*.*|gitignore)\"",
+    "lint": "eslint lib spec test \"templates/cordova/**/!(*.*)\"",
     "unit-tests": "jasmine --config=spec/unit/jasmine.json",
     "cover": "nyc jasmine --config=spec/coverage.json",
     "e2e-tests": "jasmine --config=spec/e2e/jasmine.json",
@@ -45,8 +45,7 @@
   },
   "nyc": {
     "include": [
-      "bin/lib/**",
-      "bin/templates/cordova/**"
+      "lib"
     ],
     "reporter": [
       "lcov",
diff --git a/spec/e2e/e2e.spec.js b/spec/e2e/e2e.spec.js
index 1225ccd..8136c94 100644
--- a/spec/e2e/e2e.spec.js
+++ b/spec/e2e/e2e.spec.js
@@ -22,7 +22,7 @@ const fs = require('fs-extra');
 const path = require('path');
 const { EventEmitter } = require('events');
 const { ConfigParser, PluginInfoProvider } = require('cordova-common');
-const Api = require('../../bin/templates/cordova/Api');
+const Api = require('../../lib/Api');
 
 function makeTempDir () {
     const tmpDirTemplate = path.join(os.tmpdir(), 'cordova-android-test-');
@@ -30,7 +30,7 @@ function makeTempDir () {
 }
 
 async function makeProject (projectPath) {
-    const configXmlPath = path.join(__dirname, '../../bin/templates/project/res/xml/config.xml');
+    const configXmlPath = path.join(__dirname, '../../templates/project/res/xml/config.xml');
     const config = new ConfigParser(configXmlPath);
     config.setPackageName('io.cordova.testapp');
     config.setName('TestApp');
diff --git a/spec/unit/Adb.spec.js b/spec/unit/Adb.spec.js
index aafe977..550e95d 100644
--- a/spec/unit/Adb.spec.js
+++ b/spec/unit/Adb.spec.js
@@ -38,7 +38,7 @@ describe('Adb', () => {
     let execaSpy;
 
     beforeEach(() => {
-        Adb = rewire('../../bin/templates/cordova/lib/Adb');
+        Adb = rewire('../../lib/Adb');
         execaSpy = jasmine.createSpy('execa');
         Adb.__set__('execa', execaSpy);
     });
diff --git a/spec/unit/AndroidManifest.spec.js b/spec/unit/AndroidManifest.spec.js
index f7d8e46..97b8867 100644
--- a/spec/unit/AndroidManifest.spec.js
+++ b/spec/unit/AndroidManifest.spec.js
@@ -66,7 +66,7 @@ describe('AndroidManifest', () => {
     beforeEach(() => {
         createTempManifestFile(DEFAULT_MANIFEST);
 
-        AndroidManifest = rewire('../../bin/templates/cordova/lib/AndroidManifest');
+        AndroidManifest = rewire('../../lib/AndroidManifest');
         manifest = new AndroidManifest(manifestPath);
     });
 
diff --git a/spec/unit/AndroidProject.spec.js b/spec/unit/AndroidProject.spec.js
index b56792f..9da35a4 100644
--- a/spec/unit/AndroidProject.spec.js
+++ b/spec/unit/AndroidProject.spec.js
@@ -26,7 +26,7 @@ describe('AndroidProject', () => {
     let AndroidStudioSpy;
 
     beforeEach(() => {
-        AndroidProject = rewire('../../bin/templates/cordova/lib/AndroidProject');
+        AndroidProject = rewire('../../lib/AndroidProject');
 
         AndroidStudioSpy = jasmine.createSpyObj('AndroidStudio', ['isAndroidStudioProject']);
         AndroidProject.__set__('AndroidStudio', AndroidStudioSpy);
diff --git a/spec/unit/Api.spec.js b/spec/unit/Api.spec.js
index a7d1a93..83eff68 100644
--- a/spec/unit/Api.spec.js
+++ b/spec/unit/Api.spec.js
@@ -22,8 +22,8 @@ var path = require('path');
 var common = require('cordova-common');
 const EventEmitter = require('events');
 
-var Api = require('../../bin/templates/cordova/Api');
-var AndroidProject = require('../../bin/templates/cordova/lib/AndroidProject');
+var Api = require('../../lib/Api');
+var AndroidProject = require('../../lib/AndroidProject');
 
 var PluginInfo = common.PluginInfo;
 
diff --git a/spec/unit/android_sdk.spec.js b/spec/unit/android_sdk.spec.js
index 25c1929..67c0cbf 100644
--- a/spec/unit/android_sdk.spec.js
+++ b/spec/unit/android_sdk.spec.js
@@ -26,7 +26,7 @@ describe('android_sdk', () => {
     let execaSpy;
 
     beforeEach(() => {
-        android_sdk = rewire('../../bin/templates/cordova/lib/android_sdk');
+        android_sdk = rewire('../../lib/android_sdk');
         execaSpy = jasmine.createSpy('execa');
         android_sdk.__set__('execa', execaSpy);
     });
diff --git a/spec/unit/builders/ProjectBuilder.spec.js b/spec/unit/builders/ProjectBuilder.spec.js
index 01f4eb7..9cb2eb7 100644
--- a/spec/unit/builders/ProjectBuilder.spec.js
+++ b/spec/unit/builders/ProjectBuilder.spec.js
@@ -32,7 +32,7 @@ describe('ProjectBuilder', () => {
 
     beforeEach(() => {
         execaSpy = jasmine.createSpy('execa').and.returnValue(new Promise(() => {}));
-        ProjectBuilder = rewire('../../../bin/templates/cordova/lib/builders/ProjectBuilder');
+        ProjectBuilder = rewire('../../../lib/builders/ProjectBuilder');
         ProjectBuilder.__set__('execa', execaSpy);
 
         builder = new ProjectBuilder(rootDir);
diff --git a/spec/unit/builders/builders.spec.js b/spec/unit/builders/builders.spec.js
index e0b7229..688d32c 100644
--- a/spec/unit/builders/builders.spec.js
+++ b/spec/unit/builders/builders.spec.js
@@ -20,13 +20,13 @@
 const rewire = require('rewire');
 
 const CordovaError = require('cordova-common').CordovaError;
-const ProjectBuilder = require('../../../bin/templates/cordova/lib/builders/ProjectBuilder');
+const ProjectBuilder = require('../../../lib/builders/ProjectBuilder');
 
 describe('builders', () => {
     let builders;
 
     beforeEach(() => {
-        builders = rewire('../../../bin/templates/cordova/lib/builders/builders');
+        builders = rewire('../../../lib/builders/builders');
     });
 
     describe('getBuilder', () => {
diff --git a/spec/unit/check_reqs.spec.js b/spec/unit/check_reqs.spec.js
index 37e00f3..04e93f5 100644
--- a/spec/unit/check_reqs.spec.js
+++ b/spec/unit/check_reqs.spec.js
@@ -18,7 +18,7 @@
 */
 
 var rewire = require('rewire');
-var android_sdk = require('../../bin/templates/cordova/lib/android_sdk');
+var android_sdk = require('../../lib/android_sdk');
 var fs = require('fs-extra');
 var path = require('path');
 var events = require('cordova-common').events;
@@ -26,12 +26,12 @@ var which = require('which');
 
 const {
     SDK_VERSION: DEFAULT_TARGET_API
-} = require('../../bin/templates/cordova/lib/gradle-config-defaults');
+} = require('../../lib/gradle-config-defaults');
 
 describe('check_reqs', function () {
     let check_reqs;
     beforeEach(() => {
-        check_reqs = rewire('../../bin/templates/cordova/lib/check_reqs');
+        check_reqs = rewire('../../lib/check_reqs');
     });
 
     var original_env;
diff --git a/spec/unit/config/GradlePropertiesParser.spec.js b/spec/unit/config/GradlePropertiesParser.spec.js
index 3dcc1ff..9ff5570 100644
--- a/spec/unit/config/GradlePropertiesParser.spec.js
+++ b/spec/unit/config/GradlePropertiesParser.spec.js
@@ -18,7 +18,7 @@
 */
 
 const rewire = require('rewire');
-const GradlePropertiesParser = rewire('../../../bin/templates/cordova/lib/config/GradlePropertiesParser');
+const GradlePropertiesParser = rewire('../../../lib/config/GradlePropertiesParser');
 
 describe('Gradle Builder', () => {
     describe('_initializeEditor method', () => {
diff --git a/spec/unit/create.spec.js b/spec/unit/create.spec.js
index dbe4c3e..4e5a5a7 100644
--- a/spec/unit/create.spec.js
+++ b/spec/unit/create.spec.js
@@ -18,9 +18,9 @@
 */
 
 var rewire = require('rewire');
-var utils = require('../../bin/templates/cordova/lib/utils');
-var create = rewire('../../bin/lib/create');
-var check_reqs = require('../../bin/templates/cordova/lib/check_reqs');
+var utils = require('../../lib/utils');
+var create = rewire('../../lib/create');
+var check_reqs = require('../../lib/check_reqs');
 var fs = require('fs-extra');
 var path = require('path');
 
@@ -117,7 +117,7 @@ describe('create', function () {
         var revert_manifest_mock;
         var project_path = path.join('some', 'path');
         var app_path = path.join(project_path, 'app', 'src', 'main');
-        var default_templates = path.join(__dirname, '..', '..', 'bin', 'templates', 'project');
+        var default_templates = path.join(__dirname, '..', '..', 'templates', 'project');
         var fake_android_target = 'android-1337';
 
         beforeEach(function () {
diff --git a/spec/unit/emulator.spec.js b/spec/unit/emulator.spec.js
index 4551e37..4381504 100644
--- a/spec/unit/emulator.spec.js
+++ b/spec/unit/emulator.spec.js
@@ -28,7 +28,7 @@ describe('emulator', () => {
     let emu;
 
     beforeEach(() => {
-        emu = rewire('../../bin/templates/cordova/lib/emulator');
+        emu = rewire('../../lib/emulator');
     });
 
     describe('list_images_using_avdmanager', () => {
@@ -376,7 +376,7 @@ describe('emulator', () => {
             // If we use Jasmine's fake clock, we need to re-require the target module,
             // or else it will not work.
             jasmine.clock().install();
-            emu = rewire('../../bin/templates/cordova/lib/emulator');
+            emu = rewire('../../lib/emulator');
 
             AdbSpy = jasmine.createSpyObj('Adb', ['shell']);
             emu.__set__('Adb', AdbSpy);
diff --git a/spec/unit/java.spec.js b/spec/unit/java.spec.js
index f57e9fc..7468009 100644
--- a/spec/unit/java.spec.js
+++ b/spec/unit/java.spec.js
@@ -20,11 +20,11 @@
 const path = require('path');
 const rewire = require('rewire');
 const { CordovaError } = require('cordova-common');
-const utils = require('../../bin/templates/cordova/lib/utils');
+const utils = require('../../lib/utils');
 const glob = require('fast-glob');
 
 describe('Java', () => {
-    const Java = rewire('../../bin/templates/cordova/lib/env/java');
+    const Java = rewire('../../lib/env/java');
 
     describe('getVersion', () => {
         beforeEach(() => {
diff --git a/spec/unit/pluginHandlers/common.spec.js b/spec/unit/pluginHandlers/common.spec.js
index 67ca6bf..ce57893 100644
--- a/spec/unit/pluginHandlers/common.spec.js
+++ b/spec/unit/pluginHandlers/common.spec.js
@@ -17,7 +17,7 @@
 */
 
 var rewire = require('rewire');
-var common = rewire('../../../bin/templates/cordova/lib/pluginHandlers');
+var common = rewire('../../../lib/pluginHandlers');
 var path = require('path');
 var fs = require('fs-extra');
 var osenv = require('os');
diff --git a/spec/unit/pluginHandlers/handlers.spec.js b/spec/unit/pluginHandlers/handlers.spec.js
index e5aa3ed..9170f4e 100644
--- a/spec/unit/pluginHandlers/handlers.spec.js
+++ b/spec/unit/pluginHandlers/handlers.spec.js
@@ -18,7 +18,7 @@
 */
 
 var rewire = require('rewire');
-var common = rewire('../../../bin/templates/cordova/lib/pluginHandlers');
+var common = rewire('../../../lib/pluginHandlers');
 var android = common.__get__('handlers');
 var path = require('path');
 var fs = require('fs-extra');
@@ -30,7 +30,7 @@ var faultyplugin = path.join(__dirname, '../../fixtures/org.test.plugins.faultyp
 var android_studio_project = path.join(__dirname, '../../fixtures/android_studio_project');
 
 var PluginInfo = require('cordova-common').PluginInfo;
-var AndroidProject = require('../../../bin/templates/cordova/lib/AndroidProject');
+var AndroidProject = require('../../../lib/AndroidProject');
 
 var dummyPluginInfo = new PluginInfo(dummyplugin);
 var valid_source = dummyPluginInfo.getSourceFiles('android');
diff --git a/spec/unit/prepare.spec.js b/spec/unit/prepare.spec.js
index 9b8868c..de878a9 100644
--- a/spec/unit/prepare.spec.js
+++ b/spec/unit/prepare.spec.js
@@ -20,7 +20,7 @@
 var rewire = require('rewire');
 var path = require('path');
 var CordovaError = require('cordova-common').CordovaError;
-const GradlePropertiesParser = require('../../bin/templates/cordova/lib/config/GradlePropertiesParser');
+const GradlePropertiesParser = require('../../lib/config/GradlePropertiesParser');
 
 const PATH_RESOURCE = path.join('platforms', 'android', 'app', 'src', 'main', 'res');
 
@@ -102,7 +102,7 @@ describe('prepare', () => {
     let updatePathsSpy;
 
     beforeEach(() => {
-        prepare = rewire('../../bin/templates/cordova/lib/prepare');
+        prepare = rewire('../../lib/prepare');
 
         emitSpy = jasmine.createSpy('emit');
         prepare.__set__('events', {
@@ -747,7 +747,7 @@ describe('prepare', () => {
         let options;
 
         beforeEach(function () {
-            Api = rewire('../../bin/templates/cordova/Api');
+            Api = rewire('../../lib/Api');
 
             cordovaProject = {
                 root: '/mock',
diff --git a/spec/unit/retry.spec.js b/spec/unit/retry.spec.js
index cb5229d..4425cc2 100644
--- a/spec/unit/retry.spec.js
+++ b/spec/unit/retry.spec.js
@@ -17,7 +17,7 @@
     under the License.
 */
 
-const retry = require('../../bin/templates/cordova/lib/retry');
+const retry = require('../../lib/retry');
 
 describe('retry', () => {
     describe('retryPromise method', () => {
diff --git a/spec/unit/run.spec.js b/spec/unit/run.spec.js
index e440107..3ed2f69 100644
--- a/spec/unit/run.spec.js
+++ b/spec/unit/run.spec.js
@@ -18,13 +18,13 @@
 */
 
 const rewire = require('rewire');
-const builders = require('../../bin/templates/cordova/lib/builders/builders');
+const builders = require('../../lib/builders/builders');
 
 describe('run', () => {
     let run;
 
     beforeEach(() => {
-        run = rewire('../../bin/templates/cordova/lib/run');
+        run = rewire('../../lib/run');
         run.__set__({
             events: jasmine.createSpyObj('eventsSpy', ['emit'])
         });
diff --git a/spec/unit/target.spec.js b/spec/unit/target.spec.js
index 3ef5c2c..e175c77 100644
--- a/spec/unit/target.spec.js
+++ b/spec/unit/target.spec.js
@@ -24,7 +24,7 @@ describe('target', () => {
     let target;
 
     beforeEach(() => {
-        target = rewire('../../bin/templates/cordova/lib/target');
+        target = rewire('../../lib/target');
     });
 
     describe('list', () => {
diff --git a/bin/templates/cordova/lib/PackageType.js b/templates/cordova/Api.js
similarity index 89%
rename from bin/templates/cordova/lib/PackageType.js
rename to templates/cordova/Api.js
index fd129f1..de29478 100644
--- a/bin/templates/cordova/lib/PackageType.js
+++ b/templates/cordova/Api.js
@@ -17,9 +17,4 @@
     under the License.
 */
 
-const PackageType = {
-    APK: 'apk',
-    BUNDLE: 'bundle'
-};
-
-module.exports = PackageType;
+module.exports = require('cordova-android');
diff --git a/bin/templates/cordova/android_sdk_version b/templates/cordova/android_sdk_version
similarity index 94%
rename from bin/templates/cordova/android_sdk_version
rename to templates/cordova/android_sdk_version
index c4aa8b8..5ef0238 100755
--- a/bin/templates/cordova/android_sdk_version
+++ b/templates/cordova/android_sdk_version
@@ -19,7 +19,7 @@
        under the License.
 */
 
-var android_sdk = require('./lib/android_sdk');
+var android_sdk = require('cordova-android/lib/android_sdk');
 
 android_sdk.print_newest_available_sdk_target().catch(err => {
     console.error(err);
diff --git a/bin/templates/cordova/defaults.xml b/templates/cordova/defaults.xml
similarity index 100%
rename from bin/templates/cordova/defaults.xml
rename to templates/cordova/defaults.xml
diff --git a/bin/templates/cordova/lib/list-devices b/templates/cordova/lib/list-devices
similarity index 90%
rename from bin/templates/cordova/lib/list-devices
rename to templates/cordova/lib/list-devices
index ed8e111..9aa7d99 100755
--- a/bin/templates/cordova/lib/list-devices
+++ b/templates/cordova/lib/list-devices
@@ -19,10 +19,10 @@
        under the License.
 */
 
-const { list } = require('./target');
+const { list } = require('cordova-android/lib/target');
 
 // Usage support for when args are given
-require('./check_reqs').check_android().then(function () {
+require('cordova-android/lib/check_reqs').check_android().then(function () {
     list().then(targets => {
         const deviceIds = targets
             .filter(({ type }) => type === 'device')
diff --git a/bin/templates/cordova/lib/list-emulator-images b/templates/cordova/lib/list-emulator-images
similarity index 89%
rename from bin/templates/cordova/lib/list-emulator-images
rename to templates/cordova/lib/list-emulator-images
index 03cfb19..4351b68 100755
--- a/bin/templates/cordova/lib/list-emulator-images
+++ b/templates/cordova/lib/list-emulator-images
@@ -19,10 +19,10 @@
        under the License.
 */
 
-var emulators = require('./emulator');
+var emulators = require('cordova-android/lib/emulator');
 
 // Usage support for when args are given
-require('./check_reqs').check_android().then(function () {
+require('cordova-android/lib/check_reqs').check_android().then(function () {
     emulators.list_images().then(function (emulator_list) {
         emulator_list && emulator_list.forEach(function (emu) {
             console.log(emu.name);
diff --git a/bin/templates/cordova/version b/templates/cordova/version
similarity index 100%
rename from bin/templates/cordova/version
rename to templates/cordova/version
diff --git a/bin/templates/project/Activity.java b/templates/project/Activity.java
similarity index 100%
rename from bin/templates/project/Activity.java
rename to templates/project/Activity.java
diff --git a/bin/templates/project/AndroidManifest.xml b/templates/project/AndroidManifest.xml
similarity index 100%
rename from bin/templates/project/AndroidManifest.xml
rename to templates/project/AndroidManifest.xml
diff --git a/bin/templates/project/app/build.gradle b/templates/project/app/build.gradle
similarity index 100%
rename from bin/templates/project/app/build.gradle
rename to templates/project/app/build.gradle
diff --git a/bin/templates/project/repositories.gradle b/templates/project/app/repositories.gradle
similarity index 100%
rename from bin/templates/project/repositories.gradle
rename to templates/project/app/repositories.gradle
diff --git a/bin/templates/project/assets/www/cordova.js b/templates/project/assets/www/cordova.js
similarity index 100%
rename from bin/templates/project/assets/www/cordova.js
rename to templates/project/assets/www/cordova.js
diff --git a/bin/templates/project/assets/www/css/index.css b/templates/project/assets/www/css/index.css
similarity index 100%
rename from bin/templates/project/assets/www/css/index.css
rename to templates/project/assets/www/css/index.css
diff --git a/bin/templates/project/assets/www/img/cordova.png b/templates/project/assets/www/img/cordova.png
similarity index 100%
rename from bin/templates/project/assets/www/img/cordova.png
rename to templates/project/assets/www/img/cordova.png
diff --git a/bin/templates/project/assets/www/img/logo.png b/templates/project/assets/www/img/logo.png
similarity index 100%
rename from bin/templates/project/assets/www/img/logo.png
rename to templates/project/assets/www/img/logo.png
diff --git a/bin/templates/project/assets/www/index.html b/templates/project/assets/www/index.html
similarity index 100%
rename from bin/templates/project/assets/www/index.html
rename to templates/project/assets/www/index.html
diff --git a/bin/templates/project/assets/www/js/index.js b/templates/project/assets/www/js/index.js
similarity index 100%
rename from bin/templates/project/assets/www/js/index.js
rename to templates/project/assets/www/js/index.js
diff --git a/bin/templates/project/build.gradle b/templates/project/build.gradle
similarity index 100%
rename from bin/templates/project/build.gradle
rename to templates/project/build.gradle
diff --git a/bin/templates/project/gitignore b/templates/project/gitignore
similarity index 100%
rename from bin/templates/project/gitignore
rename to templates/project/gitignore
diff --git a/bin/templates/project/project.properties b/templates/project/project.properties
similarity index 100%
rename from bin/templates/project/project.properties
rename to templates/project/project.properties
diff --git a/bin/templates/project/app/repositories.gradle b/templates/project/repositories.gradle
similarity index 100%
rename from bin/templates/project/app/repositories.gradle
rename to templates/project/repositories.gradle
diff --git a/bin/templates/project/res/drawable-land-hdpi/screen.png b/templates/project/res/drawable-land-hdpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-land-hdpi/screen.png
rename to templates/project/res/drawable-land-hdpi/screen.png
diff --git a/bin/templates/project/res/drawable-land-ldpi/screen.png b/templates/project/res/drawable-land-ldpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-land-ldpi/screen.png
rename to templates/project/res/drawable-land-ldpi/screen.png
diff --git a/bin/templates/project/res/drawable-land-mdpi/screen.png b/templates/project/res/drawable-land-mdpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-land-mdpi/screen.png
rename to templates/project/res/drawable-land-mdpi/screen.png
diff --git a/bin/templates/project/res/drawable-land-xhdpi/screen.png b/templates/project/res/drawable-land-xhdpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-land-xhdpi/screen.png
rename to templates/project/res/drawable-land-xhdpi/screen.png
diff --git a/bin/templates/project/res/drawable-land-xxhdpi/screen.png b/templates/project/res/drawable-land-xxhdpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-land-xxhdpi/screen.png
rename to templates/project/res/drawable-land-xxhdpi/screen.png
diff --git a/bin/templates/project/res/drawable-land-xxxhdpi/screen.png b/templates/project/res/drawable-land-xxxhdpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-land-xxxhdpi/screen.png
rename to templates/project/res/drawable-land-xxxhdpi/screen.png
diff --git a/bin/templates/project/res/drawable-port-hdpi/screen.png b/templates/project/res/drawable-port-hdpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-port-hdpi/screen.png
rename to templates/project/res/drawable-port-hdpi/screen.png
diff --git a/bin/templates/project/res/drawable-port-ldpi/screen.png b/templates/project/res/drawable-port-ldpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-port-ldpi/screen.png
rename to templates/project/res/drawable-port-ldpi/screen.png
diff --git a/bin/templates/project/res/drawable-port-mdpi/screen.png b/templates/project/res/drawable-port-mdpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-port-mdpi/screen.png
rename to templates/project/res/drawable-port-mdpi/screen.png
diff --git a/bin/templates/project/res/drawable-port-xhdpi/screen.png b/templates/project/res/drawable-port-xhdpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-port-xhdpi/screen.png
rename to templates/project/res/drawable-port-xhdpi/screen.png
diff --git a/bin/templates/project/res/drawable-port-xxhdpi/screen.png b/templates/project/res/drawable-port-xxhdpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-port-xxhdpi/screen.png
rename to templates/project/res/drawable-port-xxhdpi/screen.png
diff --git a/bin/templates/project/res/drawable-port-xxxhdpi/screen.png b/templates/project/res/drawable-port-xxxhdpi/screen.png
similarity index 100%
rename from bin/templates/project/res/drawable-port-xxxhdpi/screen.png
rename to templates/project/res/drawable-port-xxxhdpi/screen.png
diff --git a/bin/templates/project/res/mipmap-xxxhdpi-v26/ic_launcher.xml b/templates/project/res/mipmap-hdpi-v26/ic_launcher.xml
similarity index 100%
rename from bin/templates/project/res/mipmap-xxxhdpi-v26/ic_launcher.xml
rename to templates/project/res/mipmap-hdpi-v26/ic_launcher.xml
diff --git a/bin/templates/project/res/mipmap-hdpi-v26/ic_launcher_background.png b/templates/project/res/mipmap-hdpi-v26/ic_launcher_background.png
similarity index 100%
rename from bin/templates/project/res/mipmap-hdpi-v26/ic_launcher_background.png
rename to templates/project/res/mipmap-hdpi-v26/ic_launcher_background.png
diff --git a/bin/templates/project/res/mipmap-hdpi-v26/ic_launcher_foreground.png b/templates/project/res/mipmap-hdpi-v26/ic_launcher_foreground.png
similarity index 100%
rename from bin/templates/project/res/mipmap-hdpi-v26/ic_launcher_foreground.png
rename to templates/project/res/mipmap-hdpi-v26/ic_launcher_foreground.png
diff --git a/bin/templates/project/res/mipmap-hdpi/ic_launcher.png b/templates/project/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from bin/templates/project/res/mipmap-hdpi/ic_launcher.png
rename to templates/project/res/mipmap-hdpi/ic_launcher.png
diff --git a/bin/templates/project/res/mipmap-xxhdpi-v26/ic_launcher.xml b/templates/project/res/mipmap-ldpi-v26/ic_launcher.xml
similarity index 100%
rename from bin/templates/project/res/mipmap-xxhdpi-v26/ic_launcher.xml
rename to templates/project/res/mipmap-ldpi-v26/ic_launcher.xml
diff --git a/bin/templates/project/res/mipmap-ldpi-v26/ic_launcher_background.png b/templates/project/res/mipmap-ldpi-v26/ic_launcher_background.png
similarity index 100%
rename from bin/templates/project/res/mipmap-ldpi-v26/ic_launcher_background.png
rename to templates/project/res/mipmap-ldpi-v26/ic_launcher_background.png
diff --git a/bin/templates/project/res/mipmap-ldpi-v26/ic_launcher_foreground.png b/templates/project/res/mipmap-ldpi-v26/ic_launcher_foreground.png
similarity index 100%
rename from bin/templates/project/res/mipmap-ldpi-v26/ic_launcher_foreground.png
rename to templates/project/res/mipmap-ldpi-v26/ic_launcher_foreground.png
diff --git a/bin/templates/project/res/mipmap-ldpi/ic_launcher.png b/templates/project/res/mipmap-ldpi/ic_launcher.png
similarity index 100%
rename from bin/templates/project/res/mipmap-ldpi/ic_launcher.png
rename to templates/project/res/mipmap-ldpi/ic_launcher.png
diff --git a/bin/templates/project/res/mipmap-xhdpi-v26/ic_launcher.xml b/templates/project/res/mipmap-mdpi-v26/ic_launcher.xml
similarity index 100%
rename from bin/templates/project/res/mipmap-xhdpi-v26/ic_launcher.xml
rename to templates/project/res/mipmap-mdpi-v26/ic_launcher.xml
diff --git a/bin/templates/project/res/mipmap-mdpi-v26/ic_launcher_background.png b/templates/project/res/mipmap-mdpi-v26/ic_launcher_background.png
similarity index 100%
rename from bin/templates/project/res/mipmap-mdpi-v26/ic_launcher_background.png
rename to templates/project/res/mipmap-mdpi-v26/ic_launcher_background.png
diff --git a/bin/templates/project/res/mipmap-mdpi-v26/ic_launcher_foreground.png b/templates/project/res/mipmap-mdpi-v26/ic_launcher_foreground.png
similarity index 100%
rename from bin/templates/project/res/mipmap-mdpi-v26/ic_launcher_foreground.png
rename to templates/project/res/mipmap-mdpi-v26/ic_launcher_foreground.png
diff --git a/bin/templates/project/res/mipmap-mdpi/ic_launcher.png b/templates/project/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from bin/templates/project/res/mipmap-mdpi/ic_launcher.png
rename to templates/project/res/mipmap-mdpi/ic_launcher.png
diff --git a/bin/templates/project/res/mipmap-mdpi-v26/ic_launcher.xml b/templates/project/res/mipmap-xhdpi-v26/ic_launcher.xml
similarity index 100%
rename from bin/templates/project/res/mipmap-mdpi-v26/ic_launcher.xml
rename to templates/project/res/mipmap-xhdpi-v26/ic_launcher.xml
diff --git a/bin/templates/project/res/mipmap-xhdpi-v26/ic_launcher_background.png b/templates/project/res/mipmap-xhdpi-v26/ic_launcher_background.png
similarity index 100%
rename from bin/templates/project/res/mipmap-xhdpi-v26/ic_launcher_background.png
rename to templates/project/res/mipmap-xhdpi-v26/ic_launcher_background.png
diff --git a/bin/templates/project/res/mipmap-xhdpi-v26/ic_launcher_foreground.png b/templates/project/res/mipmap-xhdpi-v26/ic_launcher_foreground.png
similarity index 100%
rename from bin/templates/project/res/mipmap-xhdpi-v26/ic_launcher_foreground.png
rename to templates/project/res/mipmap-xhdpi-v26/ic_launcher_foreground.png
diff --git a/bin/templates/project/res/mipmap-xhdpi/ic_launcher.png b/templates/project/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from bin/templates/project/res/mipmap-xhdpi/ic_launcher.png
rename to templates/project/res/mipmap-xhdpi/ic_launcher.png
diff --git a/bin/templates/project/res/mipmap-ldpi-v26/ic_launcher.xml b/templates/project/res/mipmap-xxhdpi-v26/ic_launcher.xml
similarity index 100%
rename from bin/templates/project/res/mipmap-ldpi-v26/ic_launcher.xml
rename to templates/project/res/mipmap-xxhdpi-v26/ic_launcher.xml
diff --git a/bin/templates/project/res/mipmap-xxhdpi-v26/ic_launcher_background.png b/templates/project/res/mipmap-xxhdpi-v26/ic_launcher_background.png
similarity index 100%
rename from bin/templates/project/res/mipmap-xxhdpi-v26/ic_launcher_background.png
rename to templates/project/res/mipmap-xxhdpi-v26/ic_launcher_background.png
diff --git a/bin/templates/project/res/mipmap-xxhdpi-v26/ic_launcher_foreground.png b/templates/project/res/mipmap-xxhdpi-v26/ic_launcher_foreground.png
similarity index 100%
rename from bin/templates/project/res/mipmap-xxhdpi-v26/ic_launcher_foreground.png
rename to templates/project/res/mipmap-xxhdpi-v26/ic_launcher_foreground.png
diff --git a/bin/templates/project/res/mipmap-xxhdpi/ic_launcher.png b/templates/project/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from bin/templates/project/res/mipmap-xxhdpi/ic_launcher.png
rename to templates/project/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/bin/templates/project/res/mipmap-hdpi-v26/ic_launcher.xml b/templates/project/res/mipmap-xxxhdpi-v26/ic_launcher.xml
similarity index 100%
rename from bin/templates/project/res/mipmap-hdpi-v26/ic_launcher.xml
rename to templates/project/res/mipmap-xxxhdpi-v26/ic_launcher.xml
diff --git a/bin/templates/project/res/mipmap-xxxhdpi-v26/ic_launcher_background.png b/templates/project/res/mipmap-xxxhdpi-v26/ic_launcher_background.png
similarity index 100%
rename from bin/templates/project/res/mipmap-xxxhdpi-v26/ic_launcher_background.png
rename to templates/project/res/mipmap-xxxhdpi-v26/ic_launcher_background.png
diff --git a/bin/templates/project/res/mipmap-xxxhdpi-v26/ic_launcher_foreground.png b/templates/project/res/mipmap-xxxhdpi-v26/ic_launcher_foreground.png
similarity index 100%
rename from bin/templates/project/res/mipmap-xxxhdpi-v26/ic_launcher_foreground.png
rename to templates/project/res/mipmap-xxxhdpi-v26/ic_launcher_foreground.png
diff --git a/bin/templates/project/res/mipmap-xxxhdpi/ic_launcher.png b/templates/project/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from bin/templates/project/res/mipmap-xxxhdpi/ic_launcher.png
rename to templates/project/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/bin/templates/project/res/values/strings.xml b/templates/project/res/values/strings.xml
similarity index 100%
rename from bin/templates/project/res/values/strings.xml
rename to templates/project/res/values/strings.xml
diff --git a/bin/templates/project/res/xml/config.xml b/templates/project/res/xml/config.xml
similarity index 100%
rename from bin/templates/project/res/xml/config.xml
rename to templates/project/res/xml/config.xml
diff --git a/bin/templates/project/wrapper.gradle b/templates/project/wrapper.gradle
similarity index 100%
rename from bin/templates/project/wrapper.gradle
rename to templates/project/wrapper.gradle
diff --git a/test/run_java_unit_tests.js b/test/run_java_unit_tests.js
index acab1e6..4657690 100644
--- a/test/run_java_unit_tests.js
+++ b/test/run_java_unit_tests.js
@@ -22,7 +22,7 @@
 const path = require('path');
 const execa = require('execa');
 const fs = require('fs-extra');
-const ProjectBuilder = require('../bin/templates/cordova/lib/builders/ProjectBuilder');
+const ProjectBuilder = require('../lib/builders/ProjectBuilder');
 
 class AndroidTestRunner {
     constructor (testTitle, projectDir) {

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