migration to platformInfo WIP
Conflicts: src/js/controllers/buyGlidera.js src/js/controllers/walletHome.js src/js/services/localStorage.js
This commit is contained in:
parent
36cf4f0560
commit
dd1981a26c
23 changed files with 108 additions and 66 deletions
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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 = ''
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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') {
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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 = {};
|
||||
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 {};
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue