summaryrefslogtreecommitdiffstats
path: root/lib/presentation/screens/home/home.dart
blob: 3d80f927e5a08bc00e677bdc3fa2168daa930f0a (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
import 'package:flutter_ics_homescreen/export.dart';
// import 'package:media_kit_video/media_kit_video.dart';

class HomeScreen extends ConsumerStatefulWidget {
  const HomeScreen({
    super.key,
  });

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

class HomeScreenState extends ConsumerState<HomeScreen> {
  @override
  void initState() {
    ref.read(appLauncherProvider).run();
    super.initState();
  }

  @override
  void dispose() {
    // player.dispose();
    super.dispose();
  }

  @override
  Widget build(
    BuildContext context,
  ) {
    return Consumer(builder: (context, ref, child) {
      final state = ref.read(appProvider);
      final bool disableBkgAnimation =
          ref.read(appConfigProvider).disableBkgAnimation;
      if (disableBkgAnimation) {
        print('Background animation: disabled');
      }
      return Scaffold(
        key: homeScaffoldKey,
        extendBody: true,
        extendBodyBehindAppBar: true,
        appBar: const CustomTopBar(),
        body: Stack(
          children: [
            if (!disableBkgAnimation)
              Lottie.asset(
                'animations/BG-dotwaveform.json',
                fit: BoxFit.cover,
                repeat: true,
              ),
            FlowBuilder<AppState>(
              state: ref.watch(appProvider),
              onGeneratePages: onGenerateAppViewPages,
              observers: [
                HeroController(),
              ],
            ),
            if (state != AppState.splash)
              Positioned(
                top: 0,
                bottom: 0,
                child: Container(
                    padding: const EdgeInsets.only(left: 8),
                    height: 500,
                    child: const VolumeFanControl()),
              ),
          ],
        ),
        bottomNavigationBar:
            state == AppState.splash ? null : const CustomBottomBar(),
      );
    });
  }
}