From fd32a1ec915caa37252f8d9dfe8bcb0532193cda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Tue, 24 Nov 2015 17:16:52 -0300 Subject: [PATCH] fix blank page --- src/js/controllers/disclaimer.js | 12 ++++----- src/js/routes.js | 42 ++++++++++++++++++-------------- src/js/services/go.js | 21 ++++++++++------ 3 files changed, 44 insertions(+), 31 deletions(-) diff --git a/src/js/controllers/disclaimer.js b/src/js/controllers/disclaimer.js index b07b97462..7e3b5a244 100644 --- a/src/js/controllers/disclaimer.js +++ b/src/js/controllers/disclaimer.js @@ -1,10 +1,9 @@ 'use strict'; angular.module('copayApp.controllers').controller('disclaimerController', - function($scope, $timeout, $log, profileService, isCordova, storageService, gettextCatalog, uxLanguage, go) { + function($scope, $timeout, $log, profileService, isCordova, storageService, applicationService, gettextCatalog, uxLanguage, go) { self = this; $scope.lang = uxLanguage.currentLanguage; - $scope.goHome = function() { storageService.setCopayDisclaimerFlag(function(err) { go.walletHome(); @@ -16,14 +15,13 @@ angular.module('copayApp.controllers').controller('disclaimerController', profileService.create({}, function(err) { if (err) { - + $log.warn(err); if (err == 'EEXISTS') { storageService.getCopayDisclaimerFlag(function(err, val) { if (val) return go.walletHome(); $scope.creatingProfile = false; }); } else { - $log.warn(err); $scope.error = err; $scope.$apply(); $timeout(function() { @@ -38,6 +36,8 @@ angular.module('copayApp.controllers').controller('disclaimerController', }); }; - create(); - + if (!profileService.profile) + create(); + else + applicationService.restart(); }); diff --git a/src/js/routes.js b/src/js/routes.js index 00bce5d32..705bd736c 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -457,27 +457,33 @@ angular url: '/cordova/:status/:isHome', views: { 'main': { - controller: function($rootScope, $state, $stateParams, $timeout, go, isCordova, storageService) { + controller: function($rootScope, $state, $log, $stateParams, $timeout, go, isCordova, storageService) { + + if ($stateParams.status == "pause") + return; - switch ($stateParams.status) { - case 'resume': - $rootScope.$emit('Local/Resume'); - break; - case 'backbutton': - if (isCordova && $stateParams.isHome == 'true' && !$rootScope.modalOpened) { - navigator.app.exitApp(); - } else { - $rootScope.$emit('closeModal'); - } - break; - }; storageService.getCopayDisclaimerFlag(function(err, val) { - if (!val) navigator.app.exitApp(); - $timeout(function() { - $rootScope.$emit('Local/SetTab', 'walletHome', true); - }, 100); - go.walletHome(); + $log.debug('### State: ', $stateParams.status); + switch ($stateParams.status) { + case 'resume': + $rootScope.$emit('Local/Resume'); + break; + case 'backbutton': + var shouldExit = $stateParams.isHome == 'true' || !val; + if (isCordova && shouldExit && !$rootScope.modalOpened) { + return navigator.app.exitApp(); + } else { + $rootScope.$emit('closeModal'); + } + break; + }; + + if (val) { + go.walletHome(true); + } else { + $state.transitionTo('disclaimer'); + } }); } } diff --git a/src/js/services/go.js b/src/js/services/go.js index eb09e5d41..0ae7fa993 100644 --- a/src/js/services/go.js +++ b/src/js/services/go.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.services').factory('go', function($window, $rootScope, $location, $state, profileService, nodeWebkit) { +angular.module('copayApp.services').factory('go', function($window, $rootScope, $location, $state, $timeout, profileService, nodeWebkit) { var root = {}; var hideSidebars = function() { @@ -32,8 +32,7 @@ angular.module('copayApp.services').factory('go', function($window, $rootScope, root.openExternalLink = function(url, target) { if (nodeWebkit.isDefined()) { nodeWebkit.openExternalLink(url); - } - else { + } else { target = target || '_blank'; var ref = window.open(url, target, 'location=no'); } @@ -53,14 +52,22 @@ angular.module('copayApp.services').factory('go', function($window, $rootScope, toggleSidebar(invert); }; - root.walletHome = function() { + root.walletHome = function(delayed) { var fc = profileService.focusedClient; if (fc && !fc.isComplete()) { root.path('copayers'); } else { - root.path('walletHome', function() { - $rootScope.$emit('Local/SetTab', 'walletHome', true); - }); + if (delayed) { + $timeout(function() { + root.path('walletHome', function() { + $rootScope.$emit('Local/SetTab', 'walletHome', true); + }); + }, 100); + } else { + root.path('walletHome', function() { + $rootScope.$emit('Local/SetTab', 'walletHome', true); + }); + } } };