summaryrefslogtreecommitdiffstats
path: root/lib/home_page.dart
blob: e07a507a63846dd9c164e0a704ecd0aac87f2249 (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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
// SPDX-License-Identifier: Apache-2.0

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_hvac/vehicle-signals/vss_client.dart';
import 'package:flutter_hvac/vehicle-signals/vss_provider.dart';
import 'package:flutter_hvac/Buttons/fresh_air.dart';
import 'package:flutter_svg_provider/flutter_svg_provider.dart';
import 'package:flutter_hvac/Buttons/AC.dart';
import 'package:flutter_hvac/Buttons/ac_on_face.dart';
import 'package:flutter_hvac/Buttons/ac_on_foot.dart';
import 'package:flutter_hvac/Buttons/defrost_recirculate.dart';
import 'package:flutter_hvac/size.dart';

import 'Buttons/auto.dart';
import 'widgets/left_climate.dart';
import 'widgets/right_climate.dart';
import 'widgets/slider.dart';

class HomePage extends ConsumerStatefulWidget {
  const HomePage({Key? key}) : super(key: key);

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

class _HomePageState extends ConsumerState<HomePage> {
  late VssClient vss;

  initState() {
    vss = ref.read(vssClientProvider);
    vss.run();

    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    SizeConfig().init(context);

    return Scaffold(
        backgroundColor: Colors.black,
        body: Theme(
          data: Theme.of(context).copyWith(
            // Disable splash animations
            splashFactory: NoSplash.splashFactory,
            hoverColor: Colors.transparent,
          ),
          child: Flex(
            direction: Axis.vertical,
            children: [
              Container(height: SizeConfig.screenHeight * 0.0125),
              Flexible(
                  flex: 4,
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                    children: [
                      Column(
                        children: [
                          Text(
                            'Left',
                            style: TextStyle(
                              fontSize: SizeConfig.fontsize * 4,
                              fontWeight: FontWeight.w700,
                              color: Colors.lightBlueAccent,
                            ),
                          ),
                          SizedBox(
                            height: SizeConfig.screenHeight / 10,
                            width: SizeConfig.screenWidth / 10,
                            child: Image.asset('images/left_climate.PNG')),
                          LeftClimateScrollWidget(),
                        ],
                      ),
                      Column(
                        children: [
                          Text(
                            'Right',
                            style: TextStyle(
                              fontSize: SizeConfig.fontsize * 4,
                              fontWeight: FontWeight.w700,
                              color: Colors.lightBlueAccent,
                            ),
                          ),
                          SizedBox(
                            height: SizeConfig.screenHeight / 10,
                            width: SizeConfig.screenWidth / 10,
                            child: Image.asset('images/right_climate.PNG')),
                          RightClimateScrollWidget(),
                        ],
                      ),
                    ],
                  )),
              Flexible(
                  flex: 2,
                  child: Row(
                    crossAxisAlignment: CrossAxisAlignment.center,
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [
                      Container(
                          height: SizeConfig.screenHeight * 0.20,
                          child: Image(
                              width: SizeConfig.screenWidth * 0.20,
                              height: SizeConfig.screenHeight * 0.25,
                              image: Svg('images/fan.svg'),
                              color: Colors.lightBlueAccent,
                              fit: BoxFit.fitWidth)),
                      SliderControl(),
                    ],
                  )),
              Flexible(
                  flex: 3,
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                    children: [
                      Column(
                        children: [
                          AC(),
                          SizedBox(
                            height: SizeConfig.safeBlockVertical,
                          ),
                          AcOnFoot(img: 'images/ac_on_foot.svg'),
                          SizedBox(
                            height: SizeConfig.safeBlockVertical,
                          ),
                          AcOnFace(img: 'images/ac_on_face.svg'),
                        ],
                      ),
                      Row(
                        children: [
                          Auto(),
                          SizedBox(
                            width: SizeConfig.safeBlockHorizontal,
                          ),
                          FreshAir(img: 'images/wind_in.svg'),
                        ],
                      ),
                      Column(
                        children: [
                          CustomButton(
                            img: 'images/in_out.svg',
                            type: 'Recirculation'),
                          SizedBox(
                            height: SizeConfig.safeBlockVertical,
                          ),
                          CustomButton(
                            img: 'images/rear_ws.svg',
                            type: 'Rear_defrost'),
                          SizedBox(
                            height: SizeConfig.safeBlockVertical,
                          ),
                          CustomButton(
                            img: 'images/wind_shield.svg',
                            type: 'Front_defrost'),
                        ],
                      ),
                    ],
                  )),
            ],
          ),
        ));
  }
}