@@ -8,12 +8,11 @@ import 'package:pslab/view/widgets/common_scaffold_widget.dart';
88import 'package:pslab/theme/colors.dart' ;
99
1010import 'package:pslab/providers/locator.dart' ;
11+ import 'package:pslab/view/widgets/export_helper.dart' ;
1112import 'package:pslab/view/widgets/guide_widget.dart' ;
12- import 'package:pslab/view/widgets/save_filename_dialog.dart' ;
1313import 'package:pslab/view/widgets/dust_sensor_card.dart' ;
1414
1515import '../constants.dart' ;
16- import '../others/csv_service.dart' ;
1716import '../providers/dust_sensor_config_provider.dart' ;
1817import 'dust_sensor_config_screen.dart' ;
1918import 'logged_data_screen.dart' ;
@@ -28,7 +27,6 @@ class DustSensorScreen extends StatefulWidget {
2827
2928class _DustSensorScreenState extends State <DustSensorScreen > {
3029 AppLocalizations appLocalizations = getIt.get <AppLocalizations >();
31- final CsvService _csvService = CsvService ();
3230 late DustSensorStateProvider _provider;
3331 late DustSensorConfigProvider _configProvider;
3432 bool _showGuide = false ;
@@ -122,7 +120,11 @@ class _DustSensorScreenState extends State<DustSensorScreen> {
122120 Future <void > _toggleRecording () async {
123121 if (_provider.isRecording) {
124122 final data = _provider.stopRecording ();
125- await _showSaveFileDialog (data);
123+ await ExportHelper .handleSaveData (
124+ context: context,
125+ instrumentName: appLocalizations.dustSensor.toLowerCase (),
126+ data: data,
127+ );
126128 } else {
127129 await _provider.startRecording ();
128130 if (! mounted) return ;
@@ -138,40 +140,6 @@ class _DustSensorScreenState extends State<DustSensorScreen> {
138140 }
139141 }
140142
141- Future <void > _showSaveFileDialog (List <List <dynamic >> data) async {
142- final String ? fileName = await showSaveFileNameDialog (context);
143-
144- if (fileName != null ) {
145- _csvService.writeMetaData (
146- appLocalizations.dustSensor.toLowerCase (), data);
147- final file = await _csvService.saveCsvFile (
148- appLocalizations.dustSensor.toLowerCase (), fileName, data);
149- if (mounted) {
150- if (file != null ) {
151- ScaffoldMessenger .of (context).showSnackBar (
152- SnackBar (
153- content: Text (
154- '${appLocalizations .fileSaved }: ${file .path .split ('/' ).last }' ,
155- style: TextStyle (color: snackBarContentColor),
156- ),
157- backgroundColor: snackBarBackgroundColor,
158- ),
159- );
160- } else {
161- ScaffoldMessenger .of (context).showSnackBar (
162- SnackBar (
163- content: Text (
164- appLocalizations.failedToSave,
165- style: TextStyle (color: snackBarContentColor),
166- ),
167- backgroundColor: snackBarBackgroundColor,
168- ),
169- );
170- }
171- }
172- }
173- }
174-
175143 @override
176144 void initState () {
177145 super .initState ();
0 commit comments