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

View File

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

View File

@ -341,7 +341,6 @@ class _VisitorSearchModalTemplateComponentWidgetState extends State<VisitorSearc
Future<void> sendVisitors(BuildContext context) async {
await widget.getVisitors?.call(_model.visitors);
log('() => docs: ${_model.docs}');
await widget.getDocs?.call(_model.docs);
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/services/deeplink/deep_link_service.dart';
import 'package:responsive_framework/responsive_framework.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'backend/notifications/firebase_messaging_service.dart';
import 'initialization.dart';
@ -24,7 +23,7 @@ final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
void main() async {
await initializeApp();
runApp(const ProviderScope(child: App()));
runApp(const App());
FirebaseMessaging.onBackgroundMessage(_backgroundHandlerMessage);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -49,7 +49,6 @@ class DeepLinkService {
}
} catch (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) {
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"
source: hosted
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:
dependency: transitive
description:
@ -318,22 +278,6 @@ packages:
url: "https://pub.dev"
source: hosted
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:
dependency: transitive
description:
@ -342,14 +286,6 @@ packages:
url: "https://pub.dev"
source: hosted
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:
dependency: transitive
description:
@ -359,7 +295,7 @@ packages:
source: hosted
version: "0.3.4+2"
crypto:
dependency: "direct main"
dependency: transitive
description:
name: crypto
sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
@ -390,14 +326,6 @@ packages:
url: "https://pub.dev"
source: hosted
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:
dependency: "direct main"
description:
@ -414,22 +342,6 @@ packages:
url: "https://pub.dev"
source: hosted
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:
dependency: "direct main"
description:
@ -450,10 +362,10 @@ packages:
dependency: "direct main"
description:
name: equatable
sha256: b35578f687b79243d39008c44d638474d93e9091e578c970efef41ce0c3fa000
sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7"
url: "https://pub.dev"
source: hosted
version: "2.0.6"
version: "2.0.7"
fake_async:
dependency: transitive
description:
@ -490,10 +402,10 @@ packages:
dependency: transitive
description:
name: file_selector_linux
sha256: b2b91daf8a68ecfa4a01b778a6f52edef9b14ecd506e771488ea0f2e0784198b
sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33"
url: "https://pub.dev"
source: hosted
version: "0.9.3+1"
version: "0.9.3+2"
file_selector_macos:
dependency: transitive
description:
@ -636,21 +548,13 @@ packages:
source: hosted
version: "8.1.6"
flutter_cache_manager:
dependency: "direct main"
dependency: transitive
description:
name: flutter_cache_manager
sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386"
url: "https://pub.dev"
source: hosted
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:
dependency: "direct main"
description:
@ -671,10 +575,10 @@ packages:
dependency: transitive
description:
name: flutter_inappwebview_internal_annotations
sha256: "5f80fd30e208ddded7dbbcd0d569e7995f9f63d45ea3f548d8dd4c0b473fb4c8"
sha256: "787171d43f8af67864740b6f04166c13190aa74a1468a1f1f1e9ee5b90c359cd"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.2.0"
flutter_inappwebview_ios:
dependency: transitive
description:
@ -729,21 +633,13 @@ packages:
source: sdk
version: "0.0.0"
flutter_plugin_android_lifecycle:
dependency: "direct main"
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
sha256: "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398"
url: "https://pub.dev"
source: hosted
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:
dependency: "direct main"
description:
@ -820,10 +716,10 @@ packages:
dependency: "direct main"
description:
name: flutter_svg
sha256: "936d9c1c010d3e234d1672574636f3352b4941ca3decaddd3cafaeb9ad49c471"
sha256: "54900a1a1243f3c4a5506d853a2b5c2dbc38d5f27e52a52618a8054401431123"
url: "https://pub.dev"
source: hosted
version: "2.0.15"
version: "2.0.16"
flutter_test:
dependency: "direct dev"
description: flutter
@ -894,10 +790,10 @@ packages:
dependency: "direct main"
description:
name: go_router
sha256: "8ae664a70174163b9f65ea68dd8673e29db8f9095de7b5cd00e167c621f4fef5"
sha256: "8660b74171fafae4aa8202100fa2e55349e078281dadc73a241eb8e758534d9d"
url: "https://pub.dev"
source: hosted
version: "14.6.0"
version: "14.6.1"
google_fonts:
dependency: "direct main"
description:
@ -982,10 +878,10 @@ packages:
dependency: "direct main"
description:
name: image_picker_android
sha256: "8faba09ba361d4b246dc0a17cb4289b3324c2b9f6db7b3d457ee69106a86bd32"
sha256: fa8141602fde3f7e2f81dbf043613eb44dfa325fa0bcf93c0f142c9f7a2c193e
url: "https://pub.dev"
source: hosted
version: "0.8.12+17"
version: "0.8.12+18"
image_picker_for_web:
dependency: "direct main"
description:
@ -1067,7 +963,7 @@ packages:
source: hosted
version: "0.6.7"
json_annotation:
dependency: "direct main"
dependency: transitive
description:
name: json_annotation
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
@ -1198,10 +1094,10 @@ packages:
dependency: "direct main"
description:
name: material_symbols_icons
sha256: "1dea2aef1c83434f832f14341a5ffa1254e76b68e4d90333f95f8a2643bf1024"
sha256: a783133f87c58e10b1cc19797f7c3192ff9c2bab301c4ade90312d8f2aed01b2
url: "https://pub.dev"
source: hosted
version: "4.2799.0"
version: "4.2800.2"
maybe_just_nothing:
dependency: transitive
description:
@ -1242,14 +1138,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.0"
nm:
dependency: transitive
description:
name: nm
sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254"
url: "https://pub.dev"
source: hosted
version: "0.5.0"
octo_image:
dependency: transitive
description:
@ -1302,10 +1190,10 @@ packages:
dependency: "direct main"
description:
name: path_provider_android
sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a
sha256: "8c4967f8b7cb46dc914e178daa29813d83ae502e0529d7b0478330616a691ef7"
url: "https://pub.dev"
source: hosted
version: "2.2.12"
version: "2.2.14"
path_provider_foundation:
dependency: "direct main"
description:
@ -1342,10 +1230,10 @@ packages:
dependency: "direct main"
description:
name: percent_indicator
sha256: c37099ad833a883c9d71782321cb65c3a848c21b6939b6185f0ff6640d05814c
sha256: "0d77d5c6fa9b7f60202cedf748b568ba9ba38d3f30405d6ceae4da76f5185462"
url: "https://pub.dev"
source: hosted
version: "4.2.3"
version: "4.2.4"
permission_handler:
dependency: "direct main"
description:
@ -1490,14 +1378,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.2.0"
riverpod:
dependency: transitive
description:
name: riverpod
sha256: "59062512288d3056b2321804332a13ffdd1bf16df70dcc8e506e411280a72959"
url: "https://pub.dev"
source: hosted
version: "2.6.1"
rxdart:
dependency: "direct main"
description:
@ -1679,14 +1559,6 @@ packages:
url: "https://pub.dev"
source: hosted
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:
dependency: transitive
description:
@ -1851,10 +1723,10 @@ packages:
dependency: transitive
description:
name: vector_graphics_compiler
sha256: ab9ff38fc771e9ee1139320adbe3d18a60327370c218c60752068ebee4b49ab1
sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad"
url: "https://pub.dev"
source: hosted
version: "1.1.15"
version: "1.1.16"
vector_math:
dependency: transitive
description:
@ -1931,10 +1803,10 @@ packages:
dependency: transitive
description:
name: webview_flutter_wkwebview
sha256: "3be297aa4ca78205abdd284cf55f168c35246c75b3079990ad8ba9d257681a30"
sha256: b7e92f129482460951d96ef9a46b49db34bd2e1621685de26e9eaafd9674e7eb
url: "https://pub.dev"
source: hosted
version: "3.16.2"
version: "3.16.3"
win32:
dependency: "direct overridden"
description:

View File

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