From 328ec337e1fa9cb5384d4c95cff69f4b46752306 Mon Sep 17 00:00:00 2001 From: JDonadio Date: Thu, 20 Apr 2017 12:59:15 -0300 Subject: [PATCH] request PIN to disable it - add disabled options --- src/js/controllers/lockSetup.js | 41 +++++++++++++++++++++++++-------- www/views/lockSetup.html | 4 ++-- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/src/js/controllers/lockSetup.js b/src/js/controllers/lockSetup.js index b9ad3a431..bce070ae9 100644 --- a/src/js/controllers/lockSetup.js +++ b/src/js/controllers/lockSetup.js @@ -12,6 +12,7 @@ angular.module('copayApp.controllers').controller('lockSetupController', functio method: 'pin', label: gettextCatalog.getString('Lock by PIN'), needsBackup: null, + disabled: null, }, ]; @@ -20,15 +21,11 @@ angular.module('copayApp.controllers').controller('lockSetupController', functio method: 'fingerprint', label: gettextCatalog.getString('Lock by Fingerprint'), needsBackup: null, + disabled: null, }); } - var config = configService.getSync(); - var method = config.lock && config.lock.method; - if (!method) $scope.currentOption = $scope.options[0]; - else $scope.currentOption = lodash.find($scope.options, { - 'method': method - }); + checkAndSelectOption(); processWallets(); }; @@ -36,6 +33,26 @@ angular.module('copayApp.controllers').controller('lockSetupController', functio init(); }); + function checkAndSelectOption() { + var config = configService.getSync(); + var method = config.lock && config.lock.method; + + if (!method) { + $scope.currentOption = $scope.options[0]; + $scope.options[1].disabled = false; + $scope.options[2].disabled = false; + } else { + if (method == 'fingerprint') $scope.options[1].disabled = true; + if (method == 'pin') $scope.options[2].disabled = true; + $scope.currentOption = lodash.find($scope.options, { + 'method': method + }); + } + $timeout(function() { + $scope.$apply(); + }); + }; + function processWallets() { var wallets = profileService.getWallets(); var singleLivenetWallet = wallets.length == 1 && wallets[0].network == 'livenet' && wallets[0].needsBackup; @@ -73,9 +90,14 @@ angular.module('copayApp.controllers').controller('lockSetupController', functio var config = configService.getSync(); var savedMethod = config.lock && config.lock.method; - if (!selectedMethod) - saveConfig(); - else if (selectedMethod == 'fingerprint') { + if (!selectedMethod) { + if (!savedMethod) return; + if (savedMethod == 'pin') $state.transitionTo('tabs.pin', { + fromSettings: true, + locking: false, + }); + else saveConfig(); + } else if (selectedMethod == 'fingerprint') { if (savedMethod == 'pin') { askForDisablePin(function(disablePin) { if (disablePin) saveConfig('fingerprint'); @@ -116,6 +138,7 @@ angular.module('copayApp.controllers').controller('lockSetupController', functio configService.set(opts, function(err) { if (err) $log.debug(err); + checkAndSelectOption(); }); }; }); diff --git a/www/views/lockSetup.html b/www/views/lockSetup.html index 1bab91b8b..9ac50b6d6 100644 --- a/www/views/lockSetup.html +++ b/www/views/lockSetup.html @@ -6,8 +6,8 @@ - - {{opt.label}} + + {{opt.label}}