From b8d2d687a29942fadb0a23299e97ef02631025ea Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sun, 22 Nov 2020 18:48:06 +0800 Subject: [PATCH] fix language always being set to English after logged out --- src/mobile-main.js | 17 ++++++++++------- src/views/mobile/Login.vue | 10 ++++++++-- src/views/mobile/Settings.vue | 4 +++- src/views/mobile/Signup.vue | 4 +++- src/views/mobile/Unlock.vue | 3 ++- 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/mobile-main.js b/src/mobile-main.js index 35f8ff45..518592a7 100644 --- a/src/mobile-main.js +++ b/src/mobile-main.js @@ -92,6 +92,15 @@ Vue.prototype.$locale = { }) return allCurrencies; + }, + init: function () { + if (settings.getLanguage()) { + logger.info(`Current language is ${settings.getLanguage()}`); + } else { + logger.info(`No language is set, use browser default ${getDefaultLanguage()}`); + } + + this.setLanguage(settings.getLanguage() || getDefaultLanguage()); } }; @@ -170,13 +179,7 @@ Vue.filter('accountIcon', (value) => accountIconFilter(value)); Vue.filter('tokenDevice', (value) => tokenDeviceFilter(value)); Vue.filter('tokenIcon', (value) => tokenIconFilter(value)); -if (settings.getLanguage()) { - logger.info(`Current language is ${settings.getLanguage()}`); -} else { - logger.info(`No language is set, use browser default ${getDefaultLanguage()}`); -} - -Vue.prototype.$locale.setLanguage(settings.getLanguage() || getDefaultLanguage()); +Vue.prototype.$locale.init(); if (userstate.isUserLogined()) { if (!settings.isEnableApplicationLock()) { diff --git a/src/views/mobile/Login.vue b/src/views/mobile/Login.vue index feb50f4b..b0d45ffa 100644 --- a/src/views/mobile/Login.vue +++ b/src/views/mobile/Login.vue @@ -185,7 +185,10 @@ export default { return; } - self.$settings.setEnableApplicationLock(false); + if (self.$settings.isEnableApplicationLock()) { + self.$settings.setEnableApplicationLock(false); + } + self.$user.updateTokenAndUserInfo(data.result); if (self.$settings.isAutoUpdateExchangeRatesData()) { @@ -259,7 +262,10 @@ export default { return; } - self.$settings.setEnableApplicationLock(false); + if (self.$settings.isEnableApplicationLock()) { + self.$settings.setEnableApplicationLock(false); + } + self.$user.updateTokenAndUserInfo(data.result); if (self.$settings.isAutoUpdateExchangeRatesData()) { diff --git a/src/views/mobile/Settings.vue b/src/views/mobile/Settings.vue index e6b53879..69217e60 100644 --- a/src/views/mobile/Settings.vue +++ b/src/views/mobile/Settings.vue @@ -185,8 +185,10 @@ export default { } self.$user.clearTokenAndUserInfo(); - self.$settings.clearSettings(); self.$exchangeRates.clearExchangeRates(); + self.$settings.clearSettings(); + self.$locale.init(); + router.navigate('/'); }).catch(error => { self.$logger.error('failed to log out', error); diff --git a/src/views/mobile/Signup.vue b/src/views/mobile/Signup.vue index 02b4f600..72df5f88 100644 --- a/src/views/mobile/Signup.vue +++ b/src/views/mobile/Signup.vue @@ -157,7 +157,9 @@ export default { return; } - self.$settings.setEnableApplicationLock(false); + if (self.$settings.isEnableApplicationLock()) { + self.$settings.setEnableApplicationLock(false); + } if (self.$utilities.isString(data.result.token)) { self.$user.updateTokenAndUserInfo(data.result); diff --git a/src/views/mobile/Unlock.vue b/src/views/mobile/Unlock.vue index ff64f34a..25bfc81e 100644 --- a/src/views/mobile/Unlock.vue +++ b/src/views/mobile/Unlock.vue @@ -92,8 +92,9 @@ export default { const router = this.$f7router; this.$user.clearTokenAndUserInfo(); - this.$settings.clearSettings(); this.$exchangeRates.clearExchangeRates(); + this.$settings.clearSettings(); + this.$locale.init(); router.navigate('/login', { clearPreviousHistory: true