diff --git a/src/js/controllers/tx-details.js b/src/js/controllers/tx-details.js
index 5e6e2b886..db3069a26 100644
--- a/src/js/controllers/tx-details.js
+++ b/src/js/controllers/tx-details.js
@@ -1,6 +1,6 @@
'use strict';
-angular.module('copayApp.controllers').controller('txDetailsController', function($rootScope, $log, $ionicHistory, $scope, $timeout, walletService, lodash, gettextCatalog, profileService, configService, externalLinkService, popupService, ongoingProcess, txFormatService) {
+angular.module('copayApp.controllers').controller('txDetailsController', function($rootScope, $log, $ionicHistory, $scope, $timeout, walletService, lodash, gettextCatalog, profileService, externalLinkService, popupService, ongoingProcess, txFormatService, txConfirmNotification) {
var txId;
var listeners = [];
@@ -12,6 +12,10 @@ 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;
+
+ txConfirmNotification.checkIfEnabled(txId, function(res) {
+ $scope.txNotification = { value: res };
+ });
});
$scope.$on("$ionicView.afterEnter", function(event) {
@@ -186,4 +190,12 @@ angular.module('copayApp.controllers').controller('txDetailsController', functio
});
};
+ $scope.txConfirmNotificationChange = function() {
+ if ($scope.txNotification.value) {
+ txConfirmNotification.subscribe($scope.wallet, { txid: txId });
+ } else {
+ txConfirmNotification.unsubscribe($scope.wallet, txId);
+ }
+ };
+
});
diff --git a/src/js/services/storageService.js b/src/js/services/storageService.js
index 0b39dfe91..5391569fd 100644
--- a/src/js/services/storageService.js
+++ b/src/js/services/storageService.js
@@ -598,5 +598,17 @@ angular.module('copayApp.services')
storage.remove('amazonGiftCards-' + network, cb);
};
+ root.setTxConfirmNotification = function(txid, val, cb) {
+ storage.set('txConfirmNotif-' + txid, val, cb);
+ };
+
+ root.getTxConfirmNotification = function(txid, cb) {
+ storage.get('txConfirmNotif-' + txid, cb);
+ };
+
+ root.removeTxConfirmNotification = function(txid, cb) {
+ storage.remove('txConfirmNotif-' + txid, cb);
+ };
+
return root;
});
diff --git a/src/js/services/txConfirmNotification.js b/src/js/services/txConfirmNotification.js
new file mode 100644
index 000000000..70800ae97
--- /dev/null
+++ b/src/js/services/txConfirmNotification.js
@@ -0,0 +1,32 @@
+'use strict';
+angular.module('copayApp.services').factory('txConfirmNotification', function txConfirmNotification($log, storageService) {
+ var root = {};
+
+ root.checkIfEnabled = function(txid, cb) {
+ storageService.getTxConfirmNotification(txid, function(err, res) {
+ if (err) $log.error(err);
+ return cb(!!res);
+ });
+ };
+
+ root.subscribe = function(client, opts) {
+ client.txConfirmationSubscribe(opts, function(err, res) {
+ if (err) $log.error(err);
+ storageService.setTxConfirmNotification(opts.txid, true, function(err) {
+ if (err) $log.error(err);
+ });
+ });
+ };
+
+ root.unsubscribe = function(client, txId) {
+ client.txConfirmationUnsubscribe(txId, function(err, res) {
+ if (err) $log.error(err);
+ storageService.removeTxConfirmNotification(txId, function(err) {
+ if (err) $log.error(err);
+ });
+ });
+ };
+
+ return root;
+
+});
diff --git a/src/sass/views/includes/txp-details.scss b/src/sass/views/includes/txp-details.scss
index 1ee5702a1..9f78675ad 100644
--- a/src/sass/views/includes/txp-details.scss
+++ b/src/sass/views/includes/txp-details.scss
@@ -1,5 +1,6 @@
#txp-details,
#view-confirm {
+ @extend .deflash-blue;
$item-lateral-padding: 20px;
$item-vertical-padding: 10px;
$item-border-color: #EFEFEF;
@@ -101,6 +102,14 @@
}
}
}
+ .toggle-unconfirmed {
+ padding-bottom: 15px;
+ }
+ .toggle-label {
+ margin-top: 5px;
+ font-size: 14px;
+ color: $item-label-color;
+ }
.item-divider {
padding-top: 1.2rem;
color: $item-label-color;
diff --git a/www/views/tx-details.html b/www/views/tx-details.html
index d81edfedd..18163cb88 100644
--- a/www/views/tx-details.html
+++ b/www/views/tx-details.html
@@ -102,6 +102,13 @@
+