diff --git a/Gruntfile.js b/Gruntfile.js index e3cf7ceb..d77b9ccb 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -63,8 +63,7 @@ module.exports = function (grunt) { }, clean: { dist: ['dist', 'tmp'], - desktop: ['tmp/desktop', 'dist/desktop'], - cordova: ['tmp/cordova', 'dist/cordova'] + desktop: ['tmp/desktop', 'dist/desktop'] }, copy: { html: { @@ -303,17 +302,6 @@ module.exports = function (grunt) { ] }, files: { 'tmp/desktop/app/main.js': 'desktop/main.js' } - }, - 'cordova-html': { - options: { - replacements: [ - { - pattern: ' { - Events.emit('app-minimized'); - }, - false - ); - }, - platform() { - return 'cordova'; - }, - openLink(href) { - window.open(href, '_system'); - }, - devTools: false, - openDevTools() {}, - getSaveFileName(defaultPath, callback) { - /* skip in cordova */ - }, - getDataPath(...args) { - const storagePath = window.cordova.file.externalDataDirectory; - return [storagePath].concat(Array.from(args)).filter((s) => !!s); - }, - getUserDataPath(fileName) { - return this.getDataPath('userdata', fileName).join('/'); - }, - getTempPath(fileName) { - return this.getDataPath('temp', fileName).join('/'); - }, - getDocumentsPath(fileName) { - return this.getDataPath('documents', fileName).join('/'); - }, - getAppPath(fileName) { - return this.getDataPath(fileName).join('/'); - }, - getWorkDirPath(fileName) { - return this.getDataPath(fileName).join('/'); - }, - joinPath(...parts) { - return [...parts].join('/'); - }, - writeFile(path, data, callback) { - const createFile = (filePath) => { - window.resolveLocalFileSystemURL( - filePath.dir, - (dir) => { - dir.getFile(filePath.file, { create: true }, writeFile); - }, - callback, - callback - ); - }; - - const writeFile = (fileEntry) => { - fileEntry.createWriter((fileWriter) => { - fileWriter.onerror = callback; - fileWriter.onwriteend = () => callback(); - fileWriter.write(data); - }, callback); - }; - - if (path.startsWith('cdvfile://')) { - // then file exists - window.resolveLocalFileSystemURL(path, writeFile, callback, callback); - } else { - // create file on sd card - const filePath = this.parsePath(path); - this.mkdir(filePath.dir, () => { - createFile(filePath); - }); - } - }, - readFile(path, encoding, callback) { - window.resolveLocalFileSystemURL( - path, - (fileEntry) => { - fileEntry.file( - (file) => { - const reader = new FileReader(); - reader.onerror = callback; - reader.onloadend = () => { - const contents = new Uint8Array(reader.result); - callback( - encoding ? String.fromCharCode.apply(null, contents) : contents - ); - }; - reader.readAsArrayBuffer(file); - }, - (err) => callback(undefined, err) - ); - }, - (err) => callback(undefined, err) - ); - }, - fileExists(path, callback) { - window.resolveLocalFileSystemURL( - path, - (fileEntry) => callback(true), - () => callback(false) - ); - }, - deleteFile(path, callback) { - window.resolveLocalFileSystemURL( - path, - (fileEntry) => { - fileEntry.remove(callback, callback, callback); - }, - callback - ); - }, - statFile(path, callback) { - window.resolveLocalFileSystemURL( - path, - (fileEntry) => { - fileEntry.file( - (file) => { - callback({ - ctime: new Date(file.lastModified), - mtime: new Date(file.lastModified) - }); - }, - (err) => callback(undefined, err) - ); - }, - (err) => callback(undefined, err) - ); - }, - mkdir(dir, callback) { - const basePath = this.getDataPath().join('/'); - const createDir = (dirEntry, path, callback) => { - const name = path.shift(); - dirEntry.getDirectory( - name, - { create: true }, - (dirEntry) => { - if (path.length) { - // there is more to create - createDir(dirEntry, path, callback); - } else { - callback(); - } - }, - callback - ); - }; - - const localPath = dir - .replace(basePath, '') - .split('/') - .filter((s) => !!s); - - if (localPath.length) { - window.resolveLocalFileSystemURL( - basePath, - (dirEntry) => { - createDir(dirEntry, localPath, callback); - }, - callback - ); - } else { - callback(); - } - }, - parsePath(fileName) { - const parts = fileName.split('/'); - - return { - path: fileName, - file: parts.pop(), - dir: parts.join('/') - }; - }, - createFsWatcher(path) { - return null; // not in android with content provider - }, - ensureRunnable(path) {}, - preventExit(e) { - e.returnValue = false; - return false; - }, - exit() { - this.hideApp(); - }, - requestExit() { - /* skip in cordova */ - }, - requestRestart() { - window.location.reload(); - }, - cancelRestart() { - /* skip in cordova */ - }, - setClipboardText(text) {}, - getClipboardText() {}, - clearClipboardText() {}, - minimizeApp() { - this.hideApp(); - }, - canDetectOsSleep() { - return false; - }, - updaterEnabled() { - return false; - }, - // getMainWindow() {}, - resolveProxy(url, callback) { - /* skip in cordova */ - }, - hideApp() { - /* skip in cordova */ - }, - isAppFocused() { - return false; /* skip in cordova */ - }, - showMainWindow() { - /* skip in cordova */ - }, - // spawn(config) {}, - openFileChooser(callback) { - const onFileSelected = function (selected) { - window.resolveLocalFileSystemURL(selected.uri, (fileEntry) => { - fileEntry.file((file) => { - file.path = file.localURL; - file.name = selected.name; - callback(null, file); - }); - }); - }; - - window.cordova.exec(onFileSelected, callback, 'FileChooser', 'choose'); - }, - setGlobalShortcuts(appSettings) {}, - fingerprints: { - config: { - disableBackup: true, - clientId: 'keeweb' - }, - - register(fileId, password, callback) { - FingerprintAuth.isAvailable((result) => { - if (!result.isAvailable) { - return; - } - - const encryptConfig = { - ...this.config, - username: fileId, - password: password.getText() - }; - - FingerprintAuth.encrypt(encryptConfig, (result) => { - callback(result.token); - }); - }); - }, - - auth(fileId, token, callback) { - if (!token) { - return callback(); - } - - const decryptConfig = { ...this.config, username: fileId, token }; - - FingerprintAuth.decrypt(decryptConfig, (result) => { - callback(result.password); - }); - } - } -}; - -export { Launcher }; diff --git a/grunt.entrypoints.js b/grunt.entrypoints.js index 102c4a40..e0c6c3e4 100644 --- a/grunt.entrypoints.js +++ b/grunt.entrypoints.js @@ -75,12 +75,7 @@ module.exports = function(grunt) { 'chmod:linux-desktop-x64', 'copy:native-modules-linux-x64' ]); - - grunt.registerTask('cordova', 'Build cordova app', [ - 'default', - 'build-cordova' - ]); - + grunt.registerTask('test', 'Build and run tests', [ 'build-test', 'run-test' diff --git a/grunt.tasks.js b/grunt.tasks.js index 88217c29..24dba630 100644 --- a/grunt.tasks.js +++ b/grunt.tasks.js @@ -130,9 +130,5 @@ module.exports = function (grunt) { 'sign-dist' ]); - grunt.registerTask('build-cordova-app-content', ['string-replace:cordova-html']); - - grunt.registerTask('build-cordova', ['gitinfo', 'clean:cordova', 'build-cordova-app-content']); - grunt.registerTask('build-test', ['webpack:test']); };