From 9f0a1ae537bcff64fde3330a4b3f3e7fa5870c6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Tue, 26 Jan 2016 15:42:07 -0300 Subject: [PATCH] refactor --- src/js/controllers/index.js | 16 +++------------- src/js/services/profileService.js | 15 +++++++++------ src/js/services/pushNotificationsService.js | 13 +++++++++++-- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index a2fb1644a..842cc04dc 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -13,14 +13,6 @@ angular.module('copayApp.controllers').controller('indexController', function($r self.updatingTxHistory = {}; self.prevState = 'walletHome'; - if (self.usePushNotifications) { - storageService.getDeviceToken(function(err, token) { - $timeout(function() { - if (!token) pushNotificationsService.pushNotificationsInit(); - }, 5000); - }); - } - function strip(number) { return (parseFloat(number.toPrecision(12))); }; @@ -1233,7 +1225,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r self.updateRemotePreferences({ saveAll: true }, function() { - $log.debug('Remote preferences saved') + $log.debug('Remote preferences saved'); storageService.setRemotePrefsStoredFlag(function() {}); }); }); @@ -1293,10 +1285,8 @@ angular.module('copayApp.controllers').controller('indexController', function($r }); }); - $rootScope.$on('Local/pushNotificationsRegistration', function(event) { - var config = configService.getSync(); - if (self.usePushNotifications && config.pushNotifications.enabled) - pushNotificationsService.enableNotifications(profileService.walletClients); + $rootScope.$on('Local/pushNotificationsReady', function(event) { + pushNotificationsService.enableNotifications(profileService.walletClients); }); self.debouncedUpdate = lodash.throttle(function() { diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index f6da17d15..57076382a 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -132,12 +132,15 @@ angular.module('copayApp.services') if (err) return cb(err); root._setFocus(focusedWalletId, function() { $rootScope.$emit('Local/ProfileBound'); - root.isDisclaimerAccepted(function(val) { - if (!val) { - return cb(new Error('NONAGREEDDISCLAIMER: Non agreed disclaimer')); - } else { - return cb(); - } + storageService.getDeviceToken(function(err, token) { + if (!token) pushNotificationsService.pushNotificationsInit(); + root.isDisclaimerAccepted(function(val) { + if (!val) { + return cb(new Error('NONAGREEDDISCLAIMER: Non agreed disclaimer')); + } else { + return cb(); + } + }); }); }); }); diff --git a/src/js/services/pushNotificationsService.js b/src/js/services/pushNotificationsService.js index c1abb7013..132ccb43d 100644 --- a/src/js/services/pushNotificationsService.js +++ b/src/js/services/pushNotificationsService.js @@ -1,6 +1,6 @@ 'use strict'; angular.module('copayApp.services') - .factory('pushNotificationsService', function($http, $log, isMobile, storageService, configService, lodash, isCordova) { + .factory('pushNotificationsService', function($http, $rootScope, $log, isMobile, storageService, configService, lodash, isCordova) { var root = {}; var defaults = configService.getDefaults(); var usePushNotifications = isCordova && !isMobile.Windows(); @@ -8,12 +8,15 @@ angular.module('copayApp.services') root.pushNotificationsInit = function() { if (!usePushNotifications) return; + var config = configService.getSync(); + if (!config.pushNotifications.enabled) return; + var push = PushNotification.init(defaults.pushNotifications.config); push.on('registration', function(data) { $log.debug('Starting push notification registration'); storageService.setDeviceToken(data.registrationId, function() { - $rootScope.$emit('Local/pushNotificationsRegistration'); + $rootScope.$emit('Local/pushNotificationsReady'); }); }); @@ -36,6 +39,9 @@ angular.module('copayApp.services') root.enableNotifications = function(walletsClients) { if (!usePushNotifications) return; + var config = configService.getSync(); + if (!config.pushNotifications.enabled) return; + storageService.getDeviceToken(function(err, token) { lodash.forEach(walletsClients, function(walletClient) { var opts = {}; @@ -63,6 +69,9 @@ angular.module('copayApp.services') root.subscribe = function(opts, walletClient, cb) { if (!usePushNotifications) return; + var config = configService.getSync(); + if (!config.pushNotifications.enabled) return; + walletClient.pushNotificationsSubscribe(opts, function(err, resp) { if (err) return cb(err); return cb(null, resp);