diff --git a/bower.json b/bower.json index 9343f9afb..efb529612 100644 --- a/bower.json +++ b/bower.json @@ -17,7 +17,7 @@ "foundation-icon-fonts": "*", "ng-lodash": "~0.2.0", "angular-moment": "~0.9.0", - "angular-bitcore-wallet-client": "^0.0.20", + "angular-bitcore-wallet-client": "^0.0.21", "angular-ui-router": "~0.2.13", "qrcode-decoder-js": "*", "fastclick": "*", diff --git a/public/views/preferences.html b/public/views/preferences.html index de96fec3d..fb2a3ab46 100644 --- a/public/views/preferences.html +++ b/public/views/preferences.html @@ -21,9 +21,9 @@ Backup -
Permanently delete this wallet. WARNING: this action cannot be reversed.
+Permanently delete this wallet. THIS ACTION CANNONT BE REVERSED
diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index f398af13c..f7199c1e9 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -110,9 +110,9 @@ angular.module('copayApp.controllers').controller('indexController', function($r if (self.tab === tab && !reset) return; - if (! document.getElementById('menu-' + tab) && ++tries<5) { + if (!document.getElementById('menu-' + tab) && ++tries < 5) { return $timeout(function() { - self.setTab(tab,reset, tries); + self.setTab(tab, reset, tries); }, 300); } @@ -564,7 +564,10 @@ angular.module('copayApp.controllers').controller('indexController', function($r self.debouncedUpdate = lodash.throttle(function() { self.updateAll(); self.updateTxHistory(); - }, 4000, {leading: false, trailing: true}); + }, 4000, { + leading: false, + trailing: true + }); // No need ot listing to Local/Resume since @@ -578,14 +581,20 @@ angular.module('copayApp.controllers').controller('indexController', function($r $rootScope.$on('Local/Online', function(event) { self.isOffline = false; + self.offLineSince = null; }); + self.offLineSince = null;; $rootScope.$on('Local/Offline', function(event) { $log.debug('### Offline event'); - self.isOffline = true; - $timeout(function() { - $rootScope.$apply(); - }); + if (!self.offLineSince) self.offLineSince = Date.now(); + + if (Date.now() - self.offLineSince > 10000) { + self.isOffline = true; + $timeout(function() { + $rootScope.$apply(); + }); + } }); $rootScope.$on('Local/BackupDone', function(event) { @@ -629,9 +638,10 @@ angular.module('copayApp.controllers').controller('indexController', function($r }); $rootScope.$on('Local/WalletImported', function(event, walletId) { - storageService.setBackupFlag(walletId, function() {}); - storageService.clearLastAddress(walletId, function(err) { - self.startScan(walletId); + storageService.setBackupFlag(walletId, function() { + storageService.clearLastAddress(walletId, function(err) { + self.startScan(walletId); + }); }); }); diff --git a/src/js/controllers/preferences.js b/src/js/controllers/preferences.js index 4c05f0147..90e9777ec 100644 --- a/src/js/controllers/preferences.js +++ b/src/js/controllers/preferences.js @@ -2,9 +2,6 @@ angular.module('copayApp.controllers').controller('preferencesController', function($scope, $rootScope, $filter, $timeout, $modal, $log, lodash, configService, profileService) { - this.error = null; - this.success = null; - var config = configService.getSync(); this.unitName = config.wallet.settings.unitName; diff --git a/src/js/controllers/preferencesAdvanced.js b/src/js/controllers/preferencesAdvanced.js new file mode 100644 index 000000000..5cd7dca3c --- /dev/null +++ b/src/js/controllers/preferencesAdvanced.js @@ -0,0 +1,5 @@ +'use strict'; + +angular.module('copayApp.controllers').controller('preferencesAdvancedController', + function($scope) { + }); diff --git a/src/js/controllers/preferencesBwsUrl.js b/src/js/controllers/preferencesBwsUrl.js index fd0d5c8bd..cf4483f70 100644 --- a/src/js/controllers/preferencesBwsUrl.js +++ b/src/js/controllers/preferencesBwsUrl.js @@ -1,12 +1,9 @@ 'use strict'; angular.module('copayApp.controllers').controller('preferencesBwsUrlController', - function($scope, $rootScope, $filter, $timeout, $modal, balanceService, notification, backupService, profileService, configService, isMobile, isCordova, go, rateService, applicationService, bwcService) { + function($scope, configService, isMobile, isCordova, go, applicationService ) { this.isSafari = isMobile.Safari(); this.isCordova = isCordova; - this.hideAdv = true; - this.hidePriv = true; - this.hideSecret = true; this.error = null; this.success = null; diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index 2cd874729..c229c7ab1 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -23,6 +23,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi this.isRateAvailable = false; this.showScanner = false; this.isMobile = isMobile.any(); + this.addr = null; var disableScannerListener = $rootScope.$on('dataScanned', function(event, data) { self.setForm(data); @@ -47,16 +48,12 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi var disableOnlineListener = $rootScope.$on('Local/Online', function() { // This is needed then the apps go to sleep - $timeout(function() { - self.bindTouchDown(); - }, 2000); + self.bindTouchDown(); }); var disableResumeListener = $rootScope.$on('Local/Resume', function() { // This is needed then the apps go to sleep - $timeout(function() { - self.bindTouchDown(); - }, 2000); + self.bindTouchDown(); }); @@ -390,8 +387,11 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi ['hamburger', 'menu-walletHome', 'menu-send', 'menu-receive', 'menu-history'].forEach(function(id) { var e = document.getElementById(id); if (e) e.addEventListener('touchstart', function() { + try { + event.preventDefault(); + } catch (e) {}; angular.element(e).triggerHandler('click'); - }); + }, true); }); } diff --git a/src/js/directives/ngSwipe.js b/src/js/directives/ngSwipe.js index 1ac4203e9..9b9343038 100644 --- a/src/js/directives/ngSwipe.js +++ b/src/js/directives/ngSwipe.js @@ -12,9 +12,9 @@ function makeSwipeDirective(directiveName, direction, eventName) { // The maximum vertical delta for a swipe should be less than 75px. var MAX_VERTICAL_DISTANCE = 75; // Vertical distance should not be more than a fraction of the horizontal distance. - var MAX_VERTICAL_RATIO = 0.3; + var MAX_VERTICAL_RATIO = 0.4; // At least a 30px lateral motion is necessary for a swipe. - var MIN_HORIZONTAL_DISTANCE = 25; + var MIN_HORIZONTAL_DISTANCE = 30; return function(scope, element, attr) { var swipeHandler = $parse(attr[directiveName]); diff --git a/src/js/routes.js b/src/js/routes.js index 3096b0d02..188ad0e57 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -53,8 +53,8 @@ angular try { if (window.cordova) console.log(args.join(' ')); - orig.apply(null, args); historicLog.add(level, args.join(' ')); + orig.apply(null, args); } catch (e) { console.log('Error at log decorator:', e); } @@ -279,6 +279,24 @@ angular } } }) + .state('preferencesAdvanced', { + url: '/preferencesAdvanced', + templateUrl: 'views/preferencesAdvanced.html', + walletShouldBeComplete: true, + needProfile: true, + views: { + 'main': { + templateUrl: 'views/preferencesAdvanced.html' + }, + 'topbar': { + templateUrl: 'views/includes/topbar.html', + controller: function($scope) { + $scope.titleSection = 'Advanced'; + $scope.goBackToState = 'preferences'; + } + } + } + }) .state('preferencesColor', { url: '/preferencesColor', templateUrl: 'views/preferencesColor.html', @@ -348,8 +366,9 @@ angular 'topbar': { templateUrl: 'views/includes/topbar.html', controller: function($scope, gettext) { - $scope.titleSection = gettext('Delete'); + $scope.titleSection = gettext('Delete Wallet'); $scope.goBackToState = 'preferences'; + $scope.goBackToState = 'preferencesAdvanced'; } } } @@ -490,7 +509,8 @@ angular preferences: 0, preferencesColor: 12, backup: 12, - delete: 12, + preferencesAdvanced: 12, + delete: 13, preferencesLanguage: 12, preferencesUnit: 12, preferencesAltCurrency: 12, @@ -510,7 +530,6 @@ angular }); $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) { - if (pageWeight[fromState.name] > pageWeight[toState.name]) { $rootScope.$emit('Animation/SwipeRight'); } else if (pageWeight[fromState.name] < pageWeight[toState.name]) { @@ -533,12 +552,13 @@ angular } } else { $log.debug('Profile loaded ... Starting UX.'); - $state.transitionTo(toState, toParams); + $state.transitionTo(toState.name || toState, toParams); } }); } if (profileService.focusedClient && !profileService.focusedClient.isComplete() && toState.walletShouldBeComplete) { + $state.transitionTo('copayers'); event.preventDefault(); } diff --git a/src/js/services/go.js b/src/js/services/go.js index a86bcbca0..e3b75dc54 100644 --- a/src/js/services/go.js +++ b/src/js/services/go.js @@ -47,7 +47,6 @@ angular.module('copayApp.services').factory('go', function($window, $rootScope, root.walletHome = function() { var fc = profileService.focusedClient; - if (fc && !fc.isComplete()) { root.path('copayers'); } else {