This commit is contained in:
Matias Alejo Garcia 2016-08-25 11:18:10 -03:00
commit d5d3f9ee28
No known key found for this signature in database
GPG key ID: 02470DB551277AB3
13 changed files with 310 additions and 119 deletions

View file

@ -1,16 +1,77 @@
'use strict';
angular.module('copayApp.directives')
.directive('qrScanner', function() {
.directive('qrScanner', function($rootScope, $timeout, $ionicModal, gettextCatalog, platformInfo) {
var isCordova = platformInfo.isCordova;
var isWP = platformInfo.isWP;
var isIOS = platformInfo.isIOS;
var controller = function($scope) {
var onSuccess = function(result) {
$timeout(function() {
window.plugins.spinnerDialog.hide();
}, 100);
if (isWP && result.cancelled) return;
$timeout(function() {
var data = isIOS ? result : result.text;
$scope.onScan({
data: data
});
}, 1000);
};
var onError = function(error) {
$timeout(function() {
window.plugins.spinnerDialog.hide();
}, 100);
};
$scope.cordovaOpenScanner = function() {
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() {
$ionicModal.fromTemplateUrl('views/modals/scanner.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function(modal) {
$scope.scannerModal = modal;
$scope.scannerModal.show();
});
};
$scope.openScanner = function() {
if (isCordova) {
$scope.cordovaOpenScanner();
} else {
$scope.modalOpenScanner();
}
};
$scope.setFn({theScanFn: $scope.openScanner});
};
return {
restrict: 'E',
scope: {
onScan: "&",
setFn: "&",
beforeScan: "&"
},
controller: 'tabScanController',
controller: controller,
replace: true,
template: '<a on-tap="openScanner()"><i class="icon ion-qr-scanner"></i></a>'
template: '<a ng-click="openScanner()"><i class="icon ion-qr-scanner"></i></a>'
}
});