[FIX] Screen Lock options i18n (#2120)

Co-authored-by: Diego Mello <diegolmello@gmail.com>
This commit is contained in:
Djorkaeff Alexandre 2020-05-18 14:35:21 -03:00 committed by GitHub
parent 68d7ab06b8
commit 035bdfeca1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 42 deletions

View File

@ -1,5 +1,3 @@
import I18n from '../i18n';
export const PASSCODE_KEY = 'kPasscode';
export const LOCKED_OUT_TIMER_KEY = 'kLockedOutTimer';
export const ATTEMPTS_KEY = 'kAttempts';
@ -12,26 +10,3 @@ export const MAX_ATTEMPTS = 6;
export const TIME_TO_LOCK = 30000;
export const DEFAULT_AUTO_LOCK = 1800;
export const DEFAULT_AUTO_LOCK_OPTIONS = [
{
title: I18n.t('Local_authentication_auto_lock_60'),
value: 60
},
{
title: I18n.t('Local_authentication_auto_lock_300'),
value: 300
},
{
title: I18n.t('Local_authentication_auto_lock_900'),
value: 900
},
{
title: I18n.t('Local_authentication_auto_lock_1800'),
value: 1800
},
{
title: I18n.t('Local_authentication_auto_lock_3600'),
value: 3600
}
];

View File

@ -10,7 +10,7 @@ import log from '../../utils/log';
import database from '../database';
import protectedFunction from './helpers/protectedFunction';
import fetch from '../../utils/fetch';
import { DEFAULT_AUTO_LOCK, DEFAULT_AUTO_LOCK_OPTIONS } from '../../constants/localAuthentication';
import { DEFAULT_AUTO_LOCK } from '../../constants/localAuthentication';
const serverInfoKeys = ['Site_Name', 'UI_Use_Real_Name', 'FileUpload_MediaTypeWhiteList', 'FileUpload_MaxFileSize', 'Force_Screen_Lock', 'Force_Screen_Lock_After'];
@ -55,19 +55,6 @@ const serverInfoUpdate = async(serverInfo, iconSetting) => {
return { ...allSettings, autoLock };
}
if (setting._id === 'Force_Screen_Lock_After') {
// Force_Screen_Lock from server
const forceScreenLock = serverInfo.find(item => item._id === 'Force_Screen_Lock')?.valueAsBoolean;
// if Force_Screen_Lock is disabled on server and Screen Lock is enabled on app
if (!forceScreenLock && server.autoLock) {
// if the current autoLockTime is one of our default options, we'll keep this value
if (DEFAULT_AUTO_LOCK_OPTIONS.find(option => option.value === server.autoLockTime)) {
return { ...allSettings, autoLockTime: server.autoLockTime };
}
// if the current autoLockTime is a value that isn't in our default options, we'll reset
return { ...allSettings, autoLockTime: DEFAULT_AUTO_LOCK };
}
// if Force_Screen_Lock_After === 0 and autoLockTime is null, set app's default value
if (setting.valueAsNumber === 0 && !server.autoLockTime) {
return { ...allSettings, autoLockTime: DEFAULT_AUTO_LOCK };

View File

@ -17,7 +17,7 @@ import { CustomIcon } from '../lib/Icons';
import database from '../lib/database';
import { supportedBiometryLabel, changePasscode, checkHasPasscode } from '../utils/localAuthentication';
import { DisclosureImage } from '../containers/DisclosureIndicator';
import { DEFAULT_AUTO_LOCK_OPTIONS, DEFAULT_AUTO_LOCK } from '../constants/localAuthentication';
import { DEFAULT_AUTO_LOCK } from '../constants/localAuthentication';
const styles = StyleSheet.create({
listPadding: {
@ -54,6 +54,29 @@ class ScreenLockConfigView extends React.Component {
this.init();
}
defaultAutoLockOptions = [
{
title: I18n.t('Local_authentication_auto_lock_60'),
value: 60
},
{
title: I18n.t('Local_authentication_auto_lock_300'),
value: 300
},
{
title: I18n.t('Local_authentication_auto_lock_900'),
value: 900
},
{
title: I18n.t('Local_authentication_auto_lock_1800'),
value: 1800
},
{
title: I18n.t('Local_authentication_auto_lock_3600'),
value: 3600
}
];
init = async() => {
const { server } = this.props;
const serversDB = database.servers;
@ -168,18 +191,24 @@ class ScreenLockConfigView extends React.Component {
}
renderAutoLockItems = () => {
const { autoLock } = this.state;
const { autoLock, autoLockTime } = this.state;
const { theme, Force_Screen_Lock_After, Force_Screen_Lock } = this.props;
if (!autoLock) {
return null;
}
let items = DEFAULT_AUTO_LOCK_OPTIONS;
let items = this.defaultAutoLockOptions;
if (Force_Screen_Lock && Force_Screen_Lock_After > 0) {
items = [{
title: I18n.t('After_seconds_set_by_admin', { seconds: Force_Screen_Lock_After }),
value: Force_Screen_Lock_After,
disabled: true
}];
// if Force_Screen_Lock is disabled and autoLockTime is a value that isn't on our defaultOptions we'll show it
} else if (Force_Screen_Lock_After === autoLockTime && !items.find(item => item.value === autoLockTime)) {
items.push({
title: I18n.t('After_seconds_set_by_admin', { seconds: Force_Screen_Lock_After }),
value: Force_Screen_Lock_After
});
}
return (
<>