diff --git a/public/views/walletHome.html b/public/views/walletHome.html index dd46d60be..d62f1c9df 100644 --- a/public/views/walletHome.html +++ b/public/views/walletHome.html @@ -395,7 +395,11 @@ Not valid - + + + Destination wallet needs backup + + @@ -479,8 +483,8 @@ Cancel
-
diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index 875c1b8f2..03fe7bc2a 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -137,20 +137,10 @@ angular.module('copayApp.controllers').controller('indexController', function($r self.initGlidera(); self.setCustomBWSFlag(); - - $rootScope.$apply(); - if (fc.isPrivKeyExternal()) { - self.needsBackup = false; + profileService.isBackupNeeded(self.walletId, function(needsBackup) { + self.needsBackup = needsBackup; self.openWallet(); - } else { - storageService.getBackupFlag(self.walletId, function(err, val) { - if (!fc.credentials.mnemonic) - self.needsBackup = false; - else - self.needsBackup = self.network == 'testnet' ? false : !val; - self.openWallet(); - }); - } + }); }); }; @@ -1275,7 +1265,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r self.needsBackup = false; $log.debug('Backup done'); storageService.setBackupFlag(walletId || self.walletId, function(err) { - $log.debug('Backup done stored'); + $log.debug('Backup stored'); }); }); diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 528d1e305..5a890c508 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -25,8 +25,6 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi ret.isWindowsPhoneApp = isMobile.Windows() && isCordova; var vanillaScope = ret; - - var disableScannerListener = $rootScope.$on('dataScanned', function(event, data) { self.setForm(data); $rootScope.$emit('Local/SetTab', 'send'); @@ -94,8 +92,6 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi $rootScope.shouldHideMenuBar = false; }); - - this.onQrCodeScanned = function(data) { if (data) go.send(); $rootScope.$emit('dataScanned', data); @@ -124,6 +120,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi var confirm_msg = gettextCatalog.getString('Confirm'); this.openDestinationAddressModal = function(wallets, address) { + self.destinationWalletNeedsBackup = null; $rootScope.modalOpened = true; var fc = profileService.focusedClient; self.lockAddress = false; @@ -252,7 +249,10 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi return; } - $modalInstance.close(addr); + profileService.isBackupNeeded(walletId, function(needsBackup) { + self.destinationWalletNeedsBackup = needsBackup; + $modalInstance.close(addr); + }); }); }; }; @@ -984,11 +984,9 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi } }; - - this.resetForm = function() { this.resetError(); - this.paymentExpired = false; + this.destinationWalletNeedsBackup = null; this._paypro = null; this.lockedCurrentFeePerKb = null; @@ -1130,7 +1128,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi self._paypro = null; self.error = gettext('Cannot sign: The payment request has expired'); }; - }; + }; this.setFromUri = function(uri) { var self = this; diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 4c9033503..72ce940a3 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -174,6 +174,18 @@ angular.module('copayApp.services') }); }; + root.isBackupNeeded = function(walletId, cb) { + var c = root.getClient(walletId); + if (c.isPrivKeyExternal()) return cb(false); + if (!c.credentials.mnemonic) return cb(false); + if (c.credentials.network == 'testnet') return cb(false); + + storageService.getBackupFlag(walletId, function(err, val) { + if (err || val) return cb(false); + return cb(true); + }); + }; + root._seedWallet = function(opts, cb) { opts = opts || {}; if (opts.bwsurl)