aboutsummaryrefslogtreecommitdiffstats
path: root/lib/presentation/screens/media/radio_player.dart
blob: 4531c7b2e017c59d3b688444d3bc7bc13bdddcb2 (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
import 'package:flutter_ics_homescreen/data/data_providers/radio_presets_provider.dart';
import 'package:flutter_ics_homescreen/export.dart';
import 'radio_player_controls.dart';
import 'radio_preset_table.dart';
import 'segmented_buttons.dart';

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

  @override
  ConsumerState<RadioPlayer> createState() => _RadioPlayerState();
}

class _RadioPlayerState extends ConsumerState<RadioPlayer> {
  String selectedNav = "Standard";
  List<String> navItems = [
    "Standard",
    "HD",
  ];
  String tableName = "Presets";
  late List<RadioPreset> presets;
  late String selectedPreset;

  @override
  void initState() {
    presets = ref.read(radioPresetsProvider).fmPresets;
    if (presets.isNotEmpty) {
      selectedPreset = presets.first.name;
    } else {
      selectedPreset = "";
    }
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    double fmSignalHeight = 460;
    double fmSignalWidth = 460;

    return Container(
      padding: const EdgeInsets.only(left: 7, right: 7),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        children: [
          SegmentedButtons(
            navItems: navItems,
            selectedNav: selectedNav,
          ),
          const SizedBox(
            height: 32,
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Image.asset(
                "assets/AlbumArtFM.png",
                width: fmSignalWidth,
                height: fmSignalHeight,
              )
            ],
          ),
          const SizedBox(
            height: 40,
          ),
          Column(
            children: [
              const RadioPlayerControls(),
              const SizedBox(
                height: 70,
              ),
              RadioPresetTable(
                  presets: presets,
                  selectedPreset: selectedPreset,
                  tableName: tableName),
            ],
          )
        ],
      ),
    );
  }
}