diff --git a/.tool-versions b/.tool-versions index fc05c635..3e6df7d4 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -gradle 7.6.1 +gradle 8.10.2 diff --git a/lib/features/backend/api_requests/api_manager.dart b/lib/features/backend/api_requests/api_manager.dart index 72087153..d12c03dd 100644 --- a/lib/features/backend/api_requests/api_manager.dart +++ b/lib/features/backend/api_requests/api_manager.dart @@ -496,11 +496,11 @@ class ApiManager { result = ApiCallResponse(null, {}, -1, exception: e); } - log('API Call: $callName'); - log('URL: $apiUrl'); - log('Headers: $headers'); - log('Params: $params'); - log('Response: ${result.jsonBody}'); + print('API Call: $callName'); + print('URL: $apiUrl'); + print('Headers: $headers'); + print('Params: $params'); + print('Response: ${result.jsonBody}'); return result; } } diff --git a/lib/pages/vehicles_on_the_property/vehicle_history_screen.dart b/lib/pages/vehicles_on_the_property/vehicle_history_screen.dart index 8e75fe1c..379a3c02 100644 --- a/lib/pages/vehicles_on_the_property/vehicle_history_screen.dart +++ b/lib/pages/vehicles_on_the_property/vehicle_history_screen.dart @@ -14,6 +14,7 @@ class _VehicleHistoryScreenState extends State int count = 0; final PagingController _pagingController = PagingController(firstPageKey: 1); + bool isSnackble = true; @override void initState() { @@ -34,8 +35,9 @@ class _VehicleHistoryScreenState extends State }, onDataUnavailable: (vehicles) { setState(() {}); + final bool isFirst = pageKey == 2; + if (!isFirst && isSnackble) showNoMoreDataSnackBar(context); - showNoMoreDataSnackBar(context); _pagingController.appendLastPage(vehicles); }, onDataAvailable: (vehicles) { @@ -208,18 +210,23 @@ class _VehicleHistoryScreenState extends State model: widget.model, ); - await showDialog( + await showDialog( useSafeArea: true, context: context, builder: (context) => Dialog( alignment: Alignment.center, child: dialogContent, ), - ).whenComplete(() { - _pagingController.refresh(); - - safeSetState(() {}); - }); + ) // + .then((response) async { + if (response == true) { + isSnackble = false; + _pagingController.refresh(); + } else { + isSnackble = true; + } + }) // + .whenComplete(() {}); } catch (e, s) { DialogUtil.errorDefault(context); LogUtil.requestAPIFailed( diff --git a/lib/pages/vehicles_on_the_property/vehicle_model.dart b/lib/pages/vehicles_on_the_property/vehicle_model.dart index b4da34cb..61a53dc5 100644 --- a/lib/pages/vehicles_on_the_property/vehicle_model.dart +++ b/lib/pages/vehicles_on_the_property/vehicle_model.dart @@ -339,7 +339,7 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage { ptText: 'Você tem certeza que deseja cancelar essa solicitação?', enText: 'Are you sure you want to delete this request?', ), - () async => processCancelRequest(item['status'], item)); + () async => await processCancelRequest(item['status'], item)); } final deleteText = FFLocalizations.of(context) @@ -401,9 +401,9 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage { ]; } - void processDeleteRequest(dynamic item) async { + Future processDeleteRequest(dynamic item) async { log('processDeleteRequest -> item[$item]'); - return await PhpGroup.deleteVehicle + bool result = await PhpGroup.deleteVehicle .call( vehicleId: item['vehicleId'], licensePlate: item['licensePlate'], @@ -411,13 +411,10 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage { color: item['color'], ) .then((value) { - context.pop(value); - context.pop(value); - // ignore: unrelated_type_equality_checks if (value.jsonBody['error'] == true) { final String errorMsg = value.jsonBody['error_msg']; - return showSnackbarMessenger( + showSnackbarMessenger( context, FFLocalizations.of(context).getVariableText( ptText: errorMsg, @@ -425,9 +422,10 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage { ), true, ); + return false; // ignore: unrelated_type_equality_checks } - return showSnackbarMessenger( + showSnackbarMessenger( context, FFLocalizations.of(context).getVariableText( enText: 'Success deleting vehicle', @@ -435,9 +433,10 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage { ), false, ); - }).catchError((err, stack) { - context.pop(); - return showSnackbarMessenger( + return true; + }) // + .catchError((err, stack) { + showSnackbarMessenger( context, FFLocalizations.of(context).getVariableText( enText: 'Error deleting vehicle', @@ -445,12 +444,18 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage { ), true, ); + return false; }); + + context.pop(result); + context.pop(result); + + return result; } - void processCancelRequest(String status, dynamic item) async { - late final ApiCallResponse value; + Future processCancelRequest(String status, dynamic item) async { try { + final ApiCallResponse value; switch (status) { case 'APR_CREATE': value = await processCancelDeleteRequest(item); @@ -462,41 +467,28 @@ mixin _VehicleHistoryScreenModel on _BaseVehiclePage { value = await processCancelCreateRequest(item); break; default: - break; + throw ArgumentError('Status inválido: $status'); } - context.pop(value); - context.pop(value); - - if (value.jsonBody['error'] == true) { - final String errorMsg = value.jsonBody['error_msg']; - return showSnackbarMessenger( - context, - FFLocalizations.of(context).getVariableText( - ptText: errorMsg, - enText: 'Error canceling request', - ), - true, - ); - } - return showSnackbarMessenger( - context, - FFLocalizations.of(context).getVariableText( - enText: 'Success canceling request', - ptText: 'Succeso ao cancelar solicitação', - ), - false, + final bool isError = value.jsonBody['error'] == true; + final String message = FFLocalizations.of(context).getVariableText( + ptText: value.jsonBody['error_msg'] ?? 'Erro ao cancelar solicitação', + enText: + isError ? 'Error canceling request' : 'Success canceling request', ); + showSnackbarMessenger(context, message, isError); + context.pop(!isError); + context.pop(!isError); + return !isError; } catch (err) { - context.pop(); - return showSnackbarMessenger( - context, - FFLocalizations.of(context).getVariableText( - enText: 'Error canceling request', - ptText: 'Erro ao cancelar solicitação', - ), - true, + final String errorMessage = FFLocalizations.of(context).getVariableText( + ptText: 'Erro ao cancelar solicitação', + enText: 'Error canceling request', ); + showSnackbarMessenger(context, errorMessage, true); + context.pop(false); + context.pop(false); + return false; } }