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)