This commit is contained in:
J. A. Messias 2024-12-02 09:39:54 -03:00
parent 17f8cf733f
commit 39afcc91ef
14 changed files with 428 additions and 572 deletions

View File

@ -1,44 +1,44 @@
import 'package:hub/backend/api_requests/api_manager.dart'; // import 'package:hub/backend/api_requests/api_manager.dart';
import 'package:hub/flutter_flow/request_manager.dart'; // import 'package:hub/flutter_flow/request_manager.dart';
import '/flutter_flow/flutter_flow_util.dart'; // import '/flutter_flow/flutter_flow_util.dart';
import 'message_well_component_widget.dart' show MessageWellComponentWidget; // import 'message_well_component_widget.dart' show MessageWellComponentWidget;
import 'package:flutter/material.dart'; // import 'package:flutter/material.dart';
class MessageWellComponentModel extends FlutterFlowModel<MessageWellComponentWidget> { // class MessageWellComponentModel extends FlutterFlowModel<MessageWellComponentWidget> {
final unfocusNode = FocusNode(); // final unfocusNode = FocusNode();
// State field(s) for TextField widget. // // State field(s) for TextField widget.
FocusNode? textFieldFocusNode; // FocusNode? textFieldFocusNode;
TextEditingController? textController; // TextEditingController? textController;
String? Function(BuildContext, String?)? textControllerValidator; // String? Function(BuildContext, String?)? textControllerValidator;
/// Query cache managers for this widget. // /// Query cache managers for this widget.
final _getLiberationsManager = StreamRequestManager<ApiCallResponse>(); // final _getLiberationsManager = StreamRequestManager<ApiCallResponse>();
Stream<ApiCallResponse> getLiberations({ // Stream<ApiCallResponse> getLiberations({
String? uniqueQueryKey, // String? uniqueQueryKey,
bool? overrideCache, // bool? overrideCache,
required Stream<ApiCallResponse> Function() requestFn, // required Stream<ApiCallResponse> Function() requestFn,
}) => // }) =>
_getLiberationsManager.performRequest( // _getLiberationsManager.performRequest(
uniqueQueryKey: uniqueQueryKey, // uniqueQueryKey: uniqueQueryKey,
overrideCache: overrideCache, // overrideCache: overrideCache,
requestFn: requestFn, // requestFn: requestFn,
); // );
void clearGetLiberationsCache() => _getLiberationsManager.clear(); // void clearGetLiberationsCache() => _getLiberationsManager.clear();
void clearGetLiberationsCacheKey(String? uniqueKey) => _getLiberationsManager.clearRequest(uniqueKey); // void clearGetLiberationsCacheKey(String? uniqueKey) => _getLiberationsManager.clearRequest(uniqueKey);
@override // @override
void initState(BuildContext context) {} // void initState(BuildContext context) {}
@override // @override
void dispose() { // void dispose() {
unfocusNode.dispose(); // unfocusNode.dispose();
textFieldFocusNode?.dispose(); // textFieldFocusNode?.dispose();
textController?.dispose(); // textController?.dispose();
/// Dispose query cache managers for this widget. // /// Dispose query cache managers for this widget.
clearGetLiberationsCache(); // clearGetLiberationsCache();
} // }
} // }

View File

