55 lines
2.1 KiB
Dart
55 lines
2.1 KiB
Dart
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/bundle/bundle_service.dart';
|
|
import 'src/database/database.dart';
|
|
import 'src/planning/plan_repository.dart';
|
|
import 'src/planning/plan_share_service.dart';
|
|
import 'src/planning/week_plan_provider.dart';
|
|
import 'src/recipes/course_repository.dart';
|
|
import 'src/recipes/photo_store.dart';
|
|
import 'src/recipes/recipe_list_provider.dart';
|
|
import 'src/recipes/recipe_repository.dart';
|
|
import 'src/recipes/unit_catalog.dart';
|
|
import 'src/recipes/unit_repository.dart';
|
|
import 'src/settings/settings_controller.dart';
|
|
import 'src/sharing/recipe_share_service.dart';
|
|
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]);
|
|
|
|
final db = AppDatabase(driftDatabase(name: 'cookit'));
|
|
final photos = await PhotoStore.open();
|
|
final recipes = RecipeRepository(db, photos);
|
|
final courses = CourseRepository(db);
|
|
final units = UnitRepository(db);
|
|
final plan = PlanRepository(db);
|
|
final bundles = BundleService(recipes, courses, units, photos);
|
|
final settings = SettingsController(SettingsService());
|
|
await settings.loadSettings();
|
|
|
|
runApp(
|
|
MultiProvider(
|
|
providers: [
|
|
ChangeNotifierProvider.value(value: settings),
|
|
Provider.value(value: photos),
|
|
Provider.value(value: recipes),
|
|
Provider.value(value: courses),
|
|
Provider.value(value: units),
|
|
Provider.value(value: plan),
|
|
ChangeNotifierProvider(create: (_) => UnitCatalog(units)),
|
|
Provider.value(value: bundles),
|
|
Provider(create: (_) => RecipeShareService(recipes, courses, units, photos, bundles)),
|
|
Provider(create: (_) => PlanShareService(recipes, courses, units, photos, plan, bundles)),
|
|
ChangeNotifierProvider(create: (_) => RecipeListProvider(recipes, courses)),
|
|
ChangeNotifierProvider(create: (_) => WeekPlanProvider(plan)),
|
|
],
|
|
child: const CookItApp(),
|
|
),
|
|
);
|
|
}
|