diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index d475a4364..1f354fd4d 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('confirmController', function($rootScope, $scope, $interval, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, walletService, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, profileService, bitcore, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig, payproService, feeService, bwcError) { +angular.module('copayApp.controllers').controller('confirmController', function($rootScope, $scope, $interval, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, walletService, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, profileService, bitcore, txFormatService, ongoingProcess, $ionicModal, popupService, $ionicHistory, $ionicConfig, payproService, feeService, bwcError, txConfirmNotification) { var countDown = null; var CONFIRM_LIMIT_USD = 20; @@ -509,6 +509,11 @@ angular.module('copayApp.controllers').controller('confirmController', function( walletService.publishAndSign(wallet, txp, function(err, txp) { if (err) return setSendError(err); + if (config.confirmedTxsNotifications && config.confirmedTxsNotifications.enabled) { + txConfirmNotification.subscribe(wallet, { + txid: txp.txid + }); + } }, onSendStatusChange); }; diff --git a/src/js/controllers/preferencesNotifications.js b/src/js/controllers/preferencesNotifications.js index 28371e319..3d78e98db 100644 --- a/src/js/controllers/preferencesNotifications.js +++ b/src/js/controllers/preferencesNotifications.js @@ -12,6 +12,11 @@ angular.module('copayApp.controllers').controller('preferencesNotificationsContr value: config.pushNotificationsEnabled }; + var isConfirmedTxsNotificationsEnabled = config.confirmedTxsNotifications ? config.confirmedTxsNotifications.enabled : false; + $scope.confirmedTxsNotifications = { + value: isConfirmedTxsNotificationsEnabled + }; + $scope.latestEmail = { value: emailService.getEmailIfEnabled() }; @@ -42,6 +47,18 @@ angular.module('copayApp.controllers').controller('preferencesNotificationsContr }); }; + $scope.confirmedTxsNotificationsChange = function() { + if (!$scope.pushNotifications) return; + var opts = { + confirmedTxsNotifications: { + enabled: $scope.confirmedTxsNotifications.value + } + }; + configService.set(opts, function(err) { + if (err) $log.debug(err); + }); + }; + $scope.emailNotificationsChange = function() { var opts = { enabled: $scope.emailNotifications.value, diff --git a/src/js/controllers/tx-details.js b/src/js/controllers/tx-details.js index 8435447d1..0c277e469 100644 --- a/src/js/controllers/tx-details.js +++ b/src/js/controllers/tx-details.js @@ -1,9 +1,10 @@ 'use strict'; -angular.module('copayApp.controllers').controller('txDetailsController', function($rootScope, $log, $ionicHistory, $scope, $timeout, walletService, lodash, gettextCatalog, profileService, externalLinkService, popupService, ongoingProcess, txFormatService, txConfirmNotification, feeService) { +angular.module('copayApp.controllers').controller('txDetailsController', function($rootScope, $log, $ionicHistory, $scope, $timeout, walletService, lodash, gettextCatalog, profileService, externalLinkService, popupService, ongoingProcess, txFormatService, txConfirmNotification, feeService, configService) { var txId; var listeners = []; + var config = configService.getSync(); $scope.$on("$ionicView.beforeEnter", function(event, data) { txId = data.stateParams.txid; @@ -12,6 +13,7 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio $scope.color = $scope.wallet.color; $scope.copayerId = $scope.wallet.credentials.copayerId; $scope.isShared = $scope.wallet.credentials.n > 1; + $scope.txsUnsubscribedForNotifications = config.confirmedTxsNotifications ? !config.confirmedTxsNotifications.enabled : true; txConfirmNotification.checkIfEnabled(txId, function(res) { $scope.txNotification = { diff --git a/src/js/services/configService.js b/src/js/services/configService.js index e4521296a..c128208c4 100644 --- a/src/js/services/configService.js +++ b/src/js/services/configService.js @@ -80,6 +80,10 @@ angular.module('copayApp.services').factory('configService', function(storageSer pushNotificationsEnabled: true, + confirmedTxsNotifications: { + enabled: true, + }, + emailNotifications: { enabled: false, }, diff --git a/www/views/preferencesNotifications.html b/www/views/preferencesNotifications.html index baf9e7a05..a2d7ee725 100644 --- a/www/views/preferencesNotifications.html +++ b/www/views/preferencesNotifications.html @@ -19,6 +19,12 @@ +
+ + Notify me when transactions are confirmed + +
+ Enable email notifications @@ -43,6 +49,8 @@ + + diff --git a/www/views/tx-details.html b/www/views/tx-details.html index 6ef243116..de7ab9977 100644 --- a/www/views/tx-details.html +++ b/www/views/tx-details.html @@ -108,13 +108,15 @@ This transaction amount is too small compared to current Bitcoin network fees. S - - Notify me if confirmed - +
+ + Notify me if confirmed + +
Timeline