From 4203a449d98827efdb8f12e156708d1536f27d5e Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Mon, 6 Aug 2018 13:39:03 +1200 Subject: [PATCH] Displaying requested amount in origin screen. --- .../controllers/walletSelectorController.js | 46 +++++++++++++++++-- src/js/services/paypro.service.js | 2 + www/views/walletSelector.html | 4 +- 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/js/controllers/walletSelectorController.js b/src/js/controllers/walletSelectorController.js index 667bff3cb..541794b22 100644 --- a/src/js/controllers/walletSelectorController.js +++ b/src/js/controllers/walletSelectorController.js @@ -1,9 +1,17 @@ 'use strict'; -angular.module('copayApp.controllers').controller('walletSelectorController', function($scope, $rootScope, $state, $log, $ionicHistory, configService, gettextCatalog, profileService) { +angular.module('copayApp.controllers').controller('walletSelectorController', function($scope, $rootScope, $state, $log, $ionicHistory, configService, gettextCatalog, profileService, txFormatService) { + + var priceDisplayAsFiat = false; + var requestedSatoshis = 0; + var unitDecimals = 0; + var unitsFromSatoshis = 0; $scope.$on("$ionicView.beforeEnter", function(event, data) { var config = configService.getSync().wallet.settings; + priceDisplayAsFiat = config.priceDisplay === 'fiat'; + unitDecimals = config.unitDecimals; + unitsFromSatoshis = 1 / config.unitToSatoshi; switch($state.current.name) { case 'tabs.send.wallet-to-wallet': @@ -29,7 +37,8 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu if ($scope.params.amount) { // There is an amount, so presume that it is a payment request $scope.sendFlowTitle = gettextCatalog.getString('Payment Request'); $scope.specificAmount = $scope.specificAlternativeAmount = ''; - $scope.requestAmount = (($state.params.amount) * (1 / config.unitToSatoshi)).toFixed(config.unitDecimals); + //requestedAmountCrypto = (($state.params.amount) * (1 / config.unitToSatoshi)).toFixed(config.unitDecimals); + requestedSatoshis = $state.params.amount; $scope.isPaymentRequest = true; } if ($scope.params.thirdParty) { @@ -65,8 +74,39 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu if (!$scope.coin || $scope.coin === 'btc') { // if no specific coin is set or coin is set btc $scope.walletsBtc = profileService.getWallets({coin: 'btc', hasFunds: $scope.type === 'origin'}); } + + formatRequestedAmount(); }); + function formatRequestedAmount() { + if (requestedSatoshis) { + var cryptoAmount = (unitsFromSatoshis * requestedSatoshis).toFixed(unitDecimals); + var cryptoCoin = $scope.coin.toUpperCase(); + + txFormatService.formatAlternativeStr($scope.coin, requestedSatoshis, function onFormatAlternativeStr(formatted){ + if (formatted) { + var fiatParts = formatted.split(' '); + var fiatAmount = fiatParts[0]; + var fiatCurrrency = fiatParts.length > 1 ? fiatParts[1] : ''; + + if (priceDisplayAsFiat) { + $scope.requestAmount = fiatAmount; + $scope.requestCurrency = fiatCurrrency; + + $scope.requestAmountSecondary = cryptoAmount; + $scope.requestCurrencySecondary = cryptoCoin; + } else { + $scope.requestAmount = cryptoAmount; + $scope.requestCurrency = cryptoCoin; + + $scope.requestAmountSecondary = fiatAmount; + $scope.requestCurrencySecondary = fiatCurrrency; + } + } + }); + } + } + function getNextStep() { if ($scope.thirdParty) { $scope.params.thirdParty = JSON.stringify($scope.thirdParty) // re-stringify JSON-object @@ -83,7 +123,7 @@ angular.module('copayApp.controllers').controller('walletSelectorController', fu function handleThirdPartyIfBip70PaymentProtocol() { if ($scope.thirdParty.id === 'bip70PaymentProtocol') { $scope.coin = $scope.thirdParty.coin; - $scope.requestAmount = $scope.thirdParty.details. + $scope.requestAmount = unitsFromSatoshis * $scope.thirdParty.details.amount; console.log('paypro details:', $scope.thirdParty.details); } } diff --git a/src/js/services/paypro.service.js b/src/js/services/paypro.service.js index 4cdc78e7c..8f8db5f5b 100644 --- a/src/js/services/paypro.service.js +++ b/src/js/services/paypro.service.js @@ -1,5 +1,7 @@ 'use strict'; +// For BIP70 Payment Protocol + angular .module('copayApp.services') .factory('payproService', payproService); diff --git a/www/views/walletSelector.html b/www/views/walletSelector.html index 49a7ba208..3eecb1204 100644 --- a/www/views/walletSelector.html +++ b/www/views/walletSelector.html @@ -7,8 +7,8 @@
Paying
-
$... USD
-
{{requestAmount}} {{coin.toUpperCase()}}
+
{{requestAmount}} {{requestCurrency}}
+
{{requestAmountSecondary}} {{requestCurrencySecondary}}