diff --git a/lib/screens/service/service_screen.dart b/lib/screens/service/service_screen.dart index 11c62e3..3378961 100644 --- a/lib/screens/service/service_screen.dart +++ b/lib/screens/service/service_screen.dart @@ -6,6 +6,7 @@ import 'package:injector/injector.dart'; import 'package:intl/intl.dart'; import 'package:professional_repository/professional_repository.dart'; import 'package:prosappco/blocs/service_bloc/service_bloc.dart'; +import 'package:prosappco/local_notifications/local_notifications.dart'; import 'package:service_repository/service_repository.dart'; import 'package:setting_repository/setting_repository.dart'; import 'package:user_repository/user_repository.dart'; @@ -276,7 +277,7 @@ class _ServiceScreenState extends State { vertical: 10, horizontal: 15, ), - child: customButton(service, context), + child: customButton(service, context, userInfo), ), ], ); @@ -372,7 +373,8 @@ class _ServiceScreenState extends State { ); } - ElevatedButton customButton(ServiceEntity service, BuildContext context) { + ElevatedButton customButton( + ServiceEntity service, BuildContext context, MyUser userInfo) { if (service.status == ServiceStatus.pending) { return ElevatedButton( onPressed: () { @@ -384,6 +386,14 @@ class _ServiceScreenState extends State { ServiceStatus.cancelled, ), ); + + if (userInfo.token != null) { + LocalNotifications.sendPushNotification( + userInfo.token!, + 'Servicio cancelado', + 'Servicio cancelado por ${userInfo.name}', + ); + } } }, style: FilledButton.styleFrom( diff --git a/lib/screens/service/user_service_screen.dart b/lib/screens/service/user_service_screen.dart index 2e00854..5e4bdad 100644 --- a/lib/screens/service/user_service_screen.dart +++ b/lib/screens/service/user_service_screen.dart @@ -9,6 +9,7 @@ import 'package:professional_repository/professional_repository.dart'; import 'package:prosappco/blocs/service_bloc/service_bloc.dart'; import 'package:prosappco/components/drawer_reputation.dart'; import 'package:prosappco/components/general_reputation.dart'; +import 'package:prosappco/local_notifications/local_notifications.dart'; import 'package:prosappco/screens/chat/chat_screen.dart'; import 'package:prosappco/components/general_secondary_button.dart'; import 'package:prosappco/screens/score/score_screen.dart'; @@ -420,7 +421,7 @@ class _UserServiceScreenState extends State { vertical: 10, horizontal: 15, ), - child: customButton(service, context), + child: customButton(service, context, userInfo), ), ], ); @@ -892,7 +893,8 @@ class _UserServiceScreenState extends State { return const SizedBox(); } - Widget customButton(ServiceEntity service, BuildContext context) { + Widget customButton( + ServiceEntity service, BuildContext context, MyUser userInfo) { if (service.status == ServiceStatus.pending) { return GeneralSecondaryButton( label: 'Cancelar servicio', @@ -903,6 +905,14 @@ class _UserServiceScreenState extends State { context.read().add( UpdateServiceStatus(widget.serviceId, ServiceStatus.cancelled)); } + + if (userInfo.token != null) { + LocalNotifications.sendPushNotification( + userInfo.token!, + 'Servicio cancelado', + 'Servicio cancelado por ${userInfo.name}', + ); + } }, ); } diff --git a/lib/screens/user/user_service_screen.dart b/lib/screens/user/user_service_screen.dart index bfe4fbd..d7fad96 100644 --- a/lib/screens/user/user_service_screen.dart +++ b/lib/screens/user/user_service_screen.dart @@ -10,6 +10,7 @@ import 'package:professional_repository/professional_repository.dart'; import 'package:prosappco/blocs/service_bloc/service_bloc.dart'; import 'package:prosappco/components/general_primary_button.dart'; import 'package:prosappco/components/general_secondary_button.dart'; +import 'package:prosappco/local_notifications/local_notifications.dart'; import 'package:service_repository/service_repository.dart'; import 'package:setting_repository/setting_repository.dart'; import 'package:user_repository/user_repository.dart'; @@ -255,7 +256,7 @@ class _UserServiceScreenState extends State { vertical: 10, horizontal: 15, ), - child: customButton(service, context), + child: customButton(service, context, userInfo), ), ], ); @@ -352,7 +353,7 @@ class _UserServiceScreenState extends State { } GeneralSecondaryButton customButton( - ServiceEntity service, BuildContext context) { + ServiceEntity service, BuildContext context, MyUser userInfo) { if (service.status == ServiceStatus.pending) { return GeneralSecondaryButton( onPressed: () { @@ -364,6 +365,14 @@ class _UserServiceScreenState extends State { ServiceStatus.cancelled, ), ); + + if (userInfo.token != null) { + LocalNotifications.sendPushNotification( + userInfo.token!, + 'Servicio cancelado', + 'Servicio cancelado por ${userInfo.name}', + ); + } } }, color: Colors.red,