Untitled
unknown
plain_text
a year ago
1.9 kB
5
Indexable
import 'dart:async';
import 'dart:io';
import 'package:encrypt/encrypt.dart' as encrypt;
import 'package:flutter/material.dart';
import 'package:local_auth/local_auth.dart';
import 'package:path_provider/path_provider.dart';
void main() {
runApp(MOHAMEDVaultApp());
}
class MOHAMEDVaultApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MOHAMED Vault',
theme: ThemeData(primarySwatch: Colors.blue),
initialRoute: '/',
routes: {
'/': (context) => AuthenticationScreen(),
'/vault': (context) => VaultScreen(),
'/lock': (context) => LockScreen(),
},
);
}
}
/// *Authentication Screen*
class AuthenticationScreen extends StatefulWidget {
@override
_AuthenticationScreenState createState() => _AuthenticationScreenState();
}
class _AuthenticationScreenState extends State<AuthenticationScreen> {
final LocalAuthentication auth = LocalAuthentication();
Future<void> authenticate() async {
try {
bool authenticated = await auth.authenticate(
localizedReason: 'Authenticate to access your vault',
options: AuthenticationOptions(biometricOnly: true),
);
if (authenticated) {
Navigator.pushReplacementNamed(context, '/vault');
}
} catch (e) {
print('Error authenticating: $e');
}
}
@override
void initState() {
super.initState();
authenticate();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(child: Text('Authenticating...')),
);
}
}
/// *Vault Screen*
class VaultScreen extends StatefulWidget {
@override
_VaultScreenState createState() => _VaultScreenState();
}
class _VaultScreenState extends State<VaultScreen> {Editor is loading...
Leave a Comment