import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:smoke_cess_app/pages/main_page.dart'; import 'package:smoke_cess_app/providers/tasks_provider.dart'; import 'package:smoke_cess_app/providers/timer_provider.dart'; import 'package:smoke_cess_app/services/notification_service.dart'; import 'package:timezone/data/latest.dart' as tz; import 'globals.dart' as globals; import 'providers/page_provider.dart'; import 'providers/settings_provider.dart'; import 'providers/workout_provider.dart'; void main() { // to ensure all the widgets are initialized. WidgetsFlutterBinding.ensureInitialized(); //init database globals.databaseService; tz.initializeTimeZones(); NotificationService().initNotification(); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); static const String _title = 'Smoking Cessation App'; @override Widget build(BuildContext context) { TimerProvider timerProvider = TimerProvider(); return MaterialApp( title: _title, home: MultiProvider( providers: [ ChangeNotifierProvider(create: (context) => SettingsProvider()), ChangeNotifierProxyProvider( create: (context) => TasksProvider(null), update: (context, value, TasksProvider? previous) => TasksProvider(value), ), ChangeNotifierProvider( create: (context) => PageProvider(), ), ChangeNotifierProvider(create: (context) => timerProvider), ChangeNotifierProvider( create: (context) => WorkoutProvider(timerProvider)), ], child: const MyHomePage(), )); } }