[FIX] Screen Lock Time respect local value (#2141)

* [FIX] Screen Lock Time respect local value

* [FIX] Enable biometry at the first passcode change
This commit is contained in:
Djorkaeff Alexandre 2020-05-22 15:04:43 -03:00 committed by GitHub
parent d1e751bf12
commit 1abd3ad79e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 2 deletions

View File

@ -55,12 +55,14 @@ const serverInfoUpdate = async(serverInfo, iconSetting) => {
return { ...allSettings, autoLock };
}
if (setting._id === 'Force_Screen_Lock_After') {
const forceScreenLock = serverInfo.find(s => s._id === 'Force_Screen_Lock')?.valueAsBoolean;
// 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 };
}
// if Force_Screen_Lock_After > 0, use it
if (setting.valueAsNumber > 0) {
// if Force_Screen_Lock_After > 0 and forceScreenLock is enabled, use it
if (setting.valueAsNumber > 0 && forceScreenLock) {
return { ...allSettings, autoLockTime: setting.valueAsNumber };
}
}

View File

@ -54,6 +54,12 @@ class ScreenLockConfigView extends React.Component {
this.init();
}
componentWillUnmount() {
if (this.observable && this.observable.unsubscribe) {
this.observable.unsubscribe();
}
}
defaultAutoLockOptions = [
{
title: I18n.t('Local_authentication_auto_lock_60'),
@ -94,6 +100,19 @@ class ScreenLockConfigView extends React.Component {
const biometryLabel = await supportedBiometryLabel();
this.setState({ biometryLabel });
this.observe();
}
/*
* We should observe biometry value
* because it can be changed by PasscodeChange
* when the user set his first passcode
*/
observe = () => {
this.observable = this.serverRecord?.observe()?.subscribe(({ biometry }) => {
this.setState({ biometry });
});
}
save = async() => {