// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC // SPDX-License-Identifier: BSD-3-Clause import 'package:flutter/material.dart'; import 'package:flutter_example_packages/base/di/app_di.dart'; import 'package:flutter_example_packages/base/package/package.dart'; import 'package:flutter_example_packages/widgets/base/export.dart'; import 'package:flutter_example_packages/widgets/blocks/block_info_package.dart'; import 'package:flutter_example_packages/widgets/layouts/block_layout.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:sensors_plus/sensors_plus.dart'; import 'package:sensors_plus_aurora/orientation_event.dart'; import 'package:sensors_plus_aurora/sensors_plus_aurora.dart'; import 'model.dart'; import 'package.dart'; class SensorsPlusPage extends AppStatefulWidget { SensorsPlusPage({ super.key, }); final Package package = packageSensorsPlus; @override State createState() => _SensorsPlusPageState(); } class _SensorsPlusPageState extends AppState { OrientationEvent orientation = OrientationEvent.undefined; AccelerometerEvent accelerometer = AccelerometerEvent(0, 0, 0); @override void initState() { super.initState(); /// Accelerometer change accelerometerEvents.listen( (AccelerometerEvent event) { if (mounted) { setState(() { accelerometer = event; }); } }, onError: (error) { debugPrint(error.toString()); }, cancelOnError: true, ); /// Only Aurora OS orientation change orientationEvents?.listen( (OrientationEvent event) { if (mounted) { setState(() { orientation = event; }); } }, onError: (error) { debugPrint(error.toString()); }, cancelOnError: true, ); } @override Widget buildWide( BuildContext context, MediaQueryData media, AppLocalizations l10n, ) { return BlockLayout( model: getIt(), title: widget.package.key, builder: (context, child, model) { return SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(20), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ BlockInfoPackage(widget.package), Center( child: Text('Orientation: $orientation'), ), const SizedBox(height: 20,), Center( child: Text('Accelerometer: $accelerometer'), ), ], ), ), ); }, ); } }