Flutter Android login vault: local DB (id+base64 content), email/Google auth, dashboard search/edit/swipe-delete, dark/system theme, minSdk 29

This commit is contained in:
cania
2026-08-12 11:41:20 +02:00
commit a8791a5b10
138 changed files with 6285 additions and 0 deletions

56
lib/main.dart Normal file
View File

@@ -0,0 +1,56 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:login_vault_app/auth_service.dart';
import 'package:login_vault_app/theme_provider.dart';
import 'package:login_vault_app/auth_screen.dart';
import 'package:login_vault_app/dashboard_screen.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final auth = AuthService();
final theme = ThemeProvider();
final registered = await auth.isRegistered();
final email = await auth.getEmail() ?? '';
runApp(
MultiProvider(
providers: [
Provider<AuthService>.value(value: auth),
ChangeNotifierProvider<ThemeProvider>.value(value: theme),
],
child: MyApp(registered: registered, email: email),
),
);
}
class MyApp extends StatelessWidget {
final bool registered;
final String email;
const MyApp({super.key, required this.registered, required this.email});
@override
Widget build(BuildContext context) {
final theme = Provider.of<ThemeProvider>(context);
return MaterialApp(
title: 'Login Vault',
theme: ThemeData(
useMaterial3: true,
brightness: Brightness.light,
colorSchemeSeed: Colors.indigo,
),
darkTheme: ThemeData(
useMaterial3: true,
brightness: Brightness.dark,
colorSchemeSeed: Colors.indigo,
),
themeMode: theme.mode,
home: registered
? DashboardScreen(
auth: context.read<AuthService>(),
theme: theme,
email: email,
)
: AuthScreen(auth: context.read<AuthService>()),
debugShowCheckedModeBanner: false,
);
}
}