Merge branch 'ref/design' of github.com:bitpay/bitpay-wallet into feature/new-qrscanner-permissions
This commit is contained in:
commit
f1a849c5d8
36 changed files with 344 additions and 284 deletions
|
|
@ -92,6 +92,8 @@ angular.module('copayApp.controllers').controller('amountController', function($
|
|||
|
||||
$scope.pushDigit = function(digit) {
|
||||
if ($scope.amount && $scope.amount.length >= LENGTH_EXPRESSION_LIMIT) return;
|
||||
if ($scope.amount.indexOf('.') > -1 && digit == '.') return;
|
||||
if($scope.showAlternativeAmount && $scope.amount.indexOf('.') > -1 && $scope.amount[$scope.amount.indexOf('.') + 2]) return;
|
||||
|
||||
$scope.amount = ($scope.amount + digit).replace('..', '.');
|
||||
checkFontSize();
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ angular.module('copayApp.controllers').controller('backupController',
|
|||
});
|
||||
};
|
||||
|
||||
$scope.initFlow = function() {
|
||||
$scope.setFlow = function(step) {
|
||||
if (!keys) return;
|
||||
|
||||
var words = keys.mnemonic;
|
||||
|
|
@ -39,7 +39,7 @@ angular.module('copayApp.controllers').controller('backupController',
|
|||
$scope.useIdeograms = words.indexOf("\u3000") >= 0;
|
||||
$scope.data.passphrase = null;
|
||||
$scope.customWords = [];
|
||||
$scope.step = 1;
|
||||
$scope.step = step || 1;
|
||||
$scope.selectComplete = false;
|
||||
$scope.backupError = false;
|
||||
|
||||
|
|
@ -72,10 +72,10 @@ angular.module('copayApp.controllers').controller('backupController',
|
|||
|
||||
var showBackupResult = function() {
|
||||
if ($scope.backupError) {
|
||||
var title = gettextCatalog.getString('Uh oh...');
|
||||
var title = 'Uh oh...';
|
||||
var message = gettextCatalog.getString("It's important that you write your backup phrase down correctly. If something happens to your wallet, you'll need this backup to recover your money. Please review your backup and try again.");
|
||||
popupService.showAlert(title, message, function() {
|
||||
$scope.goToStep(1);
|
||||
$scope.setFlow(2);
|
||||
})
|
||||
} else {
|
||||
openConfirmBackupModal();
|
||||
|
|
@ -151,7 +151,7 @@ angular.module('copayApp.controllers').controller('backupController',
|
|||
|
||||
$scope.goToStep = function(n) {
|
||||
if (n == 1)
|
||||
$scope.initFlow();
|
||||
$scope.setFlow();
|
||||
if (n == 2)
|
||||
$scope.step = 2;
|
||||
if (n == 3) {
|
||||
|
|
@ -203,7 +203,7 @@ angular.module('copayApp.controllers').controller('backupController',
|
|||
}
|
||||
$scope.credentialsEncrypted = false;
|
||||
keys = k;
|
||||
$scope.initFlow();
|
||||
$scope.setFlow();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -41,14 +41,20 @@ angular.module('copayApp.controllers').controller('confirmController', function(
|
|||
var networkName = (new bitcore.Address($scope.toAddress)).network.name;
|
||||
$scope.network = networkName;
|
||||
|
||||
$scope.notAvailable = false;
|
||||
$scope.insuffientFunds = false;
|
||||
$scope.noMatchingWallet = false;
|
||||
|
||||
var wallets = profileService.getWallets({
|
||||
onlyComplete: true,
|
||||
network: networkName,
|
||||
});
|
||||
|
||||
if (!wallets || !wallets.length) {
|
||||
$scope.noMatchingWallet = true;
|
||||
}
|
||||
|
||||
var filteredWallets = [];
|
||||
var index = 0;
|
||||
var index = 0, enoughFunds = false;
|
||||
|
||||
lodash.each(wallets, function(w) {
|
||||
walletService.getStatus(w, {}, function(err, status) {
|
||||
|
|
@ -56,15 +62,20 @@ angular.module('copayApp.controllers').controller('confirmController', function(
|
|||
$log.error(err);
|
||||
} else {
|
||||
if (!status.availableBalanceSat) $log.debug('No balance available in: ' + w.name);
|
||||
if (status.availableBalanceSat > $scope.toAmount) filteredWallets.push(w);
|
||||
if (status.availableBalanceSat > $scope.toAmount) {
|
||||
filteredWallets.push(w);
|
||||
enoughFunds = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (++index == wallets.length) {
|
||||
if (!lodash.isEmpty(filteredWallets)) {
|
||||
$scope.wallets = lodash.clone(filteredWallets);
|
||||
$scope.notAvailable = false;
|
||||
} else {
|
||||
$scope.notAvailable = true;
|
||||
|
||||
if (!enoughFunds)
|
||||
$scope.insuffientFunds = true;
|
||||
|
||||
$log.warn('No wallet available to make the payment');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,9 +37,24 @@ angular.module('copayApp.controllers').controller('createController',
|
|||
};
|
||||
|
||||
$scope.showAdvChange = function() {
|
||||
$scope.showAdv = !$scope.showAdv;
|
||||
$scope.resizeView();
|
||||
};
|
||||
|
||||
$scope.resizeView = function() {
|
||||
$timeout(function() {
|
||||
$ionicScrollDelegate.resize();
|
||||
}, 10);
|
||||
});
|
||||
checkPasswordFields();
|
||||
};
|
||||
|
||||
function checkPasswordFields() {
|
||||
if (!$scope.encrypt) {
|
||||
$scope.formData.passphrase = $scope.formData.createPassphrase = $scope.formData.passwordSaved = null;
|
||||
$timeout(function() {
|
||||
$scope.$apply();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
function updateRCSelect(n) {
|
||||
|
|
@ -160,7 +175,6 @@ angular.module('copayApp.controllers').controller('createController',
|
|||
function _create(opts) {
|
||||
ongoingProcess.set('creatingWallet', true);
|
||||
$timeout(function() {
|
||||
|
||||
profileService.createWallet(opts, function(err, client) {
|
||||
ongoingProcess.set('creatingWallet', false);
|
||||
if (err) {
|
||||
|
|
@ -173,11 +187,12 @@ angular.module('copayApp.controllers').controller('createController',
|
|||
$log.debug('Remote preferences saved for:' + client.credentials.walletId)
|
||||
});
|
||||
|
||||
|
||||
if ($scope.seedSource.id == 'set') {
|
||||
profileService.setBackupFlag(client.credentials.walletId);
|
||||
}
|
||||
|
||||
$ionicHistory.removeBackView();
|
||||
|
||||
if (!client.isComplete()) {
|
||||
$ionicHistory.nextViewOptions({
|
||||
disableAnimate: true
|
||||
|
|
@ -188,8 +203,7 @@ angular.module('copayApp.controllers').controller('createController',
|
|||
walletId: client.credentials.walletId
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
else $state.go('tabs.home')
|
||||
} else $state.go('tabs.home');
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,20 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('exportController',
|
||||
function($scope, $timeout, $log, $ionicHistory, backupService, walletService, storageService, profileService, platformInfo, gettextCatalog, $state, $stateParams, popupService) {
|
||||
function($scope, $timeout, $log, $ionicHistory, $ionicScrollDelegate, backupService, walletService, storageService, profileService, platformInfo, gettextCatalog, $state, $stateParams, popupService) {
|
||||
var wallet = profileService.getWallet($stateParams.walletId);
|
||||
|
||||
$scope.showAdvChange = function() {
|
||||
$scope.showAdv = !$scope.showAdv;
|
||||
$scope.resizeView();
|
||||
};
|
||||
|
||||
$scope.resizeView = function() {
|
||||
$timeout(function() {
|
||||
$ionicScrollDelegate.resize();
|
||||
});
|
||||
};
|
||||
|
||||
var init = function() {
|
||||
$scope.formData = {};
|
||||
$scope.isEncrypted = wallet.isPrivKeyEncrypted();
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('joinController',
|
||||
function($scope, $rootScope, $timeout, $state, $ionicHistory, profileService, configService, storageService, applicationService, gettext, gettextCatalog, lodash, ledger, trezor, platformInfo, derivationPathHelper, ongoingProcess, walletService, $log, $stateParams, popupService) {
|
||||
function($scope, $rootScope, $timeout, $state, $ionicHistory, $ionicScrollDelegate, profileService, configService, storageService, applicationService, gettext, gettextCatalog, lodash, ledger, trezor, platformInfo, derivationPathHelper, ongoingProcess, walletService, $log, $stateParams, popupService) {
|
||||
|
||||
var isChromeApp = platformInfo.isChromeApp;
|
||||
var isDevel = platformInfo.isDevel;
|
||||
|
|
@ -12,6 +12,26 @@ angular.module('copayApp.controllers').controller('joinController',
|
|||
$scope.derivationPath = derivationPathHelper.default;
|
||||
$scope.account = 1;
|
||||
|
||||
$scope.showAdvChange = function() {
|
||||
$scope.showAdv = !$scope.showAdv;
|
||||
$scope.resizeView();
|
||||
};
|
||||
|
||||
$scope.resizeView = function() {
|
||||
$timeout(function() {
|
||||
$ionicScrollDelegate.resize();
|
||||
});
|
||||
checkPasswordFields();
|
||||
};
|
||||
|
||||
function checkPasswordFields() {
|
||||
if (!$scope.encrypt) {
|
||||
$scope.passphrase = $scope.createPassphrase = $scope.passwordSaved = null;
|
||||
$timeout(function() {
|
||||
$scope.$apply();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
this.onQrCodeScanned = function(data) {
|
||||
$scope.secret = data;
|
||||
|
|
@ -156,11 +176,10 @@ angular.module('copayApp.controllers').controller('joinController',
|
|||
$state.transitionTo('tabs.copayers', {
|
||||
walletId: client.credentials.walletId
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
else $state.go('tabs.home')
|
||||
});
|
||||
} else $state.go('tabs.home');
|
||||
});
|
||||
}, 100);
|
||||
});
|
||||
};
|
||||
|
||||
updateSeedSourceSelect();
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
'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();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
'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();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -1,13 +1,32 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('notificationsController', function($scope, $state, $stateParams, profileService) {
|
||||
angular.module('copayApp.controllers').controller('notificationsController', function($scope, $state, $timeout, $stateParams, profileService, configService) {
|
||||
|
||||
$scope.$on("$ionicView.enter", function(event, data) {
|
||||
$scope.walletId = data.stateParams.walletId;
|
||||
});
|
||||
|
||||
$scope.walletId = $stateParams.walletId;
|
||||
$scope.allowNotif = function() {
|
||||
profileService.pushNotificationsInit();
|
||||
$timeout(function() {
|
||||
profileService.pushNotificationsInit();
|
||||
});
|
||||
$state.go('onboarding.backupRequest', {
|
||||
walletId: $scope.walletId
|
||||
});
|
||||
}
|
||||
|
||||
$scope.disableNotif = function() {
|
||||
var opts = {
|
||||
pushNotifications: {
|
||||
enabled: false
|
||||
}
|
||||
};
|
||||
configService.set(opts, function(err) {
|
||||
if (err) $log.warn(err);
|
||||
$state.go('onboarding.backupRequest', {
|
||||
walletId: $scope.walletId
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,28 +1,40 @@
|
|||
'use strict';
|
||||
angular.module('copayApp.controllers').controller('tourController',
|
||||
function($scope, $state, $log, $timeout, $filter, ongoingProcess, profileService, rateService) {
|
||||
function($scope, $state, $log, $timeout, $filter, ongoingProcess, platformInfo, profileService, rateService) {
|
||||
|
||||
var tries = 0;
|
||||
var isCordova = platformInfo.isCordova;
|
||||
var isWP = platformInfo.isWP;
|
||||
var usePushNotifications = isCordova && !isWP;
|
||||
|
||||
$scope.init = function() {
|
||||
$scope.data = {
|
||||
index: 0
|
||||
};
|
||||
|
||||
$scope.options = {
|
||||
loop: false,
|
||||
effect: 'flip',
|
||||
speed: 500,
|
||||
spaceBetween: 100
|
||||
}
|
||||
$scope.data = {
|
||||
index: 0
|
||||
};
|
||||
|
||||
rateService.whenAvailable(function() {
|
||||
var localCurrency = 'USD';
|
||||
var btcAmount = 1;
|
||||
var rate = rateService.toFiat(btcAmount * 1e8, localCurrency);
|
||||
$scope.localCurrencySymbol = '$';
|
||||
$scope.localCurrencyPerBtc = $filter('formatFiatAmount')(parseFloat(rate.toFixed(2), 10));
|
||||
$scope.options = {
|
||||
loop: false,
|
||||
effect: 'flip',
|
||||
speed: 500,
|
||||
spaceBetween: 100
|
||||
}
|
||||
|
||||
$scope.$on("$ionicSlides.sliderInitialized", function(event, data) {
|
||||
$scope.slider = data.slider;
|
||||
});
|
||||
|
||||
$scope.$on("$ionicSlides.slideChangeStart", function(event, data) {
|
||||
$scope.data.index = data.slider.activeIndex;
|
||||
});
|
||||
|
||||
$scope.$on("$ionicSlides.slideChangeEnd", function(event, data) {});
|
||||
|
||||
$scope.$on("$ionicView.enter", function(event, data) {
|
||||
rateService.whenAvailable(function() {
|
||||
var localCurrency = 'USD';
|
||||
var btcAmount = 1;
|
||||
var rate = rateService.toFiat(btcAmount * 1e8, localCurrency);
|
||||
$scope.localCurrencySymbol = '$';
|
||||
$scope.localCurrencyPerBtc = $filter('formatFiatAmount')(parseFloat(rate.toFixed(2), 10));
|
||||
});
|
||||
});
|
||||
|
||||
$scope.createDefaultWallet = function() {
|
||||
|
|
@ -33,21 +45,22 @@ angular.module('copayApp.controllers').controller('tourController',
|
|||
|
||||
return $timeout(function() {
|
||||
$log.warn('Retrying to create default wallet......');
|
||||
if (tries == 3) {
|
||||
tries == 0;
|
||||
return $scope.createDefaultWallet();
|
||||
} else {
|
||||
tries += 1;
|
||||
return $scope.createDefaultWallet();
|
||||
}
|
||||
return $scope.createDefaultWallet();
|
||||
}, 3000);
|
||||
};
|
||||
ongoingProcess.set('creatingWallet', false);
|
||||
var wallet = walletClient;
|
||||
$state.go('onboarding.collectEmail', {
|
||||
fromOnboarding: true,
|
||||
walletId: wallet.credentials.walletId
|
||||
});
|
||||
var walletId = wallet.credentials.walletId;
|
||||
if (!usePushNotifications) {
|
||||
$state.go('onboarding.backupRequest', {
|
||||
walletId: walletId
|
||||
});
|
||||
}
|
||||
else {
|
||||
$state.go('onboarding.notifications', {
|
||||
walletId: walletId
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
|
@ -60,14 +73,4 @@ angular.module('copayApp.controllers').controller('tourController',
|
|||
if ($scope.data.index != 2) $scope.slider.slideNext();
|
||||
else $state.go('onboarding.welcome');
|
||||
}
|
||||
|
||||
$scope.$on("$ionicSlides.sliderInitialized", function(event, data) {
|
||||
$scope.slider = data.slider;
|
||||
});
|
||||
|
||||
$scope.$on("$ionicSlides.slideChangeStart", function(event, data) {
|
||||
$scope.data.index = data.slider.activeIndex;
|
||||
});
|
||||
|
||||
$scope.$on("$ionicSlides.slideChangeEnd", function(event, data) {});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@ angular.module('copayApp.controllers').controller('preferencesController',
|
|||
var walletId = wallet.credentials.walletId;
|
||||
$scope.wallet = wallet;
|
||||
|
||||
$scope.encryptEnabled = {
|
||||
value: walletService.isEncrypted(wallet)
|
||||
};
|
||||
|
||||
|
||||
$scope.encryptChange = function() {
|
||||
if (!wallet) return;
|
||||
var val = $scope.encryptEnabled.value;
|
||||
|
|
@ -18,6 +23,9 @@ angular.module('copayApp.controllers').controller('preferencesController',
|
|||
|
||||
// ToDo show error?
|
||||
$scope.encryptEnabled.value = false;
|
||||
$timeout(function() {
|
||||
$scope.$apply();
|
||||
});
|
||||
return;
|
||||
}
|
||||
profileService.updateCredentials(JSON.parse(wallet.export()), function() {
|
||||
|
|
@ -32,6 +40,9 @@ angular.module('copayApp.controllers').controller('preferencesController',
|
|||
|
||||
// ToDo show error?
|
||||
$scope.encryptEnabled.value = true;
|
||||
$timeout(function() {
|
||||
$scope.$apply();
|
||||
});
|
||||
return;
|
||||
}
|
||||
profileService.updateCredentials(JSON.parse(wallet.export()), function() {
|
||||
|
|
@ -64,9 +75,7 @@ angular.module('copayApp.controllers').controller('preferencesController',
|
|||
|
||||
var config = configService.getSync();
|
||||
|
||||
$scope.encryptEnabled = {
|
||||
value: walletService.isEncrypted(wallet)
|
||||
};
|
||||
|
||||
|
||||
if (wallet.isPrivKeyExternal)
|
||||
$scope.externalSource = wallet.getPrivKeyExternalSourceName() == 'ledger' ? 'Ledger' : 'Trezor';
|
||||
|
|
|
|||
|
|
@ -9,13 +9,17 @@ angular.module('copayApp.controllers').controller('preferencesNotificationsContr
|
|||
var isCordova = platformInfo.isCordova;
|
||||
var isIOS = platformInfo.isIOS;
|
||||
|
||||
$scope.appName = $window.appConfig.nameCase;
|
||||
$scope.PNEnabledByUser = true;
|
||||
$scope.isIOSApp = isIOS && isCordova;
|
||||
if ($scope.isIOSApp) {
|
||||
cordova.plugins.diagnostic.isRemoteNotificationsEnabled(function(isEnabled) {
|
||||
$scope.PNEnabledByUser = isEnabled;
|
||||
$scope.$digest();
|
||||
});
|
||||
try {
|
||||
PushNotification.hasPermission(function(data) {
|
||||
$scope.PNEnabledByUser = data.isEnabled;
|
||||
});
|
||||
} catch(e) {
|
||||
$log.error(e);
|
||||
};
|
||||
}
|
||||
|
||||
$scope.pushNotifications = {
|
||||
|
|
@ -23,15 +27,8 @@ angular.module('copayApp.controllers').controller('preferencesNotificationsContr
|
|||
};
|
||||
};
|
||||
|
||||
$scope.openSettings = function() {
|
||||
cordova.plugins.diagnostic.switchToSettings(function() {
|
||||
$log.debug('switched to settings');
|
||||
}, function(err) {
|
||||
$log.debug(err);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.pushNotificationsChange = function() {
|
||||
if (!$scope.pushNotifications) return;
|
||||
var opts = {
|
||||
pushNotifications: {
|
||||
enabled: $scope.pushNotifications.value
|
||||
|
|
@ -39,9 +36,9 @@ angular.module('copayApp.controllers').controller('preferencesNotificationsContr
|
|||
};
|
||||
configService.set(opts, function(err) {
|
||||
if (opts.pushNotifications.enabled)
|
||||
pushNotificationsService.enableNotifications(profileService.walletClients);
|
||||
profileService.pushNotificationsInit();
|
||||
else
|
||||
pushNotificationsService.disableNotifications(profileService.walletClients);
|
||||
pushNotificationsService.disableNotifications(profileService.getWallets());
|
||||
if (err) $log.debug(err);
|
||||
});
|
||||
};
|
||||
|
|
|
|||
|
|
@ -12,6 +12,12 @@ angular.module('copayApp.controllers').controller('tabHomeController',
|
|||
$scope.name = $window.appConfig.nameCase;
|
||||
$scope.homeTip = $stateParams.fromOnboarding;
|
||||
|
||||
if(!$scope.homeTip){
|
||||
storageService.getHomeTipAccepted(function(error, value){
|
||||
$scope.homeTip = (value == 'false') ? false : true;
|
||||
});
|
||||
}
|
||||
|
||||
$scope.openNotificationModal = function(n) {
|
||||
wallet = profileService.getWallet(n.walletId);
|
||||
|
||||
|
|
@ -164,11 +170,8 @@ angular.module('copayApp.controllers').controller('tabHomeController',
|
|||
};
|
||||
|
||||
$scope.hideHomeTip = function() {
|
||||
$scope.homeTip = null;
|
||||
$state.transitionTo($state.current, null, {
|
||||
reload: true,
|
||||
inherit: false,
|
||||
notify: false
|
||||
storageService.setHomeTipAccepted(false, function(error, value){
|
||||
$scope.homeTip = false;
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -5,21 +5,6 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi
|
|||
$scope.isCordova = platformInfo.isCordova;
|
||||
$scope.isNW = platformInfo.isNW;
|
||||
|
||||
$scope.checkTips = function(force) {
|
||||
storageService.getReceiveTipsAccepted(function(err, accepted) {
|
||||
if (err) $log.warn(err);
|
||||
if (accepted && !force) return;
|
||||
|
||||
$timeout(function() {
|
||||
$ionicModal.fromTemplateUrl('views/modals/receive-tips.html', {
|
||||
scope: $scope
|
||||
}).then(function(modal) {
|
||||
$scope.receiveTipsModal = modal;
|
||||
$scope.receiveTipsModal.show();
|
||||
});
|
||||
}, force ? 1 : 1000);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.shareAddress = function(addr) {
|
||||
if ($scope.generatingAddress) return;
|
||||
|
|
@ -84,7 +69,6 @@ angular.module('copayApp.controllers').controller('tabReceiveController', functi
|
|||
});
|
||||
};
|
||||
|
||||
if (!$scope.isCordova) $scope.checkTips();
|
||||
$scope.$on('Wallet/Changed', function(event, wallet) {
|
||||
if (!wallet) {
|
||||
$log.debug('No wallet provided');
|
||||
|
|
|
|||
|
|
@ -296,7 +296,8 @@ angular.module('copayApp.services')
|
|||
if (!val) {
|
||||
return cb(new Error('NONAGREEDDISCLAIMER: Non agreed disclaimer'));
|
||||
}
|
||||
if (usePushNotifications)
|
||||
var config = configService.getSync();
|
||||
if (config.pushNotifications.enabled && usePushNotifications)
|
||||
root.pushNotificationsInit();
|
||||
return cb();
|
||||
});
|
||||
|
|
@ -317,6 +318,8 @@ angular.module('copayApp.services')
|
|||
var defaults = configService.getDefaults();
|
||||
var push = pushNotificationsService.init(root.wallet);
|
||||
|
||||
if (!push) return;
|
||||
|
||||
push.on('notification', function(data) {
|
||||
if (!data.additionalData.foreground) {
|
||||
$log.debug('Push notification event: ', data.message);
|
||||
|
|
|
|||
|
|
@ -11,10 +11,14 @@ angular.module('copayApp.services')
|
|||
|
||||
root.init = function(walletsClients) {
|
||||
var defaults = configService.getDefaults();
|
||||
var push = PushNotification.init(defaults.pushNotifications.config);
|
||||
try {
|
||||
var push = PushNotification.init(defaults.pushNotifications.config);
|
||||
} catch(e) {
|
||||
$log.error(e);
|
||||
return;
|
||||
};
|
||||
|
||||
push.on('registration', function(data) {
|
||||
if (root.token) return;
|
||||
$log.debug('Starting push notification registration');
|
||||
root.token = data.registrationId;
|
||||
var config = configService.getSync();
|
||||
|
|
@ -31,7 +35,7 @@ angular.module('copayApp.services')
|
|||
if (!config.pushNotifications.enabled) return;
|
||||
|
||||
if (!root.token) {
|
||||
$log.warn('No token available for this device. Cannot set push notifications');
|
||||
$log.warn('No token available for this device. Cannot set push notifications. Needs registration.');
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -195,6 +195,14 @@ angular.module('copayApp.services')
|
|||
storage.remove('config', cb);
|
||||
};
|
||||
|
||||
root.getHomeTipAccepted = function(cb) {
|
||||
storage.get('homeTip', cb);
|
||||
};
|
||||
|
||||
root.setHomeTipAccepted = function(val, cb) {
|
||||
storage.set('homeTip', val, cb);
|
||||
};
|
||||
|
||||
root.setHideBalanceFlag = function(walletId, val, cb) {
|
||||
storage.set('hideBalance-' + walletId, val, cb);
|
||||
};
|
||||
|
|
@ -361,21 +369,6 @@ 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.setBackupNeededModalFlag = function(walletId, val, cb) {
|
||||
storage.set('showBackupNeededModal-' + walletId, val, cb);
|
||||
|
|
|
|||
|
|
@ -22,18 +22,27 @@
|
|||
font-size: 24px;
|
||||
margin-top: .5rem;
|
||||
line-height: 1.3;
|
||||
@media(max-width: 350px) {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
.onboarding-description {
|
||||
margin-top: 1rem;
|
||||
font-size: 16px;
|
||||
color: rgba(255,255,255,0.5);
|
||||
line-height: 1.5;
|
||||
@media(max-width: 350px) {
|
||||
line-height: 1.3;
|
||||
}
|
||||
}
|
||||
.onboarding-tldr {
|
||||
font-size: 18px;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1em;
|
||||
line-height: 1.3;
|
||||
@media(max-width: 350px) {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -55,7 +64,7 @@
|
|||
%onboarding-illustration {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 40%;
|
||||
height: 45%;
|
||||
margin-top: 25vh;
|
||||
top: 0;
|
||||
background-position: center;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue