mirror of
https://github.com/apache/cordova-android.git
synced 2025-03-04 00:13:20 +08:00
CB-13830: Add handlers for plugins that use non-Java source files, such as Camera
This commit is contained in:
parent
e32bcd88aa
commit
ea6477f4d3
31
bin/templates/cordova/lib/pluginHandlers.js
vendored
31
bin/templates/cordova/lib/pluginHandlers.js
vendored
@ -34,15 +34,7 @@ var handlers = {
|
|||||||
// a later plugins release. This is for legacy plugins to work with Cordova.
|
// a later plugins release. This is for legacy plugins to work with Cordova.
|
||||||
|
|
||||||
if (options && options.android_studio === true) {
|
if (options && options.android_studio === true) {
|
||||||
// If a Java file is using the new directory structure, don't penalize it
|
dest = studioPathRemap(obj);
|
||||||
if (!obj.targetDir.includes('app/src/main')) {
|
|
||||||
if (obj.src.endsWith('.java')) {
|
|
||||||
dest = path.join('app/src/main/java', obj.targetDir.substring(4), path.basename(obj.src));
|
|
||||||
} else if (obj.src.endsWith('.xml')) {
|
|
||||||
// We are making a huge assumption here that XML files will be going to res/xml or values/xml
|
|
||||||
dest = path.join('app/src/main', obj.targetDir, path.basename(obj.src));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options && options.force) {
|
if (options && options.force) {
|
||||||
@ -55,10 +47,16 @@ var handlers = {
|
|||||||
var dest = path.join(obj.targetDir, path.basename(obj.src));
|
var dest = path.join(obj.targetDir, path.basename(obj.src));
|
||||||
|
|
||||||
if (options && options.android_studio === true) {
|
if (options && options.android_studio === true) {
|
||||||
dest = path.join('app/src/main/java', obj.targetDir.substring(4), path.basename(obj.src));
|
dest = studioPathRemap(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Add Koltin extension to uninstall, since they are handled like Java files
|
||||||
|
if (obj.src.endsWith('java')) {
|
||||||
deleteJava(project.projectDir, dest);
|
deleteJava(project.projectDir, dest);
|
||||||
|
} else {
|
||||||
|
// Just remove the file, not the whole parent directory
|
||||||
|
removeFile(project.projectDir, dest);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'lib-file': {
|
'lib-file': {
|
||||||
@ -318,3 +316,16 @@ function removeFileAndParents (baseDir, destFile, stopper) {
|
|||||||
function generateAttributeError (attribute, element, id) {
|
function generateAttributeError (attribute, element, id) {
|
||||||
return 'Required attribute "' + attribute + '" not specified in <' + element + '> element from plugin: ' + id;
|
return 'Required attribute "' + attribute + '" not specified in <' + element + '> element from plugin: ' + id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function studioPathRemap (obj) {
|
||||||
|
// If a Java file is using the new directory structure, don't penalize it
|
||||||
|
if (!obj.targetDir.includes('app/src/main')) {
|
||||||
|
if (obj.src.endsWith('.java')) {
|
||||||
|
return path.join('app/src/main/java', obj.targetDir.substring(4), path.basename(obj.src));
|
||||||
|
} else if (obj.src.endsWith('.xml')) {
|
||||||
|
// We are making a huge assumption here that XML files will be going to res/xml or values/xml
|
||||||
|
return path.join('app/src/main', obj.targetDir, path.basename(obj.src));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user