+ ng-if="(!externalServices.AmazonGiftCards || !externalServices.BitpayCard || !externalServices.BuyAndSell || !wallets[0]) && nextStepEnabled">
Next steps
@@ -128,21 +128,21 @@
Create a bitcoin wallet
-
+
Add BitPay Card
-
+
Buy or Sell Bitcoin
-
+
diff --git a/public/views/tab-settings.html b/public/views/tab-settings.html
index 6c5add5f2..cb9113da9 100644
--- a/public/views/tab-settings.html
+++ b/public/views/tab-settings.html
@@ -50,25 +50,6 @@
-
Exchanges
-
-
- Enable Glidera Service
-
-
-
-
-
-
Others
-
-
- Use Unconfirmed Funds
-
-
Notifications
@@ -108,6 +89,14 @@
About {{appName}}
+
+
+
+ Advanced
+
+
+
+
diff --git a/src/js/controllers/advancedSettings.js b/src/js/controllers/advancedSettings.js
new file mode 100644
index 000000000..928b64a93
--- /dev/null
+++ b/src/js/controllers/advancedSettings.js
@@ -0,0 +1,113 @@
+'use strict';
+
+angular.module('copayApp.controllers').controller('advancedSettingsController', function($scope, $rootScope, $log, $window, lodash, configService, uxLanguage, platformInfo, pushNotificationsService, profileService, feeService) {
+
+ var updateConfig = function() {
+
+ var config = configService.getSync();
+
+ $scope.spendUnconfirmed = {
+ value: config.wallet.spendUnconfirmed
+ };
+ $scope.bitpayCardEnabled = {
+ value: config.bitpayCard.enabled
+ };
+ $scope.amazonEnabled = {
+ value: config.amazon.enabled
+ };
+ $scope.glideraEnabled = {
+ value: config.glidera.enabled
+ };
+ $scope.coinbaseEnabled = {
+ value: config.coinbase.enabled
+ };
+ $scope.recentTransactionsEnabled = {
+ value: config.recentTransactions.enabled
+ };
+ $scope.frequentlyUsedEnabled = {
+ value: config.frequentlyUsed.enabled
+ };
+ };
+
+ $scope.spendUnconfirmedChange = function() {
+ var opts = {
+ wallet: {
+ spendUnconfirmed: $scope.spendUnconfirmed.value
+ }
+ };
+ configService.set(opts, function(err) {
+ if (err) $log.debug(err);
+ });
+ };
+
+ $scope.bitpayCardChange = function() {
+ var opts = {
+ bitpayCard: {
+ enabled: $scope.bitpayCardEnabled.value
+ }
+ };
+ configService.set(opts, function(err) {
+ if (err) $log.debug(err);
+ });
+ };
+
+ $scope.amazonChange = function() {
+ var opts = {
+ amazon: {
+ enabled: $scope.amazonEnabled.value
+ }
+ };
+ configService.set(opts, function(err) {
+ if (err) $log.debug(err);
+ });
+ };
+
+ $scope.glideraChange = function() {
+ var opts = {
+ glidera: {
+ enabled: $scope.glideraEnabled.value
+ }
+ };
+ configService.set(opts, function(err) {
+ if (err) $log.debug(err);
+ });
+ };
+
+ $scope.coinbaseChange = function() {
+ var opts = {
+ coinbase: {
+ enabled: $scope.coinbaseEnabled
+ }
+ };
+ configService.set(opts, function(err) {
+ if (err) $log.debug(err);
+ });
+ };
+
+ $scope.recentTransactionsChange = function() {
+ var opts = {
+ recentTransactions: {
+ enabled: $scope.recentTransactionsEnabled
+ }
+ };
+ configService.set(opts, function(err) {
+ if (err) $log.debug(err);
+ });
+ };
+
+ $scope.frequentlyUsedChange = function() {
+ var opts = {
+ frequentlyUsed: {
+ enabled: $scope.frequentlyUsedEnabled
+ }
+ };
+ configService.set(opts, function(err) {
+ if (err) $log.debug(err);
+ });
+ };
+
+ $scope.$on("$ionicView.enter", function(event, data) {
+ updateConfig();
+ });
+
+});
diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js
index f58bb7ca0..fbaa561f4 100644
--- a/src/js/controllers/tab-home.js
+++ b/src/js/controllers/tab-home.js
@@ -209,6 +209,10 @@ angular.module('copayApp.controllers').controller('tabHomeController',
var isWindowsPhoneApp = platformInfo.isWP && platformInfo.isCordova;
$scope.glideraEnabled = config.glidera.enabled && !isWindowsPhoneApp;
$scope.coinbaseEnabled = config.coinbase.enabled && !isWindowsPhoneApp;
+ $scope.amazonEnabled = config.amazon.enabled;
+ $scope.bitpayCardEnabled = config.bitpayCard.enabled;
+ $scope.nextStepEnabled = $scope.glideraEnabled || $scope.coinbaseEnabled || $scope.amazonEnabled || $scope.bitpayCardEnabled;
+ $scope.recentTransactionsEnabled = config.recentTransactions.enabled;
});
$scope.nextStep();
$scope.updateAllWallets();
diff --git a/src/js/controllers/tab-settings.js b/src/js/controllers/tab-settings.js
index f8f13202c..ba4bfafda 100644
--- a/src/js/controllers/tab-settings.js
+++ b/src/js/controllers/tab-settings.js
@@ -28,13 +28,7 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct
$scope.$digest();
});
}
- $scope.spendUnconfirmed = {
- value: config.wallet.spendUnconfirmed
- };
- $scope.glideraEnabled = {
- value: config.glidera.enabled
- };
- $scope.coinbaseEnabled = config.coinbase.enabled;
+
$scope.pushNotifications = {
value: config.pushNotifications.enabled
};
@@ -52,17 +46,6 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct
});
};
- $scope.spendUnconfirmedChange = function() {
- var opts = {
- wallet: {
- spendUnconfirmed: $scope.spendUnconfirmed.value
- }
- };
- configService.set(opts, function(err) {
- if (err) $log.debug(err);
- });
- };
-
$scope.pushNotificationsChange = function() {
var opts = {
pushNotifications: {
@@ -78,28 +61,6 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct
});
};
- $scope.glideraChange = function() {
- var opts = {
- glidera: {
- enabled: $scope.glideraEnabled.value
- }
- };
- configService.set(opts, function(err) {
- if (err) $log.debug(err);
- });
- };
-
- $scope.coinbaseChange = function() {
- var opts = {
- coinbase: {
- enabled: $scope.coinbaseEnabled
- }
- };
- configService.set(opts, function(err) {
- if (err) $log.debug(err);
- });
- };
-
$scope.$on("$ionicView.enter", function(event, data) {
updateConfig();
});
diff --git a/src/js/routes.js b/src/js/routes.js
index 489c156f6..501a304f5 100644
--- a/src/js/routes.js
+++ b/src/js/routes.js
@@ -390,6 +390,15 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
}
}
})
+ .state('tabs.advanced', {
+ url: '/advanced',
+ views: {
+ 'tab-settings@tabs': {
+ controller: 'advancedSettingsController',
+ templateUrl: 'views/advancedSettings.html'
+ }
+ }
+ })
/*
*
diff --git a/src/js/services/configService.js b/src/js/services/configService.js
index 9ef2fdf23..f7728c6c5 100644
--- a/src/js/services/configService.js
+++ b/src/js/services/configService.js
@@ -39,10 +39,28 @@ angular.module('copayApp.services').factory('configService', function(storageSer
},
coinbase: {
- enabled: true,
+ enabled: false, //disable coinbase for this release
testnet: false
},
+ bitpayCard: {
+ enabled: true
+ },
+
+ amazon: {
+ enabled: true
+ },
+
+ //Experimental Features
+
+ recentTransactions: {
+ enabled: true
+ },
+
+ frequentlyUsed: {
+ enabled: true
+ },
+
rates: {
url: 'https://insight.bitpay.com:443/api/rates',
},
@@ -111,6 +129,18 @@ angular.module('copayApp.services').factory('configService', function(storageSer
if (!configCache.coinbase) {
configCache.coinbase = defaultConfig.coinbase;
}
+ if (!configCache.amazon) {
+ configCache.amazon = defaultConfig.amazon;
+ }
+ if (!configCache.bitpayCard) {
+ configCache.bitpayCard = defaultConfig.bitpayCard;
+ }
+ if (!configCache.recentTransactions) {
+ configCache.recentTransactions = defaultConfig.recentTransactions;
+ }
+ if (!configCache.frequentlyUsed) {
+ configCache.frequentlyUsed = defaultConfig.frequentlyUsed;
+ }
if (!configCache.pushNotifications) {
configCache.pushNotifications = defaultConfig.pushNotifications;
}
diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js
index 247516f9f..0dea73fb0 100644
--- a/src/js/services/profileService.js
+++ b/src/js/services/profileService.js
@@ -780,21 +780,11 @@ angular.module('copayApp.services')
var TIME_STAMP = 60 * 60 * 24 * 7;
var MAX = 100;
- var typeFilter1 = {
- 'NewBlock': 1,
- 'BalanceUpdated': 1,
- 'NewOutgoingTxByThirdParty': 1,
- 'NewAddress': 1,
- 'TxProposalFinallyAccepted': 1,
- 'TxProposalFinallyRejected': 1,
+ var typeFilter = {
+ 'NewOutgoingTx': 1,
+ 'NewIncomingTx': 1
};
- var typeFilter2 = {
- 'TxProposalAcceptedBy': 1,
- 'TxProposalRejectedBy': 1,
- 'NewTxProposal': 1,
- }
-
var w = root.getWallets();
if (lodash.isEmpty(w)) return cb();
@@ -895,15 +885,9 @@ angular.module('copayApp.services')
var n;
n = lodash.filter(wallet.cachedActivity.n, function(x) {
- return !typeFilter1[x.type];
+ return typeFilter[x.type];
});
- if (wallet.m == 1) {
- n = lodash.filter(n, function(x) {
- return !typeFilter2[x.type];
- });
- }
-
var idToName = {};
if (wallet.cachedStatus) {
lodash.each(wallet.cachedStatus.wallet.copayers, function(c) {
diff --git a/src/sass/main.scss b/src/sass/main.scss
index 916c8f500..d5a17d289 100644
--- a/src/sass/main.scss
+++ b/src/sass/main.scss
@@ -996,6 +996,7 @@ input[type=number] {
@import "views/tab-send";
@import "views/tab-settings";
@import "views/walletDetails";
+@import "views/advancedSettings";
@import "views/bitpayCard";
@import "views/address-book";
@import "views/wallet-backup-phrase";
diff --git a/src/sass/views/advancedSettings.scss b/src/sass/views/advancedSettings.scss
new file mode 100644
index 000000000..d3da674d9
--- /dev/null
+++ b/src/sass/views/advancedSettings.scss
@@ -0,0 +1,53 @@
+.settings {
+ .item {
+ color: #444;
+ border-color: rgba(221, 221, 221, 0.3);
+ }
+}
+
+#advanced-settings {
+ .list {
+ .item {
+ color: #444;
+ border-top: none;
+ padding-top: 1.5rem;
+ padding-bottom: 1.5rem;
+ &:before {
+ display: block;
+ position: absolute;
+ width: 100%;
+ height: 1px;
+ background: rgba(221, 221, 221, 0.3);
+ top: 0;
+ right: 0;
+ content: '';
+ }
+ &.item-divider {
+ color: rgba(74, 74, 74, .8);
+ }
+ &.item-heading {
+ &:before {
+ top: 99%
+ }
+ }
+ &:nth-child(2) {
+ &:before {
+ width: 0;
+ }
+ }
+ .item-note {
+ color: rgb(58, 58, 58);
+ }
+ }
+ .comment {
+ padding: 15px;
+ background-color: #fff;
+ color: rgba(74, 74, 74, 0.8);
+ }
+ .divider-comment {
+ padding: 15px;
+ color: rgba(74, 74, 74, 0.8);
+ font-size: 15px;
+ }
+ }
+}