Skip to content

Commit 4fa324d

Browse files
committed
Continue refactoring
1 parent 0e169b8 commit 4fa324d

File tree

7 files changed

+44
-26
lines changed

7 files changed

+44
-26
lines changed

lib/gui_adapter/service_adapter.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1+
import 'dart:convert';
2+
13
import 'package:flutter/material.dart';
4+
import 'package:flutter_foreground_task/flutter_foreground_task.dart';
25
import 'dart:async';
36
import 'package:synchronized/synchronized.dart';
47

8+
import '../command_model.dart';
59
import '../ui_blocks/color_bloc.dart';
610
import '../color_model.dart';
711
import '../ui_blocks/app_bloc.dart';
@@ -372,4 +376,10 @@ class ServiceAdapter {
372376
_colorBloc?.add(ChangeColorEvent(flutterColor));
373377

374378
}
379+
380+
void stopEsp32() {
381+
final Command command = Command(cmd: "stop");
382+
String jsonString = jsonEncode(command.toJson());
383+
FlutterForegroundTask.sendData({'command': 'stop', 'data': jsonString});
384+
}
375385
}

lib/home_page.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
22
import 'package:flutter/services.dart';
33
import 'package:flutter_bloc/flutter_bloc.dart';
44

5-
import 'buttons_panel.dart';
6-
import 'icon_panel.dart';
5+
import 'ui_components/buttons_panel.dart';
6+
import 'ui_components/icon_panel.dart';
77
import 'ui_blocks/app_bloc.dart';
88
import 'ui_components/control_panel.dart';
99
import 'ui_components/mqtt_panel.dart';

lib/main.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,12 @@ import 'package:device_info_plus/device_info_plus.dart';
44
import 'package:flutter/material.dart';
55
import 'package:flutter_bloc/flutter_bloc.dart';
66

7-
import 'buttons_panel.dart';
87
import 'ui_blocks/color_bloc.dart';
98
import 'gui_adapter/service_adapter.dart';
109
import 'home_page.dart';
11-
import 'icon_panel.dart';
1210
import 'service_components/foreground_service.dart';
1311
import 'ui_blocks/app_bloc.dart';
1412
import 'ui_blocks/mqtt_bloc.dart';
15-
import 'ui_components/control_panel.dart';
1613

1714
// The main app widget
1815
void main() async {

lib/service_components/foreground_service.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ EMQX: _server = 'broker.emqx.io'
260260
_deviceId = receivedData;
261261
print ('DEVICE->$_deviceId');
262262
}
263-
if (command == 'color') {
263+
if (command == 'color' || command == 'stop') {
264264
String jsonString = receivedData;
265265
final builder = MqttClientPayloadBuilder();
266266
builder.addString(jsonString);

lib/buttons_panel.dart renamed to lib/ui_components/buttons_panel.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_bloc/flutter_bloc.dart';
3-
import 'ui_blocks/color_bloc.dart';
4-
import 'ui_blocks/app_bloc.dart';
5-
import 'ui_blocks/mqtt_bloc.dart';
6-
import 'utils.dart';
3+
import '../ui_blocks/color_bloc.dart';
4+
import '../ui_blocks/app_bloc.dart';
5+
import '../ui_blocks/mqtt_bloc.dart';
6+
import '../utils.dart';
77

88
// Buttons Panel
99
class ButtonsPanel extends StatelessWidget {

lib/ui_components/control_panel.dart

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import 'package:flutter_bloc/flutter_bloc.dart';
44

55
import '../gui_adapter/service_adapter.dart';
66
import '../ui_blocks/app_bloc.dart';
7+
import '../ui_blocks/mqtt_bloc.dart';
8+
import '../utils.dart';
79
//import '../ui_blocks/items_bloc.dart';
810

911
class ControlPanel extends StatelessWidget {
@@ -34,9 +36,7 @@ class ControlPanel extends StatelessWidget {
3436
children: [
3537
ElevatedButton(
3638
onPressed: () {
37-
//context.read<AppBloc>().add(ToggleRunningEvent());
3839
if (state.isRunning) {
39-
//context.read<ItemsBloc>().add(ClearItemsEvent());
4040
context.read<AppBloc>().add(StopService());
4141
ServiceAdapter.instance()?.stopTimer();
4242
ServiceAdapter.instance()?.mqttUnsubscribe(); // via MqttBloc
@@ -49,22 +49,33 @@ class ControlPanel extends StatelessWidget {
4949
child: Text(state.isRunning ? 'Stop' : 'Start'),
5050
),
5151

52-
Text('# ${state.counter}'),
5352

54-
// Row(
55-
// children: [
56-
// Text(state.isServer ? 'Server' : 'Client'),
57-
// const SizedBox(width: 8),
58-
// Switch(
59-
// value: state.isServer,
60-
// onChanged: (value) {
61-
// context.read<AppBloc>().add(ToggleModeEvent());
62-
// },
63-
// ),
64-
// ],
65-
// ),
53+
ElevatedButton(
54+
onPressed: () {
55+
if (state.isRunning) {
56+
if (context.read<MqttBloc>().state.isConnected
57+
&& context.read<MqttBloc>().state.isSubscribed) {
58+
ServiceAdapter.instance()?.stopEsp32();
59+
}
60+
else {
61+
showToast(context, "MQTT problems");
62+
}
63+
// context.read<AppBloc>().add(StopService());
64+
// ServiceAdapter.instance()?.stopTimer();
65+
// ServiceAdapter.instance()?.mqttUnsubscribe(); // via MqttBloc
66+
// ServiceAdapter.instance()?.mqttDisconnect();
67+
}
68+
else {
69+
showToast(context, "Service isn't run");
70+
// context.read<AppBloc>().add(StartService());
71+
}
72+
},
73+
child: Text('Stop ESP32-S3', ),
74+
),
6675

6776

77+
Text('# ${state.counter}'),
78+
6879
],
6980
),
7081
],

lib/icon_panel.dart renamed to lib/ui_components/icon_panel.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_bloc/flutter_bloc.dart';
33

4-
import 'ui_blocks/color_bloc.dart';
4+
import '../ui_blocks/color_bloc.dart';
55

66
class IconPanel extends StatelessWidget {
77
const IconPanel({super.key});

0 commit comments

Comments
 (0)