diff --git a/src/js/routes.js b/src/js/routes.js index e3ddbab3f..59202bea4 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -1088,7 +1088,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }); }) - .run(function($rootScope, $state, $location, $log, $timeout, $ionicHistory, $ionicPlatform, $window, appConfigService, lodash, platformInfo, profileService, uxLanguage, gettextCatalog, openURLService, storageService, scannerService, /* plugins START HERE => */ coinbaseService, glideraService, amazonService) { + .run(function($rootScope, $state, $location, $log, $timeout, $ionicHistory, $ionicPlatform, $window, appConfigService, lodash, platformInfo, profileService, uxLanguage, gettextCatalog, openURLService, storageService, scannerService, /* plugins START HERE => */ coinbaseService, glideraService, amazonService, bitpayCardService) { uxLanguage.init(); diff --git a/src/js/services/bitpayCardService.js b/src/js/services/bitpayCardService.js index bf3bb0440..08fbe8a77 100644 --- a/src/js/services/bitpayCardService.js +++ b/src/js/services/bitpayCardService.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.services').factory('bitpayCardService', function($log, $rootScope, lodash, storageService, bitauthService, platformInfo, moment, appIdentityService, bitpayService) { +angular.module('copayApp.services').factory('bitpayCardService', function($log, $rootScope, lodash, storageService, bitauthService, platformInfo, moment, appIdentityService, bitpayService, nextStepsService) { var root = {}; var _setError = function(msg, e) { @@ -66,6 +66,8 @@ angular.module('copayApp.services').factory('bitpayCardService', function($log, }); storageService.setBitpayDebitCards(bitpayService.getEnvironment().network, apiContext.pairData.email, cards, function(err) { + register(); + return cb(err, cards); }); }, function(data) { @@ -193,6 +195,7 @@ angular.module('copayApp.services').factory('bitpayCardService', function($log, $log.error('Error removing BitPay debit card: ' + err); return cb(err); } + register(); storageService.removeBitpayDebitCardHistory(cardId, cb); }); }; @@ -1244,6 +1247,26 @@ angular.module('copayApp.services').factory('bitpayCardService', function($log, 'bp002': 'default' }; + var nextStepItem = { + name: 'bitpaycard', + title: 'Add Bitpay VISA Card', + icon: 'icon-bitpay-card', + sref: 'tabs.bitpayCardIntro', + }; + + + var register = function() { + root.getCards(function(err, cards) { + if (lodash.isEmpty(cards)) { + nextStepsService.register(nextStepItem); + } else { + nextStepsService.unregister(nextStepItem); + // homeIntegrationsService.register(homeItem); + } + }); + }; + + register(); return root; }); diff --git a/src/js/services/nextStepsService.js b/src/js/services/nextStepsService.js index 641a910ec..566efd7be 100644 --- a/src/js/services/nextStepsService.js +++ b/src/js/services/nextStepsService.js @@ -14,17 +14,21 @@ }; root.unregister = function(serviceName) { + + var newS = lodash.filter(services, function(x) { + return x.name != serviceName; + }); + + // Found? + if (newS.length == services.length) return; + $log.info('Removing NextSteps entry:' + serviceName); - var newS = lodash.filter(services, function(x) { - return x.name!=serviceName; - }); + // This is to preserve services pointer + while (services.length) + services.pop(); - // This is to preserve services pointer - while(services.length) - services.pop(); - - while(newS.length) - services.push(newS.pop()); + while (newS.length) + services.push(newS.pop()); }; root.get = function() { diff --git a/www/views/includes/homeIntegrations.html b/www/views/includes/homeIntegrations.html new file mode 100644 index 000000000..06dae8ae7 --- /dev/null +++ b/www/views/includes/homeIntegrations.html @@ -0,0 +1,20 @@ +