diff --git a/hooks/after_prepare/060_prepare_android_manifest.js b/hooks/after_prepare/060_prepare_android_manifest.js new file mode 100755 index 0000000000000000000000000000000000000000..2ec38cb74ca0ab8cac1f4c74dbf80135820ca24f --- /dev/null +++ b/hooks/after_prepare/060_prepare_android_manifest.js @@ -0,0 +1,44 @@ +#!/usr/bin/env node +"use strict"; +var gulp = require('gulp'); +var path = require("path"); +var replace = require('gulp-replace'); + +var rootdir = process.argv[2]; + +if (rootdir) { + + // go through each of the platform directories that have been prepared + var platforms = (process.env.CORDOVA_PLATFORMS ? process.env.CORDOVA_PLATFORMS.split(',') : []); + + for(var x=0; x<platforms.length; x++) { + + var platform = platforms[x].trim().toLowerCase(); + + if(platform == 'android') { + var platformPath = path.join(rootdir, 'platforms', platform); + var androidManifestFile = path.join(platformPath, 'AndroidManifest.xml'); + + // Clean unused directories + console.log('-----------------------------------------'); + console.log(' Updating file: ' + androidManifestFile); + gulp.src(androidManifestFile) + + // Add 'tools' namespace to root tag + .pipe(replace(/(xmlns:android="http:\/\/schemas.android.com\/apk\/res\/android")\s*>/g, '$1 xmlns:tools="http://schemas.android.com/tools">')) + + // <uses-sdk> : if many, keep only one + .pipe(replace(/(<uses-sdk [^>]+>)(:?[\n\r\s\t ]*<uses-sdk [^>]+>)+/mg, '$1')) + + // <uses-sdk> : Replace 'targetSdkversion' and add tools:overrideLibrary + .pipe(replace(/android:targetSdkVersion="[^"]+"\s*\/>/g, 'android:targetSdkVersion="23" tools:overrideLibrary="org.kaliumjni.lib" />')) + + .pipe(gulp.dest(platformPath)); + + console.log('-----------------------------------------'); + } + + + } +} +