From 8d6642c07dfcb1a99126b8b04cf7f9e4c595ef0f Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Mon, 18 Jan 2021 17:31:27 +0100 Subject: [PATCH] fix: App lock --- lib/components/matrix.dart | 13 +++++++++++++ lib/main.dart | 1 + 2 files changed, 14 insertions(+) diff --git a/lib/components/matrix.dart b/lib/components/matrix.dart index dfe22ef9..493d6d41 100644 --- a/lib/components/matrix.dart +++ b/lib/components/matrix.dart @@ -13,7 +13,9 @@ import 'package:fluffychat/utils/sentry_controller.dart'; import 'package:flushbar/flushbar.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_app_lock/flutter_app_lock.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:provider/provider.dart'; import 'package:universal_html/prefer_universal/html.dart' as html; @@ -298,6 +300,17 @@ class MatrixState extends State { LoginState loginState; void initMatrix() { + // Display the app lock + if (PlatformInfos.isMobile) { + WidgetsBinding.instance.addPostFrameCallback((_) { + FlutterSecureStorage().read(key: SettingKeys.appLockKey).then((lock) { + if (lock?.isNotEmpty ?? false) { + AppLock.of(context).enable(); + AppLock.of(context).showLockScreen(); + } + }); + }); + } clientName = '${AppConfig.applicationName} ${kIsWeb ? 'Web' : Platform.operatingSystem}'; final Set verificationMethods = { diff --git a/lib/main.dart b/lib/main.dart index 86c407e2..9e071022 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -30,6 +30,7 @@ void main() async { ? AppLock( builder: (args) => App(), lockScreen: LockScreen(), + enabled: false, ) : App()), SentryController.captureException,