import 'package:drift_flutter/drift_flutter.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; import 'src/app.dart'; import 'src/database/database.dart'; import 'src/exercises/exercise_library.dart'; import 'src/history/session_repository.dart'; import 'src/plans/plan_repository.dart'; import 'src/player/player_effects.dart'; import 'src/settings/settings_controller.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]); final db = AppDatabase(driftDatabase(name: 'zenxercise')); final library = await ExerciseLibrary.load(rootBundle); final settings = SettingsController(SettingsService()); await settings.loadSettings(); runApp( MultiProvider( providers: [ ChangeNotifierProvider.value(value: settings), Provider.value(value: library), Provider.value(value: PlanRepository(db)), Provider.value(value: SessionRepository(db)), Provider(create: (_) => DevicePlayerEffects()), ], child: const ZenXerciseApp(), ), ); }