From cc2853e8276e4661c56533a47e55fc624e2894ba Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 31 May 2016 16:52:38 -0300 Subject: [PATCH] ref controllers --- src/js/controllers/index.js | 7 +- src/js/controllers/sidebar.js | 4 +- src/js/directives/qrScanner.js | 317 +++++++++++++++++---------------- src/js/services/txStatus.js | 3 +- 4 files changed, 169 insertions(+), 162 deletions(-) diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index c7b9a18ff..94f502c29 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -1,12 +1,13 @@ 'use strict'; -angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, latestReleaseService, bwcService, pushNotificationsService, lodash, go, profileService, configService, rateService, storageService, addressService, gettext, gettextCatalog, amMoment, nodeWebkit, addonManager, bwsError, txFormatService, uxLanguage, glideraService, coinbaseService, platformInfo, addressbookService, walletService) { +angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, latestReleaseService, bwcService, pushNotificationsService, lodash, go, profileService, configService, rateService, storageService, addressService, gettext, gettextCatalog, amMoment, addonManager, bwsError, txFormatService, uxLanguage, glideraService, coinbaseService, platformInfo, addressbookService, walletService) { var self = this; var SOFT_CONFIRMATION_LIMIT = 12; var errors = bwcService.getErrors(); var historyUpdateInProgress = {}; var isChromeApp = platformInfo.isChromeApp; var isCordova = platformInfo.isCordova; + var isNW = platformInfo.isNW; var ret = {}; ret.isCordova = isCordova; @@ -48,7 +49,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r ret.tab = 'walletHome'; var vanillaScope = ret; - if (nodeWebkit.isDefined()) { + if (isNW) { latestReleaseService.checkLatestRelease(function(err, newRelease) { if (err) { $log.warn(err); @@ -741,7 +742,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r $log.info('CSV generation not available in mobile'); return; } - var isNode = nodeWebkit.isDefined(); + var isNode = isNW; var fc = profileService.focusedClient; var c = fc.credentials; if (!fc.isComplete()) return; diff --git a/src/js/controllers/sidebar.js b/src/js/controllers/sidebar.js index b9efcd88c..af34c6f57 100644 --- a/src/js/controllers/sidebar.js +++ b/src/js/controllers/sidebar.js @@ -1,9 +1,9 @@ 'use strict'; angular.module('copayApp.controllers').controller('sidebarController', - function($rootScope, $timeout, lodash, profileService, configService, go, isMobile, isCordova) { + function($rootScope, $timeout, lodash, profileService, configService, go, platformInfo) { var self = this; - self.isWindowsPhoneApp = isMobile.Windows() && isCordova; + self.isWindowsPhoneApp = platformInfo.isWP && platformInfo.isCordova; self.walletSelection = false; // wallet list change diff --git a/src/js/directives/qrScanner.js b/src/js/directives/qrScanner.js index ea3ae79e5..9a659104d 100644 --- a/src/js/directives/qrScanner.js +++ b/src/js/directives/qrScanner.js @@ -1,174 +1,179 @@ 'use strict'; angular.module('copayApp.directives') - .directive('qrScanner', ['$rootScope', '$timeout', '$modal', 'isCordova', 'gettextCatalog', 'isMobile', - function($rootScope, $timeout, $modal, isCordova, gettextCatalog, isMobile) { + .directive('qrScanner', function($rootScope, $timeout, $modal, gettextCatalog, platformInfo) { - var controller = function($scope) { + var isCordova = platformInfo.isCordova; + var isWP = platformInfo.isWP; + var isIOS = platformInfo.isIOS; - var onSuccess = function(result) { - $timeout(function() { - window.plugins.spinnerDialog.hide(); - window.ignoreMobilePause = false; - }, 100); - if (isMobile.Windows() && result.cancelled) return; + var controller = function($scope) { - $timeout(function() { - var data = isMobile.iOS() ? result : result.text; - $scope.onScan({ data: data }); - }, 1000); - }; + var onSuccess = function(result) { + $timeout(function() { + window.plugins.spinnerDialog.hide(); + window.ignoreMobilePause = false; + }, 100); + if (isWP && result.cancelled) return; - var onError = function(error) { - $timeout(function() { - window.ignoreMobilePause = false; - window.plugins.spinnerDialog.hide(); - }, 100); - }; + $timeout(function() { + var data = isiOS ? result : result.text; + $scope.onScan({ + data: data + }); + }, 1000); + }; - $scope.cordovaOpenScanner = function() { - window.ignoreMobilePause = true; - window.plugins.spinnerDialog.show(null, gettextCatalog.getString('Preparing camera...'), true); - $timeout(function() { - if (isMobile.iOS()) { - cloudSky.zBar.scan({}, onSuccess, onError); - } else { - cordova.plugins.barcodeScanner.scan(onSuccess, onError); + var onError = function(error) { + $timeout(function() { + window.ignoreMobilePause = false; + window.plugins.spinnerDialog.hide(); + }, 100); + }; + + $scope.cordovaOpenScanner = function() { + window.ignoreMobilePause = true; + window.plugins.spinnerDialog.show(null, gettextCatalog.getString('Preparing camera...'), true); + $timeout(function() { + if (isIOS) { + cloudSky.zBar.scan({}, onSuccess, onError); + } else { + cordova.plugins.barcodeScanner.scan(onSuccess, onError); + } + if ($scope.beforeScan) { + $scope.beforeScan(); + } + }, 100); + }; + + $scope.modalOpenScanner = function() { + var parentScope = $scope; + var ModalInstanceCtrl = function($scope, $rootScope, $modalInstance) { + // QR code Scanner + var video; + var canvas; + var $video; + var context; + var localMediaStream; + var prevResult; + + var _scan = function(evt) { + if (localMediaStream) { + context.drawImage(video, 0, 0, 300, 225); + try { + qrcode.decode(); + } catch (e) { + //qrcodeError(e); } - if ($scope.beforeScan) { - $scope.beforeScan(); + } + $timeout(_scan, 800); + }; + + var _scanStop = function() { + if (localMediaStream && localMediaStream.active) { + var localMediaStreamTrack = localMediaStream.getTracks(); + for (var i = 0; i < localMediaStreamTrack.length; i++) { + localMediaStreamTrack[i].stop(); } - }, 100); + } else { + try { + localMediaStream.stop(); + } catch (e) { + // Older Chromium not support the STOP function + }; + } + localMediaStream = null; + video.src = ''; }; - $scope.modalOpenScanner = function() { - var parentScope = $scope; - var ModalInstanceCtrl = function($scope, $rootScope, $modalInstance) { - // QR code Scanner - var video; - var canvas; - var $video; - var context; - var localMediaStream; - var prevResult; - - var _scan = function(evt) { - if (localMediaStream) { - context.drawImage(video, 0, 0, 300, 225); - try { - qrcode.decode(); - } catch (e) { - //qrcodeError(e); - } - } - $timeout(_scan, 800); - }; - - var _scanStop = function() { - if (localMediaStream && localMediaStream.active) { - var localMediaStreamTrack = localMediaStream.getTracks(); - for (var i = 0; i < localMediaStreamTrack.length; i++) { - localMediaStreamTrack[i].stop(); - } - } else { - try { - localMediaStream.stop(); - } catch(e) { - // Older Chromium not support the STOP function - }; - } - localMediaStream = null; - video.src = ''; - }; - - qrcode.callback = function(data) { - if (prevResult != data) { - prevResult = data; - return; - } - _scanStop(); - $modalInstance.close(data); - }; - - var _successCallback = function(stream) { - video.src = (window.URL && window.URL.createObjectURL(stream)) || stream; - localMediaStream = stream; - video.play(); - $timeout(_scan, 1000); - }; - - var _videoError = function(err) { - $scope.cancel(); - }; - - var setScanner = function() { - navigator.getUserMedia = navigator.getUserMedia || - navigator.webkitGetUserMedia || navigator.mozGetUserMedia || - navigator.msGetUserMedia; - window.URL = window.URL || window.webkitURL || - window.mozURL || window.msURL; - }; - - $scope.init = function() { - setScanner(); - $timeout(function() { - if (parentScope.beforeScan) { - parentScope.beforeScan(); - } - canvas = document.getElementById('qr-canvas'); - context = canvas.getContext('2d'); - - - video = document.getElementById('qrcode-scanner-video'); - $video = angular.element(video); - canvas.width = 300; - canvas.height = 225; - context.clearRect(0, 0, 300, 225); - - navigator.getUserMedia({ - video: true - }, _successCallback, _videoError); - }, 500); - }; - - $scope.cancel = function() { - _scanStop(); - $modalInstance.dismiss('cancel'); - }; - }; - - var modalInstance = $modal.open({ - templateUrl: 'views/modals/scanner.html', - windowClass: 'full', - controller: ModalInstanceCtrl, - backdrop : 'static', - keyboard: false - }); - modalInstance.result.then(function(data) { - parentScope.onScan({ data: data }); - }); - + qrcode.callback = function(data) { + if (prevResult != data) { + prevResult = data; + return; + } + _scanStop(); + $modalInstance.close(data); }; - $scope.openScanner = function() { - if (isCordova) { - $scope.cordovaOpenScanner(); - } - else { - $scope.modalOpenScanner(); - } + var _successCallback = function(stream) { + video.src = (window.URL && window.URL.createObjectURL(stream)) || stream; + localMediaStream = stream; + video.play(); + $timeout(_scan, 1000); + }; + + var _videoError = function(err) { + $scope.cancel(); + }; + + var setScanner = function() { + navigator.getUserMedia = navigator.getUserMedia || + navigator.webkitGetUserMedia || navigator.mozGetUserMedia || + navigator.msGetUserMedia; + window.URL = window.URL || window.webkitURL || + window.mozURL || window.msURL; + }; + + $scope.init = function() { + setScanner(); + $timeout(function() { + if (parentScope.beforeScan) { + parentScope.beforeScan(); + } + canvas = document.getElementById('qr-canvas'); + context = canvas.getContext('2d'); + + + video = document.getElementById('qrcode-scanner-video'); + $video = angular.element(video); + canvas.width = 300; + canvas.height = 225; + context.clearRect(0, 0, 300, 225); + + navigator.getUserMedia({ + video: true + }, _successCallback, _videoError); + }, 500); + }; + + $scope.cancel = function() { + _scanStop(); + $modalInstance.dismiss('cancel'); }; }; - return { - restrict: 'E', - scope: { - onScan: "&", - beforeScan: "&" - }, - controller: controller, - replace: true, - template: '' + var modalInstance = $modal.open({ + templateUrl: 'views/modals/scanner.html', + windowClass: 'full', + controller: ModalInstanceCtrl, + backdrop: 'static', + keyboard: false + }); + modalInstance.result.then(function(data) { + parentScope.onScan({ + data: data + }); + }); + + }; + + $scope.openScanner = function() { + if (isCordova) { + $scope.cordovaOpenScanner(); + } else { + $scope.modalOpenScanner(); } - } - ]); + }; + }; + + return { + restrict: 'E', + scope: { + onScan: "&", + beforeScan: "&" + }, + controller: controller, + replace: true, + template: '' + } + }); diff --git a/src/js/services/txStatus.js b/src/js/services/txStatus.js index 78253c7f1..af73da30a 100644 --- a/src/js/services/txStatus.js +++ b/src/js/services/txStatus.js @@ -1,7 +1,8 @@ 'use strict'; -angular.module('copayApp.services').factory('txStatus', function($modal, lodash, profileService, $timeout, txFormatService, isCordova) { +angular.module('copayApp.services').factory('txStatus', function($modal, lodash, profileService, $timeout, txFormatService, platformInfo) { var root = {}; + var isCordova = platformInfo.isCordova; root.notify = function(txp, cb) { var fc = profileService.focusedClient;