diff --git a/public/views/backup.html b/public/views/backup.html
index 9896a8511..27859642c 100644
--- a/public/views/backup.html
+++ b/public/views/backup.html
@@ -75,7 +75,7 @@
diff --git a/src/js/controllers/backup.js b/src/js/controllers/backup.js
index eef4c5057..b186a4582 100644
--- a/src/js/controllers/backup.js
+++ b/src/js/controllers/backup.js
@@ -7,12 +7,12 @@ angular.module('copayApp.controllers').controller('wordsController',
var successMsg = gettext('Backup words deleted');
this.done = function() {
- $rootScope.$emit('Local/BackupDone');
+ $rootScope.$emit('Local/BackupDone');
};
this.delete = function() {
var fc = profileService.focusedClient;
- confirmDialog.show(msg,function(ok){
+ confirmDialog.show(msg, function(ok) {
if (ok) {
fc.clearMnemonic();
profileService.updateCredentialsFC(function() {
@@ -26,8 +26,10 @@ angular.module('copayApp.controllers').controller('wordsController',
var fc = profileService.focusedClient;
var words = fc.getMnemonic();
- if (words)
+ if (words) {
this.mnemonicWords = words.split(/[\u3000\s]+/);
+ this.mnemonicHasPassphrase = fc.mnemonicHasPassphrase();
+ this.useIdeograms = words.indexOf("\u3000") >= 0;
+ }
- this.mnemonicHasPassphrase = fc.mnemonicHasPassphrase();
});
diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js
index 16d5292bc..b77de1450 100644
--- a/src/js/controllers/walletHome.js
+++ b/src/js/controllers/walletHome.js
@@ -953,11 +953,13 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
});
};
- this.setFromPayPro = function(uri) {
+ this.setFromPayPro = function(uri, cb) {
+ if (!cb) cb = function() {};
+
var fc = profileService.focusedClient;
if (isChromeApp) {
this.error = gettext('Payment Protocol not supported on Chrome App');
- return;
+ return cb(true);
}
var satToUnit = 1 / this.unitToSatoshi;
@@ -973,23 +975,25 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
self.setOngoingProcess();
if (err) {
- $log.warn(err);
+ $log.warn('Could not fetch payment request:', err);
self.resetForm();
var msg = err.toString();
if (msg.match('HTTP')) {
msg = gettext('Could not fetch payment information');
}
self.error = msg;
- } else {
- self._paypro = paypro;
- self.setForm(paypro.toAddress, (paypro.amount * satToUnit).toFixed(self.unitDecimals),
- paypro.memo);
+ return cb(true);
}
+
+ self._paypro = paypro;
+ self.setForm(paypro.toAddress, (paypro.amount * satToUnit).toFixed(self.unitDecimals), paypro.memo);
+ return cb();
});
}, 1);
};
this.setFromUri = function(uri) {
+ var self = this;
function sanitizeUri(uri) {
// Fixes when a region uses comma to separate decimals
var regex = /[\?\&]amount=(\d+([\,\.]\d+)?)/i;
@@ -1010,16 +1014,26 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi
return uri;
}
var parsed = new bitcore.URI(uri);
- var addr = parsed.address.toString();
+
+ var addr = parsed.address ? parsed.address.toString() : '';
var message = parsed.message;
- if (parsed.r)
- return this.setFromPayPro(parsed.r);
var amount = parsed.amount ?
(parsed.amount.toFixed(0) * satToUnit).toFixed(this.unitDecimals) : 0;
- this.setForm(addr, amount, message);
- return addr;
+
+ if (parsed.r) {
+ this.setFromPayPro(parsed.r, function(err) {
+ if (err && addr && amount) {
+ self.setForm(addr, amount, message);
+ return addr;
+ }
+ });
+ } else {
+ this.setForm(addr, amount, message);
+ return addr;
+ }
+
};
this.onAddressChange = function(value) {
diff --git a/src/js/services/uxLanguage.js b/src/js/services/uxLanguage.js
index e0cb59ac0..a61a2974e 100644
--- a/src/js/services/uxLanguage.js
+++ b/src/js/services/uxLanguage.js
@@ -27,6 +27,7 @@ angular.module('copayApp.services')
}, {
name: '日本語',
isoCode: 'ja',
+ useIdeograms: true,
}, {
name: 'Pусский',
isoCode: 'ru',
@@ -64,6 +65,12 @@ angular.module('copayApp.services')
return root.getName(root.currentLanguage);
};
+ root.getCurrentLanguageInfo = function() {
+ return lodash.find(root.availableLanguages, {
+ 'isoCode': root.currentLanguage
+ });
+ };
+
root.getLanguages = function() {
return root.availableLanguages;
};