@ -1,379 +1,379 @@
import 'dart:async'; // import 'dart:async';
import 'dart:collection'; // import 'dart:collection';
import 'package:flutter/material.dart'; // import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; // import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:hub/backend/api_requests/api_calls.dart'; // import 'package:hub/backend/api_requests/api_calls.dart';
import 'package:hub/flutter_flow/flutter_flow_theme.dart'; // import 'package:hub/flutter_flow/flutter_flow_theme.dart';
import 'package:hub/flutter_flow/flutter_flow_util.dart'; // import 'package:hub/flutter_flow/flutter_flow_util.dart';
import 'package:provider/provider.dart'; // import 'package:provider/provider.dart';
import 'package:rxdart/rxdart.dart'; // import 'package:rxdart/rxdart.dart';
// // //
final dropdown = BehaviorSubject<LinkedHashMap<String, String>>.seeded( // final dropdown = BehaviorSubject<LinkedHashMap<String, String>>.seeded(
LinkedHashMap.from({ // LinkedHashMap.from({
'All': 'A', // 'All': 'A',
}), // }),
); // );
class MessageWellComponentWidget extends StatefulWidget { // class MessageWellComponentWidget extends StatefulWidget {
const MessageWellComponentWidget({super.key}); // const MessageWellComponentWidget({super.key});
@override // @override
State<MessageWellComponentWidget> createState() => _MessageWellComponentWidgetState(); // State<MessageWellComponentWidget> createState() => _MessageWellComponentWidgetState();
} // }
class _MessageWellComponentWidgetState extends State<MessageWellComponentWidget> { // class _MessageWellComponentWidgetState extends State<MessageWellComponentWidget> {
StreamSubscription? _dropdownSubscription; // StreamSubscription? _dropdownSubscription;
@override // @override
void initState() { // void initState() {
super.initState(); // super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) { // WidgetsBinding.instance.addPostFrameCallback((_) {
context.read<MessageWellNotifier>().fetchMessages(); // context.read<MessageWellNotifier>().fetchMessages();
}); // });
_dropdownSubscription = dropdown.stream.listen((_) { // _dropdownSubscription = dropdown.stream.listen((_) {
context.read<MessageWellNotifier>().fetchMessages(); // context.read<MessageWellNotifier>().fetchMessages();
}); // });
} // }
@override // @override
void dispose() { // void dispose() {
_dropdownSubscription?.cancel(); // _dropdownSubscription?.cancel();
super.dispose(); // super.dispose();
} // }
@override // @override
Widget build(BuildContext context) { // Widget build(BuildContext context) {
final messages = context.read<MessageWellNotifier>().getMessages(); // final messages = context.read<MessageWellNotifier>().getMessages();
return Align( // return Align(
alignment: Alignment.center, // alignment: Alignment.center,
child: Padding( // child: Padding(
padding: const EdgeInsets.symmetric(vertical: 40.0), // padding: const EdgeInsets.symmetric(vertical: 40.0),
child: SizedBox( // child: SizedBox(
height: MediaQuery.of(context).size.height * 0.8, // height: MediaQuery.of(context).size.height * 0.8,
child: Column( // child: Column(
children: [ // children: [
_buildHandleMessageWell(context, FlutterFlowTheme.of(context)), // _buildHandleMessageWell(context, FlutterFlowTheme.of(context)),
_buildMenuMessageWell(context, FlutterFlowTheme.of(context)), // _buildMenuMessageWell(context, FlutterFlowTheme.of(context)),
Expanded( // Expanded(
child: ListView.builder( // child: ListView.builder(
itemCount: messages.length, // itemCount: messages.length,
shrinkWrap: true, // shrinkWrap: true,
physics: const AlwaysScrollableScrollPhysics(), // physics: const AlwaysScrollableScrollPhysics(),
itemBuilder: (context, index) { // itemBuilder: (context, index) {
var message = messages[index]; // var message = messages[index];
return _buildMessageItem(context, message, index); // return _buildMessageItem(context, message, index);
}, // },
), // ),
), // ),
], // ],
), // ),
), // ),
), // ),
); // );
} // }
Widget _buildMenuMessageWell(BuildContext context, FlutterFlowTheme theme) { // Widget _buildMenuMessageWell(BuildContext context, FlutterFlowTheme theme) {
final dropdownItems = LinkedHashMap.from({ // final dropdownItems = LinkedHashMap.from({
'All': 'A', // 'All': 'A',
'Personal': 'O', // 'Personal': 'O',
'Global': 'C', // 'Global': 'C',
}); // });
return SizedBox( // return SizedBox(
key: UniqueKey(), // key: UniqueKey(),
width: 200, // width: 200,
height: 40, // height: 40,
child: StreamBuilder<String>( // child: StreamBuilder<String>(
stream: dropdown.stream.map((event) => event.keys.first), // stream: dropdown.stream.map((event) => event.keys.first),
builder: (context, snapshot) { // builder: (context, snapshot) {
final value = snapshot.data; // final value = snapshot.data;
return DropdownButtonFormField<String>( // return DropdownButtonFormField<String>(
value: value, // value: value,
decoration: InputDecoration( // decoration: InputDecoration(
isDense: true, // isDense: true,
contentPadding: const EdgeInsets.symmetric(horizontal: 10.0), // contentPadding: const EdgeInsets.symmetric(horizontal: 10.0),
errorBorder: OutlineInputBorder( // errorBorder: OutlineInputBorder(
borderSide: BorderSide( // borderSide: BorderSide(
color: theme.error, // color: theme.error,
width: 2, // width: 2,
), // ),
borderRadius: BorderRadius.circular(10), // borderRadius: BorderRadius.circular(10),
), // ),
enabledBorder: OutlineInputBorder( // enabledBorder: OutlineInputBorder(
borderSide: BorderSide( // borderSide: BorderSide(
color: theme.primary, // color: theme.primary,
width: 2, // width: 2,
), // ),
borderRadius: BorderRadius.circular(10), // borderRadius: BorderRadius.circular(10),
), // ),
focusedBorder: OutlineInputBorder( // focusedBorder: OutlineInputBorder(
borderSide: BorderSide( // borderSide: BorderSide(
color: theme.primary, // color: theme.primary,
width: 2, // width: 2,
), // ),
borderRadius: BorderRadius.circular(10), // borderRadius: BorderRadius.circular(10),
), // ),
disabledBorder: OutlineInputBorder( // disabledBorder: OutlineInputBorder(
borderSide: BorderSide( // borderSide: BorderSide(
color: theme.primary, // color: theme.primary,
width: 2, // width: 2,
), // ),
borderRadius: BorderRadius.circular(10), // borderRadius: BorderRadius.circular(10),
), // ),
focusedErrorBorder: OutlineInputBorder( // focusedErrorBorder: OutlineInputBorder(
borderSide: BorderSide( // borderSide: BorderSide(
color: theme.error, // color: theme.error,
width: 2, // width: 2,
), // ),
borderRadius: BorderRadius.circular(10), // borderRadius: BorderRadius.circular(10),
), // ),
border: OutlineInputBorder( // border: OutlineInputBorder(
borderSide: BorderSide( // borderSide: BorderSide(
color: theme.primary, // color: theme.primary,
width: 2, // width: 2,
), // ),
borderRadius: BorderRadius.circular(10), // borderRadius: BorderRadius.circular(10),
), // ),
filled: true, // filled: true,
fillColor: theme.primary, // fillColor: theme.primary,
), // ),
onChanged: (String? newValue) { // onChanged: (String? newValue) {
safeSetState(() => dropdown.value = LinkedHashMap.from({newValue!: dropdownItems[newValue].toString()})); // safeSetState(() => dropdown.value = LinkedHashMap.from({newValue!: dropdownItems[newValue].toString()}));
}, // },
items: dropdownItems.entries // items: dropdownItems.entries
.map((entry) => DropdownMenuItem<String>( // .map((entry) => DropdownMenuItem<String>(
value: entry.key, // value: entry.key,
child: Text(entry.key), // child: Text(entry.key),
)) // ))
.toList(), // .toList(),
style: theme.bodyMedium.copyWith( // style: theme.bodyMedium.copyWith(
color: theme.primaryText, // color: theme.primaryText,
), // ),
); // );
}, // },
), // ),
); // );
} // }
Text _buildHandleMessageWell(BuildContext context, FlutterFlowTheme theme) { // Text _buildHandleMessageWell(BuildContext context, FlutterFlowTheme theme) {
return Text( // return Text(
FFLocalizations.of(context).getVariableText( // FFLocalizations.of(context).getVariableText(
ptText: 'Mural de Mensagens', // ptText: 'Mural de Mensagens',
enText: 'Message Wall', // enText: 'Message Wall',
), // ),
style: theme.bodyMedium.copyWith( // style: theme.bodyMedium.copyWith(
fontFamily: 'Nunito Sans', // fontFamily: 'Nunito Sans',
letterSpacing: 0.0, // letterSpacing: 0.0,
), // ),
); // );
} // }
Widget _buildMessageItem(BuildContext context, dynamic message, int index) { // Widget _buildMessageItem(BuildContext context, dynamic message, int index) {
FlutterFlowTheme.of(context); // FlutterFlowTheme.of(context);
String formatMessageOrigin(String messageOrigin) { // String formatMessageOrigin(String messageOrigin) {
final words = messageOrigin.split(' '); // final words = messageOrigin.split(' ');
final formattedWords = words.map((word) { // final formattedWords = words.map((word) {
if (word.isEmpty) return word; // Handle empty words // if (word.isEmpty) return word; // Handle empty words
final firstLetter = word.substring(0, 1).toUpperCase(); // final firstLetter = word.substring(0, 1).toUpperCase();
final remainingLetters = word.length > 1 ? word.substring(1).toLowerCase() : ''; // final remainingLetters = word.length > 1 ? word.substring(1).toLowerCase() : '';
return '$firstLetter$remainingLetters'; // return '$firstLetter$remainingLetters';
}); // });
return formattedWords.join(' '); // return formattedWords.join(' ');
} // }
return Padding( // return Padding(
padding: const EdgeInsets.symmetric(horizontal: 30), // padding: const EdgeInsets.symmetric(horizontal: 30),
child: Card( // child: Card(
color: FlutterFlowTheme.of(context).primaryBackground, // color: FlutterFlowTheme.of(context).primaryBackground,
child: Container( // child: Container(
// height: 100, // // height: 100,
child: Padding( // child: Padding(
padding: const EdgeInsets.all(8.0), // padding: const EdgeInsets.all(8.0),
child: Column( // child: Column(
mainAxisAlignment: MainAxisAlignment.center, // mainAxisAlignment: MainAxisAlignment.center,
children: [ // children: [
Padding( // Padding(
padding: const EdgeInsets.symmetric(horizontal: 15.0), // padding: const EdgeInsets.symmetric(horizontal: 15.0),
child: Column( // child: Column(
crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
children: [ // children: [
Row( // Row(
mainAxisAlignment: MainAxisAlignment.start, // mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.max, // mainAxisSize: MainAxisSize.max,
children: [ // children: [
Icon( // Icon(
message['MSG_DESTINO_TP'] == 'T' // message['MSG_DESTINO_TP'] == 'T'
? Icons.language // ? Icons.language
: message['MSG_DESTINO_TP'] == 'P' // : message['MSG_DESTINO_TP'] == 'P'
? Icons.person // ? Icons.person
: Icons.home, // : Icons.home,
color: FlutterFlowTheme.of(context).primary, // color: FlutterFlowTheme.of(context).primary,
size: 25, // size: 25,
), // ),
Expanded( // Expanded(
child: Text( // child: Text(
message['MSG_ORIGEM_DESC'].toString(), // message['MSG_ORIGEM_DESC'].toString(),
style: TextStyle( // style: TextStyle(
fontWeight: FontWeight.bold, // fontWeight: FontWeight.bold,
fontSize: 15, // fontSize: 15,
color: FlutterFlowTheme.of(context).primary, // color: FlutterFlowTheme.of(context).primary,
), // ),
overflow: TextOverflow.fade, // overflow: TextOverflow.fade,
), // ),
), // ),
].divide(const SizedBox(width: 10)), // ].divide(const SizedBox(width: 10)),
), // ),
Row( // Row(
mainAxisAlignment: MainAxisAlignment.start, // mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.max, // mainAxisSize: MainAxisSize.max,
children: [ // children: [
Padding( // Padding(
padding: const EdgeInsets.only(left: 5), // padding: const EdgeInsets.only(left: 5),
child: Icon( // child: Icon(
Icons.history, // Icons.history,
color: FlutterFlowTheme.of(context).customColor6, // color: FlutterFlowTheme.of(context).customColor6,
size: 15, // size: 15,
), // ),
), // ),
Expanded( // Expanded(
child: Text( // child: Text(
message['MSG_DATE'].toString(), // message['MSG_DATE'].toString(),
style: TextStyle( // style: TextStyle(
fontWeight: FontWeight.bold, // fontWeight: FontWeight.bold,
fontSize: 10, // fontSize: 10,
color: FlutterFlowTheme.of(context).customColor6, // color: FlutterFlowTheme.of(context).customColor6,
), // ),
overflow: TextOverflow.ellipsis, // overflow: TextOverflow.ellipsis,
), // ),
), // ),
].divide(const SizedBox(width: 15)), // ].divide(const SizedBox(width: 15)),
), // ),
Row( // Row(
mainAxisAlignment: MainAxisAlignment.start, // mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.max, // mainAxisSize: MainAxisSize.max,
children: [ // children: [
Padding( // Padding(
padding: const EdgeInsets.only(left: 5), // padding: const EdgeInsets.only(left: 5),
child: Icon( // child: Icon(
Icons.message, // Icons.message,
color: FlutterFlowTheme.of(context).customColor6, // color: FlutterFlowTheme.of(context).customColor6,
size: 15, // size: 15,
), // ),
), // ),
Expanded( // Expanded(
child: Text( // child: Text(
message['MSG_TEXTO'].toString(), // message['MSG_TEXTO'].toString(),
), // ),
), // ),
].divide(const SizedBox(width: 15)), // ].divide(const SizedBox(width: 15)),
), // ),
].divide(const SizedBox(height: 4)), // ].divide(const SizedBox(height: 4)),
), // ),
), // ),
// Row( // // Row(
// children: [ // // children: [
// Icon( // // Icon(
// Icons.message, // // Icons.message,
// color: FlutterFlowTheme.of(context).customColor6, // // color: FlutterFlowTheme.of(context).customColor6,
// size: 15, // // size: 15,
// ), // // ),
// Expanded( // // Expanded(
// child: Padding( // // child: Padding(
// padding: const EdgeInsets.all(8.0), // // padding: const EdgeInsets.all(8.0),
// child: Text( // // child: Text(
// message['MSG_TEXTO'].toString(), // // message['MSG_TEXTO'].toString(),
// ), // // ),
// ), // // ),
// ), // // ),
// ] // // ]
// .addToStart(const SizedBox(width: 8)) // // .addToStart(const SizedBox(width: 8))
// .addToEnd(const SizedBox(width: 8))), // // .addToEnd(const SizedBox(width: 8))),
].divide( // ].divide(
const SizedBox(height: 8), // const SizedBox(height: 8),
), // ),
), // ),
), // ),
), // ),
)); // ));
} // }
} // }
class MessageWellState { // class MessageWellState {
final List<dynamic> messages; // final List<dynamic> messages;
int pageNumber; // int pageNumber;
final bool allowScrollInSingleChildScrollView; // final bool allowScrollInSingleChildScrollView;
MessageWellState({ // MessageWellState({
required this.messages, // required this.messages,
this.pageNumber = 1, // this.pageNumber = 1,
required this.allowScrollInSingleChildScrollView, // required this.allowScrollInSingleChildScrollView,
}); // });
MessageWellState copyWith({ // MessageWellState copyWith({
List<dynamic>? messages, // List<dynamic>? messages,
int? pageNumber, // int? pageNumber,
bool? allowScrollInSingleChildScrollView, // bool? allowScrollInSingleChildScrollView,
}) { // }) {
return MessageWellState( // return MessageWellState(
messages: messages ?? this.messages, // messages: messages ?? this.messages,
pageNumber: pageNumber ?? this.pageNumber, // pageNumber: pageNumber ?? this.pageNumber,
allowScrollInSingleChildScrollView: allowScrollInSingleChildScrollView ?? this.allowScrollInSingleChildScrollView, // allowScrollInSingleChildScrollView: allowScrollInSingleChildScrollView ?? this.allowScrollInSingleChildScrollView,
); // );
} // }
} // }
class MessageWellNotifier extends StateNotifier<MessageWellState> { // class MessageWellNotifier extends StateNotifier<MessageWellState> {
var _totalPageNumber = 1; // var _totalPageNumber = 1;
int get totalPageNumber => _totalPageNumber; // int get totalPageNumber => _totalPageNumber;
set totalPageNumber(int value) { // set totalPageNumber(int value) {
_totalPageNumber = value; // _totalPageNumber = value;
} // }
MessageWellNotifier() // MessageWellNotifier()
: super(MessageWellState( // : super(MessageWellState(
messages: [], // messages: [],
allowScrollInSingleChildScrollView: true, // allowScrollInSingleChildScrollView: true,
)) { // )) {
fetchMessages(); // fetchMessages();
} // }
void fetchMessages() async { // void fetchMessages() async {
if (state.pageNumber <= totalPageNumber) { // if (state.pageNumber <= totalPageNumber) {
var apiCall = GetMessagesCall(); // var apiCall = GetMessagesCall();
var response = await apiCall.call( // var response = await apiCall.call(
pageSize: '100', // pageSize: '100',
pageNumber: state.pageNumber.toString(), // pageNumber: state.pageNumber.toString(),
tipoDestino: dropdown.value.values.first, // tipoDestino: dropdown.value.values.first,
); // );
if (response.statusCode == 200) { // if (response.statusCode == 200) {
var messagesData = response.jsonBody['mensagens']; // var messagesData = response.jsonBody['mensagens'];
var newMessages = [...state.messages, ...messagesData]; // var newMessages = [...state.messages, ...messagesData];
state = state.copyWith(messages: newMessages); // state = state.copyWith(messages: newMessages);
// var rExp = RegExp(r'\d+') // // var rExp = RegExp(r'\d+')
// .allMatches(newMessages.toString()) // // .allMatches(newMessages.toString())
// .map((e) => e.group(0)) // // .map((e) => e.group(0))
// .toList(); // // .toList();
// Provider.of<MessageCounter>(context, listen: false).setCounter(int.parse(response.jsonBody['total_pages'])); // // Provider.of<MessageCounter>(context, listen: false).setCounter(int.parse(response.jsonBody['total_pages']));
// totalPageNumber = int.parse(response.jsonBody['total_pages']); // // totalPageNumber = int.parse(response.jsonBody['total_pages']);
} else {} // } else {}
} else {} // } else {}
} // }
List<dynamic> getMessages() { // List<dynamic> getMessages() {
return state.messages; // return state.messages;
} // }
void incrementPageNumber() { // void incrementPageNumber() {
if (state.pageNumber <= totalPageNumber) { // if (state.pageNumber <= totalPageNumber) {
state = state.copyWith(pageNumber: state.pageNumber + 1); // state = state.copyWith(pageNumber: state.pageNumber + 1);
} // }
} // }
} // }
final messageWellProvider = StateNotifierProvider<MessageWellNotifier, MessageWellState>((ref) { // final messageWellProvider = StateNotifierProvider<MessageWellNotifier, MessageWellState>((ref) {
return MessageWellNotifier(); // return MessageWellNotifier();
}); // });

