From d91628af545b2e330e526de0332b7d878bba9a8d Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 23 Feb 2016 09:49:07 -0300 Subject: [PATCH 1/4] fix delete wallet goHome --- src/js/controllers/preferencesDelete.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/controllers/preferencesDelete.js b/src/js/controllers/preferencesDelete.js index d04aef6ae..e70f83eaf 100644 --- a/src/js/controllers/preferencesDelete.js +++ b/src/js/controllers/preferencesDelete.js @@ -56,6 +56,7 @@ angular.module('copayApp.controllers').controller('preferencesDeleteWalletContro notification.success(gettextCatalog.getString('Success'), gettextCatalog.getString('The wallet "{{walletName}}" was deleted', { walletName: walletName })); + go.walletHome(); } }); }; From c831f4ce8c520ebab46127ee71ab035e1d9bc57c Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 23 Feb 2016 09:54:35 -0300 Subject: [PATCH 2/4] fix locking amount in send --- src/js/controllers/index.js | 5 ++++- src/js/controllers/walletHome.js | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index 49415116d..2f6af493e 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -79,7 +79,10 @@ angular.module('copayApp.controllers').controller('indexController', function($r $log.debug('Cleaning Index Instance'); lodash.each(self, function(v, k) { if (lodash.isFunction(v)) return; - if (vanillaScope[k]) return; + if (vanillaScope[k]) { + self[k] = vanillaScope[k]; + return; + } // This are to prevent flicker in mobile: if (k == 'hasProfile') return; diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 144f6867c..412390955 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -56,7 +56,10 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi $log.debug('Cleaning WalletHome Instance'); lodash.each(self, function(v, k) { if (lodash.isFunction(v)) return; - if (vanillaScope[k]) return; + if (vanillaScope[k]) { + self[k] = vanillaScope[k]; + return; + } delete self[k]; }); @@ -823,7 +826,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi }, 1); }; - +// subscription this.setOngoingProcess = function(name) { var self = this; self.blockUx = !!name; From 0dfcde57f3ae23d924d73642d54fe1bfa69fc967 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 23 Feb 2016 10:33:40 -0300 Subject: [PATCH 3/4] fix changing wallet when a tab is selected --- src/js/controllers/index.js | 10 +++++----- src/js/controllers/walletHome.js | 5 +++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index 2f6af493e..bd5ede5c3 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -79,19 +79,19 @@ angular.module('copayApp.controllers').controller('indexController', function($r $log.debug('Cleaning Index Instance'); lodash.each(self, function(v, k) { if (lodash.isFunction(v)) return; - if (vanillaScope[k]) { - self[k] = vanillaScope[k]; - return; - } - // This are to prevent flicker in mobile: if (k == 'hasProfile') return; + if (k == 'tab') return; if (k == 'noFocusedWallet') return; if (k == 'backgroundColor') return; if (k == 'loadingWallet') { self.loadingWallet = true; return; } + if (vanillaScope[k]) { + self[k] = vanillaScope[k]; + return; + } delete self[k]; }); diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 412390955..2b3c24c12 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -52,6 +52,10 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi var disableFocusListener = $rootScope.$on('Local/NewFocusedWallet', function() { self.addr = null; self.resetForm(); + if (profileService.focusedClient) { + self.setAddress(); + self.setSendFormInputs(); + } $log.debug('Cleaning WalletHome Instance'); lodash.each(self, function(v, k) { @@ -60,6 +64,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi self[k] = vanillaScope[k]; return; } + if (k == 'isRateAvailable') return; delete self[k]; }); From d572ddd2e999b37f6be2806b9bedf11d689a17e9 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 23 Feb 2016 11:12:49 -0300 Subject: [PATCH 4/4] timing changes when switching wallets --- src/js/controllers/index.js | 39 +++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index bd5ede5c3..2bc49f289 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -286,6 +286,8 @@ angular.module('copayApp.controllers').controller('indexController', function($r tries = tries || 0; opts = opts || {}; + var walletId = profileService.focusedClient.credentials.walletId + if (opts.untilItChanges && lodash.isUndefined(initStatusHash)) { initStatusHash = _walletStatusHash(); $log.debug('Updating status until it changes. initStatusHash:' + initStatusHash) @@ -312,6 +314,14 @@ angular.module('copayApp.controllers').controller('indexController', function($r var fc = profileService.focusedClient; if (!fc) return; + + // If not untilItChanges...trigger history update now + if (opts.triggerTxUpdate && !opts.untilItChanges) { + $timeout(function() { + self.debounceUpdateHistory(); + }, 1); + } + $timeout(function() { if (!opts.quiet) @@ -321,7 +331,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r get(function(err, walletStatus) { var currentStatusHash = _walletStatusHash(walletStatus); $log.debug('Status update. hash:' + currentStatusHash + ' Try:' + tries); - if (!err && opts.untilItChanges && initStatusHash == currentStatusHash && tries < 7) { + if (!err && opts.untilItChanges && initStatusHash == currentStatusHash && tries < 7 && walletId == profileService.focusedClient.credentials.walletId) { return $timeout(function() { $log.debug('Retrying update... Try:' + tries) return self.updateAll({ @@ -331,9 +341,14 @@ angular.module('copayApp.controllers').controller('indexController', function($r }, initStatusHash, ++tries); }, 1400 * tries); } + + if (walletId != profileService.focusedClient.credentials.walletId) + return; + if (!opts.quiet) self.setOngoingProcess('updatingStatus', false); + if (err) { self.handleError(err); return; @@ -358,7 +373,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r $rootScope.$emit('Local/BalanceUpdated', walletStatus.balance); $rootScope.$apply(); - if (opts.triggerTxUpdate) { + if (opts.triggerTxUpdate && opts.untilItChanges) { $timeout(function() { self.debounceUpdateHistory(); }, 1); @@ -878,12 +893,17 @@ angular.module('copayApp.controllers').controller('indexController', function($r var confirmedTxs = self.removeSoftConfirmedTx(txsFromLocal); var endingTxid = confirmedTxs[0] ? confirmedTxs[0].txid : null; + // First update if (walletId == profileService.focusedClient.credentials.walletId) { self.completeHistory = txsFromLocal; self.setCompactTxHistory(); } + if (historyUpdateInProgress[walletId]) + return; + + historyUpdateInProgress[walletId] = true; function getNewTxs(newTxs, skip, i_cb) { self.getTxsFromServer(client, skip, endingTxid, requestLimit, function(err, res, shouldContinue) { @@ -978,14 +998,13 @@ angular.module('copayApp.controllers').controller('indexController', function($r if (!fc) return; var walletId = fc.credentials.walletId; - if (!fc.isComplete() || historyUpdateInProgress[walletId]) { - self.updatingTxHistory = historyUpdateInProgress[walletId]; + if (!fc.isComplete()) { return; } $log.debug('Updating Transaction History'); self.txHistoryError = false; - historyUpdateInProgress[walletId] = self.updatingTxHistory = true; + self.updatingTxHistory = true; $timeout(function() { self.updateLocalTxHistory(fc, function(err) { @@ -1015,7 +1034,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r self.throttledUpdateHistory = lodash.throttle(function() { self.updateHistory(); - }, 10000); + }, 5000); self.showErrorPopup = function(msg, cb) { $log.warn('Showing err popup:' + msg); @@ -1050,9 +1069,9 @@ angular.module('copayApp.controllers').controller('indexController', function($r }; self.openMenu = function() { - profileService.isDisclaimerAccepted(function(val){ + profileService.isDisclaimerAccepted(function(val) { if (val) go.swipe(true); - else + else $log.debug('Disclaimer not accepted, cannot open menu'); }); }; @@ -1312,7 +1331,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r quiet: true }); self.debounceUpdateHistory(); - }, 4000, { + }, 2000, { leading: false, trailing: true }); @@ -1465,7 +1484,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r $rootScope.$on('Local/NewFocusedWallet', function() { self.setUxLanguage(); self.setFocusedWallet(); - self.debounceUpdateHistory(); + self.updateHistory(); storageService.getCleanAndScanAddresses(function(err, walletId) { if (walletId && profileService.walletClients[walletId]) { $log.debug('Clear last address cache and Scan ', walletId);