diff --git a/public/views/modals/receive-tips.html b/public/views/modals/receive-tips.html
new file mode 100644
index 000000000..b148acd35
--- /dev/null
+++ b/public/views/modals/receive-tips.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/public/views/modals/scan-tips.html b/public/views/modals/scan-tips.html
new file mode 100644
index 000000000..512b60327
--- /dev/null
+++ b/public/views/modals/scan-tips.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/src/js/controllers/modals/receiveTips.js b/src/js/controllers/modals/receiveTips.js
new file mode 100644
index 000000000..2297be7a4
--- /dev/null
+++ b/src/js/controllers/modals/receiveTips.js
@@ -0,0 +1,10 @@
+'use strict';
+
+angular.module('copayApp.controllers').controller('receiveTipsController', function($scope, $log, storageService) {
+ $scope.close = function() {
+ $log.debug('Receive tips accepted');
+ storageService.setReceiveTipsAccepted(true, function(err) {
+ $scope.receiveTipsModal.hide();
+ });
+ }
+});
diff --git a/src/js/controllers/modals/scanTips.js b/src/js/controllers/modals/scanTips.js
new file mode 100644
index 000000000..a82f70554
--- /dev/null
+++ b/src/js/controllers/modals/scanTips.js
@@ -0,0 +1,11 @@
+'use strict';
+
+angular.module('copayApp.controllers').controller('scanTipsController', function($scope, $log, storageService) {
+ $scope.close = function() {
+ $log.debug('Scan tips accepted');
+ storageService.setScanTipsAccepted(true, function(err) {
+ $scope.$emit('TipsModalClosed', function() {});
+ $scope.scanTipsModal.hide();
+ });
+ }
+});
diff --git a/src/js/controllers/modals/scanner.js b/src/js/controllers/modals/scanner.js
index c1bccb708..6616d505a 100644
--- a/src/js/controllers/modals/scanner.js
+++ b/src/js/controllers/modals/scanner.js
@@ -1,6 +1,6 @@
'use strict';
-angular.module('copayApp.controllers').controller('scannerController', function($scope, $timeout) {
+angular.module('copayApp.controllers').controller('scannerController', function($scope, $timeout, storageService, $ionicModal, platformInfo) {
// QR code Scanner
var video;
@@ -73,6 +73,35 @@ angular.module('copayApp.controllers').controller('scannerController', function(
};
$scope.init = function() {
+ if (platformInfo.isCordova) scannerInit();
+ else checkTips();
+ };
+
+ function checkTips() {
+ //TODO addapt tips to the new QR plugin (mobile)
+ storageService.getScanTipsAccepted(function(err, accepted) {
+ if (err) $log.warn(err);
+ if (accepted) {
+ scannerInit();
+ return;
+ }
+
+ $timeout(function() {
+ $ionicModal.fromTemplateUrl('views/modals/scan-tips.html', {
+ scope: $scope
+ }).then(function(modal) {
+ $scope.scanTipsModal = modal;
+ $scope.scanTipsModal.show();
+ });
+ }, 1000);
+ });
+ };
+
+ $scope.$on('TipsModalClosed', function(event) {
+ scannerInit();
+ });
+
+ function scannerInit() {
setScanner();
$timeout(function() {
if ($scope.beforeScan) {
diff --git a/src/js/controllers/tab-receive.js b/src/js/controllers/tab-receive.js
index 3a03d090a..187d3822e 100644
--- a/src/js/controllers/tab-receive.js
+++ b/src/js/controllers/tab-receive.js
@@ -1,6 +1,6 @@
'use strict';
-angular.module('copayApp.controllers').controller('tabReceiveController', function($scope, $timeout, $log, platformInfo, walletService, profileService, configService, lodash, gettextCatalog, popupService) {
+angular.module('copayApp.controllers').controller('tabReceiveController', function($scope, $timeout, $log, $ionicModal, storageService, platformInfo, walletService, profileService, configService, lodash, gettextCatalog, popupService) {
$scope.isCordova = platformInfo.isCordova;
@@ -8,10 +8,27 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi
$scope.wallets = profileService.getWallets({
onlyComplete: true
});
- $scope.isCordova = platformInfo.isCordova;
$scope.isNW = platformInfo.isNW;
+ $scope.isCordova = platformInfo.isCordova;
+ if (!$scope.isCordova) $scope.checkTips();
}
+ $scope.checkTips = function() {
+ storageService.getReceiveTipsAccepted(function(err, accepted) {
+ if (err) $log.warn(err);
+ if (accepted) return;
+
+ $timeout(function() {
+ $ionicModal.fromTemplateUrl('views/modals/receive-tips.html', {
+ scope: $scope
+ }).then(function(modal) {
+ $scope.receiveTipsModal = modal;
+ $scope.receiveTipsModal.show();
+ });
+ }, 1000);
+ });
+ };
+
$scope.$on('Wallet/Changed', function(event, wallet) {
if (!wallet) {
$log.debug('No wallet provided');
diff --git a/src/js/services/storageService.js b/src/js/services/storageService.js
index 706e59d4f..4df36dab1 100644
--- a/src/js/services/storageService.js
+++ b/src/js/services/storageService.js
@@ -349,6 +349,22 @@ angular.module('copayApp.services')
});
};
+ root.setScanTipsAccepted = function(val, cb) {
+ storage.set('scanTips', val, cb);
+ };
+
+ root.getScanTipsAccepted = function(cb) {
+ storage.get('scanTips', cb);
+ };
+
+ root.setReceiveTipsAccepted = function(val, cb) {
+ storage.set('receiveTips', val, cb);
+ };
+
+ root.getReceiveTipsAccepted = function(cb) {
+ storage.get('receiveTips', cb);
+ };
+
root.setAmazonGiftCards = function(network, gcs, cb) {
storage.set('amazonGiftCards-' + network, gcs, cb);
};