aboutsummaryrefslogtreecommitdiff
path: root/lib/main.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/main.dart')
-rw-r--r--lib/main.dart67
1 files changed, 40 insertions, 27 deletions
diff --git a/lib/main.dart b/lib/main.dart
index 0d97e25..a0ff04a 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -1,45 +1,58 @@
+import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
-void main() {
- runApp(const MyApp());
+import 'providers/theme_provider.dart';
+import 'routes.dart';
+import 'settings/themes.dart';
+
+void main(List<String> args) async {
+ WidgetsFlutterBinding.ensureInitialized();
+ await Firebase.initializeApp();
+ return runApp(const MainContent());
}
-class MyApp extends StatelessWidget {
- const MyApp({super.key});
+class MainContent extends StatefulWidget {
+ const MainContent({super.key});
@override
- Widget build(BuildContext context) {
- return MaterialApp(
- title: 'LinkChat',
- theme: ThemeData(
- colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
- useMaterial3: true,
- ),
- home: const MyHomePage(title: 'LinkChat'),
- );
- }
+ State<MainContent> createState() => _MainContentState();
}
-class MyHomePage extends StatefulWidget {
- const MyHomePage({super.key, required this.title});
+class _MainContentState extends State<MainContent> {
+ int contador = 0;
- final String title;
+ @override
+ void initState() {
+ super.initState();
+ contador = 0;
+ }
@override
- State<MyHomePage> createState() => _MyHomePageState();
+ Widget build(BuildContext context) {
+ return MultiProvider(
+ providers: [
+ ChangeNotifierProvider(create: (_) => ThemeProvider()),
+ ],
+ child: const LinkChat(),
+ );
+ }
}
-class _MyHomePageState extends State<MyHomePage> {
+class LinkChat extends StatelessWidget {
+ const LinkChat({super.key});
+
@override
Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- backgroundColor: Theme.of(context).colorScheme.inversePrimary,
- title: Text(widget.title),
- ),
- body: Center(
- child: Text(widget.title),
- ),
+ final ThemeProvider provider = context.watch<ThemeProvider>();
+ final ThemeData? theme = provider.theme;
+ provider.syncFromPrefs();
+ return MaterialApp(
+ theme: theme ?? ThemeSettings.lightTheme,
+ darkTheme: theme ?? ThemeSettings.darkTheme,
+ themeMode: ThemeMode.system,
+ routes: getApplicationRoutes(),
+ initialRoute: '/login',
);
}
}