eliminados los snooze

This commit is contained in:
Javier Bautista Fernández
2026-06-02 09:21:43 +02:00
parent de07316d79
commit ffe1c41458
6 changed files with 75 additions and 52 deletions
+70 -1
View File
@@ -1,10 +1,17 @@
import 'dart:async';
import 'dart:ui' as ui;
import 'package:audio_service/audio_service.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'app.dart';
import 'servicios/servicio_audio.dart';
const _anchoMinimoLandscape = 600.0;
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await _aplicarPoliticaOrientacion();
final handler = await AudioService.init(
builder: () => PluriWaveAudioHandler(),
@@ -18,5 +25,67 @@ Future<void> main() async {
);
registrarHandler(handler);
runApp(const PluriWaveApp());
runApp(const _OrientacionResponsiveApp(child: PluriWaveApp()));
}
Future<void> _aplicarPoliticaOrientacion([ui.Display? display]) async {
final vista =
WidgetsBinding.instance.platformDispatcher.views.isNotEmpty
? WidgetsBinding.instance.platformDispatcher.views.first
: null;
final displayActivo = display ?? vista?.display;
if (displayActivo == null) return;
final anchoLogico =
displayActivo.size.width / displayActivo.devicePixelRatio;
if (anchoLogico < _anchoMinimoLandscape) {
await SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
]);
return;
}
await SystemChrome.setPreferredOrientations(DeviceOrientation.values);
}
class _OrientacionResponsiveApp extends StatefulWidget {
const _OrientacionResponsiveApp({required this.child});
final Widget child;
@override
State<_OrientacionResponsiveApp> createState() =>
_OrientacionResponsiveAppState();
}
class _OrientacionResponsiveAppState extends State<_OrientacionResponsiveApp>
with WidgetsBindingObserver {
ui.Display? _display;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
_display = View.maybeOf(context)?.display;
unawaited(_aplicarPoliticaOrientacion(_display));
}
@override
void didChangeMetrics() {
unawaited(_aplicarPoliticaOrientacion(_display));
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
Widget build(BuildContext context) => widget.child;
}