From 585f5a1fb0d7a113bda1fa4fd113b0483e9132ab Mon Sep 17 00:00:00 2001 From: "tiago.kayaya" Date: Wed, 27 Jan 2021 14:13:17 +0100 Subject: [PATCH] save --- .../executionHistory/executionHistory.bin | Bin 5988982 -> 5988982 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/6.1.1/fileHashes/fileHashes.bin | Bin 458641 -> 458641 bytes .../.gradle/6.1.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes android/.idea/modules/app/app.iml | 8 +- .../incremental/mergeDebugAssets/merger.xml | 2 +- .../compile-file-map.properties | 2 +- .../tmp/debug/dex-renamer-state.txt | 2 +- .../merged_assets/debug/out/public/cordova.js | 1553 ----------------- .../debug/out/public/cordova_plugins.js | 264 --- .../cordova-plugin-camera/www/Camera.js | 187 -- .../www/CameraConstants.js | 94 - .../www/CameraPopoverHandle.js | 34 - .../www/CameraPopoverOptions.js | 58 - .../cordova-plugin-device/www/device.js | 85 - .../cordova-plugin-file/www/DirectoryEntry.js | 119 -- .../www/DirectoryReader.js | 74 - .../plugins/cordova-plugin-file/www/Entry.js | 262 --- .../plugins/cordova-plugin-file/www/File.js | 80 - .../cordova-plugin-file/www/FileEntry.js | 94 - .../cordova-plugin-file/www/FileError.js | 48 - .../cordova-plugin-file/www/FileReader.js | 300 ---- .../cordova-plugin-file/www/FileSystem.js | 57 - .../www/FileUploadOptions.js | 43 - .../www/FileUploadResult.js | 32 - .../cordova-plugin-file/www/FileWriter.js | 327 ---- .../plugins/cordova-plugin-file/www/Flags.js | 38 - .../www/LocalFileSystem.js | 25 - .../cordova-plugin-file/www/Metadata.js | 42 - .../cordova-plugin-file/www/ProgressEvent.js | 69 - .../www/android/FileSystem.js | 50 - .../www/browser/isChrome.js | 28 - .../www/fileSystemPaths.js | 64 - .../www/fileSystems-roots.js | 48 - .../cordova-plugin-file/www/fileSystems.js | 27 - .../www/requestFileSystem.js | 83 - .../www/resolveLocalFileSystemURI.js | 93 - .../cordova-plugin-filepath/www/FilePath.js | 16 - .../www/inappbrowser.js | 121 -- .../cordova-plugin-statusbar/www/statusbar.js | 115 -- .../www/SQLitePlugin.js | 918 ---------- .../app/build/outputs/apk/debug/app-debug.apk | Bin 19221965 -> 19245938 bytes .../public/pages-chat-chat-module-es2015.js | 93 +- .../pages-chat-chat-module-es2015.js.map | 2 +- .../public/pages-chat-chat-module-es5.js | 448 ++--- .../public/pages-chat-chat-module-es5.js.map | 2 +- .../src/main/assets/public/runtime-es2015.js | 2 +- .../main/assets/public/runtime-es2015.js.map | 2 +- .../app/src/main/assets/public/runtime-es5.js | 2 +- .../src/main/assets/public/runtime-es5.js.map | 2 +- ...-options-messages-options-module-es2015.js | 16 +- ...ions-messages-options-module-es2015.js.map | 2 +- ...ges-options-messages-options-module-es5.js | 22 +- ...options-messages-options-module-es5.js.map | 2 +- 55 files changed, 223 insertions(+), 5834 deletions(-) delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/cordova.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/cordova_plugins.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/Camera.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraConstants.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraPopoverHandle.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraPopoverOptions.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-device/www/device.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/DirectoryEntry.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/DirectoryReader.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/Entry.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/File.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/FileEntry.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/FileError.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/FileReader.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/FileSystem.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/FileUploadOptions.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/FileUploadResult.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/FileWriter.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/Flags.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/LocalFileSystem.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/Metadata.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/ProgressEvent.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/android/FileSystem.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/browser/isChrome.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/fileSystemPaths.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/fileSystems-roots.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/fileSystems.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/requestFileSystem.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/resolveLocalFileSystemURI.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-filepath/www/FilePath.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-inappbrowser/www/inappbrowser.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-statusbar/www/statusbar.js delete mode 100644 android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-sqlite-storage/www/SQLitePlugin.js diff --git a/android/.gradle/6.1.1/executionHistory/executionHistory.bin b/android/.gradle/6.1.1/executionHistory/executionHistory.bin index ac3fef02c782d04606f91f784377d6ae6e9ac5a8..3891741e11d928f28bc6ba772a9c77907bb2ce70 100644 GIT binary patch delta 4001 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 delta 3613 zcmajhdr(w$AII^2M_goAJ1a1=z1OQr#u3ku;Kyaei_ z52Wx_Bt!!;Dgm>8UJ=HyPz=(1k}l5j6rq3*phe~sKHsGoABVHf!_4a+=A7N%S$5uh z20nkl44|5zW|uo#kG}Q#%9Wee1iYD=nHZ3gk{Pr<@%1;eQa9<>u6=3f$MPp==&^93 zUbgaMBblBt&~H669BK-QCsjMh4{m35qp#iZ`N^ zg8CaFl(if4_{6M1+goou5O3eVxFU^m$K^5tt1X3i(0}KDhW%=KbV6L@h1RH$kc}VR z$hL;w{i^w}<$M3L@UbSEgW?$SCtIrby6pE&M`eiSy^hm&k3ED%Kl(qRWlPB`DUhAS z7SIb%-LvIvept^}5qYH@xvnQ0C8OX%?g$a^6wcLA}73LvI0IY$z4Apsyn`(AaVu$anFS&3nnM z%Xi$kh?%kXTPEJGK1RRZ#qS-(p1KkuagVA2oxY!lzYXTNk^HzDFg(I11!*N%KpedsQfo#d~> zbt`Q+_^!|Z`?h06e%$%v`s~!eHSS-0X-P{rGNmKgiu_+wOKv6x2YD+C7g))xfzeSBN+`Xp&SR1W7gmsHmv?+(#ZN|Dp3!N3I z1()ZkC-~Sfi%Xz=zuFtZC|?TO?C=B$>3D+86MKq(alh5oSowqD+=w+lrYBU4QM8PNog(3|KL*Zx^nvLerg!H+c;eWrAYUC$r zG22LP=cjYgJoE~hk0Q_l+WBeZ4u95jb#s@$Yr*43>;0`8Kb#f}PA=>c$Y;zQb9?Va z(%yRu{ViF;pt)7sKZx(dbtUIJ{IYwf-@rnl!sTlJ|4nuLeJBWWzDa+dq)Hw^dTFAA zDnG?!pZkny{!3D2z$!<=g&aN{^7pDl&{fIh#zy~cGS5FhD{~~YE@y`BaR>cU;$c0) zWUA+aL(X%T?ScHA>R4b8sr*2{gjj&?+YpYPDp0Lc&=Py0Ob3HW>R4*mrP^&FX*$KG z&mcoR2kdz!G-nC*lBNSTT~9}E66PwUHBUSwoMR*%r`T~Fq1f;^KU1ll1J#G|Apsq_}{^^?+P%# z1{E)DrmNZHV}#{?<>L$A9w^fTg7*v z&14P6mB-PxhtWHya>G|1UN)B5LF+3+;|So^<7k|%*haYFgO7lpT5)e^@lmC{XdfY| z1(04Y19W|%Goad?X`~lci}8dVzRzg;FYF3pTxJ|SoFcyOAqfI}onxKx_a1w}JY(t3 zA`!n~l9ATXF*XAdSk4B*_9+S|&b1^NJA9DQ@MGdKMjDF-J-)5(9fd6%&@tuI!Bz98 z!fMz617bZc6UzKGMaFb+R8}LJ6K?nlBL{15Z78Z06>v9Dv)dREjs~0-16|qS!wk~o z6YyEvL`T4F_93NhqNj<0wkXO5ziyShJ?Jx;lho@6(T7OO(GE5l)bOJyW2C|Gdx#I` zSj9WR)++uegmGGqs@lbNnKT`Vm0TuduhLwixZT2tq#bZP3oi&u(M+be+ak?POg7^| z*hj{L3}0$6bP(SG(Fyv_;z6(_Re-x~D~-?4)aoQHfqn}-czz+nJzH=bo%Myr(nMbx o-0=H{m&zfbNn-|CbzEL9E;_UX#h_TUlvY{B75747(z5aY1>*`wGXMYp diff --git a/android/.gradle/6.1.1/executionHistory/executionHistory.lock b/android/.gradle/6.1.1/executionHistory/executionHistory.lock index a192c55c59412b67db6dd548ac863d4da65286fa..4406c310da247905c8db304ff15da96ddf796555 100644 GIT binary patch literal 17 VcmZR+!1ty7NyeeO3}C?g7XU%c21oz^ literal 17 VcmZR+!1ty7NyeeO3}C?g6aYcB1~32s diff --git a/android/.gradle/6.1.1/fileHashes/fileHashes.bin b/android/.gradle/6.1.1/fileHashes/fileHashes.bin index cd9aecd2e298cdc064024daddfe7bdec96b88df0..1928de1e2096a148378127b5b41aa23884b4b0cd 100644 GIT binary patch delta 49907 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 Bpqc;x delta 48478 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 IrM&z<0Ik>b)&Kwi diff --git a/android/.gradle/6.1.1/fileHashes/fileHashes.lock b/android/.gradle/6.1.1/fileHashes/fileHashes.lock index 7b81d3716596cc3a61b332041186b2eb62329d10..fcbfd8e9586d1d6e7f63fddcc45faf04abd3e61d 100644 GIT binary patch literal 17 VcmZSHTyFnicP__!1~7PU3IIAx1)u-` literal 17 VcmZSHTyFnicP__!1~9lQ2>?0_1#$oY diff --git a/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock index faf30f0a84881d0d68333c612f9bd696f0bc2d01..e2f108accb550d7139b1d221e1ac65c8b3696d2b 100644 GIT binary patch literal 17 VcmZSn-~PBoDrDO(1~6c|0suah1*rf4 literal 17 VcmZSn-~PBoDrDO(1~6bd3;;fa1(*N; diff --git a/android/.idea/modules/app/app.iml b/android/.idea/modules/app/app.iml index ffe102dd8..f0d995db6 100644 --- a/android/.idea/modules/app/app.iml +++ b/android/.idea/modules/app/app.iml @@ -31,15 +31,15 @@ - - + + - - + + diff --git a/android/app/build/intermediates/incremental/mergeDebugAssets/merger.xml b/android/app/build/intermediates/incremental/mergeDebugAssets/merger.xml index df3eb196f..60631c53d 100644 --- a/android/app/build/intermediates/incremental/mergeDebugAssets/merger.xml +++ b/android/app/build/intermediates/incremental/mergeDebugAssets/merger.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/android/app/build/intermediates/incremental/mergeDebugResources/compile-file-map.properties b/android/app/build/intermediates/incremental/mergeDebugResources/compile-file-map.properties index e4fc83518..f5bc106a4 100644 --- a/android/app/build/intermediates/incremental/mergeDebugResources/compile-file-map.properties +++ b/android/app/build/intermediates/incremental/mergeDebugResources/compile-file-map.properties @@ -1,4 +1,4 @@ -#Mon Jan 25 12:12:31 WAT 2021 +#Wed Jan 27 14:07:50 WAT 2021 C\:\\Users\\tiago.kayaya\\development\\gabinete-digital\\android\\app\\src\\main\\res\\drawable-port-xhdpi\\splash.png=C\:\\Users\\tiago.kayaya\\development\\gabinete-digital\\android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-port-xhdpi_splash.png.flat C\:\\Users\\tiago.kayaya\\development\\gabinete-digital\\android\\app\\src\\main\\res\\mipmap-mdpi\\ic_launcher_foreground.png=C\:\\Users\\tiago.kayaya\\development\\gabinete-digital\\android\\app\\build\\intermediates\\res\\merged\\debug\\mipmap-mdpi_ic_launcher_foreground.png.flat C\:\\Users\\tiago.kayaya\\development\\gabinete-digital\\android\\app\\src\\main\\res\\mipmap-xxhdpi\\ic_launcher.png=C\:\\Users\\tiago.kayaya\\development\\gabinete-digital\\android\\app\\build\\intermediates\\res\\merged\\debug\\mipmap-xxhdpi_ic_launcher.png.flat diff --git a/android/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt b/android/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt index 57385268d..5201dcc12 100644 --- a/android/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt +++ b/android/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt @@ -1,4 +1,4 @@ -#Tue Jan 26 15:33:16 WAT 2021 +#Wed Jan 27 14:08:17 WAT 2021 path.3=classes_1.dex path.2=classes_0.dex path.1=classes.dex diff --git a/android/app/build/intermediates/merged_assets/debug/out/public/cordova.js b/android/app/build/intermediates/merged_assets/debug/out/public/cordova.js deleted file mode 100644 index a5418fbe1..000000000 --- a/android/app/build/intermediates/merged_assets/debug/out/public/cordova.js +++ /dev/null @@ -1,1553 +0,0 @@ -// Platform: Capacitor -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -; (function () { - var PLATFORM_VERSION_BUILD_LABEL = '1.0.0'; - // file: src/scripts/require.js - - /* jshint -W079 */ - /* jshint -W020 */ - - var require; - var define; - - (function () { - var modules = {}; - // Stack of moduleIds currently being built. - var requireStack = []; - // Map of module ID -> index into requireStack of modules currently being built. - var inProgressModules = {}; - var SEPARATOR = '.'; - - function build(module) { - var factory = module.factory; - var localRequire = function (id) { - var resultantId = id; - // Its a relative path, so lop off the last portion and add the id (minus "./") - if (id.charAt(0) === '.') { - resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); - } - return require(resultantId); - }; - module.exports = {}; - delete module.factory; - factory(localRequire, module.exports, module); - return module.exports; - } - - require = function (id) { - if (!modules[id]) { - throw 'module ' + id + ' not found'; - } else if (id in inProgressModules) { - var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; - throw 'Cycle in require graph: ' + cycle; - } - if (modules[id].factory) { - try { - inProgressModules[id] = requireStack.length; - requireStack.push(id); - return build(modules[id]); - } finally { - delete inProgressModules[id]; - requireStack.pop(); - } - } - return modules[id].exports; - }; - - define = function (id, factory) { - if (modules[id]) { - throw 'module ' + id + ' already defined'; - } - - modules[id] = { - id: id, - factory: factory - }; - }; - - define.remove = function (id) { - delete modules[id]; - }; - - define.moduleMap = modules; - })(); - - // Export for use in node - if (typeof module === 'object' && typeof require === 'function') { - module.exports.require = require; - module.exports.define = define; - } - - // file: src/cordova.js - define("cordova", function (require, exports, module) { - - var channel = require('cordova/channel'); - var platform = require('cordova/platform'); - - /** - * Intercept calls to addEventListener + removeEventListener and handle deviceready, - * resume, and pause events. - */ - var m_document_addEventListener = document.addEventListener; - var m_document_removeEventListener = document.removeEventListener; - var m_window_addEventListener = window.addEventListener; - var m_window_removeEventListener = window.removeEventListener; - - /** - * Houses custom event handlers to intercept on document + window event listeners. - */ - var documentEventHandlers = {}; - var windowEventHandlers = {}; - - document.addEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - if (typeof documentEventHandlers[e] !== 'undefined') { - documentEventHandlers[e].subscribe(handler); - } else { - m_document_addEventListener.call(document, evt, handler, capture); - } - }; - - window.addEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - if (typeof windowEventHandlers[e] !== 'undefined') { - windowEventHandlers[e].subscribe(handler); - } else { - m_window_addEventListener.call(window, evt, handler, capture); - } - }; - - document.removeEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - // If unsubscribing from an event that is handled by a plugin - if (typeof documentEventHandlers[e] !== 'undefined') { - documentEventHandlers[e].unsubscribe(handler); - } else { - m_document_removeEventListener.call(document, evt, handler, capture); - } - }; - - window.removeEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - // If unsubscribing from an event that is handled by a plugin - if (typeof windowEventHandlers[e] !== 'undefined') { - windowEventHandlers[e].unsubscribe(handler); - } else { - m_window_removeEventListener.call(window, evt, handler, capture); - } - }; - - /* eslint-disable no-undef */ - var cordova = { - define: define, - require: require, - version: PLATFORM_VERSION_BUILD_LABEL, - platformVersion: PLATFORM_VERSION_BUILD_LABEL, - platformId: platform.id, - - /* eslint-enable no-undef */ - - /** - * Methods to add/remove your own addEventListener hijacking on document + window. - */ - addWindowEventHandler: function (event) { - return (windowEventHandlers[event] = channel.create(event)); - }, - addStickyDocumentEventHandler: function (event) { - return (documentEventHandlers[event] = channel.createSticky(event)); - }, - addDocumentEventHandler: function (event) { - return (documentEventHandlers[event] = channel.create(event)); - }, - removeWindowEventHandler: function (event) { - delete windowEventHandlers[event]; - }, - removeDocumentEventHandler: function (event) { - delete documentEventHandlers[event]; - }, - /** - * Retrieve original event handlers that were replaced by Cordova - * - * @return object - */ - getOriginalHandlers: function () { - return { - 'document': { 'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener }, - 'window': { 'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener } - }; - }, - /** - * Method to fire event from native code - * bNoDetach is required for events which cause an exception which needs to be caught in native code - */ - fireDocumentEvent: function (type, data, bNoDetach) { - var evt = Capacitor.createEvent(type, data); - if (typeof documentEventHandlers[type] !== 'undefined') { - if (bNoDetach) { - documentEventHandlers[type].fire(evt); - } else { - setTimeout(function () { - // Fire deviceready on listeners that were registered before cordova.js was loaded. - if (type === 'deviceready') { - document.dispatchEvent(evt); - } - documentEventHandlers[type].fire(evt); - }, 0); - } - } else { - document.dispatchEvent(evt); - } - }, - fireWindowEvent: function (type, data) { - var evt = Capacitor.createEvent(type, data); - if (typeof windowEventHandlers[type] !== 'undefined') { - setTimeout(function () { - windowEventHandlers[type].fire(evt); - }, 0); - } else { - window.dispatchEvent(evt); - } - }, - - /** - * Plugin callback mechanism. - */ - // Randomize the starting callbackId to avoid collisions after refreshing or navigating. - // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. - callbackId: Math.floor(Math.random() * 2000000000), - callbacks: {}, - callbackStatus: { - NO_RESULT: 0, - OK: 1, - CLASS_NOT_FOUND_EXCEPTION: 2, - ILLEGAL_ACCESS_EXCEPTION: 3, - INSTANTIATION_EXCEPTION: 4, - MALFORMED_URL_EXCEPTION: 5, - IO_EXCEPTION: 6, - INVALID_ACTION: 7, - JSON_EXCEPTION: 8, - ERROR: 9 - }, - - /** - * Called by native code when returning successful result from an action. - */ - callbackSuccess: function (callbackId, args) { - cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); - }, - - /** - * Called by native code when returning error result from an action. - */ - callbackError: function (callbackId, args) { - // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. - // Derive success from status. - cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); - }, - - /** - * Called by native code when returning the result from an action. - */ - callbackFromNative: function (callbackId, isSuccess, status, args, keepCallback) { - try { - var callback = cordova.callbacks[callbackId]; - if (callback) { - if (isSuccess && status === cordova.callbackStatus.OK) { - callback.success && callback.success.apply(null, args); - } else if (!isSuccess) { - callback.fail && callback.fail.apply(null, args); - } - /* - else - Note, this case is intentionally not caught. - this can happen if isSuccess is true, but callbackStatus is NO_RESULT - which is used to remove a callback from the list without calling the callbacks - typically keepCallback is false in this case - */ - // Clear callback if not expecting any more results - if (!keepCallback) { - delete cordova.callbacks[callbackId]; - } - } - } catch (err) { - var msg = 'Error in ' + (isSuccess ? 'Success' : 'Error') + ' callbackId: ' + callbackId + ' : ' + err; - console && console.log && console.log(msg); - cordova.fireWindowEvent('cordovacallbackerror', { 'message': msg }); - throw err; - } - }, - addConstructor: function (func) { - channel.onCordovaReady.subscribe(function () { - try { - func(); - } catch (e) { - console.log('Failed to run constructor: ' + e); - } - }); - } - }; - - module.exports = cordova; - - }); - - // file: src/common/argscheck.js - define("cordova/argscheck", function (require, exports, module) { - - var utils = require('cordova/utils'); - - var moduleExports = module.exports; - - var typeMap = { - 'A': 'Array', - 'D': 'Date', - 'N': 'Number', - 'S': 'String', - 'F': 'Function', - 'O': 'Object' - }; - - function extractParamName(callee, argIndex) { - return (/.*?\((.*?)\)/).exec(callee)[1].split(', ')[argIndex]; - } - - function checkArgs(spec, functionName, args, opt_callee) { - if (!moduleExports.enableChecks) { - return; - } - var errMsg = null; - var typeName; - for (var i = 0; i < spec.length; ++i) { - var c = spec.charAt(i); - var cUpper = c.toUpperCase(); - var arg = args[i]; - // Asterix means allow anything. - if (c === '*') { - continue; - } - typeName = utils.typeName(arg); - if ((arg === null || arg === undefined) && c === cUpper) { - continue; - } - if (typeName !== typeMap[cUpper]) { - errMsg = 'Expected ' + typeMap[cUpper]; - break; - } - } - if (errMsg) { - errMsg += ', but got ' + typeName + '.'; - errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; - // Don't log when running unit tests. - if (typeof jasmine === 'undefined') { - console.error(errMsg); - } - throw TypeError(errMsg); - } - } - - function getValue(value, defaultValue) { - return value === undefined ? defaultValue : value; - } - - moduleExports.checkArgs = checkArgs; - moduleExports.getValue = getValue; - moduleExports.enableChecks = true; - - }); - - // file: src/common/base64.js - define("cordova/base64", function (require, exports, module) { - - var base64 = exports; - - base64.fromArrayBuffer = function (arrayBuffer) { - var array = new Uint8Array(arrayBuffer); - return uint8ToBase64(array); - }; - - base64.toArrayBuffer = function (str) { - var decodedStr = typeof atob !== 'undefined' ? atob(str) : Buffer.from(str, 'base64').toString('binary'); // eslint-disable-line no-undef - var arrayBuffer = new ArrayBuffer(decodedStr.length); - var array = new Uint8Array(arrayBuffer); - for (var i = 0, len = decodedStr.length; i < len; i++) { - array[i] = decodedStr.charCodeAt(i); - } - return arrayBuffer; - }; - - // ------------------------------------------------------------------------------ - - /* This code is based on the performance tests at http://jsperf.com/b64tests - * This 12-bit-at-a-time algorithm was the best performing version on all - * platforms tested. - */ - - var b64_6bit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - var b64_12bit; - - var b64_12bitTable = function () { - b64_12bit = []; - for (var i = 0; i < 64; i++) { - for (var j = 0; j < 64; j++) { - b64_12bit[i * 64 + j] = b64_6bit[i] + b64_6bit[j]; - } - } - b64_12bitTable = function () { return b64_12bit; }; - return b64_12bit; - }; - - function uint8ToBase64(rawData) { - var numBytes = rawData.byteLength; - var output = ''; - var segment; - var table = b64_12bitTable(); - for (var i = 0; i < numBytes - 2; i += 3) { - segment = (rawData[i] << 16) + (rawData[i + 1] << 8) + rawData[i + 2]; - output += table[segment >> 12]; - output += table[segment & 0xfff]; - } - if (numBytes - i === 2) { - segment = (rawData[i] << 16) + (rawData[i + 1] << 8); - output += table[segment >> 12]; - output += b64_6bit[(segment & 0xfff) >> 6]; - output += '='; - } else if (numBytes - i === 1) { - segment = (rawData[i] << 16); - output += table[segment >> 12]; - output += '=='; - } - return output; - } - - }); - - // file: src/common/builder.js - define("cordova/builder", function (require, exports, module) { - - var utils = require('cordova/utils'); - - function each(objects, func, context) { - for (var prop in objects) { - if (objects.hasOwnProperty(prop)) { - func.apply(context, [objects[prop], prop]); - } - } - } - - function clobber(obj, key, value) { - exports.replaceHookForTesting(obj, key); - var needsProperty = false; - try { - obj[key] = value; - } catch (e) { - needsProperty = true; - } - // Getters can only be overridden by getters. - if (needsProperty || obj[key] !== value) { - utils.defineGetter(obj, key, function () { - return value; - }); - } - } - - function assignOrWrapInDeprecateGetter(obj, key, value, message) { - if (message) { - utils.defineGetter(obj, key, function () { - console.log(message); - delete obj[key]; - clobber(obj, key, value); - return value; - }); - } else { - clobber(obj, key, value); - } - } - - function include(parent, objects, clobber, merge) { - each(objects, function (obj, key) { - try { - var result = obj.path ? require(obj.path) : {}; - - if (clobber) { - // Clobber if it doesn't exist. - if (typeof parent[key] === 'undefined') { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } else if (typeof obj.path !== 'undefined') { - // If merging, merge properties onto parent, otherwise, clobber. - if (merge) { - recursiveMerge(parent[key], result); - } else { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } - } - result = parent[key]; - } else { - // Overwrite if not currently defined. - if (typeof parent[key] === 'undefined') { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } else { - // Set result to what already exists, so we can build children into it if they exist. - result = parent[key]; - } - } - - if (obj.children) { - include(result, obj.children, clobber, merge); - } - } catch (e) { - utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); - } - }); - } - - /** - * Merge properties from one object onto another recursively. Properties from - * the src object will overwrite existing target property. - * - * @param target Object to merge properties into. - * @param src Object to merge properties from. - */ - function recursiveMerge(target, src) { - for (var prop in src) { - if (src.hasOwnProperty(prop)) { - if (target.prototype && target.prototype.constructor === target) { - // If the target object is a constructor override off prototype. - clobber(target.prototype, prop, src[prop]); - } else { - if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { - recursiveMerge(target[prop], src[prop]); - } else { - clobber(target, prop, src[prop]); - } - } - } - } - } - - exports.buildIntoButDoNotClobber = function (objects, target) { - include(target, objects, false, false); - }; - exports.buildIntoAndClobber = function (objects, target) { - include(target, objects, true, false); - }; - exports.buildIntoAndMerge = function (objects, target) { - include(target, objects, true, true); - }; - exports.recursiveMerge = recursiveMerge; - exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; - exports.replaceHookForTesting = function () { }; - - }); - - // file: src/common/channel.js - define("cordova/channel", function (require, exports, module) { - - var utils = require('cordova/utils'); - var nextGuid = 1; - - /** - * Custom pub-sub "channel" that can have functions subscribed to it - * This object is used to define and control firing of events for - * cordova initialization, as well as for custom events thereafter. - * - * The order of events during page load and Cordova startup is as follows: - * - * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. - * onNativeReady* Internal event that indicates the Cordova native side is ready. - * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. - * onDeviceReady* User event fired to indicate that Cordova is ready - * onResume User event fired to indicate a start/resume lifecycle event - * onPause User event fired to indicate a pause lifecycle event - * - * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. - * All listeners that subscribe after the event is fired will be executed right away. - * - * The only Cordova events that user code should register for are: - * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript - * pause App has moved to background - * resume App has returned to foreground - * - * Listeners can be registered as: - * document.addEventListener("deviceready", myDeviceReadyListener, false); - * document.addEventListener("resume", myResumeListener, false); - * document.addEventListener("pause", myPauseListener, false); - * - * The DOM lifecycle events should be used for saving and restoring state - * window.onload - * window.onunload - * - */ - - /** - * Channel - * @constructor - * @param type String the channel name - */ - var Channel = function (type, sticky) { - this.type = type; - // Map of guid -> function. - this.handlers = {}; - // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. - this.state = sticky ? 1 : 0; - // Used in sticky mode to remember args passed to fire(). - this.fireArgs = null; - // Used by onHasSubscribersChange to know if there are any listeners. - this.numHandlers = 0; - // Function that is called when the first listener is subscribed, or when - // the last listener is unsubscribed. - this.onHasSubscribersChange = null; - }; - var channel = { - /** - * Calls the provided function only after all of the channels specified - * have been fired. All channels must be sticky channels. - */ - join: function (h, c) { - var len = c.length; - var i = len; - var f = function () { - if (!(--i)) h(); - }; - for (var j = 0; j < len; j++) { - if (c[j].state === 0) { - throw Error('Can only use join with sticky channels.'); - } - c[j].subscribe(f); - } - if (!len) h(); - }, - /* eslint-disable no-return-assign */ - create: function (type) { - return channel[type] = new Channel(type, false); - }, - createSticky: function (type) { - return channel[type] = new Channel(type, true); - }, - /* eslint-enable no-return-assign */ - /** - * cordova Channels that must fire before "deviceready" is fired. - */ - deviceReadyChannelsArray: [], - deviceReadyChannelsMap: {}, - - /** - * Indicate that a feature needs to be initialized before it is ready to be used. - * This holds up Cordova's "deviceready" event until the feature has been initialized - * and Cordova.initComplete(feature) is called. - * - * @param feature {String} The unique feature name - */ - waitForInitialization: function (feature) { - if (feature) { - var c = channel[feature] || this.createSticky(feature); - this.deviceReadyChannelsMap[feature] = c; - this.deviceReadyChannelsArray.push(c); - } - }, - - /** - * Indicate that initialization code has completed and the feature is ready to be used. - * - * @param feature {String} The unique feature name - */ - initializationComplete: function (feature) { - var c = this.deviceReadyChannelsMap[feature]; - if (c) { - c.fire(); - } - } - }; - - function checkSubscriptionArgument(argument) { - if (typeof argument !== 'function' && typeof argument.handleEvent !== 'function') { - throw new Error( - 'Must provide a function or an EventListener object ' + - 'implementing the handleEvent interface.' - ); - } - } - - /** - * Subscribes the given function to the channel. Any time that - * Channel.fire is called so too will the function. - * Optionally specify an execution context for the function - * and a guid that can be used to stop subscribing to the channel. - * Returns the guid. - */ - Channel.prototype.subscribe = function (eventListenerOrFunction, eventListener) { - checkSubscriptionArgument(eventListenerOrFunction); - var handleEvent, guid; - - if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') { - // Received an EventListener object implementing the handleEvent interface - handleEvent = eventListenerOrFunction.handleEvent; - eventListener = eventListenerOrFunction; - } else { - // Received a function to handle event - handleEvent = eventListenerOrFunction; - } - - if (this.state === 2) { - handleEvent.apply(eventListener || this, this.fireArgs); - return; - } - - guid = eventListenerOrFunction.observer_guid; - if (typeof eventListener === 'object') { - handleEvent = utils.close(eventListener, handleEvent); - } - - if (!guid) { - // First time any channel has seen this subscriber - guid = '' + nextGuid++; - } - handleEvent.observer_guid = guid; - eventListenerOrFunction.observer_guid = guid; - - // Don't add the same handler more than once. - if (!this.handlers[guid]) { - this.handlers[guid] = handleEvent; - this.numHandlers++; - if (this.numHandlers === 1) { - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } - }; - - /** - * Unsubscribes the function with the given guid from the channel. - */ - Channel.prototype.unsubscribe = function (eventListenerOrFunction) { - checkSubscriptionArgument(eventListenerOrFunction); - var handleEvent, guid, handler; - - if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') { - // Received an EventListener object implementing the handleEvent interface - handleEvent = eventListenerOrFunction.handleEvent; - } else { - // Received a function to handle event - handleEvent = eventListenerOrFunction; - } - - guid = handleEvent.observer_guid; - handler = this.handlers[guid]; - if (handler) { - delete this.handlers[guid]; - this.numHandlers--; - if (this.numHandlers === 0) { - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } - }; - - /** - * Calls all functions subscribed to this channel. - */ - Channel.prototype.fire = function (e) { - var fail = false; // eslint-disable-line no-unused-vars - var fireArgs = Array.prototype.slice.call(arguments); - // Apply stickiness. - if (this.state === 1) { - this.state = 2; - this.fireArgs = fireArgs; - } - if (this.numHandlers) { - // Copy the values first so that it is safe to modify it from within - // callbacks. - var toCall = []; - for (var item in this.handlers) { - toCall.push(this.handlers[item]); - } - for (var i = 0; i < toCall.length; ++i) { - toCall[i].apply(this, fireArgs); - } - if (this.state === 2 && this.numHandlers) { - this.numHandlers = 0; - this.handlers = {}; - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } - }; - - // defining them here so they are ready super fast! - // DOM event that is received when the web page is loaded and parsed. - channel.createSticky('onDOMContentLoaded'); - - // Event to indicate the Cordova native side is ready. - channel.createSticky('onNativeReady'); - - // Event to indicate that all Cordova JavaScript objects have been created - // and it's time to run plugin constructors. - channel.createSticky('onCordovaReady'); - - // Event to indicate that all automatically loaded JS plugins are loaded and ready. - // FIXME remove this - channel.createSticky('onPluginsReady'); - - // Event to indicate that Cordova is ready - channel.createSticky('onDeviceReady'); - - // Event to indicate a resume lifecycle event - channel.create('onResume'); - - // Event to indicate a pause lifecycle event - channel.create('onPause'); - - // Channels that must fire before "deviceready" is fired. - channel.waitForInitialization('onCordovaReady'); - channel.waitForInitialization('onDOMContentLoaded'); - - module.exports = channel; - - }); - - define("cordova/exec", function (require, exports, module) { - - /*global require, module, atob, document */ - - /** - * Creates a gap bridge iframe used to notify the native code about queued - * commands. - */ - var cordova = require('cordova'), - utils = require('cordova/utils'), - base64 = require('cordova/base64'), - execIframe, - commandQueue = [], // Contains pending JS->Native messages. - isInContextOfEvalJs = 0, - failSafeTimerId = 0; - - function massageArgsJsToNative(args) { - if (window.androidBridge) { - for (var i = 0; i < args.length; i++) { - if (utils.typeName(args[i]) == 'ArrayBuffer') { - args[i] = base64.fromArrayBuffer(args[i]); - } - } - return args; - } else { - if (!args || utils.typeName(args) !== 'Array') { - return args; - } - var ret = []; - args.forEach(function (arg, i) { - if (utils.typeName(arg) === 'ArrayBuffer') { - ret.push({ - 'CDVType': 'ArrayBuffer', - 'data': base64.fromArrayBuffer(arg) - }); - } else { - ret.push(arg); - } - }); - return ret; - } - } - - function massageMessageNativeToJs(message) { - if (message.CDVType === 'ArrayBuffer') { - var stringToArrayBuffer = function (str) { - var ret = new Uint8Array(str.length); - for (var i = 0; i < str.length; i++) { - ret[i] = str.charCodeAt(i); - } - return ret.buffer; - }; - var base64ToArrayBuffer = function (b64) { - return stringToArrayBuffer(atob(b64)); // eslint-disable-line no-undef - }; - message = base64ToArrayBuffer(message.data); - } - return message; - } - - function convertMessageToArgsNativeToJs(message) { - var args = []; - if (!message || !message.hasOwnProperty('CDVType')) { - args.push(message); - } else if (message.CDVType === 'MultiPart') { - message.messages.forEach(function (e) { - args.push(massageMessageNativeToJs(e)); - }); - } else { - args.push(massageMessageNativeToJs(message)); - } - return args; - } - - var capacitorExec = function () { - // detect change in bridge, if there is a change, we forward to new bridge - - var successCallback, failCallback, service, action, actionArgs; - var callbackId = null; - if (typeof arguments[0] !== 'string') { - // FORMAT ONE - successCallback = arguments[0]; - failCallback = arguments[1]; - service = arguments[2]; - action = arguments[3]; - actionArgs = arguments[4]; - - // Since we need to maintain backwards compatibility, we have to pass - // an invalid callbackId even if no callback was provided since plugins - // will be expecting it. The Cordova.exec() implementation allocates - // an invalid callbackId and passes it even if no callbacks were given. - callbackId = 'INVALID'; - } else { - throw new Error('The old format of this exec call has been removed (deprecated since 2.1). Change to: ' + // eslint-disable-line - 'cordova.exec(null, null, \'Service\', \'action\', [ arg1, arg2 ]);'); - } - - // If actionArgs is not provided, default to an empty array - actionArgs = actionArgs || []; - - // Register the callbacks and add the callbackId to the positional - // arguments if given. - if (successCallback || failCallback) { - callbackId = service + cordova.callbackId++; - cordova.callbacks[callbackId] = - { success: successCallback, fail: failCallback }; - } - - // Properly encode ArrayBuffer action arguments - actionArgs = massageArgsJsToNative(actionArgs); - actionArgs = JSON.parse(JSON.stringify(actionArgs)); - var command = { - type: 'cordova', - callbackId: callbackId, - service: service, - action: action, - actionArgs: actionArgs - }; - if (window.androidBridge) { - window.androidBridge.postMessage(JSON.stringify(command)); - } else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.bridge) { - window.webkit.messageHandlers.bridge.postMessage(command); - } - - }; - - // CB-10530 - function proxyChanged() { - var cexec = cordovaExec(); - - return (execProxy !== cexec && // proxy objects are different - capacitorExec !== cexec // proxy object is not the current capacitorExec - ); - } - - // CB-10106 - function handleBridgeChange() { - if (proxyChanged()) { - var commandString = commandQueue.shift(); - while (commandString) { - var command = JSON.parse(commandString); - var callbackId = command[0]; - var service = command[1]; - var action = command[2]; - var actionArgs = command[3]; - var callbacks = cordova.callbacks[callbackId] || {}; - - execProxy(callbacks.success, callbacks.fail, service, action, actionArgs); - - commandString = commandQueue.shift(); - }; - return true; - } - - return false; - } - - function pokeNative() { - // CB-5488 - Don't attempt to create iframe before document.body is available. - if (!document.body) { - setTimeout(pokeNative); - return; - } - - // Check if they've removed it from the DOM, and put it back if so. - if (execIframe && execIframe.contentWindow) { - execIframe.contentWindow.location = 'gap://ready'; - } else { - execIframe = document.createElement('iframe'); - execIframe.style.display = 'none'; - execIframe.src = 'gap://ready'; - document.body.appendChild(execIframe); - } - // Use a timer to protect against iframe being unloaded during the poke (CB-7735). - // This makes the bridge ~ 7% slower, but works around the poke getting lost - // when the iframe is removed from the DOM. - // An onunload listener could be used in the case where the iframe has just been - // created, but since unload events fire only once, it doesn't work in the normal - // case of iframe reuse (where unload will have already fired due to the attempted - // navigation of the page). - failSafeTimerId = setTimeout(function () { - if (commandQueue.length) { - // CB-10106 - flush the queue on bridge change - if (!handleBridgeChange()) { - pokeNative(); - } - } - }, 50); // Making this > 0 improves performance (marginally) in the normal case (where it doesn't fire). - } - - capacitorExec.nativeFetchMessages = function () { - // Stop listing for window detatch once native side confirms poke. - if (failSafeTimerId) { - clearTimeout(failSafeTimerId); - failSafeTimerId = 0; - } - // Each entry in commandQueue is a JSON string already. - if (!commandQueue.length) { - return ''; - } - var json = '[' + commandQueue.join(',') + ']'; - commandQueue.length = 0; - return json; - }; - - capacitorExec.nativeCallback = function (callbackId, status, message, keepCallback, debug) { - var success = status === 0 || status === 1; - var args = convertMessageToArgsNativeToJs(message); - setTimeout(function () { - cordova.callbackFromNative(callbackId, success, status, args, keepCallback); // eslint-disable-line - }, 0); - }; - - // for backwards compatibility - capacitorExec.nativeEvalAndFetch = function (func) { - try { - func(); - } catch (e) { - console.log(e); - } - }; - - // Proxy the exec for bridge changes. See CB-10106 - function cordovaExec() { - var cexec = require('cordova/exec'); - var cexec_valid = (typeof cexec.nativeFetchMessages === 'function') && (typeof cexec.nativeEvalAndFetch === 'function') && (typeof cexec.nativeCallback === 'function'); - return (cexec_valid && execProxy !== cexec) ? cexec : capacitorExec; - } - function execProxy() { - cordovaExec().apply(null, arguments); - } - - execProxy.nativeFetchMessages = function () { - return cordovaExec().nativeFetchMessages.apply(null, arguments); - }; - - execProxy.nativeEvalAndFetch = function () { - return cordovaExec().nativeEvalAndFetch.apply(null, arguments); - }; - - execProxy.nativeCallback = function () { - return cordovaExec().nativeCallback.apply(null, arguments); - }; - - module.exports = execProxy; - - - - }); - - // file: src/common/exec/proxy.js - define("cordova/exec/proxy", function (require, exports, module) { - - // internal map of proxy function - var CommandProxyMap = {}; - - module.exports = { - - // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...); - add: function (id, proxyObj) { - console.log('adding proxy for ' + id); - CommandProxyMap[id] = proxyObj; - return proxyObj; - }, - - // cordova.commandProxy.remove("Accelerometer"); - remove: function (id) { - var proxy = CommandProxyMap[id]; - delete CommandProxyMap[id]; - CommandProxyMap[id] = null; - return proxy; - }, - - get: function (service, action) { - return (CommandProxyMap[service] ? CommandProxyMap[service][action] : null); - } - }; - - }); - - // file: src/common/init.js - define("cordova/init", function (require, exports, module) { - - var channel = require('cordova/channel'); - var cordova = require('cordova'); - var modulemapper = require('cordova/modulemapper'); - var platform = require('cordova/platform'); - var pluginloader = require('cordova/pluginloader'); - var utils = require('cordova/utils'); - - var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; - - function logUnfiredChannels(arr) { - for (var i = 0; i < arr.length; ++i) { - if (arr[i].state !== 2) { - console.log('Channel not fired: ' + arr[i].type); - } - } - } - - window.setTimeout(function () { - if (channel.onDeviceReady.state !== 2) { - console.log('deviceready has not fired after 5 seconds.'); - logUnfiredChannels(platformInitChannelsArray); - logUnfiredChannels(channel.deviceReadyChannelsArray); - } - }, 5000); - - // Replace navigator before any modules are required(), to ensure it happens as soon as possible. - // We replace it so that properties that can't be clobbered can instead be overridden. - function replaceNavigator(origNavigator) { - var CordovaNavigator = function () { }; - CordovaNavigator.prototype = origNavigator; - var newNavigator = new CordovaNavigator(); - // This work-around really only applies to new APIs that are newer than Function.bind. - // Without it, APIs such as getGamepads() break. - if (CordovaNavigator.bind) { - for (var key in origNavigator) { - if (typeof origNavigator[key] === 'function') { - newNavigator[key] = origNavigator[key].bind(origNavigator); - } else { - (function (k) { - utils.defineGetterSetter(newNavigator, key, function () { - return origNavigator[k]; - }); - })(key); - } - } - } - return newNavigator; - } - - if (window.navigator) { - window.navigator = replaceNavigator(window.navigator); - } - - // Register pause, resume and deviceready channels as events on document. - channel.onPause = cordova.addDocumentEventHandler('pause'); - channel.onResume = cordova.addDocumentEventHandler('resume'); - channel.onActivated = cordova.addDocumentEventHandler('activated'); - channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); - - // Listen for DOMContentLoaded and notify our channel subscribers. - if (document.readyState === 'complete' || document.readyState === 'interactive') { - channel.onDOMContentLoaded.fire(); - } else { - document.addEventListener('DOMContentLoaded', function () { - channel.onDOMContentLoaded.fire(); - }, false); - } - - // _nativeReady is global variable that the native side can set - // to signify that the native code is ready. It is a global since - // it may be called before any cordova JS is ready. - if (window._nativeReady) { - channel.onNativeReady.fire(); - } - - modulemapper.clobbers('cordova', 'cordova'); - modulemapper.clobbers('cordova/exec', 'cordova.exec'); - modulemapper.clobbers('cordova/exec', 'Cordova.exec'); - - // Call the platform-specific initialization. - platform.bootstrap && platform.bootstrap(); - - // Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js. - // The delay allows the attached modules to be defined before the plugin loader looks for them. - setTimeout(function () { - pluginloader.load(function () { - channel.onPluginsReady.fire(); - }); - }, 0); - - /** - * Create all cordova objects once native side is ready. - */ - channel.join(function () { - modulemapper.mapModules(window); - - platform.initialize && platform.initialize(); - - // Fire event to notify that all objects are created - channel.onCordovaReady.fire(); - - // Fire onDeviceReady event once page has fully loaded, all - // constructors have run and cordova info has been received from native - // side. - channel.join(function () { - require('cordova').fireDocumentEvent('deviceready'); - }, channel.deviceReadyChannelsArray); - - }, platformInitChannelsArray); - - }); - - // file: src/common/modulemapper.js - define("cordova/modulemapper", function (require, exports, module) { - - var builder = require('cordova/builder'); - var moduleMap = define.moduleMap; // eslint-disable-line no-undef - var symbolList; - var deprecationMap; - - exports.reset = function () { - symbolList = []; - deprecationMap = {}; - }; - - function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessage) { - if (!(moduleName in moduleMap)) { - throw new Error('Module ' + moduleName + ' does not exist.'); - } - symbolList.push(strategy, moduleName, symbolPath); - if (opt_deprecationMessage) { - deprecationMap[symbolPath] = opt_deprecationMessage; - } - } - - // Note: Android 2.3 does have Function.bind(). - exports.clobbers = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('c', moduleName, symbolPath, opt_deprecationMessage); - }; - - exports.merges = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('m', moduleName, symbolPath, opt_deprecationMessage); - }; - - exports.defaults = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('d', moduleName, symbolPath, opt_deprecationMessage); - }; - - exports.runs = function (moduleName) { - addEntry('r', moduleName, null); - }; - - function prepareNamespace(symbolPath, context) { - if (!symbolPath) { - return context; - } - var parts = symbolPath.split('.'); - var cur = context; - for (var i = 0, part; part = parts[i]; ++i) { // eslint-disable-line no-cond-assign - cur = cur[part] = cur[part] || {}; - } - return cur; - } - - exports.mapModules = function (context) { - var origSymbols = {}; - context.CDV_origSymbols = origSymbols; - for (var i = 0, len = symbolList.length; i < len; i += 3) { - var strategy = symbolList[i]; - var moduleName = symbolList[i + 1]; - var module = require(moduleName); - // - if (strategy === 'r') { - continue; - } - var symbolPath = symbolList[i + 2]; - var lastDot = symbolPath.lastIndexOf('.'); - var namespace = symbolPath.substr(0, lastDot); - var lastName = symbolPath.substr(lastDot + 1); - - var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; - var parentObj = prepareNamespace(namespace, context); - var target = parentObj[lastName]; - - if (strategy === 'm' && target) { - builder.recursiveMerge(target, module); - } else if ((strategy === 'd' && !target) || (strategy !== 'd')) { - if (!(symbolPath in origSymbols)) { - origSymbols[symbolPath] = target; - } - builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); - } - } - }; - - exports.getOriginalSymbol = function (context, symbolPath) { - var origSymbols = context.CDV_origSymbols; - if (origSymbols && (symbolPath in origSymbols)) { - return origSymbols[symbolPath]; - } - var parts = symbolPath.split('.'); - var obj = context; - for (var i = 0; i < parts.length; ++i) { - obj = obj && obj[parts[i]]; - } - return obj; - }; - - exports.reset(); - - }); - - define("cordova/platform", function (require, exports, module) { - module.exports = { - id: Capacitor.platform, - bootstrap: function () { - require('cordova/channel').onNativeReady.fire(); - } - }; - - }); - - // file: src/common/pluginloader.js - define("cordova/pluginloader", function (require, exports, module) { - - var modulemapper = require('cordova/modulemapper'); - - - function onScriptLoadingComplete(moduleList, finishPluginLoading) { - console.log('onscript loading complete') - // Loop through all the plugins and then through their clobbers and merges. - for (var i = 0, module; module = moduleList[i]; i++) { // eslint-disable-line no-cond-assign - if (module.clobbers && module.clobbers.length) { - for (var j = 0; j < module.clobbers.length; j++) { - modulemapper.clobbers(module.id, module.clobbers[j]); - } - } - - if (module.merges && module.merges.length) { - for (var k = 0; k < module.merges.length; k++) { - modulemapper.merges(module.id, module.merges[k]); - } - } - - // Finally, if runs is truthy we want to simply require() the module. - if (module.runs) { - modulemapper.runs(module.id); - } - } - - finishPluginLoading(); - } - - // Tries to load all plugins' js-modules. - // This is an async process, but onDeviceReady is blocked on onPluginsReady. - // onPluginsReady is fired when there are no plugins to load, or they are all done. - exports.load = function (callback) { - var moduleList = require('cordova/plugin_list'); - onScriptLoadingComplete(moduleList, callback); - }; - - }); - - // file: src/common/urlutil.js - define("cordova/urlutil", function (require, exports, module) { - - /** - * For already absolute URLs, returns what is passed in. - * For relative URLs, converts them to absolute ones. - */ - exports.makeAbsolute = function makeAbsolute(url) { - var anchorEl = document.createElement('a'); - anchorEl.href = url; - return anchorEl.href; - }; - - }); - - // file: src/common/utils.js - define("cordova/utils", function (require, exports, module) { - - var utils = exports; - - /** - * Defines a property getter / setter for obj[key]. - */ - utils.defineGetterSetter = function (obj, key, getFunc, opt_setFunc) { - if (Object.defineProperty) { - var desc = { - get: getFunc, - configurable: true - }; - if (opt_setFunc) { - desc.set = opt_setFunc; - } - Object.defineProperty(obj, key, desc); - } else { - obj.__defineGetter__(key, getFunc); - if (opt_setFunc) { - obj.__defineSetter__(key, opt_setFunc); - } - } - }; - - /** - * Defines a property getter for obj[key]. - */ - utils.defineGetter = utils.defineGetterSetter; - - utils.arrayIndexOf = function (a, item) { - if (a.indexOf) { - return a.indexOf(item); - } - var len = a.length; - for (var i = 0; i < len; ++i) { - if (a[i] === item) { - return i; - } - } - return -1; - }; - - /** - * Returns whether the item was found in the array. - */ - utils.arrayRemove = function (a, item) { - var index = utils.arrayIndexOf(a, item); - if (index !== -1) { - a.splice(index, 1); - } - return index !== -1; - }; - - utils.typeName = function (val) { - return Object.prototype.toString.call(val).slice(8, -1); - }; - - /** - * Returns an indication of whether the argument is an array or not - */ - utils.isArray = Array.isArray || - function (a) { return utils.typeName(a) === 'Array'; }; - - /** - * Returns an indication of whether the argument is a Date or not - */ - utils.isDate = function (d) { - return (d instanceof Date); - }; - - /** - * Does a deep clone of the object. - */ - utils.clone = function (obj) { - if (!obj || typeof obj === 'function' || utils.isDate(obj) || typeof obj !== 'object') { - return obj; - } - - var retVal, i; - - if (utils.isArray(obj)) { - retVal = []; - for (i = 0; i < obj.length; ++i) { - retVal.push(utils.clone(obj[i])); - } - return retVal; - } - - retVal = {}; - for (i in obj) { - // https://issues.apache.org/jira/browse/CB-11522 'unknown' type may be returned in - // custom protocol activation case on Windows Phone 8.1 causing "No such interface supported" exception - // on cloning. - if ((!(i in retVal) || retVal[i] !== obj[i]) && typeof obj[i] !== 'undefined' && typeof obj[i] !== 'unknown') { // eslint-disable-line valid-typeof - retVal[i] = utils.clone(obj[i]); - } - } - return retVal; - }; - - /** - * Returns a wrapped version of the function - */ - utils.close = function (context, func, params) { - return function () { - var args = params || arguments; - return func.apply(context, args); - }; - }; - - // ------------------------------------------------------------------------------ - function UUIDcreatePart(length) { - var uuidpart = ''; - for (var i = 0; i < length; i++) { - var uuidchar = parseInt((Math.random() * 256), 10).toString(16); - if (uuidchar.length === 1) { - uuidchar = '0' + uuidchar; - } - uuidpart += uuidchar; - } - return uuidpart; - } - - /** - * Create a UUID - */ - utils.createUUID = function () { - return UUIDcreatePart(4) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(6); - }; - - /** - * Extends a child object from a parent object using classical inheritance - * pattern. - */ - utils.extend = (function () { - // proxy used to establish prototype chain - var F = function () { }; - // extend Child from Parent - return function (Child, Parent) { - - F.prototype = Parent.prototype; - Child.prototype = new F(); - Child.__super__ = Parent.prototype; - Child.prototype.constructor = Child; - }; - }()); - - /** - * Alerts a message in any available way: alert or console.log. - */ - utils.alert = function (msg) { - if (window.alert) { - window.alert(msg); - } else if (console && console.log) { - console.log(msg); - } - }; - - }); - - window.cordova = require('cordova'); - // file: src/scripts/bootstrap.js - - require('cordova/init'); - -})(); diff --git a/android/app/build/intermediates/merged_assets/debug/out/public/cordova_plugins.js b/android/app/build/intermediates/merged_assets/debug/out/public/cordova_plugins.js deleted file mode 100644 index 280c0cce1..000000000 --- a/android/app/build/intermediates/merged_assets/debug/out/public/cordova_plugins.js +++ /dev/null @@ -1,264 +0,0 @@ - - cordova.define('cordova/plugin_list', function(require, exports, module) { - module.exports = [ - { - "id": "cordova-plugin-camera.Camera", - "file": "plugins/cordova-plugin-camera/www/CameraConstants.js", - "pluginId": "cordova-plugin-camera", - "clobbers": [ - "Camera" - ] - }, - { - "id": "cordova-plugin-camera.CameraPopoverHandle", - "file": "plugins/cordova-plugin-camera/www/CameraPopoverHandle.js", - "pluginId": "cordova-plugin-camera", - "clobbers": [ - "CameraPopoverHandle" - ] - }, - { - "id": "cordova-plugin-camera.CameraPopoverOptions", - "file": "plugins/cordova-plugin-camera/www/CameraPopoverOptions.js", - "pluginId": "cordova-plugin-camera", - "clobbers": [ - "CameraPopoverOptions" - ] - }, - { - "id": "cordova-plugin-inappbrowser.inappbrowser", - "file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js", - "pluginId": "cordova-plugin-inappbrowser", - "clobbers": [ - "cordova.InAppBrowser.open" - ] - }, - { - "id": "cordova-plugin-device.device", - "file": "plugins/cordova-plugin-device/www/device.js", - "pluginId": "cordova-plugin-device", - "clobbers": [ - "device" - ] - }, - { - "id": "cordova-plugin-camera.camera", - "file": "plugins/cordova-plugin-camera/www/Camera.js", - "pluginId": "cordova-plugin-camera", - "clobbers": [ - "navigator.camera" - ] - }, - { - "id": "cordova-sqlite-storage.SQLitePlugin", - "file": "plugins/cordova-sqlite-storage/www/SQLitePlugin.js", - "pluginId": "cordova-sqlite-storage", - "clobbers": [ - "SQLitePlugin" - ] - }, - { - "id": "cordova-plugin-file.DirectoryEntry", - "file": "plugins/cordova-plugin-file/www/DirectoryEntry.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.DirectoryEntry" - ] - }, - { - "id": "cordova-plugin-file.DirectoryReader", - "file": "plugins/cordova-plugin-file/www/DirectoryReader.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.DirectoryReader" - ] - }, - { - "id": "cordova-plugin-file.Entry", - "file": "plugins/cordova-plugin-file/www/Entry.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.Entry" - ] - }, - { - "id": "cordova-plugin-file.File", - "file": "plugins/cordova-plugin-file/www/File.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.File" - ] - }, - { - "id": "cordova-plugin-file.FileEntry", - "file": "plugins/cordova-plugin-file/www/FileEntry.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.FileEntry" - ] - }, - { - "id": "cordova-plugin-file.FileError", - "file": "plugins/cordova-plugin-file/www/FileError.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.FileError" - ] - }, - { - "id": "cordova-plugin-filepath.FilePath", - "file": "plugins/cordova-plugin-filepath/www/FilePath.js", - "pluginId": "cordova-plugin-filepath", - "clobbers": [ - "window.FilePath" - ] - }, - { - "id": "cordova-plugin-file.FileReader", - "file": "plugins/cordova-plugin-file/www/FileReader.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.FileReader" - ] - }, - { - "id": "cordova-plugin-file.FileSystem", - "file": "plugins/cordova-plugin-file/www/FileSystem.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.FileSystem" - ] - }, - { - "id": "cordova-plugin-file.FileUploadOptions", - "file": "plugins/cordova-plugin-file/www/FileUploadOptions.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.FileUploadOptions" - ] - }, - { - "id": "cordova-plugin-file.FileUploadResult", - "file": "plugins/cordova-plugin-file/www/FileUploadResult.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.FileUploadResult" - ] - }, - { - "id": "cordova-plugin-file.FileWriter", - "file": "plugins/cordova-plugin-file/www/FileWriter.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.FileWriter" - ] - }, - { - "id": "cordova-plugin-file.Flags", - "file": "plugins/cordova-plugin-file/www/Flags.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.Flags" - ] - }, - { - "id": "cordova-plugin-file.LocalFileSystem", - "file": "plugins/cordova-plugin-file/www/LocalFileSystem.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.LocalFileSystem" - ], - "merges": [ - "window" - ] - }, - { - "id": "cordova-plugin-file.Metadata", - "file": "plugins/cordova-plugin-file/www/Metadata.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.Metadata" - ] - }, - { - "id": "cordova-plugin-file.ProgressEvent", - "file": "plugins/cordova-plugin-file/www/ProgressEvent.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.ProgressEvent" - ] - }, - { - "id": "cordova-plugin-file.requestFileSystem", - "file": "plugins/cordova-plugin-file/www/requestFileSystem.js", - "pluginId": "cordova-plugin-file", - "clobbers": [ - "window.requestFileSystem" - ] - }, - { - "id": "cordova-plugin-statusbar.statusbar", - "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", - "pluginId": "cordova-plugin-statusbar", - "clobbers": [ - "window.StatusBar" - ] - }, - { - "id": "cordova-plugin-file.fileSystems", - "file": "plugins/cordova-plugin-file/www/fileSystems.js", - "pluginId": "cordova-plugin-file" - }, - { - "id": "cordova-plugin-file.isChrome", - "file": "plugins/cordova-plugin-file/www/browser/isChrome.js", - "pluginId": "cordova-plugin-file", - "runs": true - }, - { - "id": "cordova-plugin-file.fileSystems-roots", - "file": "plugins/cordova-plugin-file/www/fileSystems-roots.js", - "pluginId": "cordova-plugin-file", - "runs": true - }, - { - "id": "cordova-plugin-file.fileSystemPaths", - "file": "plugins/cordova-plugin-file/www/fileSystemPaths.js", - "pluginId": "cordova-plugin-file", - "merges": [ - "cordova" - ], - "runs": true - }, - { - "id": "cordova-plugin-file.androidFileSystem", - "file": "plugins/cordova-plugin-file/www/android/FileSystem.js", - "pluginId": "cordova-plugin-file", - "merges": [ - "FileSystem" - ] - }, - { - "id": "cordova-plugin-file.resolveLocalFileSystemURI", - "file": "plugins/cordova-plugin-file/www/resolveLocalFileSystemURI.js", - "pluginId": "cordova-plugin-file", - "merges": [ - "window" - ] - } - ]; - module.exports.metadata = - // TOP OF METADATA - { - "cordova-plugin-camera": "5.0.1", - "cordova-plugin-file": "6.0.2", - "cordova-plugin-filepath": "1.5.8", - "cordova-sqlite-storage": "5.1.0", - "cordova-plugin-device": "2.0.2", - "cordova-plugin-inappbrowser": "4.0.0", - "cordova-plugin-statusbar": "2.4.2", - "cordova-plugin-whitelist": "1.3.3" - }; - // BOTTOM OF METADATA - }); - \ No newline at end of file diff --git a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/Camera.js b/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/Camera.js deleted file mode 100644 index 535799bcb..000000000 --- a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/Camera.js +++ /dev/null @@ -1,187 +0,0 @@ -cordova.define("cordova-plugin-camera.camera", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var argscheck = require('cordova/argscheck'); -var exec = require('cordova/exec'); -var Camera = require('./Camera'); -// XXX: commented out -// CameraPopoverHandle = require('./CameraPopoverHandle'); - -/** - * @namespace navigator - */ - -/** - * @exports camera - */ -var cameraExport = {}; - -// Tack on the Camera Constants to the base camera plugin. -for (var key in Camera) { - cameraExport[key] = Camera[key]; -} - -/** - * Callback function that provides an error message. - * @callback module:camera.onError - * @param {string} message - The message is provided by the device's native code. - */ - -/** - * Callback function that provides the image data. - * @callback module:camera.onSuccess - * @param {string} imageData - Base64 encoding of the image data, _or_ the image file URI, depending on [`cameraOptions`]{@link module:camera.CameraOptions} in effect. - * @example - * // Show image - * // - * function cameraCallback(imageData) { - * var image = document.getElementById('myImage'); - * image.src = "data:image/jpeg;base64," + imageData; - * } - */ - -/** - * Optional parameters to customize the camera settings. - * * [Quirks](#CameraOptions-quirks) - * @typedef module:camera.CameraOptions - * @type {Object} - * @property {number} [quality=50] - Quality of the saved image, expressed as a range of 0-100, where 100 is typically full resolution with no loss from file compression. (Note that information about the camera's resolution is unavailable.) - * @property {module:Camera.DestinationType} [destinationType=FILE_URI] - Choose the format of the return value. - * @property {module:Camera.PictureSourceType} [sourceType=CAMERA] - Set the source of the picture. - * @property {Boolean} [allowEdit=false] - Allow simple editing of image before selection. - * @property {module:Camera.EncodingType} [encodingType=JPEG] - Choose the returned image file's encoding. - * @property {number} [targetWidth] - Width in pixels to scale image. Must be used with `targetHeight`. Aspect ratio remains constant. - * @property {number} [targetHeight] - Height in pixels to scale image. Must be used with `targetWidth`. Aspect ratio remains constant. - * @property {module:Camera.MediaType} [mediaType=PICTURE] - Set the type of media to select from. Only works when `PictureSourceType` is `PHOTOLIBRARY` or `SAVEDPHOTOALBUM`. - * @property {Boolean} [correctOrientation] - Rotate the image to correct for the orientation of the device during capture. - * @property {Boolean} [saveToPhotoAlbum] - Save the image to the photo album on the device after capture. - * @property {module:CameraPopoverOptions} [popoverOptions] - iOS-only options that specify popover location in iPad. - * @property {module:Camera.Direction} [cameraDirection=BACK] - Choose the camera to use (front- or back-facing). - */ - -/** - * @description Takes a photo using the camera, or retrieves a photo from the device's - * image gallery. The image is passed to the success callback as a - * Base64-encoded `String`, or as the URI for the image file. - * - * The `camera.getPicture` function opens the device's default camera - * application that allows users to snap pictures by default - this behavior occurs, - * when `Camera.sourceType` equals [`Camera.PictureSourceType.CAMERA`]{@link module:Camera.PictureSourceType}. - * Once the user snaps the photo, the camera application closes and the application is restored. - * - * If `Camera.sourceType` is `Camera.PictureSourceType.PHOTOLIBRARY` or - * `Camera.PictureSourceType.SAVEDPHOTOALBUM`, then a dialog displays - * that allows users to select an existing image. - * - * The return value is sent to the [`cameraSuccess`]{@link module:camera.onSuccess} callback function, in - * one of the following formats, depending on the specified - * `cameraOptions`: - * - * - A `String` containing the Base64-encoded photo image. - * - A `String` representing the image file location on local storage (default). - * - * You can do whatever you want with the encoded image or URI, for - * example: - * - * - Render the image in an `` tag, as in the example below - * - Save the data locally (`LocalStorage`, [Lawnchair](http://brianleroux.github.com/lawnchair/), etc.) - * - Post the data to a remote server - * - * __NOTE__: Photo resolution on newer devices is quite good. Photos - * selected from the device's gallery are not downscaled to a lower - * quality, even if a `quality` parameter is specified. To avoid common - * memory problems, set `Camera.destinationType` to `FILE_URI` rather - * than `DATA_URL`. - * - * __Supported Platforms__ - * - * - Android - * - BlackBerry - * - Browser - * - Firefox - * - FireOS - * - iOS - * - Windows - * - WP8 - * - Ubuntu - * - * More examples [here](#camera-getPicture-examples). Quirks [here](#camera-getPicture-quirks). - * - * @example - * navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions); - * @param {module:camera.onSuccess} successCallback - * @param {module:camera.onError} errorCallback - * @param {module:camera.CameraOptions} options CameraOptions - */ -cameraExport.getPicture = function (successCallback, errorCallback, options) { - argscheck.checkArgs('fFO', 'Camera.getPicture', arguments); - options = options || {}; - var getValue = argscheck.getValue; - - var quality = getValue(options.quality, 50); - var destinationType = getValue(options.destinationType, Camera.DestinationType.FILE_URI); - var sourceType = getValue(options.sourceType, Camera.PictureSourceType.CAMERA); - var targetWidth = getValue(options.targetWidth, -1); - var targetHeight = getValue(options.targetHeight, -1); - var encodingType = getValue(options.encodingType, Camera.EncodingType.JPEG); - var mediaType = getValue(options.mediaType, Camera.MediaType.PICTURE); - var allowEdit = !!options.allowEdit; - var correctOrientation = !!options.correctOrientation; - var saveToPhotoAlbum = !!options.saveToPhotoAlbum; - var popoverOptions = getValue(options.popoverOptions, null); - var cameraDirection = getValue(options.cameraDirection, Camera.Direction.BACK); - - var args = [quality, destinationType, sourceType, targetWidth, targetHeight, encodingType, - mediaType, allowEdit, correctOrientation, saveToPhotoAlbum, popoverOptions, cameraDirection]; - - exec(successCallback, errorCallback, 'Camera', 'takePicture', args); - // XXX: commented out - // return new CameraPopoverHandle(); -}; - -/** - * Removes intermediate image files that are kept in temporary storage - * after calling [`camera.getPicture`]{@link module:camera.getPicture}. Applies only when the value of - * `Camera.sourceType` equals `Camera.PictureSourceType.CAMERA` and the - * `Camera.destinationType` equals `Camera.DestinationType.FILE_URI`. - * - * __Supported Platforms__ - * - * - iOS - * - * @example - * navigator.camera.cleanup(onSuccess, onFail); - * - * function onSuccess() { - * console.log("Camera cleanup success.") - * } - * - * function onFail(message) { - * alert('Failed because: ' + message); - * } - */ -cameraExport.cleanup = function (successCallback, errorCallback) { - exec(successCallback, errorCallback, 'Camera', 'cleanup', []); -}; - -module.exports = cameraExport; -}); \ No newline at end of file diff --git a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraConstants.js b/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraConstants.js deleted file mode 100644 index bf42b8a42..000000000 --- a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraConstants.js +++ /dev/null @@ -1,94 +0,0 @@ -cordova.define("cordova-plugin-camera.Camera", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -/** - * @module Camera - */ -module.exports = { - /** - * @description - * Defines the output format of `Camera.getPicture` call. - * - * @enum {number} - */ - DestinationType: { - /** Return base64 encoded string. DATA_URL can be very memory intensive and cause app crashes or out of memory errors. Use FILE_URI if possible */ - DATA_URL: 0, - /** Return file uri (content://media/external/images/media/2 for Android) */ - FILE_URI: 1 - }, - /** - * @enum {number} - */ - EncodingType: { - /** Return JPEG encoded image */ - JPEG: 0, - /** Return PNG encoded image */ - PNG: 1 - }, - /** - * @enum {number} - */ - MediaType: { - /** Allow selection of still pictures only. DEFAULT. Will return format specified via DestinationType */ - PICTURE: 0, - /** Allow selection of video only, ONLY RETURNS URL */ - VIDEO: 1, - /** Allow selection from all media types */ - ALLMEDIA: 2 - }, - /** - * @description - * Defines the output format of `Camera.getPicture` call. - * - * @enum {number} - */ - PictureSourceType: { - /** Choose image from the device's photo library (same as SAVEDPHOTOALBUM for Android) */ - PHOTOLIBRARY: 0, - /** Take picture from camera */ - CAMERA: 1, - /** Choose image only from the device's Camera Roll album (same as PHOTOLIBRARY for Android) */ - SAVEDPHOTOALBUM: 2 - }, - /** - * Matches iOS UIPopoverArrowDirection constants to specify arrow location on popover. - * @enum {number} - */ - PopoverArrowDirection: { - ARROW_UP: 1, - ARROW_DOWN: 2, - ARROW_LEFT: 4, - ARROW_RIGHT: 8, - ARROW_ANY: 15 - }, - /** - * @enum {number} - */ - Direction: { - /** Use the back-facing camera */ - BACK: 0, - /** Use the front-facing camera */ - FRONT: 1 - } -}; -}); \ No newline at end of file diff --git a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraPopoverHandle.js b/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraPopoverHandle.js deleted file mode 100644 index 11f486525..000000000 --- a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraPopoverHandle.js +++ /dev/null @@ -1,34 +0,0 @@ -cordova.define("cordova-plugin-camera.CameraPopoverHandle", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -/** - * @ignore in favour of iOS' one - * A handle to an image picker popover. - */ -var CameraPopoverHandle = function () { - this.setPosition = function (popoverOptions) { - console.log('CameraPopoverHandle.setPosition is only supported on iOS.'); - }; -}; - -module.exports = CameraPopoverHandle; -}); \ No newline at end of file diff --git a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraPopoverOptions.js b/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraPopoverOptions.js deleted file mode 100644 index 3e545c362..000000000 --- a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-camera/www/CameraPopoverOptions.js +++ /dev/null @@ -1,58 +0,0 @@ -cordova.define("cordova-plugin-camera.CameraPopoverOptions", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var Camera = require('./Camera'); - -/** - * @namespace navigator - */ - -/** - * iOS-only parameters that specify the anchor element location and arrow - * direction of the popover when selecting images from an iPad's library - * or album. - * Note that the size of the popover may change to adjust to the - * direction of the arrow and orientation of the screen. Make sure to - * account for orientation changes when specifying the anchor element - * location. - * @module CameraPopoverOptions - * @param {Number} [x=0] - x pixel coordinate of screen element onto which to anchor the popover. - * @param {Number} [y=32] - y pixel coordinate of screen element onto which to anchor the popover. - * @param {Number} [width=320] - width, in pixels, of the screen element onto which to anchor the popover. - * @param {Number} [height=480] - height, in pixels, of the screen element onto which to anchor the popover. - * @param {module:Camera.PopoverArrowDirection} [arrowDir=ARROW_ANY] - Direction the arrow on the popover should point. - * @param {Number} [popoverWidth=0] - width of the popover (0 or not specified will use apple's default width). - * @param {Number} [popoverHeight=0] - height of the popover (0 or not specified will use apple's default height). - */ -var CameraPopoverOptions = function (x, y, width, height, arrowDir, popoverWidth, popoverHeight) { - // information of rectangle that popover should be anchored to - this.x = x || 0; - this.y = y || 32; - this.width = width || 320; - this.height = height || 480; - this.arrowDir = arrowDir || Camera.PopoverArrowDirection.ARROW_ANY; - this.popoverWidth = popoverWidth || 0; - this.popoverHeight = popoverHeight || 0; -}; - -module.exports = CameraPopoverOptions; -}); \ No newline at end of file diff --git a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-device/www/device.js b/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-device/www/device.js deleted file mode 100644 index 09424df7b..000000000 --- a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-device/www/device.js +++ /dev/null @@ -1,85 +0,0 @@ -cordova.define("cordova-plugin-device.device", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var argscheck = require('cordova/argscheck'); -var channel = require('cordova/channel'); -var utils = require('cordova/utils'); -var exec = require('cordova/exec'); -var cordova = require('cordova'); - -channel.createSticky('onCordovaInfoReady'); -// Tell cordova channel to wait on the CordovaInfoReady event -channel.waitForInitialization('onCordovaInfoReady'); - -/** - * This represents the mobile device, and provides properties for inspecting the model, version, UUID of the - * phone, etc. - * @constructor - */ -function Device () { - this.available = false; - this.platform = null; - this.version = null; - this.uuid = null; - this.cordova = null; - this.model = null; - this.manufacturer = null; - this.isVirtual = null; - this.serial = null; - - var me = this; - - channel.onCordovaReady.subscribe(function () { - me.getInfo(function (info) { - // ignoring info.cordova returning from native, we should use value from cordova.version defined in cordova.js - // TODO: CB-5105 native implementations should not return info.cordova - var buildLabel = cordova.version; - me.available = true; - me.platform = info.platform; - me.version = info.version; - me.uuid = info.uuid; - me.cordova = buildLabel; - me.model = info.model; - me.isVirtual = info.isVirtual; - me.manufacturer = info.manufacturer || 'unknown'; - me.serial = info.serial || 'unknown'; - channel.onCordovaInfoReady.fire(); - }, function (e) { - me.available = false; - utils.alert('[ERROR] Error initializing Cordova: ' + e); - }); - }); -} - -/** - * Get device info - * - * @param {Function} successCallback The function to call when the heading data is available - * @param {Function} errorCallback The function to call when there is an error getting the heading data. (OPTIONAL) - */ -Device.prototype.getInfo = function (successCallback, errorCallback) { - argscheck.checkArgs('fF', 'Device.getInfo', arguments); - exec(successCallback, errorCallback, 'Device', 'getDeviceInfo', []); -}; - -module.exports = new Device(); -}); \ No newline at end of file diff --git a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/DirectoryEntry.js b/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/DirectoryEntry.js deleted file mode 100644 index 26c72c18b..000000000 --- a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/DirectoryEntry.js +++ /dev/null @@ -1,119 +0,0 @@ -cordova.define("cordova-plugin-file.DirectoryEntry", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var argscheck = require('cordova/argscheck'); -var utils = require('cordova/utils'); -var exec = require('cordova/exec'); -var Entry = require('./Entry'); -var FileError = require('./FileError'); -var DirectoryReader = require('./DirectoryReader'); - -/** - * An interface representing a directory on the file system. - * - * {boolean} isFile always false (readonly) - * {boolean} isDirectory always true (readonly) - * {DOMString} name of the directory, excluding the path leading to it (readonly) - * {DOMString} fullPath the absolute full path to the directory (readonly) - * {FileSystem} filesystem on which the directory resides (readonly) - */ -var DirectoryEntry = function (name, fullPath, fileSystem, nativeURL) { - - // add trailing slash if it is missing - if ((fullPath) && !/\/$/.test(fullPath)) { - fullPath += '/'; - } - // add trailing slash if it is missing - if (nativeURL && !/\/$/.test(nativeURL)) { - nativeURL += '/'; - } - DirectoryEntry.__super__.constructor.call(this, false, true, name, fullPath, fileSystem, nativeURL); -}; - -utils.extend(DirectoryEntry, Entry); - -/** - * Creates a new DirectoryReader to read entries from this directory - */ -DirectoryEntry.prototype.createReader = function () { - return new DirectoryReader(this.toInternalURL()); -}; - -/** - * Creates or looks up a directory - * - * @param {DOMString} path either a relative or absolute path from this directory in which to look up or create a directory - * @param {Flags} options to create or exclusively create the directory - * @param {Function} successCallback is called with the new entry - * @param {Function} errorCallback is called with a FileError - */ -DirectoryEntry.prototype.getDirectory = function (path, options, successCallback, errorCallback) { - argscheck.checkArgs('sOFF', 'DirectoryEntry.getDirectory', arguments); - var fs = this.filesystem; - var win = successCallback && function (result) { - var entry = new DirectoryEntry(result.name, result.fullPath, fs, result.nativeURL); - successCallback(entry); - }; - var fail = errorCallback && function (code) { - errorCallback(new FileError(code)); - }; - exec(win, fail, 'File', 'getDirectory', [this.toInternalURL(), path, options]); -}; - -/** - * Deletes a directory and all of it's contents - * - * @param {Function} successCallback is called with no parameters - * @param {Function} errorCallback is called with a FileError - */ -DirectoryEntry.prototype.removeRecursively = function (successCallback, errorCallback) { - argscheck.checkArgs('FF', 'DirectoryEntry.removeRecursively', arguments); - var fail = errorCallback && function (code) { - errorCallback(new FileError(code)); - }; - exec(successCallback, fail, 'File', 'removeRecursively', [this.toInternalURL()]); -}; - -/** - * Creates or looks up a file - * - * @param {DOMString} path either a relative or absolute path from this directory in which to look up or create a file - * @param {Flags} options to create or exclusively create the file - * @param {Function} successCallback is called with the new entry - * @param {Function} errorCallback is called with a FileError - */ -DirectoryEntry.prototype.getFile = function (path, options, successCallback, errorCallback) { - argscheck.checkArgs('sOFF', 'DirectoryEntry.getFile', arguments); - var fs = this.filesystem; - var win = successCallback && function (result) { - var FileEntry = require('./FileEntry'); - var entry = new FileEntry(result.name, result.fullPath, fs, result.nativeURL); - successCallback(entry); - }; - var fail = errorCallback && function (code) { - errorCallback(new FileError(code)); - }; - exec(win, fail, 'File', 'getFile', [this.toInternalURL(), path, options]); -}; - -module.exports = DirectoryEntry; -}); \ No newline at end of file diff --git a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/DirectoryReader.js b/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/DirectoryReader.js deleted file mode 100644 index bbcf36370..000000000 --- a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/DirectoryReader.js +++ /dev/null @@ -1,74 +0,0 @@ -cordova.define("cordova-plugin-file.DirectoryReader", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var exec = require('cordova/exec'); -var FileError = require('./FileError'); - -/** - * An interface that lists the files and directories in a directory. - */ -function DirectoryReader (localURL) { - this.localURL = localURL || null; - this.hasReadEntries = false; -} - -/** - * Returns a list of entries from a directory. - * - * @param {Function} successCallback is called with a list of entries - * @param {Function} errorCallback is called with a FileError - */ -DirectoryReader.prototype.readEntries = function (successCallback, errorCallback) { - // If we've already read and passed on this directory's entries, return an empty list. - if (this.hasReadEntries) { - successCallback([]); - return; - } - var reader = this; - var win = typeof successCallback !== 'function' ? null : function (result) { - var retVal = []; - for (var i = 0; i < result.length; i++) { - var entry = null; - if (result[i].isDirectory) { - entry = new (require('./DirectoryEntry'))(); - } else if (result[i].isFile) { - entry = new (require('./FileEntry'))(); - } - entry.isDirectory = result[i].isDirectory; - entry.isFile = result[i].isFile; - entry.name = result[i].name; - entry.fullPath = result[i].fullPath; - entry.filesystem = new (require('./FileSystem'))(result[i].filesystemName); - entry.nativeURL = result[i].nativeURL; - retVal.push(entry); - } - reader.hasReadEntries = true; - successCallback(retVal); - }; - var fail = typeof errorCallback !== 'function' ? null : function (code) { - errorCallback(new FileError(code)); - }; - exec(win, fail, 'File', 'readEntries', [this.localURL]); -}; - -module.exports = DirectoryReader; -}); \ No newline at end of file diff --git a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/Entry.js b/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/Entry.js deleted file mode 100644 index 10cc1d735..000000000 --- a/android/app/build/intermediates/merged_assets/debug/out/public/plugins/cordova-plugin-file/www/Entry.js +++ /dev/null @@ -1,262 +0,0 @@ -cordova.define("cordova-plugin-file.Entry", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var argscheck = require('cordova/argscheck'); -var exec = require('cordova/exec'); -var FileError = require('./FileError'); -var Metadata = require('./Metadata'); - -/** - * Represents a file or directory on the local file system. - * - * @param isFile - * {boolean} true if Entry is a file (readonly) - * @param isDirectory - * {boolean} true if Entry is a directory (readonly) - * @param name - * {DOMString} name of the file or directory, excluding the path - * leading to it (readonly) - * @param fullPath - * {DOMString} the absolute full path to the file or directory - * (readonly) - * @param fileSystem - * {FileSystem} the filesystem on which this entry resides - * (readonly) - * @param nativeURL - * {DOMString} an alternate URL which can be used by native - * webview controls, for example media players. - * (optional, readonly) - */ -function Entry (isFile, isDirectory, name, fullPath, fileSystem, nativeURL) { - this.isFile = !!isFile; - this.isDirectory = !!isDirectory; - this.name = name || ''; - this.fullPath = fullPath || ''; - this.filesystem = fileSystem || null; - this.nativeURL = nativeURL || null; -} - -/** - * Look up the metadata of the entry. - * - * @param successCallback - * {Function} is called with a Metadata object - * @param errorCallback - * {Function} is called with a FileError - */ -Entry.prototype.getMetadata = function (successCallback, errorCallback) { - argscheck.checkArgs('FF', 'Entry.getMetadata', arguments); - var success = successCallback && function (entryMetadata) { - var metadata = new Metadata({ - size: entryMetadata.size, - modificationTime: entryMetadata.lastModifiedDate - }); - successCallback(metadata); - }; - var fail = errorCallback && function (code) { - errorCallback(new FileError(code)); - }; - exec(success, fail, 'File', 'getFileMetadata', [this.toInternalURL()]); -}; - -/** - * Set the metadata of the entry. - * - * @param successCallback - * {Function} is called with a Metadata object - * @param errorCallback - * {Function} is called with a FileError - * @param metadataObject - * {Object} keys and values to set - */ -Entry.prototype.setMetadata = function (successCallback, errorCallback, metadataObject) { - argscheck.checkArgs('FFO', 'Entry.setMetadata', arguments); - exec(successCallback, errorCallback, 'File', 'setMetadata', [this.toInternalURL(), metadataObject]); -}; - -/** - * Move a file or directory to a new location. - * - * @param parent - * {DirectoryEntry} the directory to which to move this entry - * @param newName - * {DOMString} new name of the entry, defaults to the current name - * @param successCallback - * {Function} called with the new DirectoryEntry object - * @param errorCallback - * {Function} called with a FileError - */ -Entry.prototype.moveTo = function (parent, newName, successCallback, errorCallback) { - argscheck.checkArgs('oSFF', 'Entry.moveTo', arguments); - var fail = errorCallback && function (code) { - errorCallback(new FileError(code)); - }; - var srcURL = this.toInternalURL(); - // entry name - var name = newName || this.name; - var success = function (entry) { - if (entry) { - if (successCallback) { - // create appropriate Entry object - var newFSName = entry.filesystemName || (entry.filesystem && entry.filesystem.name); - var fs = newFSName ? new FileSystem(newFSName, { name: '', fullPath: '/' }) : new FileSystem(parent.filesystem.name, { name: '', fullPath: '/' }); // eslint-disable-line no-undef - var result = (entry.isDirectory) ? new (require('./DirectoryEntry'))(entry.name, entry.fullPath, fs, entry.nativeURL) : new (require('cordova-plugin-file.FileEntry'))(entry.name, entry.fullPath, fs, entry.nativeURL); - successCallback(result); - } - } else { - // no Entry object returned - if (fail) { - fail(FileError.NOT_FOUND_ERR); - } - } - }; - - // copy - exec(success, fail, 'File', 'moveTo', [srcURL, parent.toInternalURL(), name]); -}; - -/** - * Copy a directory to a different location. - * - * @param parent - * {DirectoryEntry} the directory to which to copy the entry - * @param newName - * {DOMString} new name of the entry, defaults to the current name - * @param successCallback - * {Function} called with the new Entry object - * @param errorCallback - * {Function} called with a FileError - */ -Entry.prototype.copyTo = function (parent, newName, successCallback, errorCallback) { - argscheck.checkArgs('oSFF', 'Entry.copyTo', arguments); - var fail = errorCallback && function (code) { - errorCallback(new FileError(code)); - }; - var srcURL = this.toInternalURL(); - // entry name - var name = newName || this.name; - // success callback - var success = function (entry) { - if (entry) { - if (successCallback) { - // create appropriate Entry object - var newFSName = entry.filesystemName || (entry.filesystem && entry.filesystem.name); - var fs = newFSName ? new FileSystem(newFSName, { name: '', fullPath: '/' }) : new FileSystem(parent.filesystem.name, { name: '', fullPath: '/' }); // eslint-disable-line no-undef - var result = (entry.isDirectory) ? new (require('./DirectoryEntry'))(entry.name, entry.fullPath, fs, entry.nativeURL) : new (require('cordova-plugin-file.FileEntry'))(entry.name, entry.fullPath, fs, entry.nativeURL); - successCallback(result); - } - } else { - // no Entry object returned - if (fail) { - fail(FileError.NOT_FOUND_ERR); - } - } - }; - - // copy - exec(success, fail, 'File', 'copyTo', [srcURL, parent.toInternalURL(), name]); -}; - -/** - * Return a URL that can be passed across the bridge to identify this entry. - */ -Entry.prototype.toInternalURL = function () { - if (this.filesystem && this.filesystem.__format__) { - return this.filesystem.__format__(this.fullPath, this.nativeURL); - } -}; - -/** - * Return a URL that can be used to identify this entry. - * Use a URL that can be used to as the src attribute of a