prelim bitcoin address support for incoming data menu

This commit is contained in:
Marty Alcala 2016-10-18 15:45:09 -04:00
commit e9aaec3c68
3 changed files with 53 additions and 22 deletions

View file

@ -1,15 +1,18 @@
'use strict'; 'use strict';
angular.module('copayApp.directives') angular.module('copayApp.directives')
.directive('incomingDataMenu', function($timeout, $rootScope) { .directive('incomingDataMenu', function($timeout, $rootScope, bitcore) {
return { return {
restrict: 'E', restrict: 'E',
templateUrl: 'views/includes/incomingDataMenu.html', templateUrl: 'views/includes/incomingDataMenu.html',
link: function(scope, element, attrs) { link: function(scope, element, attrs) {
$rootScope.$on('incomingDataMenu.showMenu', function(event, data) { $rootScope.$on('incomingDataMenu.showMenu', function(event, data) {
$timeout(function() { $timeout(function() {
scope.data = data; scope.data = data.data;
scope.type = data.type;
scope.showMenu = true; scope.showMenu = true;
console.log('data', data);
}); });
}); });
scope.hide = function() { scope.hide = function() {

View file

@ -8,10 +8,10 @@ angular.module('copayApp.services').factory('incomingData', function($log, $ioni
$rootScope.$broadcast('incomingDataMenu.showMenu', data); $rootScope.$broadcast('incomingDataMenu.showMenu', data);
}; };
$timeout(function() { // $timeout(function() {
var data = 'https://bitpay.com'; // var data = 'https://bitpay.com';
root.redir(data); // root.redir(data);
}, 2000); // }, 2000);
root.redir = function(data) { root.redir = function(data) {
$log.debug('Processing incoming data:' +data); $log.debug('Processing incoming data:' +data);
@ -44,6 +44,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $ioni
data = sanitizeUri(data); data = sanitizeUri(data);
data = '1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX';
// BIP21 // BIP21
if (bitcore.URI.isValid(data)) { if (bitcore.URI.isValid(data)) {
@ -74,7 +75,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $ioni
getPayProDetails(data, function(err, details) { getPayProDetails(data, function(err, details) {
if(err) { if(err) {
console.log('getPayProDetails err', err); console.log('getPayProDetails err', err);
root.showMenu(data); root.showMenu({data: data, type: 'url'});
return; return;
} }
console.log('paypro details', details); console.log('paypro details', details);
@ -90,12 +91,14 @@ angular.module('copayApp.services').factory('incomingData', function($log, $ioni
}); });
// Plain Address // Plain Address
} else if (bitcore.Address.isValid(data, 'livenet')) { } else if (bitcore.Address.isValid(data, 'livenet')) {
return root.showMenu({data: data, type: 'bitcoinAddress'});
$state.go('tabs.send'); $state.go('tabs.send');
$timeout(function() { $timeout(function() {
$state.transitionTo('tabs.send.amount', {toAddress: data}); $state.transitionTo('tabs.send.amount', {toAddress: data});
}, 100); }, 100);
return true; return true;
} else if (bitcore.Address.isValid(data, 'testnet')) { } else if (bitcore.Address.isValid(data, 'testnet')) {
return root.showMenu({data: data, type: 'bitcoinAddress'});
$state.go('tabs.send'); $state.go('tabs.send');
$timeout(function() { $timeout(function() {
$state.transitionTo('tabs.send.amount', {toAddress: data}); $state.transitionTo('tabs.send.amount', {toAddress: data});

View file

@ -1,22 +1,47 @@
<action-sheet <action-sheet
action-sheet-show="showMenu"> action-sheet-show="showMenu">
<div class="incoming-data-menu__item head">
<div class="incoming-data-menu__header">Website</div> <div ng-show="type === 'url'">
<div class="incoming-data-menu__url"> <div class="incoming-data-menu__item head">
<div class="incoming-data-menu__url__icon"> <div class="incoming-data-menu__header">Website</div>
<img src="img/icon-lock-green.svg"> <div class="incoming-data-menu__url">
</div> <div class="incoming-data-menu__url__icon">
<div class="incoming-data-menu__url__text"> <img src="img/icon-lock-green.svg">
{{data}} </div>
<div class="incoming-data-menu__url__text">
{{data}}
</div>
</div> </div>
</div> </div>
<a class="incoming-data-menu__item item item-icon-right" ng-href="{{data}}" target="_blank">
<img src="img/icon-link-external.svg">
<div>Open website</div>
<i class="icon bp-arrow-right"></i>
</a>
<a class="incoming-data-menu__cancel item" ng-click="hide()">
Cancel
</a>
</div>
<div ng-show="type === 'bitcoinAddress'">
<div class="incoming-data-menu__item head">
<div class="incoming-data-menu__header">Bitcoin Address</div>
<div class="incoming-data-menu__url">
<div class="incoming-data-menu__url__icon">
<img src="img/icon-bitcoin-small.svg">
</div>
<div class="incoming-data-menu__url__text">
{{data}}
</div>
</div>
</div>
<a class="incoming-data-menu__item item item-icon-right" ng-href="{{data}}" target="_blank">
<img src="img/icon-link-external.svg">
<div>Open website</div>
<i class="icon bp-arrow-right"></i>
</a>
<a class="incoming-data-menu__cancel item" ng-click="hide()">
Cancel
</a>
</div> </div>
<a class="incoming-data-menu__item item item-icon-right" ng-href="{{data}}" target="_blank">
<img src="img/icon-link-external.svg">
<div>Open website</div>
<i class="icon bp-arrow-right"></i>
</a>
<a class="incoming-data-menu__cancel item" ng-click="hide()">
Cancel
</a>
</action-sheet> </action-sheet>