import 'package:animated_splash_screen/animated_splash_screen.dart'; import 'package:audioplayers/audioplayers.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'package:intl/date_symbol_data_local.dart'; import 'package:prosappco/src/authentication/authentication_repository.dart'; import 'package:prosappco/src/screens/calendar.dart'; import 'package:prosappco/src/screens/city.dart'; import 'package:prosappco/src/screens/login.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:prosappco/src/screens/login_email.dart'; import 'package:prosappco/src/screens/my_services.dart'; import 'package:prosappco/src/screens/my_services_pro.dart'; import 'package:prosappco/src/screens/new_number.dart'; import 'package:prosappco/src/screens/new_password.dart'; import 'package:prosappco/src/screens/profession.dart'; import 'package:prosappco/src/screens/professional_profile.dart'; import 'package:prosappco/src/screens/professional_revision.dart'; import 'package:prosappco/src/screens/profile.dart'; import 'package:prosappco/src/screens/profile_pro.dart'; import 'package:prosappco/src/screens/register.dart'; import 'package:prosappco/src/screens/request_sent.dart'; import 'package:prosappco/src/screens/service.dart'; import 'package:prosappco/src/screens/solicitudes.dart'; import 'package:prosappco/src/services/local_notifications.dart'; import 'firebase_options.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter_web_plugins/url_strategy.dart'; Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { await Firebase.initializeApp(); print('Handling a backdround message: ${message.messageId}'); } void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ).then((value) => Get.put(AuthenticationRepository())); FirebaseMessaging.onBackgroundMessage((_firebaseMessagingBackgroundHandler)); FirebaseMessaging messaging = FirebaseMessaging.instance; NotificationSettings settings = await messaging.requestPermission( alert: true, announcement: false, badge: true, carPlay: false, criticalAlert: false, provisional: false, sound: true, ); FirebaseMessaging.onMessage.listen((RemoteMessage message) { print('Got a message whilst in the foreground!'); print('Message data: ${message.data}'); if (message.notification != null) { print('Message also contained a notification: ${message.notification}'); } }); print('User granted permission: ${settings.authorizationStatus}'); await initNotifications(); await initializeDateFormatting('es_MX', null); SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); usePathUrlStrategy(); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return GetMaterialApp( theme: ThemeData(fontFamily: 'Poppins'), debugShowCheckedModeBanner: false, title: 'ProsApp', initialRoute: '/', routes: { '/splash': (context) => const SplashScreen(), '/': (context) => const LoginScreen(), '/login': (context) => const LoginEmailScreen(), '/profile': (context) => const ProfileScreen(), '/register': (context) => const RegisterScreen(), '/city': (context) => const CityScreen(), '/profession': (context) => const ProfessionScreen(), '/newNumber': (context) => const NewNumberScreen(), '/profesionalRevision': (context) => const ProfessionalRevisionScreen(), '/profesionalProfile': (context) => const ProfessionalProfileScreen(), '/solicitudEnviada': (context) => const RequestSentScreen(), '/nuevaPassword': (context) => NewPasswordScreen(), '/servicio': (context) => const ServiceScreen(), '/profilePro': (context) => const ProfileProScreen(), '/calendar': (context) => const CalendarScreen(), '/solicitud': (context) => SolicitudScreen(), '/misserviciospro': (context) => const MyServicesProScreen(), '/misservicios': (context) => MyServicesScreen(), }, onGenerateRoute: (settings) { throw Exception('Ruta desconocida: ${settings.name}'); }, ); } } class SplashScreen extends StatefulWidget { const SplashScreen({super.key}); @override State createState() => _SplashScreenState(); } class _SplashScreenState extends State { // AudioPlayer audioPlayer = AudioPlayer(); // @override // void initState() { // super.initState(); // playSound(); // } // void playSound() async { // await audioPlayer.play(UrlSource('images/sonido.mp3')); // } @override Widget build(BuildContext context) { return AnimatedSplashScreen.withScreenFunction( splash: 'images/splashgif.gif', screenFunction: () async { return const LoginScreen(); }, splashTransition: SplashTransition.rotationTransition, duration: 80000, ); } } // splash: 'images/splashgif.gif', // backgroundColor: Colors.black, // nextScreen: const LoginScreen(), // splashIconSize: 50, // duration: 80000,