diff --git a/src/js/controllers/sendFlowController.js b/src/js/controllers/sendFlowController.js
new file mode 100644
index 000000000..ec29d7b50
--- /dev/null
+++ b/src/js/controllers/sendFlowController.js
@@ -0,0 +1,69 @@
+'use strict';
+
+angular.module('copayApp.controllers').controller('sendFlowController', function($scope, $rootScope, $state, $stateParams, $log, configService, gettextCatalog, profileService) {
+
+ var unitToSatoshi;
+ var satToUnit;
+ var unitDecimals;
+ var satToBtc;
+
+ $scope.$on("$ionicView.beforeEnter", function(event, data) {
+ var config = configService.getSync().wallet.settings;
+
+ $scope.specificAmount = $scope.specificAlternativeAmount = '';
+ unitToSatoshi = config.unitToSatoshi;
+ satToUnit = 1 / unitToSatoshi;
+ satToBtc = 1 / 100000000;
+ unitDecimals = config.unitDecimals;
+
+ // in SAT ALWAYS
+ if ($stateParams.toAmount) {
+ $scope.requestAmount = (($stateParams.toAmount) * satToUnit).toFixed(unitDecimals);
+ $scope.isPaymentRequest = true;
+ }
+
+ console.log(data, $stateParams);
+
+ $scope.params = $stateParams;
+ });
+
+ $scope.$on("$ionicView.enter", function(event, data) {
+ console.log(data, $stateParams);
+ $scope.type = data.stateParams.fromWalletId ? 'destination' : 'origin'; // origin || destination
+ $scope.coin = false; // Wallets to show (for destination screen)
+ $scope.walletsEmpty = [];
+ // Show price-header
+
+ if ($scope.type === 'origin') {
+ $scope.headerTitle = gettextCatalog.getString('Choose a wallet to send from');
+ $scope.walletsEmpty = profileService.getWallets({coin: $scope.coin, hasNoFunds: true});
+ } else if ($scope.type === 'destination') {
+
+ $scope.fromWallet = profileService.getWallet(data.stateParams.fromWalletId);
+ $scope.coin = $scope.fromWallet.coin;
+
+ $scope.headerTitle = gettextCatalog.getString('Choose a wallet to send to');
+ }
+
+ if (!$scope.coin || $scope.coin === 'bch') {
+ $scope.walletsBch = profileService.getWallets({coin: 'bch', hasFunds: $scope.type==='origin'});
+ }
+ if (!$scope.coin || $scope.coin === 'btc') {
+ $scope.walletsBtc = profileService.getWallets({coin: 'btc', hasFunds: $scope.type === 'origin'});
+ }
+
+ configService.whenAvailable(function(config) {
+ $scope.selectedPriceDisplay = config.wallet.settings.priceDisplay;
+ });
+ });
+
+ $scope.useWallet = function(wallet) {
+ if ($scope.type === 'origin') {
+ $scope.params['fromWalletId'] = wallet.id;
+ $state.transitionTo('tabs.send.destination', $scope.params);
+ } else {
+ $scope.params['toWalletId'] = wallet.id;
+ $state.transitionTo('tabs.send.amount', $scope.params);
+ }
+ };
+});
\ No newline at end of file
diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js
index 99265457d..8e0ae6b92 100644
--- a/src/js/controllers/tab-send.js
+++ b/src/js/controllers/tab-send.js
@@ -54,42 +54,42 @@ angular.module('copayApp.controllers').controller('tabSendController', function(
updateList();
});
});
-
- var wallets;
- var walletsBch;
- var walletsBtc;
- var walletToWalletFrom = false;
-
- $scope.onWalletSelect = function(wallet) {
- if (!$scope.walletToWalletFrom) {
- $scope.walletToWalletFrom = wallet;
- if (wallet.coin === 'bch') {
- $scope.showWalletsBch = true;
- } else if (wallet.coin === 'btc') {
- $scope.showWalletsBtc = true;
- }
- $scope.walletSelectorTitleTo = gettextCatalog.getString('Send to');
- } else {
- $ionicLoading.show();
- walletService.getAddress(wallet, true, function(err, addr) {
- $ionicLoading.hide();
- return $state.transitionTo('tabs.send.amount', {
- displayAddress: $scope.walletToWalletFrom.coin === 'bch' ? bitcoinCashJsService.translateAddresses(addr).cashaddr : addr,
- recipientType: 'wallet',
- fromWalletId: $scope.walletToWalletFrom.id,
- toAddress: addr,
- coin: $scope.walletToWalletFrom.coin
- });
- });
-
- }
- };
-
- $scope.showWalletSelector = function() {
- $scope.walletToWalletFrom = false;
- $scope.walletSelectorTitleFrom = gettextCatalog.getString('Send from');
- $scope.showWallets = true;
- };
+ //
+ // var wallets;
+ // var walletsBch;
+ // var walletsBtc;
+ // var walletToWalletFrom = false;
+ //
+ // $scope.onWalletSelect = function(wallet) {
+ // if (!$scope.walletToWalletFrom) {
+ // $scope.walletToWalletFrom = wallet;
+ // if (wallet.coin === 'bch') {
+ // $scope.showWalletsBch = true;
+ // } else if (wallet.coin === 'btc') {
+ // $scope.showWalletsBtc = true;
+ // }
+ // $scope.walletSelectorTitleTo = gettextCatalog.getString('Send to');
+ // } else {
+ // $ionicLoading.show();
+ // walletService.getAddress(wallet, true, function(err, addr) {
+ // $ionicLoading.hide();
+ // return $state.transitionTo('tabs.send.amount', {
+ // displayAddress: $scope.walletToWalletFrom.coin === 'bch' ? bitcoinCashJsService.translateAddresses(addr).cashaddr : addr,
+ // recipientType: 'wallet',
+ // fromWalletId: $scope.walletToWalletFrom.id,
+ // toAddress: addr,
+ // coin: $scope.walletToWalletFrom.coin
+ // });
+ // });
+ //
+ // }
+ // };
+ //
+ // $scope.showWalletSelector = function() {
+ // $scope.walletToWalletFrom = false;
+ // $scope.walletSelectorTitleFrom = gettextCatalog.getString('Send from');
+ // $scope.showWallets = true;
+ // };
$scope.findContact = function(search) {
@@ -133,7 +133,6 @@ angular.module('copayApp.controllers').controller('tabSendController', function(
};
var updateHasFunds = function() {
-
$scope.hasFunds = false;
var index = 0;
lodash.each($scope.wallets, function(w) {
diff --git a/src/js/controllers/walletToWalletController.js b/src/js/controllers/walletToWalletController.js
deleted file mode 100644
index d83f93ddb..000000000
--- a/src/js/controllers/walletToWalletController.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-angular.module('copayApp.controllers').controller('walletToWalletController', function($scope, $rootScope, $log, configService, gettextCatalog, profileService) {
-
- $scope.$on("$ionicView.enter", function(event, data) {
- $scope.type = 'origin'; // origin || destination
- $scope.coin = false; // Wallets to show (for destination screen)
- $scope.walletsEmpty = [];
- $scope.isPaymentRequest = true; // Show price-header
-
- if ($scope.type === 'origin') {
- $scope.headerTitle = gettextCatalog.getString('Choose a wallet to send from');
- $scope.walletsEmpty = profileService.getWallets({coin: $scope.coin, hasNoFunds: true});
- } else if ($scope.type === 'destination') {
- $scope.headerTitle = gettextCatalog.getString('Choose a wallet to send to');
- }
-
- if (!$scope.coin || $scope.coin === 'bch') {
- $scope.walletsBch = profileService.getWallets({coin: 'bch', hasFunds: $scope.type==='origin'});
- }
- if (!$scope.coin || $scope.coin === 'btc') {
- $scope.walletsBtc = profileService.getWallets({coin: 'btc', hasFunds: $scope.type === 'origin'});
- }
-
- configService.whenAvailable(function(config) {
- $scope.selectedPriceDisplay = config.wallet.settings.priceDisplay;
- });
- });
-
- $scope.useWallet = function(wallet) {
- // Do something with selected wallet
- };
-});
\ No newline at end of file
diff --git a/src/js/routes.js b/src/js/routes.js
index 72397d872..29273d444 100644
--- a/src/js/routes.js
+++ b/src/js/routes.js
@@ -270,6 +270,24 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
}
}
})
+ .state('tabs.send.origin', {
+ url: '/origin/:thirdParty/:amount/:toAddress/:toWalletId',
+ views: {
+ 'tab-send@tabs': {
+ controller: 'sendFlowController',
+ templateUrl: 'views/wallet-origin-destination.html',
+ }
+ }
+ })
+ .state('tabs.send.destination', {
+ url: '/destination/:fromWalletId/:thirdParty/:amount',
+ views: {
+ 'tab-send@tabs': {
+ controller: 'sendFlowController',
+ templateUrl: 'views/wallet-origin-destination.html',
+ }
+ }
+ })
.state('tabs.settings', {
url: '/settings',
views: {
@@ -299,7 +317,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
url: '/wallet-to-wallet',
views: {
'tab-send@tabs': {
- controller: 'walletToWalletController',
+ controller: 'sendFlowController',
templateUrl: 'views/wallet-to-wallet-transfer.html'
}
}
@@ -1273,7 +1291,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
if (screen.width < 768 && platformInfo.isCordova)
screen.lockOrientation('portrait');
- if (ionic.Platform.isAndroid() && StatusBar) {
+ if (ionic.Platform.isAndroid() && platformInfo.isCordova && StatusBar) {
StatusBar.backgroundColorByHexString('#000000');
}
diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js
index 1bb87b49c..fc3d37d47 100644
--- a/src/js/services/incomingData.js
+++ b/src/js/services/incomingData.js
@@ -83,7 +83,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat
// Timeout is required to enable the "Back" button
$timeout(function() {
if (amount) {
- $state.transitionTo('tabs.send.confirm', {
+ $state.transitionTo('tabs.send.origin', {
toAmount: amount,
toAddress: addr,
displayAddress: originalAddress ? originalAddress : addr,
@@ -102,8 +102,10 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat
params['minShapeshiftAmount'] = shapeshiftData.minAmount;
params['maxShapeshiftAmount'] = shapeshiftData.maxAmount;
params['shapeshiftOrderId'] = shapeshiftData.orderId;
+ $state.transitionTo('tabs.send.amount', params);
+ } else {
+ $state.transitionTo('tabs.send.origin', params);
}
- $state.transitionTo('tabs.send.amount', params);
}
}, 100);
}
diff --git a/src/sass/views/views.scss b/src/sass/views/views.scss
index 538787901..e1a122dbb 100644
--- a/src/sass/views/views.scss
+++ b/src/sass/views/views.scss
@@ -8,7 +8,7 @@
@import "tab-receive";
@import "tab-scan";
@import "tab-send";
-@import "wallet-to-wallet-transfer";
+@import "wallet-origin-destination";
@import "tab-settings";
@import "wallet-colors";
@import "walletBalance";
diff --git a/src/sass/views/wallet-to-wallet-transfer.scss b/src/sass/views/wallet-origin-destination.scss
similarity index 97%
rename from src/sass/views/wallet-to-wallet-transfer.scss
rename to src/sass/views/wallet-origin-destination.scss
index 7328a2891..94fbe8e4b 100644
--- a/src/sass/views/wallet-to-wallet-transfer.scss
+++ b/src/sass/views/wallet-origin-destination.scss
@@ -1,4 +1,4 @@
-#wallet-to-wallet-transfer {
+#wallet-origin-destination {
.header--request {
padding: 30px 24px;
width: 100%;
diff --git a/www/views/tab-send.html b/www/views/tab-send.html
index b5d556214..a1e8a778f 100644
--- a/www/views/tab-send.html
+++ b/www/views/tab-send.html
@@ -105,31 +105,31 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/www/views/wallet-to-wallet-transfer.html b/www/views/wallet-origin-destination.html
similarity index 96%
rename from www/views/wallet-to-wallet-transfer.html
rename to www/views/wallet-origin-destination.html
index 2055e4845..66f5852ad 100644
--- a/www/views/wallet-to-wallet-transfer.html
+++ b/www/views/wallet-origin-destination.html
@@ -1,4 +1,4 @@
-
+
{{'Wallet to wallet transfer' | translate}}
@@ -6,7 +6,7 @@