View File

@ -58,7 +58,6 @@ class ScheduleProvisionalVisitPageModel extends FlutterFlowModel<ScheduleProvisi
DateTime currentDateTime = DateTime.now().add(const Duration(minutes: 59)); DateTime currentDateTime = DateTime.now().add(const Duration(minutes: 59));
selectedDateTime = DateFormat('dd/MM/yyyy HH:mm:ss').parse(dateTimeTextController.text); selectedDateTime = DateFormat('dd/MM/yyyy HH:mm:ss').parse(dateTimeTextController.text);
try { try {
log('dateTimeTextController.text: ${dateTimeTextController.text}');
selectedDateTime = DateFormat('dd/MM/yyyy HH:mm:ss').parse(dateTimeTextController.text); selectedDateTime = DateFormat('dd/MM/yyyy HH:mm:ss').parse(dateTimeTextController.text);
} catch (e) { } catch (e) {
return FFLocalizations.of(context).getVariableText( return FFLocalizations.of(context).getVariableText(

View File

@ -341,7 +341,6 @@ class _VisitorSearchModalTemplateComponentWidgetState extends State<VisitorSearc
Future<void> sendVisitors(BuildContext context) async { Future<void> sendVisitors(BuildContext context) async {
await widget.getVisitors?.call(_model.visitors); await widget.getVisitors?.call(_model.visitors);
log('() => docs: ${_model.docs}');
await widget.getDocs?.call(_model.docs); await widget.getDocs?.call(_model.docs);
context.pop(); context.pop();
} }

View File

@ -15,7 +15,6 @@ import 'package:hub/shared/helpers/storage/base_storage.dart';
import 'package:hub/shared/helpers/storage/storage_helper.dart'; import 'package:hub/shared/helpers/storage/storage_helper.dart';
import 'package:hub/shared/services/deeplink/deep_link_service.dart'; import 'package:hub/shared/services/deeplink/deep_link_service.dart';
import 'package:responsive_framework/responsive_framework.dart'; import 'package:responsive_framework/responsive_framework.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'backend/notifications/firebase_messaging_service.dart'; import 'backend/notifications/firebase_messaging_service.dart';
import 'initialization.dart'; import 'initialization.dart';
@ -24,7 +23,7 @@ final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
void main() async { void main() async {
await initializeApp(); await initializeApp();
runApp(const ProviderScope(child: App())); runApp(const App());
FirebaseMessaging.onBackgroundMessage(_backgroundHandlerMessage); FirebaseMessaging.onBackgroundMessage(_backgroundHandlerMessage);
} }

View File

@ -116,10 +116,8 @@ class PetsPageModel extends FlutterFlowModel<PetsPageWidget> {
); );
dropDownValueController1 = FormFieldController<String>(dropDownValue1 ??= defaultDropDownText); dropDownValueController1 = FormFieldController<String>(dropDownValue1 ??= defaultDropDownText);
dropDownValueController2 = FormFieldController<String>(dropDownValue2 ??= defaultDropDownText); dropDownValueController2 = FormFieldController<String>(dropDownValue2 ??= defaultDropDownText);
log('() => ): $devUUID');
safeSetState?.call(); safeSetState?.call();
log('() => ): $devUUID');
} }
@override @override
@ -157,7 +155,6 @@ class PetsPageModel extends FlutterFlowModel<PetsPageWidget> {
} }
void setEditForm() { void setEditForm() {
log('item: $item');
if (item != null) petId = item['id']; if (item != null) petId = item['id'];

View File

@ -79,7 +79,6 @@ class PreferencesPageModel with ChangeNotifier {
} }
}) })
.catchError((e, s) { .catchError((e, s) {
log('toggleNotify', error: e, stackTrace: s);
content = FFLocalizations.of(context).getVariableText( content = FFLocalizations.of(context).getVariableText(
enText: 'Error changing notification', enText: 'Error changing notification',
ptText: 'Erro ao alterar notificação', ptText: 'Erro ao alterar notificação',

View File

@ -30,7 +30,6 @@ class _ReceptionPageWidgetState extends State<ReceptionPageWidget> with WidgetsB
WidgetsBinding.instance.addObserver(this); WidgetsBinding.instance.addObserver(this);
() async { () async {
final lifecycle = await AwesomeNotifications().getAppLifeCycle(); final lifecycle = await AwesomeNotifications().getAppLifeCycle();
log('lifecycle: $lifecycle');
}(); }();
FirebaseMessagingService().updateDeviceToken(); FirebaseMessagingService().updateDeviceToken();
@ -45,7 +44,6 @@ class _ReceptionPageWidgetState extends State<ReceptionPageWidget> with WidgetsB
@override @override
void didChangeAppLifecycleState(AppLifecycleState state) { void didChangeAppLifecycleState(AppLifecycleState state) {
log('() => state: $state');
if (state == AppLifecycleState.resumed) { if (state == AppLifecycleState.resumed) {
setState(() { setState(() {
LocalsRepositoryImpl().checkLocals(context); LocalsRepositoryImpl().checkLocals(context);

View File

@ -29,7 +29,6 @@ class LicenseLocalDataSourceImpl implements LicenseLocalDataSource {
if (key.isEmpty) return; if (key.isEmpty) return;
for (var element in key) { for (var element in key) {
if (element != null) { if (element != null) {
log('setByKey($element, $display)');
await s(element, { await s(element, {
'display': display, 'display': display,
'expirationDate': '', 'expirationDate': '',
@ -45,7 +44,6 @@ class LicenseLocalDataSourceImpl implements LicenseLocalDataSource {
if (response.isEmpty) { if (response.isEmpty) {
return false; return false;
} }
log('isNewVersion(): ${response.first['display']}');
return response.first['display'] == 'true'; return response.first['display'] == 'true';
} }
@ -58,7 +56,6 @@ class LicenseLocalDataSourceImpl implements LicenseLocalDataSource {
} }
Future<void> s<T>(String key, T value) async { Future<void> s<T>(String key, T value) async {
log('setLicense($key, $value)');
value as Map<String, dynamic>; value as Map<String, dynamic>;
await DatabaseStorage.database.insert( await DatabaseStorage.database.insert(

View File

@ -118,7 +118,6 @@ class LicenseRemoteDataSourceImpl implements LicenseRemoteDataSource {
static Future<void> _saveModule(final dynamic body) async { static Future<void> _saveModule(final dynamic body) async {
if (body is! Map<String, dynamic>) return; if (body is! Map<String, dynamic>) return;
log('Salvando módulo: ${body.toString()}');
await LicenseLocalDataSourceImpl().s(body['key'], body); await LicenseLocalDataSourceImpl().s(body['key'], body);
} }
} }

View File

@ -23,7 +23,6 @@ class KeychainHelper implements BaseStorage {
@override @override
Future<String?> get(String key) async { Future<String?> get(String key) async {
log('KeychainHelper.get: $key');
var response = await DatabaseStorage.database.query(tableKeychain, where: 'key = ?', whereArgs: [key]); var response = await DatabaseStorage.database.query(tableKeychain, where: 'key = ?', whereArgs: [key]);
if (response.isEmpty) { if (response.isEmpty) {
return null; return null;

View File

@ -49,7 +49,6 @@ class DeepLinkService {
} }
} catch (e, s) { } catch (e, s) {
print('Error handling deep link: $e, $s'); print('Error handling deep link: $e, $s');
log('Error handling', error: e, stackTrace: s);
} }
} }
@ -74,7 +73,6 @@ class DeepLinkService {
}); });
} catch (e, s) { } catch (e, s) {
print('Error showing forgot password screen: $e, $s'); print('Error showing forgot password screen: $e, $s');
log('Error handling', error: e, stackTrace: s);
} }
} }

View File

@ -230,46 +230,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.3.0"
camera:
dependency: "direct main"
description:
name: camera
sha256: "26ff41045772153f222ffffecba711a206f670f5834d40ebf5eed3811692f167"
url: "https://pub.dev"
source: hosted
version: "0.11.0+2"
camera_android_camerax:
dependency: transitive
description:
name: camera_android_camerax
sha256: e3627fdc2132d89212b8a8676679f5b07008c7e3d8ae00cea775c3397f9e742b
url: "https://pub.dev"
source: hosted
version: "0.6.10"
camera_avfoundation:
dependency: transitive
description:
name: camera_avfoundation
sha256: "2e4c568f70e406ccb87376bc06b53d2f5bebaab71e2fbcc1a950e31449381bcf"
url: "https://pub.dev"
source: hosted
version: "0.9.17+5"
camera_platform_interface:
dependency: transitive
description:
name: camera_platform_interface
sha256: b3ede1f171532e0d83111fe0980b46d17f1aa9788a07a2fbed07366bbdbb9061
url: "https://pub.dev"
source: hosted
version: "2.8.0"
camera_web:
dependency: transitive
description:
name: camera_web
sha256: "595f28c89d1fb62d77c73c633193755b781c6d2e0ebcd8dc25b763b514e6ba8f"
url: "https://pub.dev"
source: hosted
version: "0.3.5"
characters: characters:
dependency: transitive dependency: transitive
description: description:
@ -318,22 +278,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.18.0" version: "1.18.0"
connectivity_plus:
dependency: "direct main"
description:
name: connectivity_plus
sha256: "876849631b0c7dc20f8b471a2a03142841b482438e3b707955464f5ffca3e4c3"
url: "https://pub.dev"
source: hosted
version: "6.1.0"
connectivity_plus_platform_interface:
dependency: transitive
description:
name: connectivity_plus_platform_interface
sha256: "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
convert: convert:
dependency: transitive dependency: transitive
description: description:
@ -342,14 +286,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.2" version: "3.1.2"
crop_your_image:
dependency: "direct main"
description:
name: crop_your_image
sha256: "9ae3b33042de5bda5321fc48aad41054c196bf2cc28350cd30cb8a85c1a7b1bd"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
cross_file: cross_file:
dependency: transitive dependency: transitive
description: description:
@ -359,7 +295,7 @@ packages:
source: hosted source: hosted
version: "0.3.4+2" version: "0.3.4+2"
crypto: crypto:
dependency: "direct main" dependency: transitive
description: description:
name: crypto name: crypto
sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
@ -390,14 +326,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.7" version: "2.3.7"
dbus:
dependency: transitive
description:
name: dbus
sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac"
url: "https://pub.dev"
source: hosted
version: "0.7.10"
device_info_plus: device_info_plus:
dependency: "direct main" dependency: "direct main"
description: description:
@ -414,22 +342,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.1" version: "7.0.1"
dio:
dependency: "direct main"
description:
name: dio
sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260"
url: "https://pub.dev"
source: hosted
version: "5.7.0"
dio_web_adapter:
dependency: transitive
description:
name: dio_web_adapter
sha256: "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
dropdown_button2: dropdown_button2:
dependency: "direct main" dependency: "direct main"
description: description:
@ -450,10 +362,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: equatable name: equatable
sha256: b35578f687b79243d39008c44d638474d93e9091e578c970efef41ce0c3fa000 sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.6" version: "2.0.7"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
@ -490,10 +402,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: file_selector_linux name: file_selector_linux
sha256: b2b91daf8a68ecfa4a01b778a6f52edef9b14ecd506e771488ea0f2e0784198b sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.9.3+1" version: "0.9.3+2"
file_selector_macos: file_selector_macos:
dependency: transitive dependency: transitive
description: description:
@ -636,21 +548,13 @@ packages:
source: hosted source: hosted
version: "8.1.6" version: "8.1.6"
flutter_cache_manager: flutter_cache_manager:
dependency: "direct main" dependency: transitive
description: description:
name: flutter_cache_manager name: flutter_cache_manager
sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.4.1" version: "3.4.1"
flutter_expandable_fab:
dependency: "direct main"
description:
name: flutter_expandable_fab
sha256: "85275279d19faf4fbe5639dc1f139b4555b150e079d056f085601a45688af12c"
url: "https://pub.dev"
source: hosted
version: "2.3.0"
flutter_inappwebview: flutter_inappwebview:
dependency: "direct main" dependency: "direct main"
description: description:
@ -671,10 +575,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_inappwebview_internal_annotations name: flutter_inappwebview_internal_annotations
sha256: "5f80fd30e208ddded7dbbcd0d569e7995f9f63d45ea3f548d8dd4c0b473fb4c8" sha256: "787171d43f8af67864740b6f04166c13190aa74a1468a1f1f1e9ee5b90c359cd"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.2.0"
flutter_inappwebview_ios: flutter_inappwebview_ios:
dependency: transitive dependency: transitive
description: description:
@ -729,21 +633,13 @@ packages:
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_plugin_android_lifecycle: flutter_plugin_android_lifecycle:
dependency: "direct main" dependency: transitive
description: description:
name: flutter_plugin_android_lifecycle name: flutter_plugin_android_lifecycle
sha256: "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398" sha256: "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.23" version: "2.0.23"
flutter_riverpod:
dependency: "direct main"
description:
name: flutter_riverpod
sha256: "9532ee6db4a943a1ed8383072a2e3eeda041db5657cdf6d2acecf3c21ecbe7e1"
url: "https://pub.dev"
source: hosted
version: "2.6.1"
flutter_secure_storage: flutter_secure_storage:
dependency: "direct main" dependency: "direct main"
description: description:
@ -820,10 +716,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_svg name: flutter_svg
sha256: "936d9c1c010d3e234d1672574636f3352b4941ca3decaddd3cafaeb9ad49c471" sha256: "54900a1a1243f3c4a5506d853a2b5c2dbc38d5f27e52a52618a8054401431123"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.15" version: "2.0.16"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@ -894,10 +790,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: go_router name: go_router
sha256: "8ae664a70174163b9f65ea68dd8673e29db8f9095de7b5cd00e167c621f4fef5" sha256: "8660b74171fafae4aa8202100fa2e55349e078281dadc73a241eb8e758534d9d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.6.0" version: "14.6.1"
google_fonts: google_fonts:
dependency: "direct main" dependency: "direct main"
description: description:
@ -982,10 +878,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: image_picker_android name: image_picker_android
sha256: "8faba09ba361d4b246dc0a17cb4289b3324c2b9f6db7b3d457ee69106a86bd32" sha256: fa8141602fde3f7e2f81dbf043613eb44dfa325fa0bcf93c0f142c9f7a2c193e
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.8.12+17" version: "0.8.12+18"
image_picker_for_web: image_picker_for_web:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1067,7 +963,7 @@ packages:
source: hosted source: hosted
version: "0.6.7" version: "0.6.7"
json_annotation: json_annotation:
dependency: "direct main" dependency: transitive
description: description:
name: json_annotation name: json_annotation
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
@ -1198,10 +1094,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: material_symbols_icons name: material_symbols_icons
sha256: "1dea2aef1c83434f832f14341a5ffa1254e76b68e4d90333f95f8a2643bf1024" sha256: a783133f87c58e10b1cc19797f7c3192ff9c2bab301c4ade90312d8f2aed01b2
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.2799.0" version: "4.2800.2"
maybe_just_nothing: maybe_just_nothing:
dependency: transitive dependency: transitive
description: description:
@ -1242,14 +1138,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
nm:
dependency: transitive
description:
name: nm
sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254"
url: "https://pub.dev"
source: hosted
version: "0.5.0"
octo_image: octo_image:
dependency: transitive dependency: transitive
description: description:
@ -1302,10 +1190,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: path_provider_android name: path_provider_android
sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a sha256: "8c4967f8b7cb46dc914e178daa29813d83ae502e0529d7b0478330616a691ef7"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.12" version: "2.2.14"
path_provider_foundation: path_provider_foundation:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1342,10 +1230,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: percent_indicator name: percent_indicator
sha256: c37099ad833a883c9d71782321cb65c3a848c21b6939b6185f0ff6640d05814c sha256: "0d77d5c6fa9b7f60202cedf748b568ba9ba38d3f30405d6ceae4da76f5185462"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.2.3" version: "4.2.4"
permission_handler: permission_handler:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1490,14 +1378,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.0" version: "0.2.0"
riverpod:
dependency: transitive
description:
name: riverpod
sha256: "59062512288d3056b2321804332a13ffdd1bf16df70dcc8e506e411280a72959"
url: "https://pub.dev"
source: hosted
version: "2.6.1"
rxdart: rxdart:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1679,14 +1559,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.11.1" version: "1.11.1"
state_notifier:
dependency: transitive
description:
name: state_notifier
sha256: b8677376aa54f2d7c58280d5a007f9e8774f1968d1fb1c096adcb4792fba29bb
url: "https://pub.dev"
source: hosted
version: "1.0.0"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
@ -1851,10 +1723,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vector_graphics_compiler name: vector_graphics_compiler
sha256: ab9ff38fc771e9ee1139320adbe3d18a60327370c218c60752068ebee4b49ab1 sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.15" version: "1.1.16"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
@ -1931,10 +1803,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_wkwebview name: webview_flutter_wkwebview
sha256: "3be297aa4ca78205abdd284cf55f168c35246c75b3079990ad8ba9d257681a30" sha256: b7e92f129482460951d96ef9a46b49db34bd2e1621685de26e9eaafd9674e7eb
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.16.2" version: "3.16.3"
win32: win32:
dependency: "direct overridden" dependency: "direct overridden"
description: description:

View File

@ -22,7 +22,7 @@ dependencies:
rxdart: ^0.28.0 rxdart: ^0.28.0
collection: 1.18.0 collection: 1.18.0
app_links: ^6.3.2 app_links: ^6.3.2
crop_your_image: 1.1.0 # crop_your_image: 1.1.0
csv: 6.0.0 csv: 6.0.0
device_info_plus: ^10.1.2 device_info_plus: ^10.1.2
firebase_messaging: ^15.1.0 firebase_messaging: ^15.1.0
@ -30,13 +30,13 @@ dependencies:
easy_debounce: 2.0.3 easy_debounce: 2.0.3
equatable: ^2.0.6 equatable: ^2.0.6
file_picker: ^8.0.7 file_picker: ^8.0.7
flutter_expandable_fab: ^2.1.0 # flutter_expandable_fab: ^2.1.0
firebase_analytics: ^11.3.0 firebase_analytics: ^11.3.0
flutter_animate: 4.5.0 flutter_animate: 4.5.0
flutter_cache_manager: ^3.4.1 # flutter_cache_manager: ^3.4.1
flutter_plugin_android_lifecycle: ^2.0.23 # flutter_plugin_android_lifecycle: ^2.0.23
share_plus: ^10.0.0 share_plus: ^10.0.0
connectivity_plus: ^6.0.5 # connectivity_plus: ^6.0.5
flutter_secure_storage: 9.2.2 flutter_secure_storage: 9.2.2
flutter_secure_storage_linux: 1.2.1 flutter_secure_storage_linux: 1.2.1
flutter_secure_storage_macos: 3.1.2 flutter_secure_storage_macos: 3.1.2
@ -59,7 +59,7 @@ dependencies:
image_picker_platform_interface: 2.10.0 image_picker_platform_interface: 2.10.0
local_auth: ^2.2.0 local_auth: ^2.2.0
intl: ^0.19.0 intl: ^0.19.0
camera: ^0.11.0+2 # camera: ^0.11.0+2
json_path: ^0.7.4 json_path: ^0.7.4
mime_type: ^1.0.1 mime_type: ^1.0.1
page_transition: 2.1.0 page_transition: 2.1.0
@ -93,16 +93,16 @@ dependencies:
fluttertoast: ^8.2.8 fluttertoast: ^8.2.8
cupertino_icons: ^1.0.0 cupertino_icons: ^1.0.0
flutter_bloc: ^8.1.6 flutter_bloc: ^8.1.6
flutter_riverpod: ^2.5.1 # flutter_riverpod: ^2.5.1
qr_flutter: ^4.1.0 qr_flutter: ^4.1.0
permission_handler: ^11.3.1 permission_handler: ^11.3.1
firebase_crashlytics: ^4.0.1 firebase_crashlytics: ^4.0.1
awesome_notifications: ^0.10.0 awesome_notifications: ^0.10.0
app_tracking_transparency: ^2.0.6 app_tracking_transparency: ^2.0.6
dio: ^5.7.0 # dio: ^5.7.0
crypto: ^3.0.5 # crypto: ^3.0.5
freezed_annotation: ^2.4.4 freezed_annotation: ^2.4.4
json_annotation: ^4.9.0 # json_annotation: ^4.9.0
dependency_overrides: dependency_overrides:
http: 1.2.1 http: 1.2.1