chore: Follow up fix app lock

pull/596/head v1.14.3
Krille 2 years ago
parent 5213b189c1
commit 73d1b7e190
No known key found for this signature in database

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:matrix/matrix.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:fluffychat/config/setting_keys.dart'; import 'package:fluffychat/config/setting_keys.dart';
@ -11,9 +12,11 @@ class AppLockWidget extends StatefulWidget {
const AppLockWidget({ const AppLockWidget({
required this.child, required this.child,
required this.pincode, required this.pincode,
required this.clients,
super.key, super.key,
}); });
final List<Client> clients;
final String? pincode; final String? pincode;
final Widget child; final Widget child;
@ -35,6 +38,16 @@ class AppLock extends State<AppLockWidget> with WidgetsBindingObserver {
_isLocked = isActive; _isLocked = isActive;
super.initState(); super.initState();
WidgetsBinding.instance.addObserver(this); WidgetsBinding.instance.addObserver(this);
WidgetsBinding.instance.addPostFrameCallback(_checkLoggedIn);
}
void _checkLoggedIn(_) async {
if (widget.clients.any((client) => client.isLogged())) return;
await changePincode(null);
setState(() {
_isLocked = false;
});
} }
@override @override
@ -60,7 +73,7 @@ class AppLock extends State<AppLockWidget> with WidgetsBindingObserver {
return; return;
} }
bool unlock(String? pincode) { bool unlock(String pincode) {
final isCorrect = pincode == _pincode; final isCorrect = pincode == _pincode;
if (isCorrect) { if (isCorrect) {
setState(() { setState(() {

@ -48,6 +48,7 @@ class FluffyChatApp extends StatelessWidget {
routerConfig: router, routerConfig: router,
builder: (context, child) => AppLockWidget( builder: (context, child) => AppLockWidget(
pincode: pincode, pincode: pincode,
clients: clients,
child: Matrix( child: Matrix(
clients: clients, clients: clients,
child: testWidget ?? child, child: testWidget ?? child,

@ -7,7 +7,6 @@ import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/config/themes.dart';
import 'package:fluffychat/widgets/app_lock.dart'; import 'package:fluffychat/widgets/app_lock.dart';
import 'package:fluffychat/widgets/matrix.dart';
import 'package:fluffychat/widgets/theme_builder.dart'; import 'package:fluffychat/widgets/theme_builder.dart';
class LockScreen extends StatefulWidget { class LockScreen extends StatefulWidget {
@ -23,20 +22,6 @@ class _LockScreenState extends State<LockScreen> {
bool _inputBlocked = false; bool _inputBlocked = false;
final TextEditingController _textEditingController = TextEditingController(); final TextEditingController _textEditingController = TextEditingController();
@override
void initState() {
super.initState();
_checkLoggedIn();
}
void _checkLoggedIn() async {
if (Matrix.of(context).client.isLogged()) return;
final appLock = AppLock.of(context);
await appLock.changePincode(null);
appLock.unlock(null);
}
void tryUnlock(BuildContext context) async { void tryUnlock(BuildContext context) async {
setState(() { setState(() {
_errorText = null; _errorText = null;

Loading…
Cancel
Save