diff --git a/src/js/controllers/advancedSettings.js b/src/js/controllers/advancedSettings.js
index a5eefbde3..9355dd730 100644
--- a/src/js/controllers/advancedSettings.js
+++ b/src/js/controllers/advancedSettings.js
@@ -13,6 +13,9 @@ angular.module('copayApp.controllers').controller('advancedSettingsController',
$scope.hideNextSteps = {
value: config.hideNextSteps.enabled
};
+ $scope.displayBitcoinCoreEnabled = {
+ value: config.displayBitcoinCore.enabled
+ };
};
@@ -49,6 +52,17 @@ angular.module('copayApp.controllers').controller('advancedSettingsController',
});
};
+ $scope.displayBitcoinCoreChange = function() {
+ var opts = {
+ displayBitcoinCore: {
+ enabled: $scope.displayBitcoinCoreEnabled.value
+ }
+ };
+ configService.set(opts, function(err) {
+ if (err) $log.debug(err);
+ });
+ };
+
$scope.$on("$ionicView.beforeEnter", function(event, data) {
$scope.isWindowsPhoneApp = platformInfo.isCordova && platformInfo.isWP;
updateConfig();
diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js
index 83e7ecde7..f4ba907a6 100644
--- a/src/js/controllers/tab-home.js
+++ b/src/js/controllers/tab-home.js
@@ -123,6 +123,8 @@ angular.module('copayApp.controllers').controller('tabHomeController',
$scope.nextStepsItems = nextStepsService.get();
}
+ $scope.displayBitcoinCore = config.displayBitcoinCore.enabled;
+
$scope.showServices = true;
pushNotificationsService.init();
firebaseEventsService.init();
@@ -317,4 +319,10 @@ angular.module('copayApp.controllers').controller('tabHomeController',
}, 300);
updateAllWallets();
};
+
+ $rootScope.$on('Local/SettingsUpdated', function(e, walletId) {
+ configService.whenAvailable(function(config) {
+ $scope.displayBitcoinCore = config.displayBitcoinCore.enabled;
+ });
+ });
});
diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js
index 3e4428096..4425363cf 100644
--- a/src/js/controllers/tab-send.js
+++ b/src/js/controllers/tab-send.js
@@ -53,7 +53,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function(
};
var updateWalletsList = function() {
-
+ var config = configService.getSync();
var networkResult = lodash.countBy($scope.wallets, 'network');
$scope.showTransferCard = $scope.hasWallets && (networkResult.livenet > 1 || networkResult.testnet > 1);
@@ -79,12 +79,14 @@ angular.module('copayApp.controllers').controller('tabSendController', function(
coin: v.coin,
network: v.network,
balanceString: v.cachedBalance,
+ displayWallet: v.coin == 'btc' ? config.displayBitcoinCore.enabled : true,
getAddress: function(cb) {
walletService.getAddress(v, false, cb);
},
});
});
originalList = originalList.concat(walletList);
+ console.log(originalList);
}
}
diff --git a/src/js/directives/walletSelector.js b/src/js/directives/walletSelector.js
index 2ecc73403..578d298ce 100644
--- a/src/js/directives/walletSelector.js
+++ b/src/js/directives/walletSelector.js
@@ -1,7 +1,7 @@
'use strict';
angular.module('copayApp.directives')
- .directive('walletSelector', function($timeout) {
+ .directive('walletSelector', function($rootScope, $timeout, configService) {
return {
restrict: 'E',
templateUrl: 'views/includes/walletSelector.html',
@@ -11,9 +11,11 @@ angular.module('copayApp.directives')
show: '=walletSelectorShow',
wallets: '=walletSelectorWallets',
selectedWallet: '=walletSelectorSelectedWallet',
- onSelect: '=walletSelectorOnSelect'
+ onSelect: '=walletSelectorOnSelect',
+ alwaysDisplayBitcoinCore: '=walletSelectorAlwaysDisplayBitcoinCore'
},
link: function(scope, element, attrs) {
+ scope.displayWallet = true;
scope.hide = function() {
scope.show = false;
};
@@ -26,6 +28,19 @@ angular.module('copayApp.directives')
scope.$watch('wallets', function(newValue, oldValue) {
scope.wallets = newValue;
});
+ scope.initDisplayBitcoinCoreConfig = function() {
+ configService.whenAvailable(function(config) {
+ scope.displayBitcoinCore = config.displayBitcoinCore.enabled;
+ scope.initWalletDisplay();
+ });
+ };
+ scope.initWalletDisplay = function() {
+ scope.displayWallet = scope.alwaysDisplayBitcoinCore ? true : scope.displayBitcoinCore;
+ };
+ scope.initDisplayBitcoinCoreConfig();
+ $rootScope.$on('Local/SettingsUpdated', function(e, walletId) {
+ scope.initDisplayBitcoinCoreConfig();
+ });
}
};
});
diff --git a/src/js/routes.js b/src/js/routes.js
index 3d3c415aa..6501d5cf7 100644
--- a/src/js/routes.js
+++ b/src/js/routes.js
@@ -1310,6 +1310,9 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
applicationService.appLockModal('check');
});
};
+
+ profileService.initBitcoinCoreDisplay();
+
// After everything have been loaded
$timeout(function() {
emailService.init(); // Update email subscription if necessary
diff --git a/src/js/services/configService.js b/src/js/services/configService.js
index 0a19d97e3..457f70aaf 100644
--- a/src/js/services/configService.js
+++ b/src/js/services/configService.js
@@ -1,6 +1,6 @@
'use strict';
-angular.module('copayApp.services').factory('configService', function(storageService, lodash, $log, $timeout, $rootScope, platformInfo) {
+angular.module('copayApp.services').factory('configService', function(storageService, lodash, $log, $timeout, $rootScope, $injector, platformInfo) {
var root = {};
var isWindowsPhoneApp = platformInfo.isCordova && platformInfo.isWP;
@@ -84,6 +84,10 @@ angular.module('copayApp.services').factory('configService', function(storageSer
enabled: true,
},
+ displayBitcoinCore: {
+ enabled: false,
+ },
+
hideNextSteps: {
enabled: isWindowsPhoneApp ? true : false,
},
@@ -245,6 +249,18 @@ angular.module('copayApp.services').factory('configService', function(storageSer
return lodash.clone(defaultConfig);
};
+ root.checkIfConfigIsSet = function(key) {
+ return new Promise(function(resolve, reject) {
+ storageService.getConfig(function(err, localConfig) {
+ if (localConfig) {
+ configCache = JSON.parse(localConfig);
+ resolve(configCache.hasOwnProperty(key));
+ } else {
+ reject(false);
+ }
+ });
+ });
+ }
return root;
});
diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js
index f3f6daad4..ad82bb531 100644
--- a/src/js/services/profileService.js
+++ b/src/js/services/profileService.js
@@ -1037,5 +1037,29 @@ angular.module('copayApp.services')
return cb(null, txps, n);
};
+ root.initBitcoinCoreDisplay = function() {
+ configService.checkIfConfigIsSet('displayBitcoinCore').then(function(result) {
+ if (!result) {
+ var walletsBtc = root.getWallets({coin: 'btc'});
+ var totalBtc = 0;
+
+ walletsBtc.forEach( (value, key, index) => {
+ totalBtc += parseFloat(value.cachedBalance);
+ });
+
+ var enableDisplayBitcoinCore = totalBtc > 0 ? true : false;
+
+ var opts = {
+ displayBitcoinCore: {
+ enabled: enableDisplayBitcoinCore
+ }
+ };
+ configService.set(opts, function(err) {
+ if (err) $log.debug(err);
+ });
+ }
+ });
+ };
+
return root;
});
diff --git a/www/views/advancedSettings.html b/www/views/advancedSettings.html
index 253c35c8f..2b46e5375 100644
--- a/www/views/advancedSettings.html
+++ b/www/views/advancedSettings.html
@@ -29,6 +29,15 @@