summaryrefslogtreecommitdiffstats
path: root/lib/widgets/left_climate.dart
blob: 2fb30a00e52691a23e3ba8267a668a8b44ea941a (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
// SPDX-License-Identifier: Apache-2.0

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
import 'package:flutter_hvac/provider.dart';
import 'dart:io';

import '../kuksa-server/vehicle_methods.dart';
import '../size.dart';

class ScrollContainerLeft extends ConsumerWidget {
  WebSocket socket;
  ScrollContainerLeft({Key? key, required this.socket}) : super(key: key);

  List<int> mylist = [
    16,
    17,
    18,
    19,
    20,
    21,
    22,
    23,
    24,
    25,
    26,
    27,
    28,
    29,
    30,
    31,
    32
  ];


  final ItemScrollController itemScrollController = ItemScrollController();
  final ItemPositionsListener itemPositionsListener =
      ItemPositionsListener.create();
  @override
  Widget build(BuildContext context, ref) {
    int val = ref.watch(LeftSlider).toInt();

    VISS.set(socket,ref, 'Vehicle.Cabin.HVAC.Station.Row1.Left.Temperature',
        mylist[val].toString());
    VISS.set(socket,ref, 'Vehicle.Cabin.HVAC.Station.Row2.Left.Temperature',
        mylist[val].toString());


    if (itemScrollController.isAttached) {
      itemScrollController.scrollTo(
          index: val.toInt() + 2,
          duration: Duration(milliseconds: 500),
          curve: Curves.easeInOutCubic,
          alignment: 1);
    }

    return SingleChildScrollView(
      child: SizedBox(
        height: SizeConfig.screenHeight*0.30,
        width: SizeConfig.screenWidth*0.25,
        child: AnimatedContainer(
          // color: Colors.red,
          duration: Duration(milliseconds: 500),
          decoration: BoxDecoration(
            border: Border.all(
              color: Colors.white,
              width: 2,
            ),
            borderRadius: BorderRadius.circular(12),
          ),
          child: ScrollablePositionedList.builder(
            physics: NeverScrollableScrollPhysics(),
              scrollDirection: Axis.vertical,
              itemCount: mylist.length,
              itemScrollController: itemScrollController,
              itemPositionsListener: itemPositionsListener,
              itemBuilder: (context, index) {
                return Container(
                  decoration: BoxDecoration(

                    gradient: index == val
                        ? RadialGradient(
                            colors: [Colors.white54, Colors.black], radius: SizeConfig.safeBlockVertical*0.7)
                        : null,
                  ),
                  child: ListTile(
                    subtitle: Center(
                      child: Text(
                        '' + mylist[index].toString() + '°',
                        style: index == val ? TextStyle(
                          color: Colors.lightBlueAccent,
                          fontWeight: FontWeight.w700,
                          fontSize: SizeConfig.fontsize*4,
                        ):TextStyle(
                          color: Colors.white54,
                          fontWeight: FontWeight.w700,
                          fontSize: SizeConfig.fontsize*4,
                        ),
                      ),
                    ),
                    // tileColor: Colors.red,
                    minVerticalPadding: 5,
                    // selectedTileColor: ,
                  ),
                );
              }),
        ),
      ),
    );
  }
}