11import 'dart:async' ;
22import 'package:flutter/material.dart' ;
3- import 'package:intl/intl.dart' ;
43import 'package:provider/provider.dart' ;
54import 'package:pslab/l10n/app_localizations.dart' ;
65import 'package:pslab/providers/locator.dart' ;
@@ -11,6 +10,7 @@ import 'package:pslab/view/logged_data_screen.dart';
1110import 'package:pslab/view/widgets/common_scaffold_widget.dart' ;
1211import 'package:pslab/view/widgets/guide_widget.dart' ;
1312import 'package:pslab/view/widgets/luxmeter_card.dart' ;
13+ import 'package:pslab/view/widgets/save_filename_dialog.dart' ;
1414import 'package:fl_chart/fl_chart.dart' ;
1515import 'package:pslab/view/luxmeter_config_screen.dart' ;
1616import '../providers/experiment_provider.dart' ;
@@ -149,38 +149,7 @@ class _LuxMeterScreenState extends State<LuxMeterScreen> {
149149 }
150150
151151 Future <void > _showSaveFileDialog (List <List <dynamic >> data) async {
152- final TextEditingController filenameController = TextEditingController ();
153- final String defaultFilename =
154- '${DateFormat ('yyyy-MM-dd_HH-mm-ss' ).format (DateTime .now ())}.csv' ;
155- filenameController.text = defaultFilename;
156-
157- final String ? fileName = await showDialog <String >(
158- context: context,
159- builder: (context) {
160- return AlertDialog (
161- title: Text (appLocalizations.saveRecording),
162- content: TextField (
163- controller: filenameController,
164- decoration: InputDecoration (
165- hintText: appLocalizations.enterFileName,
166- labelText: appLocalizations.fileName,
167- ),
168- ),
169- actions: [
170- TextButton (
171- onPressed: () => Navigator .pop (context),
172- child: Text (appLocalizations.cancel.toUpperCase ()),
173- ),
174- ElevatedButton (
175- onPressed: () {
176- Navigator .pop (context, filenameController.text);
177- },
178- child: Text (appLocalizations.save),
179- ),
180- ],
181- );
182- },
183- );
152+ final String ? fileName = await showSaveFileNameDialog (context);
184153
185154 if (fileName != null ) {
186155 _csvService.writeMetaData (appLocalizations.luxMeter.toLowerCase (), data);
0 commit comments