diff --git a/lib/view/logged_data_screen.dart b/lib/view/logged_data_screen.dart index e7f92eb65..980ccbbb2 100644 --- a/lib/view/logged_data_screen.dart +++ b/lib/view/logged_data_screen.dart @@ -22,6 +22,7 @@ import '../providers/locator.dart'; import 'accelerometer_screen.dart'; import 'compass_screen.dart'; import 'package:pslab/view/thermometer_screen.dart'; +import 'package:pslab/view/robotic_arm_screen.dart'; class LoggedDataScreen extends StatefulWidget { final List instrumentNames; @@ -362,7 +363,15 @@ class _LoggedDataScreenState extends State { final data = await _dataService.readDataFromFile(file); if (mounted) { if (instrumentName.toLowerCase() == 'robotic arm') { - Navigator.pop(context, data); + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => RoboticArmScreen( + importedData: data, + ), + ), + ); + return; } else { final config = _getChartConfig(instrumentName); Navigator.push( diff --git a/lib/view/robotic_arm_screen.dart b/lib/view/robotic_arm_screen.dart index 261e520cc..91e6cdd9a 100644 --- a/lib/view/robotic_arm_screen.dart +++ b/lib/view/robotic_arm_screen.dart @@ -15,7 +15,12 @@ import 'package:pslab/view/widgets/guide_widget.dart'; import 'widgets/servo_card.dart'; class RoboticArmScreen extends StatefulWidget { - const RoboticArmScreen({super.key}); + final List>? importedData; + + const RoboticArmScreen({ + super.key, + this.importedData, + }); @override State createState() => _RoboticArmScreenState(); @@ -39,6 +44,11 @@ class _RoboticArmScreenState extends State { ]; provider = RoboticArmStateProvider(); provider.initialize(); + if (widget.importedData != null) { + WidgetsBinding.instance.addPostFrameCallback((_) async { + await provider.importTimelineData(widget.importedData!); + }); + } provider.onPlaybackEnd = () { showDialog(