aboutsummaryrefslogtreecommitdiff
path: root/lib/main.dart
blob: f7b3aca6f2e31442f4290aaff82caea7f3a9b42f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

import 'package:kulinar_app/constants.dart';
import 'package:kulinar_app/views/main_view.dart';
import 'package:kulinar_app/util/notifications.dart';
import 'package:kulinar_app/models/data/recipe_data_class.dart';
import 'package:kulinar_app/models/data/shoplist_data_class.dart';
import 'package:kulinar_app/models/data/settings_data_class.dart';

import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  const AndroidInitializationSettings initializationSettingsAndroid =
      AndroidInitializationSettings("@mipmap/notification_icon");
  final InitializationSettings initializationSettings =
      InitializationSettings(android: initializationSettingsAndroid);
  await Notifications.flutterLocalNotificationsPlugin
      .initialize(initializationSettings);

  await RecipeData.load();
  await SettingsData.load();
  await ShoplistData.load();

  runApp(AppRoot());
}

class AppRoot extends StatefulWidget {
  const AppRoot({Key? key}) : super(key: key);

  @override
  _AppRootState createState() => _AppRootState();
}

class _AppRootState extends State<AppRoot> {
  @override
  Widget build(BuildContext context) {
    SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
      statusBarColor: cPrimaryColor,
      statusBarIconBrightness: Brightness.light,
    ));

    return MaterialApp(
      debugShowCheckedModeBanner: false,
      localizationsDelegates: [
        AppLocalizations.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: [
        const Locale('de', ''),
        const Locale('en', ''),
        const Locale('ru', ''),
      ],
      theme: themeData(),
      title: "Kulinar",
      home: MainView(),
    );
  }

  ThemeData themeData() {
    return ThemeData(
      brightness: Brightness.light,
      primarySwatch: cPrimarySwatchColor,
      textSelectionTheme: TextSelectionThemeData(
        cursorColor: cIconColor,
      ),
      inputDecorationTheme: InputDecorationTheme(
        hintStyle: cSearchTextStyle,
      ),
      appBarTheme: AppBarTheme(
        actionsIconTheme: IconThemeData(color: cIconColor),
        titleTextStyle: cTitleStyle,
        toolbarTextStyle: cTitleStyle,
        iconTheme: IconThemeData(color: cIconColor),
        centerTitle: true,
        elevation: 10.0,
      ),
      buttonTheme: ButtonThemeData(
        buttonColor: cPrimaryColor,
      ),
    );
  }
}