diff --git a/src/js/controllers/buyGlidera.js b/src/js/controllers/buyGlidera.js index 2add687cb..018d13c8d 100644 --- a/src/js/controllers/buyGlidera.js +++ b/src/js/controllers/buyGlidera.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('buyGlideraController', - function($scope, $timeout, $modal, profileService, addressService, glideraService, bwsError, lodash, isChromeApp, animationService, walletService) { + function($scope, $timeout, $modal, profileService, addressService, glideraService, bwsError, lodash, animationService, walletService) { var self = this; this.show2faCodeInput = null; diff --git a/src/js/controllers/coinbase.js b/src/js/controllers/coinbase.js index 780d4bc1d..c223da676 100644 --- a/src/js/controllers/coinbase.js +++ b/src/js/controllers/coinbase.js @@ -1,8 +1,9 @@ 'use strict'; angular.module('copayApp.controllers').controller('coinbaseController', - function($rootScope, $scope, $timeout, $modal, profileService, configService, storageService, coinbaseService, isChromeApp, animationService, lodash, nodeWebkit) { + function($rootScope, $scope, $timeout, $modal, profileService, configService, storageService, coinbaseService, animationService, lodash, nodeWebkit) { + var isChromeApp = platformInfo.isChromeApp; window.ignoreMobilePause = true; this.openAuthenticateWindow = function() { diff --git a/src/js/controllers/create.js b/src/js/controllers/create.js index 5270f4622..3457651b0 100644 --- a/src/js/controllers/create.js +++ b/src/js/controllers/create.js @@ -1,11 +1,16 @@ 'use strict'; angular.module('copayApp.controllers').controller('createController', - function($scope, $location, $anchorScroll, $rootScope, $timeout, $log, lodash, go, profileService, configService, isCordova, gettext, ledger, trezor, isMobile, isChromeApp, isDevel, derivationPathHelper) { + function($scope, $location, $anchorScroll, $rootScope, $timeout, $log, lodash, go, profileService, configService, gettext, ledger, trezor, platformInfo, derivationPathHelper) { + + var isChromeApp = platformInfo.isChromeApp; + var isCordova = platformInfo.isCordova; + var isDevel = platformInfo.isDevel; + var self = this; var defaults = configService.getDefaults(); - this.isWindowsPhoneApp = isMobile.Windows() && isCordova; + this.isWindowsPhoneApp = platformInfo.isWP && isCordova; $scope.account = 1; /* For compressed keys, m*73 + n*34 <= 496 */ diff --git a/src/js/controllers/glidera.js b/src/js/controllers/glidera.js index fbce3e95d..7c4df16d9 100644 --- a/src/js/controllers/glidera.js +++ b/src/js/controllers/glidera.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('glideraController', - function($rootScope, $scope, $timeout, $modal, profileService, configService, storageService, glideraService, isChromeApp, animationService, lodash) { + function($rootScope, $scope, $timeout, $modal, profileService, configService, storageService, glideraService, animationService, lodash) { this.getAuthenticateUrl = function() { return glideraService.getOauthCodeUrl(); diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js index e200961a3..ee2d02e3e 100644 --- a/src/js/controllers/import.js +++ b/src/js/controllers/import.js @@ -1,7 +1,10 @@ 'use strict'; angular.module('copayApp.controllers').controller('importController', - function($scope, $rootScope, $location, $timeout, $log, profileService, configService, notification, go, sjcl, gettext, lodash, ledger, trezor, isChromeApp, isDevel, derivationPathHelper) { + function($scope, $rootScope, $location, $timeout, $log, profileService, configService, notification, go, sjcl, gettext, lodash, ledger, trezor, derivationPathHelper) { + + var isChromeApp = platformInfo.isChromeApp; + var isDevel = platformInfo.isDevel; var self = this; var reader = new FileReader(); diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index fbde07792..c7b9a18ff 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -1,16 +1,18 @@ 'use strict'; -angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, latestReleaseService, bwcService, pushNotificationsService, lodash, go, profileService, configService, isCordova, rateService, storageService, addressService, gettext, gettextCatalog, amMoment, nodeWebkit, addonManager, isChromeApp, bwsError, txFormatService, uxLanguage, glideraService, coinbaseService, isMobile, addressbookService, walletService) { +angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, latestReleaseService, bwcService, pushNotificationsService, lodash, go, profileService, configService, rateService, storageService, addressService, gettext, gettextCatalog, amMoment, nodeWebkit, addonManager, bwsError, txFormatService, uxLanguage, glideraService, coinbaseService, platformInfo, addressbookService, walletService) { var self = this; var SOFT_CONFIRMATION_LIMIT = 12; var errors = bwcService.getErrors(); var historyUpdateInProgress = {}; + var isChromeApp = platformInfo.isChromeApp; + var isCordova = platformInfo.isCordova; var ret = {}; ret.isCordova = isCordova; ret.isChromeApp = isChromeApp; - ret.isSafari = isMobile.Safari(); - ret.isWindowsPhoneApp = isMobile.Windows() && isCordova; + ret.isSafari = platformInfo.isSafari; + ret.isWindowsPhoneApp = platformInfo.isWP; ret.onGoingProcess = {}; ret.historyShowLimit = 10; ret.historyShowMoreLimit = 100; @@ -1669,7 +1671,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r $rootScope.$on('Local/DeviceError', function(event, err) { self.showErrorPopup(err, function() { - if (self.isCordova && navigator && navigator.app) { + if (isCordova && navigator && navigator.app) { navigator.app.exitApp(); } }); diff --git a/src/js/controllers/join.js b/src/js/controllers/join.js index 5a6ceabbb..983dd080e 100644 --- a/src/js/controllers/join.js +++ b/src/js/controllers/join.js @@ -1,7 +1,10 @@ 'use strict'; angular.module('copayApp.controllers').controller('joinController', - function($scope, $rootScope, $timeout, go, notification, profileService, configService, isCordova, storageService, applicationService, $modal, gettext, lodash, ledger, trezor, isChromeApp, isDevel,derivationPathHelper) { + function($scope, $rootScope, $timeout, go, notification, profileService, configService, isCordova, storageService, applicationService, $modal, gettext, lodash, ledger, trezor, platformInfo, derivationPathHelper) { + + var isChromeApp = platformInfo.isChromeApp; + var isDevel = platformInfo.isDevel; var self = this; var defaults = configService.getDefaults(); diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 5108e4b09..d26860701 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -1,6 +1,11 @@ 'use strict'; -angular.module('copayApp.controllers').controller('walletHomeController', function($scope, $rootScope, $interval, $timeout, $filter, $modal, $log, notification, txStatus, isCordova, isMobile, profileService, lodash, configService, rateService, storageService, bitcore, isChromeApp, gettext, gettextCatalog, nodeWebkit, addressService, ledger, bwsError, confirmDialog, txFormatService, animationService, addressbookService, go, feeService, walletService, fingerprintService) { +angular.module('copayApp.controllers').controller('walletHomeController', function($scope, $rootScope, $interval, $timeout, $filter, $modal, $log, notification, txStatus, profileService, lodash, configService, rateService, storageService, bitcore, gettext, gettextCatalog, platformInfo, addressService, ledger, bwsError, confirmDialog, txFormatService, animationService, addressbookService, go, feeService, walletService, fingerprintService) { + + var isCordova = platformInfo.isCordova; + var isWP = platformInfo.isWP; + var isAndroid = platformInfo.isAndroid; + var isChromeApp = platformInfo.isChromeApp; >>> >>> > migration to platformInfo WIP var self = this; window.ignoreMobilePause = false; @@ -21,8 +26,8 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi ret.unitDecimals = walletSettings.unitDecimals; ret.isCordova = isCordova; ret.addresses = []; - ret.isMobile = isMobile.any(); - ret.isWindowsPhoneApp = isMobile.Windows() && isCordova; + ret.isMobile = platformInfo.isMobile; + ret.isWindowsPhoneApp = platformInfo.isWP; ret.countDown = null; ret.sendMaxInfo = {}; var vanillaScope = ret; @@ -115,7 +120,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi }); var getClipboard = function(cb) { - if (!isCordova || isMobile.Windows()) return cb(); + if (!isCordova || platformInfo.isWP) return cb(); window.cordova.plugins.clipboard.paste(function(value) { var fc = profileService.focusedClient; @@ -216,7 +221,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi return; } $scope.list = ab; - $timeout(function(){ + $timeout(function() { $scope.$digest(); }); }); @@ -606,14 +611,14 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi if (isCordova) { window.cordova.plugins.clipboard.copy(addr); window.plugins.toast.showShortCenter(gettextCatalog.getString('Copied to clipboard')); - } else if (nodeWebkit.isDefined()) { + } else if (platformInfo.isNW) { nodeWebkit.writeToClipboard(addr); } }; this.shareAddress = function(addr) { if (isCordova) { - if (isMobile.Android() || isMobile.Windows()) { + if (isAndroid || isWP) { window.ignoreMobilePause = true; } window.plugins.socialsharing.share('bitcoin:' + addr, null, null, null); @@ -693,7 +698,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi $scope.shareAddress = function(uri) { if (isCordova) { - if (isMobile.Android() || isMobile.Windows()) { + if (isAndroid || isWP) { window.ignoreMobilePause = true; } window.plugins.socialsharing.share(uri, null, null, null); diff --git a/src/js/routes.js b/src/js/routes.js index 2137134fb..419102bcf 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -20,12 +20,12 @@ angular $urlRouterProvider.otherwise('/'); $logProvider.debugEnabled(true); - $provide.decorator('$log', ['$delegate', 'isDevel', - function($delegate, isDevel) { + $provide.decorator('$log', ['$delegate', 'platformInfo', + function($delegate, platformInfo) { var historicLog = historicLogProvider.$get(); ['debug', 'info', 'warn', 'error', 'log'].forEach(function(level) { - if (isDevel && level == 'error') return; + if (platformInfo.isDevel && level == 'error') return; var orig = $delegate[level]; $delegate[level] = function() { @@ -531,7 +531,7 @@ angular url: '/cordova/:status/:fromHome/:fromDisclaimer/:secondBackButtonPress', views: { 'main': { - controller: function($rootScope, $state, $stateParams, $timeout, go, isCordova, gettextCatalog) { + controller: function($rootScope, $state, $stateParams, $timeout, go, platformInfo, gettextCatalog) { switch ($stateParams.status) { case 'resume': @@ -542,7 +542,7 @@ angular if ($stateParams.fromDisclaimer == 'true') navigator.app.exitApp(); - if (isCordova && $stateParams.fromHome == 'true' && !$rootScope.modalOpened) { + if (platformInfo.isCordova && $stateParams.fromHome == 'true' && !$rootScope.modalOpened) { if ($stateParams.secondBackButtonPress == 'true') { navigator.app.exitApp(); } else { @@ -563,16 +563,16 @@ angular needProfile: false }); }) - .run(function($rootScope, $state, $log, uriHandler, isCordova, profileService, $timeout, nodeWebkit, uxLanguage, animationService) { + .run(function($rootScope, $state, $log, uriHandler, platformInfo, profileService, $timeout, uxLanguage, animationService) { uxLanguage.init(); // Register URI handler, not for mobileApp - if (!isCordova) { + if (!platformInfo.isCordova) { uriHandler.register(); } - if (nodeWebkit.isDefined()) { + if (platformInfo.isNW) { var gui = require('nw.gui'); var win = gui.Window.get(); var nativeMenuBar = new gui.Menu({ diff --git a/src/js/services/animationService.js b/src/js/services/animationService.js index d038043b7..7197194cb 100644 --- a/src/js/services/animationService.js +++ b/src/js/services/animationService.js @@ -1,10 +1,12 @@ 'use strict'; -angular.module('copayApp.services').factory('animationService', function(isCordova) { +angular.module('copayApp.services').factory('animationService', function(platformInfo) { var root = {}; - var cachedTransitionState, cachedBackPanel; + var isCordova = platformInfo.isCordova; + + // DISABLE ANIMATION ON DESKTOP root.modalAnimated = { slideUp: isCordova ? 'full animated slideInUp' : 'full', diff --git a/src/js/services/applicationService.js b/src/js/services/applicationService.js index c06cabfe5..0b82bcaf7 100644 --- a/src/js/services/applicationService.js +++ b/src/js/services/applicationService.js @@ -1,11 +1,14 @@ 'use strict'; angular.module('copayApp.services') - .factory('applicationService', function($rootScope, $timeout, isCordova, isChromeApp, nodeWebkit, go) { + .factory('applicationService', function($rootScope, $timeout, platformInfo, go) { var root = {}; + var isChromeApp = platformInfo.isChromeApp; + var isNW = platformInfo.isNW; + root.restart = function() { var hashIndex = window.location.href.indexOf('#/'); - if (isCordova) { + if (platformInfo.isCordova) { window.location = window.location.href.substr(0, hashIndex); $timeout(function() { $rootScope.$digest(); @@ -15,7 +18,7 @@ angular.module('copayApp.services') // Go home reloading the application if (isChromeApp) { chrome.runtime.reload(); - } else if (nodeWebkit.isDefined()) { + } else if (isNW) { go.walletHome(); $timeout(function() { var win = require('nw.gui').Window.get(); diff --git a/src/js/services/coinbaseService.js b/src/js/services/coinbaseService.js index b4bf73447..3827c6651 100644 --- a/src/js/services/coinbaseService.js +++ b/src/js/services/coinbaseService.js @@ -1,8 +1,9 @@ 'use strict'; -angular.module('copayApp.services').factory('coinbaseService', function($http, $log, isCordova, lodash, storageService, configService) { +angular.module('copayApp.services').factory('coinbaseService', function($http, $log, platformInfo, lodash, storageService, configService) { var root = {}; var credentials = {}; + var isCordova = platformInfo.isCordova; root.setCredentials = function(network) { credentials.SCOPE = '' diff --git a/src/js/services/confirmDialog.js b/src/js/services/confirmDialog.js index b8242dc5c..90e71f381 100644 --- a/src/js/services/confirmDialog.js +++ b/src/js/services/confirmDialog.js @@ -1,7 +1,7 @@ 'use strict'; -angular.module('copayApp.services').factory('confirmDialog', function($log, $timeout, profileService, configService, gettextCatalog, isCordova, isChromeApp) { +angular.module('copayApp.services').factory('confirmDialog', function($log, $timeout, profileService, configService, gettextCatalog, platformInfo) { var root = {}; @@ -10,7 +10,7 @@ angular.module('copayApp.services').factory('confirmDialog', function($log, $tim var confirmMsg = gettextCatalog.getString('Confirm'); root.show = function(msg, cb) { - if (isCordova) { + if (platformInfo.isCordova) { navigator.notification.confirm( msg, function(buttonIndex) { @@ -24,7 +24,7 @@ angular.module('copayApp.services').factory('confirmDialog', function($log, $tim }, confirmMsg, [acceptMsg, cancelMsg] ); - } else if (isChromeApp) { + } else if (platformInfo.isChromeApp) { // No feedback, alert/confirm not supported. return cb(true); } else { diff --git a/src/js/services/glideraService.js b/src/js/services/glideraService.js index dd13bcd53..15b39dbb4 100644 --- a/src/js/services/glideraService.js +++ b/src/js/services/glideraService.js @@ -1,8 +1,9 @@ 'use strict'; -angular.module('copayApp.services').factory('glideraService', function($http, $log, isCordova) { +angular.module('copayApp.services').factory('glideraService', function($http, $log, platformInfo) { var root = {}; var credentials = {}; + var isCordova = platformInfo.isCordova; root.setCredentials = function(network) { if (network == 'testnet') { diff --git a/src/js/services/go.js b/src/js/services/go.js index c110d674c..6b5ff3f1b 100644 --- a/src/js/services/go.js +++ b/src/js/services/go.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.services').factory('go', function($window, $rootScope, $location, $state, $timeout, $log, profileService, nodeWebkit) { +angular.module('copayApp.services').factory('go', function($window, $rootScope, $location, $state, $timeout, $log, profileService, platformInfo, nodeWebkit) { var root = {}; var hideSidebars = function() { @@ -30,7 +30,7 @@ angular.module('copayApp.services').factory('go', function($window, $rootScope, }; root.openExternalLink = function(url, target) { - if (nodeWebkit.isDefined()) { + if ( platformInfo.isNW) { nodeWebkit.openExternalLink(url); } else { target = target || '_blank'; diff --git a/src/js/services/latestReleaseService.js b/src/js/services/latestReleaseService.js index be0527d51..bb9520223 100644 --- a/src/js/services/latestReleaseService.js +++ b/src/js/services/latestReleaseService.js @@ -1,6 +1,6 @@ 'use strict'; angular.module('copayApp.services') - .factory('latestReleaseService', function latestReleaseServiceFactory($log, $http, configService, gettext, nodeWebkit) { + .factory('latestReleaseService', function latestReleaseServiceFactory($log, $http, configService) { var root = {}; diff --git a/src/js/services/legacyImportService.js b/src/js/services/legacyImportService.js index de03c808e..a4103a1d4 100644 --- a/src/js/services/legacyImportService.js +++ b/src/js/services/legacyImportService.js @@ -1,6 +1,6 @@ 'use strict'; angular.module('copayApp.services') - .factory('legacyImportService', function($rootScope, $log, $timeout, $http, lodash, bitcore, bwcService, sjcl, profileService, isChromeApp) { + .factory('legacyImportService', function($rootScope, $log, $timeout, $http, lodash, bitcore, bwcService, sjcl, profileService, platformInfo) { var root = {}; var wc = bwcService.getClient(); @@ -126,7 +126,7 @@ angular.module('copayApp.services') }; var localStorageGet = function(key, cb) { - if (isChromeApp) { + if (platformInfo.isChromeApp) { chrome.storage.local.get(key, function(data) { return cb(null, data[key]); diff --git a/src/js/services/localStorage.js b/src/js/services/localStorage.js index 853677159..17ab3a27d 100644 --- a/src/js/services/localStorage.js +++ b/src/js/services/localStorage.js @@ -1,20 +1,21 @@ 'use strict'; angular.module('copayApp.services') - .factory('localStorageService', function(isChromeApp, nodeWebkit, $timeout) { + .factory('localStorageService', function(platformInfo, $timeout) { + var isNW = platformInfo.isNW; + var isChromeApp = platformInfo.isChromeApp; var root = {}; var ls = ((typeof window.localStorage !== "undefined") ? window.localStorage : null); - if (isChromeApp && !nodeWebkit.isDefined() && !ls) { - ls = localStorage = chrome.storage.local; - window.localStorage = chrome.storage.local; + if (isChromeApp && !isNW && !ls) { + ls = chrome.storage.local; } if (!ls) throw new Error('localstorage not available'); root.get = function(k, cb) { - if (isChromeApp && !nodeWebkit.isDefined()) { + if (isChromeApp && !isNW) { chrome.storage.local.get(k, function(data) { //TODO check for errors @@ -40,7 +41,7 @@ angular.module('copayApp.services') }; root.set = function(k, v, cb) { - if (isChromeApp && !nodeWebkit.isDefined()) { + if (isChromeApp && !isNW) { var obj = {}; obj[k] = v; @@ -53,7 +54,7 @@ angular.module('copayApp.services') }; root.remove = function(k, cb) { - if (isChromeApp && !nodeWebkit.isDefined()) { + if (isChromeApp && !isNW) { chrome.storage.local.remove(k, cb); } else { ls.removeItem(k); diff --git a/src/js/services/logHeader.js b/src/js/services/logHeader.js index cec37bf5e..272aec6f0 100644 --- a/src/js/services/logHeader.js +++ b/src/js/services/logHeader.js @@ -1,8 +1,7 @@ 'use strict'; angular.module('copayApp.services') - .factory('logHeader', function($log, isChromeApp, isCordova, nodeWebkit) { + .factory('logHeader', function($log, platformInfo) { $log.info('Starting Copay v' + window.version + ' #' + window.commitHash); - $log.info('Client: isCordova:', isCordova, 'isChromeApp:', isChromeApp, 'isNodeWebkit:', nodeWebkit.isDefined()); - $log.info('Navigator:', navigator.userAgent); + $log.info('Client: '+ JSON.stringify(platformInfo) ); return {}; }); diff --git a/src/js/services/platformInfo.js b/src/js/services/platformInfo.js index b405c7e04..51ac7eea8 100644 --- a/src/js/services/platformInfo.js +++ b/src/js/services/platformInfo.js @@ -1,15 +1,20 @@ 'use strict'; -angular.module('copayApp.services').factory('platformInfo', function( $navigator, $window) { +angular.module('copayApp.services').factory('platformInfo', function($window) { - var ua= $navigator.userAgent; + var ua = navigator ? navigator.userAgent : null; + + if (!ua) { + console.log('Could not determine navigator. Using a random string'); + ua = Math.floor(Math.random() * 100000); + } var isNodeWebkit = function() { var isNode = (typeof process !== "undefined" && typeof require !== "undefined"); - if(isNode) { + if (isNode) { try { return (typeof require('nw.gui') !== "undefined"); - } catch(e) { + } catch (e) { return false; } } @@ -27,16 +32,17 @@ angular.module('copayApp.services').factory('platformInfo', function( $navigator isWP: function() { return !!ua.match(/IEMobile/i); }, - Safari: function() { + isSafari: function() { return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0; } }; + ret.ua = ua; ret.isMobile = ret.isAndroid() || ret.isIOS() || ret.isWP(); - ret.isChromeApp = !!($window.chrome && chrome.runtime && chrome.runtime.id && !nodeWebkit.isDefined()); ret.isCordova = !!$window.cordova; ret.isNW = isNodeWebkit(); - ret.isDevel =!ret.isMobile() && !ret.isChromeApp && !ret.isNW(); + ret.isChromeApp = $window.chrome && chrome.runtime && chrome.runtime.id && !ret.isNW; + ret.isDevel = !ret.isMobile && !ret.isChromeApp && !ret.isNW; return ret; }); diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 5865af85b..f10b670de 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -1,10 +1,15 @@ 'use strict'; angular.module('copayApp.services') - .factory('profileService', function profileServiceFactory($rootScope, $timeout, $filter, $log, sjcl, lodash, storageService, bwcService, configService, notificationService, pushNotificationsService, isChromeApp, isCordova, isMobile, gettext, gettextCatalog, nodeWebkit, bwsError, uxLanguage, bitcore) { + .factory('profileService', function profileServiceFactory($rootScope, $timeout, $filter, $log, sjcl, lodash, storageService, bwcService, configService, notificationService, pushNotificationsService, gettext, gettextCatalog, bwsError, uxLanguage, bitcore, platformInfo) { + + + var isChromeApp = platformInfo.isChromeApp; + var isCordova = platformInfo.isCordova; + var isWP = platformInfo.isWP; var root = {}; var errors = bwcService.getErrors(); - var usePushNotifications = isCordova && !isMobile.Windows(); + var usePushNotifications = isCordova && !isWP; var FOREGROUND_UPDATE_PERIOD = 5; var BACKGROUND_UPDATE_PERIOD = 30; diff --git a/src/js/services/pushNotificationsService.js b/src/js/services/pushNotificationsService.js index d2649e949..f6c621415 100644 --- a/src/js/services/pushNotificationsService.js +++ b/src/js/services/pushNotificationsService.js @@ -1,8 +1,13 @@ 'use strict'; angular.module('copayApp.services') - .factory('pushNotificationsService', function($log, isMobile, storageService, configService, lodash, isCordova) { + .factory('pushNotificationsService', function($log, platformInfo, storageService, configService, lodash) { var root = {}; - var usePushNotifications = isCordova && !isMobile.Windows(); + var isCordova = platformInfo.isCordova; + var isWP = platformInfo.isWP; + var isIOS = platformInfo.isIOS; + var isAndroid = platformInfo.isAndroid; + + var usePushNotifications = isCordova && !isWP; root.init = function(walletsClients) { var defaults = configService.getDefaults(); @@ -32,7 +37,7 @@ angular.module('copayApp.services') lodash.forEach(walletsClients, function(walletClient) { var opts = {}; - opts.type = isMobile.iOS() ? "ios" : isMobile.Android() ? "android" : null; + opts.type = isIOS ? "ios" : isAndroid ? "android" : null; opts.token = root.token; root.subscribe(opts, walletClient, function(err, response) { if (err) $log.warn('Subscription error: ' + err.message + ': ' + JSON.stringify(opts)); diff --git a/src/js/services/storageService.js b/src/js/services/storageService.js index 28515a004..96176d3e5 100644 --- a/src/js/services/storageService.js +++ b/src/js/services/storageService.js @@ -1,12 +1,12 @@ 'use strict'; angular.module('copayApp.services') - .factory('storageService', function(logHeader, fileStorageService, localStorageService, sjcl, $log, lodash, isCordova) { + .factory('storageService', function(logHeader, fileStorageService, localStorageService, sjcl, $log, lodash, platformInfo) { var root = {}; // File storage is not supported for writing according to // https://github.com/apache/cordova-plugin-file/#supported-platforms - var shouldUseFileStorage = isCordova && !isMobile.Windows(); + var shouldUseFileStorage = platformInfo.isCordova && !platformInfo.isWP; $log.debug('Using file storage:', shouldUseFileStorage);