From 84f1fc72cd0ae5ab2209c48a8b10174284f5ca57 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Wed, 21 Aug 2024 14:36:50 -0300 Subject: [PATCH 01/24] fix prov and wpp logic --- lib/app_state.dart | 28 ++++++++ ..._arrow_linked_locals_component_widget.dart | 4 +- .../local_profile_component_widget.dart | 10 +-- .../menu_component/menu_component_model.dart | 68 +++++++++++-------- .../menu_component/menu_component_widget.dart | 24 ++----- lib/pages/home_page/home_page_widget.dart | 26 +++++-- 6 files changed, 101 insertions(+), 59 deletions(-) diff --git a/lib/app_state.dart b/lib/app_state.dart index 7d2a5df8..80712466 100644 --- a/lib/app_state.dart +++ b/lib/app_state.dart @@ -153,6 +153,12 @@ class AppState extends ChangeNotifier { await _safeInitAsync(() async { _context = await secureStorage.getObject('ff_context') ?? _context; }); + await _safeInitAsync(() async { + _provisional = await secureStorage.getBool('provisional') ?? _provisional; + }); + await _safeInitAsync(() async { + _whatsapp = await secureStorage.getBool('whatsapp') ?? _whatsapp; + }); } void update(VoidCallback callback) { @@ -162,6 +168,28 @@ class AppState extends ChangeNotifier { late FlutterSecureStorage secureStorage; + bool _whatsapp = false; + bool get whatsapp => _whatsapp; + set whatsapp(bool value) { + _whatsapp = value; + secureStorage.setBool('whatsapp', value); + } + + void deleteWhatsapp() { + secureStorage.delete(key: 'whatsapp'); + } + + bool _provisional = false; + bool get provisional => _provisional; + set provisional(bool value) { + _provisional = value; + secureStorage.setBool('provisional', value); + } + + void deleteProvisional() { + secureStorage.delete(key: 'provisional'); + } + BuildContext? _context; BuildContext? get context => _context; set context(BuildContext? value) { diff --git a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart index c5c6a353..f874cd0b 100644 --- a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart +++ b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart @@ -221,10 +221,10 @@ class _BottomArrowLinkedLocalsComponentWidgetState Radius.circular(25.0), ), child: Image.network( - 'https://freaccess.com.br/freaccess/Images/Clients/${getJsonField( + "https://freaccess.com.br/freaccess/Images/Clients/${getJsonField( eachLocalsItem, r'''$.CLI_ID''', - ).toString()}.png', + ).toString()}.png", width: double.infinity, height: double.infinity, fit: BoxFit.fill, diff --git a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart index 6af7383c..414203d1 100644 --- a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart +++ b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart @@ -1,11 +1,13 @@ -import '/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart'; -import '/flutter_flow/flutter_flow_theme.dart'; -import '/flutter_flow/flutter_flow_util.dart'; -import '/flutter_flow/custom_functions.dart' as functions; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; + +import '/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart'; +import '/flutter_flow/custom_functions.dart' as functions; +import '/flutter_flow/flutter_flow_theme.dart'; +import '/flutter_flow/flutter_flow_util.dart'; import 'local_profile_component_model.dart'; + export 'local_profile_component_model.dart'; //// diff --git a/lib/components/organism_components/menu_component/menu_component_model.dart b/lib/components/organism_components/menu_component/menu_component_model.dart index b2842e56..621817b8 100644 --- a/lib/components/organism_components/menu_component/menu_component_model.dart +++ b/lib/components/organism_components/menu_component/menu_component_model.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:flutter/material.dart'; import 'package:hub/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; @@ -7,8 +9,6 @@ import '/components/organism_components/menu_list_view_component/menu_list_view_ import '/flutter_flow/flutter_flow_util.dart'; import 'menu_component_widget.dart' show MenuComponentWidget; - - class MenuComponentModel extends FlutterFlowModel { /// Local state fields for this component. @@ -42,36 +42,46 @@ class MenuComponentModel extends FlutterFlowModel { } Future scheduleVisitOptAction(BuildContext context) async { + final isWpp = AppState().whatsapp; + final isProvisional = AppState().provisional; + log("isWpp ${isWpp ? 1 : 0}"); + + final routesListStr = [ + 'scheduleCompleteVisitPage', + if (isProvisional) 'scheduleProvisionalVisitPage', + if (isWpp) 'fastPassPage', + ]; + final iconsListIcon = [ + Icons.date_range_rounded, + if (isProvisional) Icons.date_range_rounded, + if (isWpp) Icons.date_range_rounded, + ]; + final nameListStr = [ + FFLocalizations.of(context).getVariableText( + ptText: 'Visita\nCompleta', + enText: 'Complete\nSchedule', + ), + if (isProvisional) + FFLocalizations.of(context).getVariableText( + ptText: 'Visita\nProvisória', + enText: 'Provisional\nSchedule', + ), + if (isWpp) + FFLocalizations.of(context).getVariableText( + ptText: 'Visita\nRápida', + enText: 'Fast\nSchedule', + ), + ]; + await showAdaptiveDialog( context: context, builder: (context) { return Padding( padding: MediaQuery.viewInsetsOf(context), child: OptionSelectionModalWidget( - routesListStr: [ - 'scheduleCompleteVisitPage', - 'scheduleProvisionalVisitPage', - 'fastPassPage', - ], - iconsListIcon: [ - Icons.date_range_rounded, - Icons.date_range_rounded, - Icons.date_range_rounded, - ], - nameListStr: [ - FFLocalizations.of(context).getVariableText( - ptText: 'Visita\nCompleta', - enText: 'Complete\nSchedule', - ), - FFLocalizations.of(context).getVariableText( - ptText: 'Visita\nProvisória', - enText: 'Provisional\nSchedule', - ), - FFLocalizations.of(context).getVariableText( - ptText: 'Visita\nRápida', - enText: 'Fast\nSchedule', - ), - ], + routesListStr: routesListStr, + iconsListIcon: iconsListIcon, + nameListStr: nameListStr, ), ); }, @@ -175,7 +185,7 @@ class MenuComponentModel extends FlutterFlowModel { ); } - Future messageHistoryAction(BuildContext context) async { + Future messageHistoryAction(BuildContext context) async { context.pushNamed( 'messageHistoryPage', extra: { @@ -187,6 +197,4 @@ class MenuComponentModel extends FlutterFlowModel { }, ); } - - -} \ No newline at end of file +} diff --git a/lib/components/organism_components/menu_component/menu_component_widget.dart b/lib/components/organism_components/menu_component/menu_component_widget.dart index 91b722e8..a1d916f0 100644 --- a/lib/components/organism_components/menu_component/menu_component_widget.dart +++ b/lib/components/organism_components/menu_component/menu_component_widget.dart @@ -1,5 +1,4 @@ -import 'dart:developer'; - +import 'package:flutter/material.dart'; import 'package:hub/backend/schema/enums/enums.dart'; import 'package:hub/components/atomic_components/menu_button_item/menu_button_item_widget.dart'; import 'package:hub/components/atomic_components/menu_card_item/menu_card_item.dart'; @@ -9,8 +8,8 @@ import 'package:hub/flutter_flow/nav/nav.dart'; import '/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart'; import '/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart'; import '/flutter_flow/flutter_flow_util.dart'; -import 'package:flutter/material.dart'; import 'menu_component_model.dart'; + export 'menu_component_model.dart'; class MenuComponentWidget extends StatefulWidget { @@ -49,6 +48,9 @@ class _MenuComponentWidgetState extends State { super.dispose(); } + // MenuButtonWidget(icon: FFIcons.kvector2, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Link\nCondominum' , ptText:'' ,),), + // MenuButtonWidget(icon: FFIcons.kpets, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Register\Pet' , ptText:'' ,),), + @override Widget build(BuildContext context) { final options = widget.item == MenuItem.button @@ -64,7 +66,6 @@ class _MenuComponentWidgetState extends State { ptText: 'Agendar\nVisita', ), ), - MenuButtonWidget( icon: FFIcons.khome, action: () async { @@ -76,10 +77,6 @@ class _MenuComponentWidgetState extends State { ptText: 'Cadastro\nde Visitante', ), ), - - // MenuButtonWidget(icon: FFIcons.kvector2, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Link\nCondominum' , ptText:'' ,),), - // MenuButtonWidget(icon: FFIcons.kpets, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Register\Pet' , ptText:'' ,),), - MenuButtonWidget( icon: Icons.qr_code, action: () async { @@ -91,7 +88,6 @@ class _MenuComponentWidgetState extends State { ptText: 'QRCode\nde Acesso', ), ), - MenuButtonWidget( icon: Icons.people, action: () async { @@ -103,7 +99,6 @@ class _MenuComponentWidgetState extends State { ptText: 'Pessoas na\nPropriedade', ), ), - MenuButtonWidget( icon: Icons.history_sharp, action: () async { @@ -115,7 +110,6 @@ class _MenuComponentWidgetState extends State { ptText: 'Consultar\nHistóricos', ), ), - MenuButtonWidget( icon: Icons.settings, action: () async { @@ -140,7 +134,6 @@ class _MenuComponentWidgetState extends State { ptText: 'Agendar\nVisita', ), ), - MenuCardItem( icon: FFIcons.khome, action: () async { @@ -152,10 +145,6 @@ class _MenuComponentWidgetState extends State { ptText: 'Cadastro\nde Visitante', ), ), - - // MenuCardItem(icon: FFIcons.kvector2, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Link Condominum' , ptText:'' ,),), - // MenuCardItem(icon: FFIcons.kpets, action: () async {setState(() {});}, title: FFLocalizations.of(context).getVariableText(enText:'Register\Pet' , ptText:'' ,),), - MenuCardItem( icon: Icons.qr_code, action: () async { @@ -167,7 +156,6 @@ class _MenuComponentWidgetState extends State { ptText: 'QRCode\nde Acesso', ), ), - MenuCardItem( icon: Icons.people, action: () async { @@ -179,7 +167,6 @@ class _MenuComponentWidgetState extends State { ptText: 'Pessoas\nna Propriedade', ), ), - MenuCardItem( icon: Icons.history_sharp, action: () async { @@ -191,7 +178,6 @@ class _MenuComponentWidgetState extends State { ptText: 'Consultar\nHistoricos', ), ), - MenuCardItem( icon: Icons.settings, action: () async { diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 9a78b86c..9c48da63 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -1,8 +1,7 @@ -import 'dart:developer'; - import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/actions/actions.dart'; +import 'package:hub/backend/api_requests/api_calls.dart'; import 'package:hub/backend/notifications/firebase_messaging_service.dart'; import 'package:hub/backend/schema/enums/enums.dart'; import 'package:hub/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart'; @@ -29,7 +28,6 @@ class _HomePageWidgetState extends State { bool localStatus = false; final scaffoldKey = GlobalKey(); - Future checkLocalStatus() async { localStatus = await checkLocals( context: context, @@ -48,10 +46,30 @@ class _HomePageWidgetState extends State { () async { await FirebaseMessagingService().updateDeviceToken(); }(); + () async { + PhpGroup.getDadosCall + .call( + devUUID: AppState().devUUID, + userUUID: AppState().userUUID, + cliUUID: AppState().cliUUID, + atividade: 'getDados') + .then((value) async { + // value = await value; + AppState().whatsapp = value.jsonBody['whatsapp']; + AppState().provisional = value.jsonBody['provisional']; + }); + }(); WidgetsBinding.instance.addPostFrameCallback((_) async { @override void initState() { + // PhpGroup.getLocalsCall + // .call( + // devUUID: AppState().devUUID, + // userUUID: AppState().userUUID, + // ) + // .then((value) => log('getLocalsCall: $value')); + super.initState(); checkLocalStatus(); } @@ -182,7 +200,7 @@ class _HomePageWidgetState extends State { Widget createLocal(bool localStatus) { return wrapWithModel( model: _model.localComponentModel, - updateCallback: () => setState(() {}), + updateCallback: () => safeSetState(() {}), child: LocalProfileComponentWidget( localStatus: localStatus, ), From 74d351de72a4f5cebc642e0157516a9413caa6c8 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 09:07:09 -0300 Subject: [PATCH 02/24] WIP --- lib/app_state.dart | 1 + lib/backend/schema/enums/enums.dart | 5 +- .../connectivity_bloc/connectivity_bloc.dart | 37 ++ .../connectivity_bloc/connectivity_event.dart | 17 + .../connectivity_bloc/connectivity_state.dart | 14 + .../menu_button_item_widget.dart | 210 +++++------ .../menu_card_item/menu_card_item.dart | 141 ++++---- .../menu_item/menu_item.dart | 7 +- .../menu_component/menu_component_widget.dart | 327 +++++++++++------- .../menu_list_view_component_widget.dart | 161 +++++---- .../menu_staggered_view_component_widget.dart | 19 +- lib/flutter_flow/flutter_flow_drop_down.dart | 6 +- lib/flutter_flow/nav/nav.dart | 9 +- lib/main.dart | 30 +- lib/pages/home_page/home_page_widget.dart | 87 +---- .../no_connection_page.dart | 32 ++ .../preferences_settings_model.dart | 29 +- .../preferences_settings_widget.dart | 17 +- pubspec.lock | 2 +- pubspec.yaml | 1 + 20 files changed, 646 insertions(+), 506 deletions(-) create mode 100644 lib/blocs/connectivity_bloc/connectivity_bloc.dart create mode 100644 lib/blocs/connectivity_bloc/connectivity_event.dart create mode 100644 lib/blocs/connectivity_bloc/connectivity_state.dart create mode 100644 lib/pages/no_connection_page/no_connection_page.dart diff --git a/lib/app_state.dart b/lib/app_state.dart index 80712466..ac3c4f66 100644 --- a/lib/app_state.dart +++ b/lib/app_state.dart @@ -480,6 +480,7 @@ class AppState extends ChangeNotifier { void deleteAll() { secureStorage.deleteAll(); + AppState().isLogged = false; } } diff --git a/lib/backend/schema/enums/enums.dart b/lib/backend/schema/enums/enums.dart index 64351084..029e9293 100644 --- a/lib/backend/schema/enums/enums.dart +++ b/lib/backend/schema/enums/enums.dart @@ -13,7 +13,8 @@ enum MenuView { enum MenuItem { button, - card + card, + tile, } extension FFEnumExtensions on T { @@ -32,4 +33,4 @@ T? deserializeEnum(String? value) { default: return null; } -} \ No newline at end of file +} diff --git a/lib/blocs/connectivity_bloc/connectivity_bloc.dart b/lib/blocs/connectivity_bloc/connectivity_bloc.dart new file mode 100644 index 00000000..64c73c0e --- /dev/null +++ b/lib/blocs/connectivity_bloc/connectivity_bloc.dart @@ -0,0 +1,37 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:equatable/equatable.dart'; + +part 'connectivity_event.dart'; +part 'connectivity_state.dart'; + +class ConnectivityBloc extends Bloc { + final Connectivity _connectivity; + late StreamSubscription> _connectivitySubscription; + + ConnectivityBloc(this._connectivity) : super(ConnectivityInitial()) { + on(_onConnectivityChanged); + _connectivitySubscription = _connectivity.onConnectivityChanged.listen( + (List result) { + add(ConnectivityChanged(result.first)); + }, + ); + } + + void _onConnectivityChanged( + ConnectivityChanged event, Emitter emit) { + if (event.result == ConnectivityResult.none) { + emit(ConnectivityFailure()); + } else { + emit(ConnectivitySuccess()); + } + } + + @override + Future close() { + _connectivitySubscription.cancel(); + return super.close(); + } +} diff --git a/lib/blocs/connectivity_bloc/connectivity_event.dart b/lib/blocs/connectivity_bloc/connectivity_event.dart new file mode 100644 index 00000000..d069c479 --- /dev/null +++ b/lib/blocs/connectivity_bloc/connectivity_event.dart @@ -0,0 +1,17 @@ +part of 'connectivity_bloc.dart'; + +abstract class ConnectivityEvent extends Equatable { + const ConnectivityEvent(); + + @override + List get props => []; +} + +class ConnectivityChanged extends ConnectivityEvent { + final ConnectivityResult result; + + const ConnectivityChanged(this.result); + + @override + List get props => [result]; +} diff --git a/lib/blocs/connectivity_bloc/connectivity_state.dart b/lib/blocs/connectivity_bloc/connectivity_state.dart new file mode 100644 index 00000000..d109a152 --- /dev/null +++ b/lib/blocs/connectivity_bloc/connectivity_state.dart @@ -0,0 +1,14 @@ +part of 'connectivity_bloc.dart'; + +abstract class ConnectivityState extends Equatable { + const ConnectivityState(); + + @override + List get props => []; +} + +class ConnectivityInitial extends ConnectivityState {} + +class ConnectivitySuccess extends ConnectivityState {} + +class ConnectivityFailure extends ConnectivityState {} diff --git a/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart b/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart index fd0df4ca..f3f8edf7 100644 --- a/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart +++ b/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart @@ -4,9 +4,6 @@ import 'package:hub/components/molecular_components/menu_item/menu_item.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; - - - class MenuButtonWidget extends MenuEntry { const MenuButtonWidget({ Key? key, @@ -21,7 +18,6 @@ class MenuButtonWidget extends MenuEntry { @override _MenuButtonWidgetState createState() => _MenuButtonWidgetState(); - } class _MenuButtonWidgetState extends State { @@ -30,119 +26,103 @@ class _MenuButtonWidgetState extends State { @override Widget build(BuildContext context) { return InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.action?.call(); - }, - child: Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.action?.call(); + }, + child: Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: const AlignmentDirectional( - -1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB(8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Icon( - widget.icon, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional( - 0.0, 0.0), - child: Text( - widget.title ?? '', - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), + alignment: const AlignmentDirectional(0.0, 0.0), + child: Icon( + widget.icon, + color: FlutterFlowTheme.of(context).accent1, + size: 24.0, ), ), ), - ); + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + widget.title ?? '', + style: FlutterFlowTheme.of(context).titleLarge.override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context).primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ); } -} \ No newline at end of file +} diff --git a/lib/components/atomic_components/menu_card_item/menu_card_item.dart b/lib/components/atomic_components/menu_card_item/menu_card_item.dart index ac553c46..3e62f316 100644 --- a/lib/components/atomic_components/menu_card_item/menu_card_item.dart +++ b/lib/components/atomic_components/menu_card_item/menu_card_item.dart @@ -4,9 +4,6 @@ import 'package:hub/components/molecular_components/menu_item/menu_item.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; - - - class MenuCardItem extends MenuEntry { const MenuCardItem({ Key? key, @@ -21,7 +18,6 @@ class MenuCardItem extends MenuEntry { @override _MenuCardItemState createState() => _MenuCardItemState(); - } class _MenuCardItemState extends State { @@ -30,81 +26,66 @@ class _MenuCardItemState extends State { @override Widget build(BuildContext context) { return InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.action?.call(); - }, - child: Card( - elevation: 0, - color: FlutterFlowTheme.of(context).primaryBackground, - child: Padding( - padding: const EdgeInsets.all(4.0), - child: - Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Align( - alignment: const AlignmentDirectional( - -1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB(8.0, 0.0, 10.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Icon( - widget.icon, - fill: null, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - Align( - alignment: const AlignmentDirectional( - 0.0, 0.0), - child: Text( - widget.title ?? '', - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ), + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.action?.call(); + }, + child: Card( + elevation: 0, + color: FlutterFlowTheme.of(context).primaryBackground, + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Align( + alignment: const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 10.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + shape: BoxShape.circle, + ), + alignment: const AlignmentDirectional(0.0, 0.0), + child: Icon( + widget.icon, + fill: null, + color: FlutterFlowTheme.of(context).accent1, + size: 24.0, + ), + ), + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + widget.title ?? '', + style: FlutterFlowTheme.of(context).titleLarge.override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context).primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), ), - ); + ), + ), + ], + ), + ), + ), + ), + ); } -} \ No newline at end of file +} diff --git a/lib/components/molecular_components/menu_item/menu_item.dart b/lib/components/molecular_components/menu_item/menu_item.dart index 042a9353..395c21ce 100644 --- a/lib/components/molecular_components/menu_item/menu_item.dart +++ b/lib/components/molecular_components/menu_item/menu_item.dart @@ -1,5 +1,3 @@ - - import 'package:flutter/material.dart'; abstract class MenuEntry extends StatefulWidget { @@ -13,7 +11,4 @@ abstract class MenuEntry extends StatefulWidget { final Function()? action; final String? title; final IconData? icon; - - - -} \ No newline at end of file +} diff --git a/lib/components/organism_components/menu_component/menu_component_widget.dart b/lib/components/organism_components/menu_component/menu_component_widget.dart index a1d916f0..da7f6d64 100644 --- a/lib/components/organism_components/menu_component/menu_component_widget.dart +++ b/lib/components/organism_components/menu_component/menu_component_widget.dart @@ -53,143 +53,218 @@ class _MenuComponentWidgetState extends State { @override Widget build(BuildContext context) { - final options = widget.item == MenuItem.button - ? [ - MenuButtonWidget( - icon: FFIcons.kvector1, - action: () async { - await _model.scheduleVisitOptAction(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Schedule\nVisit', - ptText: 'Agendar\nVisita', - ), + final options = () { + if (widget.item == MenuItem.button) { + return [ + MenuButtonWidget( + icon: FFIcons.kvector1, + action: () async { + await _model.scheduleVisitOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Schedule\nVisit', + ptText: 'Agendar\nVisita', ), - MenuButtonWidget( - icon: FFIcons.khome, - action: () async { - await _model.registerVisitorOptAction(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Register\nVisitor', - ptText: 'Cadastro\nde Visitante', - ), + ), + MenuButtonWidget( + icon: FFIcons.khome, + action: () async { + await _model.registerVisitorOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Register\nVisitor', + ptText: 'Cadastro\nde Visitante', ), - MenuButtonWidget( - icon: Icons.qr_code, - action: () async { - await _model.accessQRCodeOptAction(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'QRCode\nAccess', - ptText: 'QRCode\nde Acesso', - ), + ), + MenuButtonWidget( + icon: Icons.qr_code, + action: () async { + await _model.accessQRCodeOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'QRCode\nAccess', + ptText: 'QRCode\nde Acesso', ), - MenuButtonWidget( - icon: Icons.people, - action: () async { - await _model.peopleOnThePropertyAction(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Poeple on\nthe Property', - ptText: 'Pessoas na\nPropriedade', - ), + ), + MenuButtonWidget( + icon: Icons.people, + action: () async { + await _model.peopleOnThePropertyAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Poeple on\nthe Property', + ptText: 'Pessoas na\nPropriedade', ), - MenuButtonWidget( - icon: Icons.history_sharp, - action: () async { - await _model.liberationHistoryOptAction(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Consult\nHistories', - ptText: 'Consultar\nHistóricos', - ), + ), + MenuButtonWidget( + icon: Icons.history_sharp, + action: () async { + await _model.liberationHistoryOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Consult\nHistories', + ptText: 'Consultar\nHistóricos', ), - MenuButtonWidget( - icon: Icons.settings, - action: () async { - await _model.preferencesSettings(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Preferences\nSettings', - ptText: 'Preferências \nde Configurações', - ), + ), + MenuButtonWidget( + icon: Icons.settings, + action: () async { + await _model.preferencesSettings(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Preferences\nSettings', + ptText: 'Preferências \nde Configurações', ), - ] - : [ - MenuCardItem( - icon: FFIcons.kvector1, - action: () async { - await _model.scheduleVisitOptAction(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Schedule\nVisit', - ptText: 'Agendar\nVisita', - ), + ), + ]; + } + if (widget.item == MenuItem.card) { + return [ + MenuCardItem( + icon: FFIcons.kvector1, + action: () async { + await _model.scheduleVisitOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Schedule\nVisit', + ptText: 'Agendar\nVisita', ), - MenuCardItem( - icon: FFIcons.khome, - action: () async { - await _model.registerVisitorOptAction(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Register\nVisitor', - ptText: 'Cadastro\nde Visitante', - ), + ), + MenuCardItem( + icon: FFIcons.khome, + action: () async { + await _model.registerVisitorOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Register\nVisitor', + ptText: 'Cadastro\nde Visitante', ), - MenuCardItem( - icon: Icons.qr_code, - action: () async { - await _model.accessQRCodeOptAction(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'QRCode\nAccess', - ptText: 'QRCode\nde Acesso', - ), + ), + MenuCardItem( + icon: Icons.qr_code, + action: () async { + await _model.accessQRCodeOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'QRCode\nAccess', + ptText: 'QRCode\nde Acesso', ), - MenuCardItem( - icon: Icons.people, - action: () async { - await _model.peopleOnThePropertyAction(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Poeple on\nthe Property', - ptText: 'Pessoas\nna Propriedade', - ), + ), + MenuCardItem( + icon: Icons.people, + action: () async { + await _model.peopleOnThePropertyAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Poeple on\nthe Property', + ptText: 'Pessoas\nna Propriedade', ), - MenuCardItem( - icon: Icons.history_sharp, - action: () async { - await _model.liberationHistoryOptAction(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Consult\nHistories', - ptText: 'Consultar\nHistoricos', - ), + ), + MenuCardItem( + icon: Icons.history_sharp, + action: () async { + await _model.liberationHistoryOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Consult\nHistories', + ptText: 'Consultar\nHistoricos', ), - MenuCardItem( - icon: Icons.settings, - action: () async { - await _model.preferencesSettings(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Preferences\nSettings', - ptText: 'Preferências\nde Configuração', - ), + ), + MenuCardItem( + icon: Icons.settings, + action: () async { + await _model.preferencesSettings(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Preferences\nSettings', + ptText: 'Preferências\nde Configuração', ), - ]; + ), + ]; + } + // if (MenuItem.tile) + return [ + MenuCardItem( + icon: FFIcons.kvector1, + action: () async { + await _model.scheduleVisitOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Schedule\nVisit', + ptText: 'Agendar\nVisita', + ), + ), + MenuCardItem( + icon: FFIcons.khome, + action: () async { + await _model.registerVisitorOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Register\nVisitor', + ptText: 'Cadastro\nde Visitante', + ), + ), + MenuCardItem( + icon: Icons.qr_code, + action: () async { + await _model.accessQRCodeOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'QRCode\nAccess', + ptText: 'QRCode\nde Acesso', + ), + ), + MenuCardItem( + icon: Icons.people, + action: () async { + await _model.peopleOnThePropertyAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Poeple on\nthe Property', + ptText: 'Pessoas\nna Propriedade', + ), + ), + MenuCardItem( + icon: Icons.history_sharp, + action: () async { + await _model.liberationHistoryOptAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Consult\nHistories', + ptText: 'Consultar\nHistoricos', + ), + ), + MenuCardItem( + icon: Icons.settings, + action: () async { + await _model.preferencesSettings(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Preferences\nSettings', + ptText: 'Preferências\nde Configuração', + ), + ), + ]; + }(); + return Padding( padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0), child: Builder( @@ -231,7 +306,7 @@ class _MenuComponentWidgetState extends State { } if (widget.style == MenuView.list && widget.expandable == false && - widget.item == MenuItem.card) { + widget.item == MenuItem.tile) { return wrapWithModel( model: _model.menuListViewComponentModel, updateCallback: () => setState(() {}), diff --git a/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart b/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart index 1a2cac35..f07fcd21 100644 --- a/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart +++ b/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:hub/backend/schema/enums/enums.dart'; -import 'package:hub/components/atomic_components/menu_button_item/menu_button_item_widget.dart'; import 'package:hub/components/molecular_components/menu_item/menu_item.dart'; import '/flutter_flow/flutter_flow_icon_button.dart'; @@ -12,12 +11,10 @@ export 'menu_list_view_component_model.dart'; /// - class MenuListViewComponentWidget extends StatefulWidget { const MenuListViewComponentWidget({ super.key, required this.changeMenuStyle, - required this.expandable, required this.item, required this.options, @@ -70,99 +67,115 @@ class _MenuListViewComponentWidgetState clipBehavior: Clip.none, children: [ buildMenuItem(context), - if (widget.expandable) - buildExpandableButton(context), + if (widget.expandable) buildExpandableButton(context), ], ); } Widget buildMenuItem(BuildContext context) { - switch(widget.item) { + switch (widget.item) { case MenuItem.button: return SizedBox( height: 100, width: double.infinity, - child: ListView.builder( - addAutomaticKeepAlives: true, - padding: const EdgeInsets.symmetric(horizontal: 15), - shrinkWrap: true, - physics: const AlwaysScrollableScrollPhysics(), - scrollDirection: Axis.horizontal, - itemCount: widget.options.length, - itemBuilder: (context, index) { - return Padding( - padding: const EdgeInsets.all(8.0), - child: SizedBox( - height: 115, - width: 115, - child: widget.options[index]), - ); - }, - ), + child: ListView.builder( + addAutomaticKeepAlives: true, + padding: const EdgeInsets.symmetric(horizontal: 15), + shrinkWrap: true, + physics: const AlwaysScrollableScrollPhysics(), + scrollDirection: Axis.horizontal, + itemCount: widget.options.length, + itemBuilder: (context, index) { + return Padding( + padding: const EdgeInsets.all(8.0), + child: SizedBox( + height: 115, width: 115, child: widget.options[index]), + ); + }, + ), ); case MenuItem.card: return SizedBox( width: double.infinity, height: MediaQuery.sizeOf(context).height * 0.8, - child: ListView.builder( - addAutomaticKeepAlives: true, - padding: const EdgeInsets.symmetric(horizontal: 15), - shrinkWrap: true, - physics: const AlwaysScrollableScrollPhysics(), - scrollDirection: Axis.vertical, - itemCount: widget.options.length, - itemBuilder: (context, index) { - return Padding( - padding: const EdgeInsets.all(8.0), - child: SizedBox( - height: 115, - width: 115, - child: widget.options[index]), - ); - }, - ), + child: ListView.builder( + addAutomaticKeepAlives: true, + padding: const EdgeInsets.symmetric(horizontal: 15), + shrinkWrap: true, + physics: const AlwaysScrollableScrollPhysics(), + scrollDirection: Axis.vertical, + itemCount: widget.options.length, + itemBuilder: (context, index) { + return Padding( + padding: const EdgeInsets.all(8.0), + child: SizedBox( + height: 115, width: 115, child: widget.options[index]), + ); + }, + ), ); + case MenuItem.tile: + return SizedBox( + width: double.infinity, + height: MediaQuery.of(context).size.height * 0.7, + child: ListView.separated( + padding: const EdgeInsets.symmetric(horizontal: 15), + shrinkWrap: true, + physics: const AlwaysScrollableScrollPhysics(), + scrollDirection: Axis.vertical, + itemCount: widget.options.length, + itemBuilder: (context, index) { + return SizedBox( + height: MediaQuery.of(context).size.height * 0.1, + width: MediaQuery.of(context).size.width * 0.1, + child: widget.options[index], + ); + }, + separatorBuilder: (context, index) { + return const Divider(thickness: 0.2); + }, + ), + ); + } } -} Row buildExpandableButton(BuildContext context) { return Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - FFLocalizations.of(context).getVariableText( - enText: 'Expand', - ptText: 'Expandir', - ), - style: FlutterFlowTheme.of(context).title1.override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context).primaryText, - fontSize: 12.0, - fontWeight: FontWeight.w600, - fontStyle: FontStyle.normal, - ), + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + FFLocalizations.of(context).getVariableText( + enText: 'Expand', + ptText: 'Expandir', ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: FlutterFlowIconButton( - borderColor: Colors.transparent, - borderRadius: 20.0, - borderWidth: 0.0, - buttonSize: 50.0, - fillColor: const Color(0x00FFFFFF), - icon: Icon( - Icons.keyboard_arrow_down_outlined, - color: FlutterFlowTheme.of(context).primary, + style: FlutterFlowTheme.of(context).title1.override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context).primaryText, + fontSize: 12.0, + fontWeight: FontWeight.w600, + fontStyle: FontStyle.normal, ), - onPressed: () async { - await widget.changeMenuStyle?.call(); - }, + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: FlutterFlowIconButton( + borderColor: Colors.transparent, + borderRadius: 20.0, + borderWidth: 0.0, + buttonSize: 50.0, + fillColor: const Color(0x00FFFFFF), + icon: Icon( + Icons.keyboard_arrow_down_outlined, + color: FlutterFlowTheme.of(context).primary, ), + onPressed: () async { + await widget.changeMenuStyle?.call(); + }, ), - ], - ); + ), + ], + ); } } - diff --git a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart index 0b4f3c6b..e367e0b5 100644 --- a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart +++ b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart @@ -13,7 +13,6 @@ import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/internationalization.dart'; - class MenuStaggeredViewComponentWidget extends StatefulWidget { const MenuStaggeredViewComponentWidget({ super.key, @@ -93,9 +92,7 @@ class _MenuStaggeredViewComponentWidgetState shrinkWrap: true, itemBuilder: (context, index) { return SizedBox( - height: 100, - width: 100, - child: widget.options[index]); + height: 100, width: 100, child: widget.options[index]); }, ), ), @@ -123,12 +120,12 @@ class _MenuStaggeredViewComponentWidgetState ptText: 'Minimizar', ), style: FlutterFlowTheme.of(context).title1.override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context).primaryText, - fontSize: 12.0, - fontWeight: FontWeight.w600, - fontStyle: FontStyle.normal, - ), + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context).primaryText, + fontSize: 12.0, + fontWeight: FontWeight.w600, + fontStyle: FontStyle.normal, + ), ), Align( alignment: const AlignmentDirectional(0.0, 0.0), @@ -154,4 +151,4 @@ class _MenuStaggeredViewComponentWidgetState ], ); } -} \ No newline at end of file +} diff --git a/lib/flutter_flow/flutter_flow_drop_down.dart b/lib/flutter_flow/flutter_flow_drop_down.dart index ab6bdf5e..c82ebb61 100644 --- a/lib/flutter_flow/flutter_flow_drop_down.dart +++ b/lib/flutter_flow/flutter_flow_drop_down.dart @@ -1,9 +1,7 @@ import 'package:dropdown_button2/dropdown_button2.dart'; - -import 'package:dropdown_button2/dropdown_button2.dart'; +import 'package:flutter/material.dart'; import 'form_field_controller.dart'; -import 'package:flutter/material.dart'; class FlutterFlowDropDown extends StatefulWidget { const FlutterFlowDropDown({ @@ -368,4 +366,4 @@ class _FlutterFlowDropDownState extends State> { : null, ); } -} \ No newline at end of file +} diff --git a/lib/flutter_flow/nav/nav.dart b/lib/flutter_flow/nav/nav.dart index a023abb9..53a62a9a 100644 --- a/lib/flutter_flow/nav/nav.dart +++ b/lib/flutter_flow/nav/nav.dart @@ -4,14 +4,12 @@ import 'package:flutter/material.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/fast_pass_page/fast_pass_page_widget.dart'; import 'package:hub/pages/message_history_page/message_history_page_widget.dart'; -import 'package:hub/pages/preferences_settings_page/preferences_settings_widget.dart'; +import 'package:hub/pages/no_connection_page/no_connection_page.dart'; import 'package:provider/provider.dart'; -import '../../main.dart'; import '/backend/schema/structs/index.dart'; import '/flutter_flow/flutter_flow_util.dart'; import '/index.dart'; -import '../../pages/visit_history_page/visit_history_page_widget.dart'; export 'package:go_router/go_router.dart'; @@ -79,6 +77,11 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) => GoRouter( builder: (context, params) => params.isEmpty ? const HomePageWidget() : const HomePageWidget(), ), + FFRoute( + name: 'no-connection', + path: '/no-connection', + builder: (context, params) => const NoConnectionScreen(), + ), // FFRoute( // name: 'visitHistoryPage', // path: '/visitHistoryPage', diff --git a/lib/main.dart b/lib/main.dart index 33484406..51fd3518 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,19 +1,22 @@ import 'dart:developer'; +import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_web_plugins/url_strategy.dart'; -import 'package:hub/app_state.dart'; import 'package:hub/backend/notifications/firebase_messaging_service.dart'; import 'package:hub/backend/notifications/notification_service.dart'; +import 'package:hub/blocs/connectivity_bloc/connectivity_bloc.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/internationalization.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; +import 'package:hub/pages/no_connection_page/no_connection_page.dart'; import 'package:provider/provider.dart'; import 'package:responsive_framework/responsive_framework.dart'; @@ -47,7 +50,17 @@ Future initializeApp() async { void main() async { await initializeApp(); - runApp(const App()); + runApp( + MultiProvider( + providers: [ + ChangeNotifierProvider(create: (_) => AppState()), + BlocProvider( + create: (context) => ConnectivityBloc(Connectivity()), + ), + ], + child: const App(), + ), + ); } class App extends StatefulWidget { @@ -91,10 +104,15 @@ class _AppState extends State { @override Widget build(BuildContext context) { - return MultiProvider( - providers: [ - ChangeNotifierProvider(create: (_) => AppState()), - ], + return BlocListener( + listener: (context, state) { + if (state is ConnectivityFailure) { + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const NoConnectionScreen()), + ); + } + }, child: MaterialApp.router( title: 'FREHub', builder: (context, widget) => ResponsiveBreakpoints.builder( diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 9c48da63..983be7e1 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -11,9 +11,8 @@ import 'package:hub/flutter_flow/custom_functions.dart'; import 'package:hub/flutter_flow/flutter_flow_icon_button.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_widgets.dart'; -import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/home_page/home_page_model.dart'; +import 'package:hub/shared/utils/dialog_util.dart'; import 'package:provider/provider.dart'; class HomePageWidget extends StatefulWidget { @@ -28,14 +27,6 @@ class _HomePageWidgetState extends State { bool localStatus = false; final scaffoldKey = GlobalKey(); - Future checkLocalStatus() async { - localStatus = await checkLocals( - context: context, - model: _model, - safeSetState: safeSetState, - ); - } - @override void initState() { super.initState(); @@ -55,27 +46,23 @@ class _HomePageWidgetState extends State { atividade: 'getDados') .then((value) async { // value = await value; - AppState().whatsapp = value.jsonBody['whatsapp']; - AppState().provisional = value.jsonBody['provisional']; + if (value.statusCode == 200 && value.jsonBody['error'] == false) { + AppState().whatsapp = value.jsonBody['whatsapp']; + AppState().provisional = value.jsonBody['provisional']; + } else { + DialogUtil.errorDefault(context); + } }); }(); WidgetsBinding.instance.addPostFrameCallback((_) async { - @override - void initState() { - // PhpGroup.getLocalsCall - // .call( - // devUUID: AppState().devUUID, - // userUUID: AppState().userUUID, - // ) - // .then((value) => log('getLocalsCall: $value')); + localStatus = await checkLocals( + context: context, + model: _model, + safeSetState: safeSetState, + ); - super.initState(); - checkLocalStatus(); - } - - // Rest of your code... - if (AppState().cliUUID == null || AppState().cliUUID.isEmpty) { + if (AppState().cliUUID.isEmpty) { showModalBottomSheet( isScrollControlled: false, backgroundColor: Colors.transparent, @@ -177,6 +164,7 @@ class _HomePageWidgetState extends State { item: MenuItem.button, ), ), + // Align( // alignment: const AlignmentDirectional(0.0, 0.0), // child: Provider( @@ -189,6 +177,7 @@ class _HomePageWidgetState extends State { // ), // ), //footer + const SizedBox( height: 100, width: double.infinity, @@ -551,55 +540,13 @@ class _HomePageWidgetState extends State { child: wrapWithModel( model: _model.menuComponentModel, updateCallback: () => setState(() {}), - child: MenuComponentWidget( + child: const MenuComponentWidget( expandable: false, style: MenuView.list, - item: MenuItem.card, + item: MenuItem.tile, ), ), ), - FFButtonWidget( - onPressed: () async { - AppState().deleteAll(); - setState(() {}); - - context.goNamed( - 'welcomePage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); - }, - text: FFLocalizations.of(context).getText( - 'xx0db4wi' /* Sair */, - ), - options: FFButtonOptions( - height: 40.0, - padding: - const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0), - iconPadding: - const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0), - color: const Color(0x00D70000), - textStyle: FlutterFlowTheme.of(context).labelMedium.override( - fontFamily: 'Plus Jakarta Sans', - color: FlutterFlowTheme.of(context).primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Plus Jakarta Sans'), - ), - elevation: 0.0, - borderSide: const BorderSide( - width: 0.0, - ), - borderRadius: BorderRadius.circular(50.0), - ), - ), ].addToEnd(const SizedBox(height: 64.0)), ), ), diff --git a/lib/pages/no_connection_page/no_connection_page.dart b/lib/pages/no_connection_page/no_connection_page.dart new file mode 100644 index 00000000..5428e2d7 --- /dev/null +++ b/lib/pages/no_connection_page/no_connection_page.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +class NoConnectionScreen extends StatelessWidget { + const NoConnectionScreen({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Sem Conexão'), + ), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Icon(Icons.signal_wifi_off, size: 80), + const SizedBox(height: 20), + const Text( + 'Você está offline. Verifique sua conexão com a internet.'), + const SizedBox(height: 20), + ElevatedButton( + onPressed: () { + // Tente reconectar + }, + child: const Text('Tentar Novamente'), + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/preferences_settings_page/preferences_settings_model.dart b/lib/pages/preferences_settings_page/preferences_settings_model.dart index 30645a2d..158ca1fb 100644 --- a/lib/pages/preferences_settings_page/preferences_settings_model.dart +++ b/lib/pages/preferences_settings_page/preferences_settings_model.dart @@ -1,11 +1,8 @@ import 'dart:developer'; -import 'package:hub/app_state.dart'; -import 'package:hub/backend/api_requests/api_calls.dart'; - import 'package:flutter/material.dart'; +import 'package:hub/backend/api_requests/api_calls.dart'; import 'package:hub/components/templates_components/change_passs_qr_code_pass_key_template_component/change_pass_widget.dart'; -import 'package:hub/flutter_flow/flutter_flow_icon_button.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_widgets.dart'; @@ -734,6 +731,30 @@ class PreferencesPageModel with ChangeNotifier { ); } + void logout(BuildContext context) async { + showAlertDialog( + context, + 'Logout', + FFLocalizations.of(context).getVariableText( + enText: 'Are you sure you want to logout?', + ptText: 'Tem certeza', + ), () async { + AppState().deleteAll(); + // setState(() {}); + + context.goNamed( + 'welcomePage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + }); + } + @override void dispose() { unfocusNode.dispose(); diff --git a/lib/pages/preferences_settings_page/preferences_settings_widget.dart b/lib/pages/preferences_settings_page/preferences_settings_widget.dart index 8f0d6fd1..8b755d58 100644 --- a/lib/pages/preferences_settings_page/preferences_settings_widget.dart +++ b/lib/pages/preferences_settings_page/preferences_settings_widget.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/app_state.dart'; import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; @@ -73,7 +72,7 @@ class PreferencesPageWidget extends StatelessWidget { // childAspectRatio: 1.0, // mainAxisExtent: 100.0, // ), - itemCount: 7, // Assuming 4 items for simplicity + itemCount: 8, // Assuming 4 items for simplicity padding: const EdgeInsets.symmetric(horizontal: 20.0), physics: const AlwaysScrollableScrollPhysics(), itemBuilder: (BuildContext context, int index) { @@ -147,7 +146,7 @@ class PreferencesPageWidget extends StatelessWidget { case 5: icon = Icons.landscape; onPressed = () => model.localUnlink(context); - isEnabled = true; + isEnabled = false; content = FFLocalizations.of(context).getVariableText( ptText: 'Desative para se desvincular do local selecionado', enText: 'Enable to unlink from the selected location', @@ -156,13 +155,23 @@ class PreferencesPageWidget extends StatelessWidget { case 6: icon = Icons.delete; onPressed = () => model.deleteAccount(context); - isEnabled = true; + isEnabled = false; content = FFLocalizations.of(context).getVariableText( ptText: 'Delete sua conta e todos os dados associados permanentemente.', enText: 'Delete your account and all associated data permanently.', ); break; + case 7: + icon = Icons.logout; + onPressed = () => model.logout(context); + isEnabled = false; + content = FFLocalizations.of(context).getVariableText( + ptText: 'Sair da conta atual e voltar para a tela de login.', + enText: + 'Log out of the current account and return to the login screen.', + ); + break; default: throw Exception('Invalid index: $index'); } diff --git a/pubspec.lock b/pubspec.lock index 5c474b93..056e6ffc 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -66,7 +66,7 @@ packages: source: hosted version: "2.0.3" bloc: - dependency: transitive + dependency: "direct main" description: name: bloc sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e" diff --git a/pubspec.yaml b/pubspec.yaml index 1f3c6a80..8fa32471 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -79,6 +79,7 @@ dependencies: timeago: 3.6.1 url_launcher: 6.3.0 url_launcher_android: 6.3.3 + bloc: ^8.1.4 url_launcher_ios: 6.3.0 url_launcher_platform_interface: 2.3.2 video_player: 2.8.7 From 518bdf412efc9b1c9344191a18463cbfd7d0e8cb Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 09:36:52 -0300 Subject: [PATCH 03/24] WIP --- assets/images/logo.png | Bin 0 -> 621 bytes .../local_profile_component_widget.dart | 98 ++++++++---------- lib/pages/home_page/home_page_widget.dart | 56 +++++----- lib/shared/utils/dialog_util.dart | 61 ++++++----- 4 files changed, 104 insertions(+), 111 deletions(-) create mode 100644 assets/images/logo.png diff --git a/assets/images/logo.png b/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6659dd53a04c8a745cfb09eb2a2cc2520f64551c GIT binary patch literal 621 zcmV-z0+RiSP)9~hIJZia2`3$58@3D zSlZyBPVB;UOrZ(S!zdnTO}FM>lh)0}^0!#RU%bX7e&8RvwdR|~KFd0I>pi%DR?XY+ z0>!k2>hTVFJV8GKbg4aOv~E=Mj;-qDD}3f{>I#Bjm4|yjip@{ss{W(nxR|t19UduvRz6gWUofKW>c7E&+Hz}ijcU7ShebQd zV*xA5S2dO_YDI%(5wUAL=T|na=o&eMcF&U(@jK{-9=wJR%3om(hqbO(ZF#v>y-K^t z-?HHM4`Z`a?gz`nhe2900000NkvXX Hu0mjf_K6nn literal 0 HcmV?d00001 diff --git a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart index 414203d1..ab27edb0 100644 --- a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart +++ b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart @@ -1,3 +1,4 @@ +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; @@ -71,68 +72,57 @@ class _LocalProfileComponentWidgetState child: Padding( padding: const EdgeInsets.all(2.0), child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - showModalBottomSheet( - isScrollControlled: true, - backgroundColor: const Color(0x00FFFFFF), - context: context, - builder: (context) { - return Padding( - padding: MediaQuery.viewInsetsOf(context), - child: const SizedBox( - height: double.infinity, - child: BottomArrowLinkedLocalsComponentWidget(), - ), - ); - }, - ).then((value) => safeSetState(() {})); - }, - child: ClipRRect( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + showModalBottomSheet( + isScrollControlled: true, + backgroundColor: const Color(0x00FFFFFF), + context: context, + builder: (context) { + return Padding( + padding: MediaQuery.viewInsetsOf(context), + child: const SizedBox( + height: double.infinity, + child: + BottomArrowLinkedLocalsComponentWidget(), + ), + ); + }, + ).then((value) => safeSetState(() {})); + }, + child: ClipRRect( borderRadius: BorderRadius.circular(200.0), - child: Image.network( - 'https://freaccess.com.br/freaccess/Images/Clients/${AppState().cliUUID}.png', + child: CachedNetworkImage( + imageUrl: + 'https://freaccess.com.br/freaccess/Images/Clients/${AppState().cliUUID}.png', width: 80.0, height: 80.0, fit: BoxFit.cover, alignment: const Alignment(0.0, 0.0), - errorBuilder: (context, error, stackTrace) => - Image.network( - 'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/7ftdetkzc3s0/360_F_64676383_LdbmhiNM6Ypzb3FM4PPuFP9rHe7ri8Ju.jpg', - width: 80.0, - height: 80.0, - fit: BoxFit.cover, - alignment: const Alignment(0.0, 0.0), - errorBuilder: (context, error, stackTrace) => - Image.asset('assets/images/error_image.svg'), - ), - )), - ), + // errorListener: (Easing) => log(Easing.toString()), + errorWidget: (_, __, ___) => + Image.asset('assets/images/error_image.svg'), + ), + )), ), ), - Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - valueOrDefault( - functions.convertToUppercase(AppState().local), - 'NOME DO LOCAL', + Text( + valueOrDefault( + functions.convertToUppercase(AppState().local), + 'NOME DO LOCAL', + ), + style: FlutterFlowTheme.of(context).labelMedium.override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context).info, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), ), - style: FlutterFlowTheme.of(context).labelMedium.override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context).info, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Nunito'), - ), - ), - ], ), ] .divide(const SizedBox(width: 20.0)) diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 983be7e1..e4dc9f88 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -50,7 +50,7 @@ class _HomePageWidgetState extends State { AppState().whatsapp = value.jsonBody['whatsapp']; AppState().provisional = value.jsonBody['provisional']; } else { - DialogUtil.errorDefault(context); + await DialogUtil.warningDefault(context); } }); }(); @@ -164,7 +164,6 @@ class _HomePageWidgetState extends State { item: MenuItem.button, ), ), - // Align( // alignment: const AlignmentDirectional(0.0, 0.0), // child: Provider( @@ -177,7 +176,6 @@ class _HomePageWidgetState extends State { // ), // ), //footer - const SizedBox( height: 100, width: double.infinity, @@ -249,8 +247,8 @@ class _HomePageWidgetState extends State { 60.0, 15.0, 0.0, 0.0), child: ClipRRect( borderRadius: BorderRadius.circular(8.0), - child: Image.network( - 'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/8r2vsbd9i03k/logo.png', + child: Image.asset( + 'assets/images/logo.png', width: 50.0, height: 200.0, fit: BoxFit.none, @@ -264,9 +262,7 @@ class _HomePageWidgetState extends State { padding: const EdgeInsetsDirectional.fromSTEB( 0.0, 15.0, 0.0, 0.0), child: Text( - FFLocalizations.of(context).getText( - 'rg9pzkpz' /* FRE ACCESS */, - ), + 'FRE ACCESS', style: FlutterFlowTheme.of(context) .bodyMedium .override( @@ -287,28 +283,28 @@ class _HomePageWidgetState extends State { ), ), ), - Align( - alignment: const AlignmentDirectional(0.0, 1.0), - child: Container( - width: 100.0, - height: 50.0, - decoration: const BoxDecoration(), - child: Align( - alignment: const AlignmentDirectional(1.0, 1.0), - child: FlutterFlowIconButton( - borderRadius: 20.0, - borderWidth: 1.0, - buttonSize: 40.0, - icon: Icon( - Icons.notifications_sharp, - color: FlutterFlowTheme.of(context).info, - size: 24.0, - ), - onPressed: () {}, - ), - ), - ), - ), + // Align( + // alignment: const AlignmentDirectional(0.0, 1.0), + // child: Container( + // width: 100.0, + // height: 50.0, + // decoration: const BoxDecoration(), + // child: Align( + // alignment: const AlignmentDirectional(1.0, 1.0), + // child: FlutterFlowIconButton( + // borderRadius: 20.0, + // borderWidth: 1.0, + // buttonSize: 40.0, + // icon: Icon( + // Icons.notifications_sharp, + // color: FlutterFlowTheme.of(context).info, + // size: 24.0, + // ), + // onPressed: () {}, + // ), + // ), + // ), + // ), ], ), ), diff --git a/lib/shared/utils/dialog_util.dart b/lib/shared/utils/dialog_util.dart index 6db1ed89..beeecbe2 100644 --- a/lib/shared/utils/dialog_util.dart +++ b/lib/shared/utils/dialog_util.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:hub/components/molecular_components/throw_exception/throw_exception_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; @@ -8,24 +7,33 @@ class DialogUtil { static const double _height = 350; static Future errorDefault(BuildContext context) { - return error(context, FFLocalizations.of(context).getVariableText( - ptText: "Falha ao efetuar operação, Tente Novamente mais tarde.", - enText: "Failed to perform operation, please try again later." - )); + return error( + context, + FFLocalizations.of(context).getVariableText( + ptText: "Falha ao efetuar operação, Tente Novamente mais tarde.", + enText: "Failed to perform operation, please try again later.")); + } + + static Future warningDefault(BuildContext context) { + return warning( + context, + FFLocalizations.of(context).getVariableText( + ptText: "Atenção, algo deu errado. Tente novamente mais tarde.", + enText: "Warning, something went wrong. Try again later.")); } static Future error(BuildContext context, String message) async { return await showDialog( - context: context, - builder: (context) { - return Dialog( - child: SizedBox( - height: _height, - child: Padding(padding: MediaQuery.viewInsetsOf(context), child: ThrowExceptionWidget(msg: message, type: EnumThrowException.error)) - ) - ); - } - ); + context: context, + builder: (context) { + return Dialog( + child: SizedBox( + height: _height, + child: Padding( + padding: MediaQuery.viewInsetsOf(context), + child: ThrowExceptionWidget( + msg: message, type: EnumThrowException.error)))); + }); } static Future warning(BuildContext context, String message) async { @@ -35,11 +43,11 @@ class DialogUtil { return Dialog( child: SizedBox( height: _height, - child: Padding(padding: MediaQuery.viewInsetsOf(context), child: ThrowExceptionWidget(msg: message, type: EnumThrowException.warning)) - ) - ); - } - ); + child: Padding( + padding: MediaQuery.viewInsetsOf(context), + child: ThrowExceptionWidget( + msg: message, type: EnumThrowException.warning)))); + }); } static Future success(BuildContext context, String message) async { @@ -49,11 +57,10 @@ class DialogUtil { return Dialog( child: SizedBox( height: _height, - child: Padding(padding: MediaQuery.viewInsetsOf(context), child: ThrowExceptionWidget(msg: message, type: EnumThrowException.success)) - ) - ); - } - ); + child: Padding( + padding: MediaQuery.viewInsetsOf(context), + child: ThrowExceptionWidget( + msg: message, type: EnumThrowException.success)))); + }); } - -} \ No newline at end of file +} From e8f33ae26bd06b37af0b867309f121616aa6f3be Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 09:46:31 -0300 Subject: [PATCH 04/24] WIP --- .../menu_component/menu_component_widget.dart | 24 +++++++++---------- .../menu_list_view_component_widget.dart | 4 ++-- lib/pages/home_page/home_page_widget.dart | 20 +++++++++------- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/lib/components/organism_components/menu_component/menu_component_widget.dart b/lib/components/organism_components/menu_component/menu_component_widget.dart index da7f6d64..05c08889 100644 --- a/lib/components/organism_components/menu_component/menu_component_widget.dart +++ b/lib/components/organism_components/menu_component/menu_component_widget.dart @@ -203,8 +203,8 @@ class _MenuComponentWidgetState extends State { setState(() {}); }, title: FFLocalizations.of(context).getVariableText( - enText: 'Schedule\nVisit', - ptText: 'Agendar\nVisita', + enText: 'Schedule Visit', + ptText: 'Agendar Visita', ), ), MenuCardItem( @@ -214,8 +214,8 @@ class _MenuComponentWidgetState extends State { setState(() {}); }, title: FFLocalizations.of(context).getVariableText( - enText: 'Register\nVisitor', - ptText: 'Cadastro\nde Visitante', + enText: 'Register Visitor', + ptText: 'Cadastro de Visitante', ), ), MenuCardItem( @@ -225,8 +225,8 @@ class _MenuComponentWidgetState extends State { setState(() {}); }, title: FFLocalizations.of(context).getVariableText( - enText: 'QRCode\nAccess', - ptText: 'QRCode\nde Acesso', + enText: 'QRCode Access', + ptText: 'QRCode de Acesso', ), ), MenuCardItem( @@ -236,8 +236,8 @@ class _MenuComponentWidgetState extends State { setState(() {}); }, title: FFLocalizations.of(context).getVariableText( - enText: 'Poeple on\nthe Property', - ptText: 'Pessoas\nna Propriedade', + enText: 'Poeple on the Property', + ptText: 'Pessoas na Propriedade', ), ), MenuCardItem( @@ -247,8 +247,8 @@ class _MenuComponentWidgetState extends State { setState(() {}); }, title: FFLocalizations.of(context).getVariableText( - enText: 'Consult\nHistories', - ptText: 'Consultar\nHistoricos', + enText: 'Consult Histories', + ptText: 'Consultar Historicos', ), ), MenuCardItem( @@ -258,8 +258,8 @@ class _MenuComponentWidgetState extends State { setState(() {}); }, title: FFLocalizations.of(context).getVariableText( - enText: 'Preferences\nSettings', - ptText: 'Preferências\nde Configuração', + enText: 'Preferences Settings', + ptText: 'Preferências de Configuração', ), ), ]; diff --git a/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart b/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart index f07fcd21..8c042c9a 100644 --- a/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart +++ b/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart @@ -126,8 +126,8 @@ class _MenuListViewComponentWidgetState itemCount: widget.options.length, itemBuilder: (context, index) { return SizedBox( - height: MediaQuery.of(context).size.height * 0.1, - width: MediaQuery.of(context).size.width * 0.1, + height: MediaQuery.of(context).size.height * 0.08, + width: MediaQuery.of(context).size.width * 0.08, child: widget.options[index], ); }, diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index e4dc9f88..7126b5b0 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -315,7 +315,7 @@ class _HomePageWidgetState extends State { SizedBox buildDrawer(BuildContext context) { return SizedBox( - width: 750.0, + width: MediaQuery.of(context).size.width * 0.8, child: Drawer( elevation: 16.0, child: Container( @@ -533,17 +533,19 @@ class _HomePageWidgetState extends State { ), ), Expanded( - child: wrapWithModel( - model: _model.menuComponentModel, - updateCallback: () => setState(() {}), - child: const MenuComponentWidget( - expandable: false, - style: MenuView.list, - item: MenuItem.tile, + child: SingleChildScrollView( + child: wrapWithModel( + model: _model.menuComponentModel, + updateCallback: () => setState(() {}), + child: const MenuComponentWidget( + expandable: false, + style: MenuView.list, + item: MenuItem.tile, + ), ), ), ), - ].addToEnd(const SizedBox(height: 64.0)), + ], ), ), ), From 018b87f2abce08e819c7b28fafc5aaef5c92ec56 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 09:52:11 -0300 Subject: [PATCH 05/24] WIP --- .../local_profile_component_widget.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart index ab27edb0..ead9e6b8 100644 --- a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart +++ b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart @@ -102,7 +102,10 @@ class _LocalProfileComponentWidgetState height: 80.0, fit: BoxFit.cover, alignment: const Alignment(0.0, 0.0), - // errorListener: (Easing) => log(Easing.toString()), + placeholder: (context, url) => + Image.asset('assets/images/loading_image.svg'), + errorListener: (_) => + Image.asset('assets/images/error_image.svg'), errorWidget: (_, __, ___) => Image.asset('assets/images/error_image.svg'), ), From 79afb2e968e57427be9af2090c5fa351bf4e863d Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 09:54:01 -0300 Subject: [PATCH 06/24] WIP --- .../local_profile_component_widget.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart index ead9e6b8..7fa0c3f5 100644 --- a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart +++ b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart @@ -96,8 +96,9 @@ class _LocalProfileComponentWidgetState child: ClipRRect( borderRadius: BorderRadius.circular(200.0), child: CachedNetworkImage( - imageUrl: + imageUrl: valueOrDefault( 'https://freaccess.com.br/freaccess/Images/Clients/${AppState().cliUUID}.png', + 'assets/images/error_image.svg'), width: 80.0, height: 80.0, fit: BoxFit.cover, From e62100e2000e3673caa1782d7674418ada3f5572 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 09:58:47 -0300 Subject: [PATCH 07/24] WIP --- .../local_profile_component/local_profile_component_widget.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart index 7fa0c3f5..1e3be0af 100644 --- a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart +++ b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart @@ -104,7 +104,7 @@ class _LocalProfileComponentWidgetState fit: BoxFit.cover, alignment: const Alignment(0.0, 0.0), placeholder: (context, url) => - Image.asset('assets/images/loading_image.svg'), + Image.asset('assets/images/error_image.svg'), errorListener: (_) => Image.asset('assets/images/error_image.svg'), errorWidget: (_, __, ___) => From f670d6e4b782b00795b490c608b0aa078baf84af Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 10:11:59 -0300 Subject: [PATCH 08/24] WIP --- ..._arrow_linked_locals_component_widget.dart | 6 ++++-- ..._arrow_linked_locals_component_widget.dart | 19 +++++++++--------- ...tails_modal_template_component_widget.dart | 11 ++++++---- lib/pages/home_page/home_page_widget.dart | 20 ++++++++++++++----- 4 files changed, 35 insertions(+), 21 deletions(-) diff --git a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart index f874cd0b..e8e7c3b0 100644 --- a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart +++ b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart @@ -1,3 +1,4 @@ +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:google_fonts/google_fonts.dart'; @@ -220,8 +221,9 @@ class _BottomArrowLinkedLocalsComponentWidgetState topRight: Radius.circular(25.0), ), - child: Image.network( - "https://freaccess.com.br/freaccess/Images/Clients/${getJsonField( + child: CachedNetworkImage( + imageUrl: + "https://freaccess.com.br/freaccess/Images/Clients/${getJsonField( eachLocalsItem, r'''$.CLI_ID''', ).toString()}.png", diff --git a/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart b/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart index b50111a1..898e309c 100644 --- a/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart +++ b/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart @@ -1,13 +1,11 @@ -import 'package:hub/backend/api_requests/api_calls.dart'; -import 'package:hub/backend/api_requests/api_manager.dart'; - -import 'package:hub/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart'; -import 'package:hub/flutter_flow/flutter_flow_theme.dart'; -import 'package:hub/flutter_flow/flutter_flow_util.dart'; - +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:google_fonts/google_fonts.dart'; +import 'package:hub/backend/api_requests/api_calls.dart'; +import 'package:hub/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart'; +import 'package:hub/flutter_flow/flutter_flow_theme.dart'; +import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:provider/provider.dart'; class UpArrowLinkedLocalsComponentWidget extends StatefulWidget { @@ -185,11 +183,12 @@ class _UpArrowLinkedLocalsComponentWidgetState topLeft: Radius.circular(25.0), topRight: Radius.circular(25.0), ), - child: Image.network( - 'https://freaccess.com.br/freaccess/Images/Clients/${getJsonField( + child: CachedNetworkImage( + imageUrl: + "https://freaccess.com.br/freaccess/Images/Clients/${getJsonField( eachLocalsItem, r'''$.CLI_ID''', - ).toString()}.png', + ).toString()}.png", width: double.infinity, height: double.infinity, fit: BoxFit.fill, diff --git a/lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart b/lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart index 307ba81b..4d37a149 100644 --- a/lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart +++ b/lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart @@ -1,8 +1,11 @@ -import '/flutter_flow/flutter_flow_theme.dart'; -import '/flutter_flow/flutter_flow_util.dart'; +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; + +import '/flutter_flow/flutter_flow_theme.dart'; +import '/flutter_flow/flutter_flow_util.dart'; import 'visitor_details_modal_template_component_model.dart'; + export 'visitor_details_modal_template_component_model.dart'; class VisitorDetailsModalTemplateComponentWidget extends StatefulWidget { @@ -125,8 +128,8 @@ class _VisitorDetailsModalTemplateComponentWidgetState decoration: const BoxDecoration( shape: BoxShape.circle, ), - child: Image.network( - widget.visitorImageURL!, + child: CachedNetworkImage( + imageUrl: widget.visitorImageURL!, fit: BoxFit.cover, ), ), diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 7126b5b0..abf56398 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -1,3 +1,4 @@ +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/actions/actions.dart'; @@ -363,12 +364,21 @@ class _HomePageWidgetState extends State { decoration: const BoxDecoration( shape: BoxShape.circle, ), - child: Image.network( - valueOrDefault( - 'https://freaccess.com.br/freaccess/Images/Clients/${AppState().cliUUID}.png', - 'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/7ftdetkzc3s0/360_F_64676383_LdbmhiNM6Ypzb3FM4PPuFP9rHe7ri8Ju.jpg', - ), + child: CachedNetworkImage( + imageUrl: valueOrDefault( + 'https://freaccess.com.br/freaccess/Images/Clients/${AppState().cliUUID}.png', + 'assets/images/error_image.svg'), + width: 80.0, + height: 80.0, fit: BoxFit.cover, + alignment: const Alignment(0.0, 0.0), + placeholder: (context, url) => + Image.asset( + 'assets/images/error_image.svg'), + errorListener: (_) => Image.asset( + 'assets/images/error_image.svg'), + errorWidget: (_, __, ___) => Image.asset( + 'assets/images/error_image.svg'), ), ), Container( From 80a48dc4cbc56834bd829358451a2228be7f0c35 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 10:54:33 -0300 Subject: [PATCH 09/24] WIP --- lib/app_state.dart | 27 ++++++++++++++++++ lib/pages/home_page/home_page_widget.dart | 34 ----------------------- 2 files changed, 27 insertions(+), 34 deletions(-) diff --git a/lib/app_state.dart b/lib/app_state.dart index ac3c4f66..cf61477d 100644 --- a/lib/app_state.dart +++ b/lib/app_state.dart @@ -479,6 +479,33 @@ class AppState extends ChangeNotifier { } void deleteAll() { + AppState().deleteAccessPass(); + AppState().deleteCliUUID(); + AppState().deleteCreatedAt(); + AppState().deleteDevUUID(); + AppState().deleteDevice(); + AppState().deleteEmail(); + AppState().deleteFingerprint(); + AppState().deleteFingerprintPass(); + AppState().deleteIsLogged(); + AppState().deleteLocal(); + AppState().deleteName(); + AppState().deleteOwnerUUID(); + AppState().deletePass(); + AppState().deletePasswd(); + AppState().deletePerson(); + AppState().deletePanic(); + AppState().deletePanicPass(); + AppState().deleteProvisional(); + AppState().deleteStatus(); + AppState().deleteToken(); + AppState().deleteTokenAPNS(); + AppState().deleteUpdatedAt(); + AppState().deleteUserUUID(); + AppState().deleteWhatsapp(); + AppState().deleteContext(); + AppState().deleteRemoteId(); + AppState().deleteSerialNumber(); secureStorage.deleteAll(); AppState().isLogged = false; } diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index abf56398..9b4b7267 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -406,40 +406,6 @@ class _HomePageWidgetState extends State { ), ), ), - Container( - width: 50.0, - child: Container( - height: 30.0, - decoration: const BoxDecoration(), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Flexible( - child: FlutterFlowIconButton( - borderRadius: 100.0, - borderWidth: 1.0, - buttonSize: 40.0, - icon: Icon( - Icons.close_sharp, - color: FlutterFlowTheme.of(context) - .primary, - size: 20.0, - ), - onPressed: () async { - if (scaffoldKey - .currentState!.isDrawerOpen || - scaffoldKey.currentState! - .isEndDrawerOpen) { - Navigator.pop(context); - } - }, - ), - ), - ], - ), - ), - ), ] .divide(const SizedBox(width: 0.0)) .around(const SizedBox(width: 0.0)), From 55dfa5fc94e8cc7f6c82dd9a07361b27adbff045 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 11:10:31 -0300 Subject: [PATCH 10/24] WIP --- lib/main.dart | 29 ++++------------------- lib/pages/home_page/home_page_widget.dart | 3 ++- 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 51fd3518..a0de4a05 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,22 +1,18 @@ import 'dart:developer'; -import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_web_plugins/url_strategy.dart'; import 'package:hub/backend/notifications/firebase_messaging_service.dart'; import 'package:hub/backend/notifications/notification_service.dart'; -import 'package:hub/blocs/connectivity_bloc/connectivity_bloc.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/internationalization.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; -import 'package:hub/pages/no_connection_page/no_connection_page.dart'; import 'package:provider/provider.dart'; import 'package:responsive_framework/responsive_framework.dart'; @@ -50,17 +46,7 @@ Future initializeApp() async { void main() async { await initializeApp(); - runApp( - MultiProvider( - providers: [ - ChangeNotifierProvider(create: (_) => AppState()), - BlocProvider( - create: (context) => ConnectivityBloc(Connectivity()), - ), - ], - child: const App(), - ), - ); + runApp(const App()); } class App extends StatefulWidget { @@ -104,15 +90,10 @@ class _AppState extends State { @override Widget build(BuildContext context) { - return BlocListener( - listener: (context, state) { - if (state is ConnectivityFailure) { - Navigator.pushReplacement( - context, - MaterialPageRoute(builder: (context) => const NoConnectionScreen()), - ); - } - }, + return MultiProvider( + providers: [ + ChangeNotifierProvider(create: (_) => AppState()), + ], child: MaterialApp.router( title: 'FREHub', builder: (context, widget) => ResponsiveBreakpoints.builder( diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 9b4b7267..b663358f 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -51,7 +51,8 @@ class _HomePageWidgetState extends State { AppState().whatsapp = value.jsonBody['whatsapp']; AppState().provisional = value.jsonBody['provisional']; } else { - await DialogUtil.warningDefault(context); + await DialogUtil.warningDefault(context) + .whenComplete(() => safeSetState(() {})); } }); }(); From f53aa7cd01753fb270381e9f1f5d9ba6d0ccc646 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 11:14:03 -0300 Subject: [PATCH 11/24] WIP --- lib/pages/home_page/home_page_widget.dart | 2 +- lib/shared/utils/dialog_util.dart | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index b663358f..5e459008 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -52,7 +52,7 @@ class _HomePageWidgetState extends State { AppState().provisional = value.jsonBody['provisional']; } else { await DialogUtil.warningDefault(context) - .whenComplete(() => safeSetState(() {})); + .then((value) => log('Erro ao buscar dados')); } }); }(); diff --git a/lib/shared/utils/dialog_util.dart b/lib/shared/utils/dialog_util.dart index beeecbe2..6804443a 100644 --- a/lib/shared/utils/dialog_util.dart +++ b/lib/shared/utils/dialog_util.dart @@ -16,10 +16,11 @@ class DialogUtil { static Future warningDefault(BuildContext context) { return warning( - context, - FFLocalizations.of(context).getVariableText( - ptText: "Atenção, algo deu errado. Tente novamente mais tarde.", - enText: "Warning, something went wrong. Try again later.")); + context, + FFLocalizations.of(context).getVariableText( + ptText: "Atenção, algo deu errado. Tente novamente mais tarde.", + enText: "Warning, something went wrong. Try again later.")) + .then((value) => value); } static Future error(BuildContext context, String message) async { From 94fe435ea5af1b96a0a513e9f0d70e4c028d4fe6 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 11:17:49 -0300 Subject: [PATCH 12/24] WIP --- lib/pages/home_page/home_page_widget.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 5e459008..80448748 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -52,7 +52,7 @@ class _HomePageWidgetState extends State { AppState().provisional = value.jsonBody['provisional']; } else { await DialogUtil.warningDefault(context) - .then((value) => log('Erro ao buscar dados')); + .then((value) => safeSetState(() {})); } }); }(); From 4bfbaad482e7d152abaef32d089c714f75a670fa Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 12:59:24 -0300 Subject: [PATCH 13/24] WIP --- .../menu_component/menu_component_model.dart | 2 +- .../menu_component/menu_component_widget.dart | 2 +- lib/pages/home_page/home_page_widget.dart | 11 ++++++----- .../preferences_settings_model.dart | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/components/organism_components/menu_component/menu_component_model.dart b/lib/components/organism_components/menu_component/menu_component_model.dart index 621817b8..07f56b9c 100644 --- a/lib/components/organism_components/menu_component/menu_component_model.dart +++ b/lib/components/organism_components/menu_component/menu_component_model.dart @@ -123,7 +123,7 @@ class MenuComponentModel extends FlutterFlowModel { alignment: Alignment.bottomCenter, ), }, - ); + ).then((value) => true); } Future liberationHistoryOptAction(BuildContext context) async { diff --git a/lib/components/organism_components/menu_component/menu_component_widget.dart b/lib/components/organism_components/menu_component/menu_component_widget.dart index 05c08889..7f47739e 100644 --- a/lib/components/organism_components/menu_component/menu_component_widget.dart +++ b/lib/components/organism_components/menu_component/menu_component_widget.dart @@ -254,7 +254,7 @@ class _MenuComponentWidgetState extends State { MenuCardItem( icon: Icons.settings, action: () async { - await _model.preferencesSettings(context); + await _model.preferencesSettings(context).then((value) => value); setState(() {}); }, title: FFLocalizations.of(context).getVariableText( diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 80448748..92851a69 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -38,15 +38,14 @@ class _HomePageWidgetState extends State { () async { await FirebaseMessagingService().updateDeviceToken(); }(); - () async { - PhpGroup.getDadosCall + void fetchData() async { + await PhpGroup.getDadosCall .call( devUUID: AppState().devUUID, userUUID: AppState().userUUID, cliUUID: AppState().cliUUID, atividade: 'getDados') .then((value) async { - // value = await value; if (value.statusCode == 200 && value.jsonBody['error'] == false) { AppState().whatsapp = value.jsonBody['whatsapp']; AppState().provisional = value.jsonBody['provisional']; @@ -54,8 +53,10 @@ class _HomePageWidgetState extends State { await DialogUtil.warningDefault(context) .then((value) => safeSetState(() {})); } - }); - }(); + }).then((value) => fetchData()); + } + + fetchData(); WidgetsBinding.instance.addPostFrameCallback((_) async { localStatus = await checkLocals( diff --git a/lib/pages/preferences_settings_page/preferences_settings_model.dart b/lib/pages/preferences_settings_page/preferences_settings_model.dart index 158ca1fb..53637a29 100644 --- a/lib/pages/preferences_settings_page/preferences_settings_model.dart +++ b/lib/pages/preferences_settings_page/preferences_settings_model.dart @@ -314,7 +314,7 @@ class PreferencesPageModel with ChangeNotifier { AppState().deleteLocal(); AppState().deleteOwnerUUID(); Navigator.pop(context); - Navigator.pop(context); + Navigator.pop(context, true); ScaffoldMessenger.of(context).showSnackBar( SnackBar( From fae1ba6c8560e52cfb371599f59d3ada3decc584 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 13:01:20 -0300 Subject: [PATCH 14/24] WIP --- lib/pages/home_page/home_page_widget.dart | 34 +++++++++++++---------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 92851a69..96b9b3aa 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -39,21 +39,25 @@ class _HomePageWidgetState extends State { await FirebaseMessagingService().updateDeviceToken(); }(); void fetchData() async { - await PhpGroup.getDadosCall - .call( - devUUID: AppState().devUUID, - userUUID: AppState().userUUID, - cliUUID: AppState().cliUUID, - atividade: 'getDados') - .then((value) async { - if (value.statusCode == 200 && value.jsonBody['error'] == false) { - AppState().whatsapp = value.jsonBody['whatsapp']; - AppState().provisional = value.jsonBody['provisional']; - } else { - await DialogUtil.warningDefault(context) - .then((value) => safeSetState(() {})); - } - }).then((value) => fetchData()); + bool success = false; + while (!success) { + await PhpGroup.getDadosCall + .call( + devUUID: AppState().devUUID, + userUUID: AppState().userUUID, + cliUUID: AppState().cliUUID, + atividade: 'getDados') + .then((value) async { + if (value.statusCode == 200 && value.jsonBody['error'] == false) { + AppState().whatsapp = value.jsonBody['whatsapp']; + AppState().provisional = value.jsonBody['provisional']; + success = true; + } else { + await DialogUtil.warningDefault(context) + .then((value) => safeSetState(() {})); + } + }); + } } fetchData(); From 6d053282ade46034e9f8aa79ce6aec328fd9e8ff Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 13:10:11 -0300 Subject: [PATCH 15/24] WIP --- lib/pages/home_page/home_page_widget.dart | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 96b9b3aa..3d807e60 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -52,6 +52,27 @@ class _HomePageWidgetState extends State { AppState().whatsapp = value.jsonBody['whatsapp']; AppState().provisional = value.jsonBody['provisional']; success = true; + } else if (value.statusCode == 200 && + value.jsonBody['error'] == false && + value.jsonBody['error_msg'] == 'O seu vinculo nao esta ativo.') { + showModalBottomSheet( + isScrollControlled: false, + backgroundColor: Colors.transparent, + enableDrag: false, + isDismissible: false, + context: context, + builder: (context) { + return GestureDetector( + onTap: () => _model.unfocusNode.canRequestFocus + ? FocusScope.of(context).requestFocus(_model.unfocusNode) + : FocusScope.of(context).unfocus(), + child: Padding( + padding: MediaQuery.viewInsetsOf(context), + child: const BottomArrowLinkedLocalsComponentWidget(), + ), + ); + }, + ).then((value) => safeSetState(() {})); } else { await DialogUtil.warningDefault(context) .then((value) => safeSetState(() {})); From bb7d05fcbbab155f9cdbaed78e922e2305416f3e Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 13:12:17 -0300 Subject: [PATCH 16/24] WIP --- lib/pages/home_page/home_page_widget.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 3d807e60..41b1cd31 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -52,6 +52,7 @@ class _HomePageWidgetState extends State { AppState().whatsapp = value.jsonBody['whatsapp']; AppState().provisional = value.jsonBody['provisional']; success = true; + return; } else if (value.statusCode == 200 && value.jsonBody['error'] == false && value.jsonBody['error_msg'] == 'O seu vinculo nao esta ativo.') { @@ -73,6 +74,7 @@ class _HomePageWidgetState extends State { ); }, ).then((value) => safeSetState(() {})); + return; } else { await DialogUtil.warningDefault(context) .then((value) => safeSetState(() {})); From 6cf3c0aadbeafa8d1e832322ca04ff6209135dab Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 13:13:59 -0300 Subject: [PATCH 17/24] WIP --- lib/pages/home_page/home_page_widget.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 41b1cd31..67e146bb 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -76,8 +76,8 @@ class _HomePageWidgetState extends State { ).then((value) => safeSetState(() {})); return; } else { - await DialogUtil.warningDefault(context) - .then((value) => safeSetState(() {})); + await DialogUtil.warningDefault(context); + safeSetState(() {}); } }); } From a8c71dc644f945af1b369532a19dd2af8812d2b6 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 13:15:41 -0300 Subject: [PATCH 18/24] WIP --- lib/pages/home_page/home_page_widget.dart | 65 ++++++++++++----------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 67e146bb..a7969d66 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -48,36 +48,41 @@ class _HomePageWidgetState extends State { cliUUID: AppState().cliUUID, atividade: 'getDados') .then((value) async { - if (value.statusCode == 200 && value.jsonBody['error'] == false) { - AppState().whatsapp = value.jsonBody['whatsapp']; - AppState().provisional = value.jsonBody['provisional']; - success = true; - return; - } else if (value.statusCode == 200 && - value.jsonBody['error'] == false && - value.jsonBody['error_msg'] == 'O seu vinculo nao esta ativo.') { - showModalBottomSheet( - isScrollControlled: false, - backgroundColor: Colors.transparent, - enableDrag: false, - isDismissible: false, - context: context, - builder: (context) { - return GestureDetector( - onTap: () => _model.unfocusNode.canRequestFocus - ? FocusScope.of(context).requestFocus(_model.unfocusNode) - : FocusScope.of(context).unfocus(), - child: Padding( - padding: MediaQuery.viewInsetsOf(context), - child: const BottomArrowLinkedLocalsComponentWidget(), - ), - ); - }, - ).then((value) => safeSetState(() {})); - return; - } else { - await DialogUtil.warningDefault(context); - safeSetState(() {}); + switch (value.statusCode) { + case 200: + if (value.jsonBody['error'] == false) { + AppState().whatsapp = value.jsonBody['whatsapp']; + AppState().provisional = value.jsonBody['provisional']; + success = true; + return; + } else if (value.jsonBody['error_msg'] == + 'O seu vinculo nao esta ativo.') { + showModalBottomSheet( + isScrollControlled: false, + backgroundColor: Colors.transparent, + enableDrag: false, + isDismissible: false, + context: context, + builder: (context) { + return GestureDetector( + onTap: () => _model.unfocusNode.canRequestFocus + ? FocusScope.of(context) + .requestFocus(_model.unfocusNode) + : FocusScope.of(context).unfocus(), + child: Padding( + padding: MediaQuery.viewInsetsOf(context), + child: const BottomArrowLinkedLocalsComponentWidget(), + ), + ); + }, + ).then((value) => safeSetState(() {})); + return; + } + break; + default: + await DialogUtil.warningDefault(context); + safeSetState(() {}); + break; } }); } From d1f2bf215d4384907bc6dc95efc56b005c61ee1d Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 13:20:30 -0300 Subject: [PATCH 19/24] WIP --- lib/pages/home_page/home_page_widget.dart | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index a7969d66..a6f73183 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -51,14 +51,14 @@ class _HomePageWidgetState extends State { switch (value.statusCode) { case 200: if (value.jsonBody['error'] == false) { + success = true; AppState().whatsapp = value.jsonBody['whatsapp']; AppState().provisional = value.jsonBody['provisional']; - success = true; - return; } else if (value.jsonBody['error_msg'] == 'O seu vinculo nao esta ativo.') { + success = true; showModalBottomSheet( - isScrollControlled: false, + isScrollControlled: true, backgroundColor: Colors.transparent, enableDrag: false, isDismissible: false, @@ -75,8 +75,10 @@ class _HomePageWidgetState extends State { ), ); }, - ).then((value) => safeSetState(() {})); - return; + ).then((value) => safeSetState(() { + success = true; + })); + success = true; } break; default: From 248dbd6bdd361d19eb0d5e47a8dd4bfbb61c24b3 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 13:21:50 -0300 Subject: [PATCH 20/24] WIP --- lib/pages/home_page/home_page_widget.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index a6f73183..139ac6fc 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -78,7 +78,6 @@ class _HomePageWidgetState extends State { ).then((value) => safeSetState(() { success = true; })); - success = true; } break; default: From 0aa96486168020ea7c0fac662f346db0d9c3b806 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 14:42:23 -0300 Subject: [PATCH 21/24] WIP --- lib/actions/actions.dart | 85 ++++++++++++----------- lib/pages/home_page/home_page_widget.dart | 65 ++++++----------- 2 files changed, 66 insertions(+), 84 deletions(-) diff --git a/lib/actions/actions.dart b/lib/actions/actions.dart index 1d454af9..a2b47feb 100644 --- a/lib/actions/actions.dart +++ b/lib/actions/actions.dart @@ -373,47 +373,54 @@ Future checkLocals({ required HomePageModel model, required void Function(void Function()) safeSetState, }) async { - // A chamada para a API permanece a mesma, assumindo que é necessária sempre. - final response = await PhpGroup.getLocalsCall.call( - devUUID: AppState().devUUID, - userUUID: AppState().userUUID, - ); + bool itemFound = false; + var modalResult; - // Verificação rápida de erro para evitar processamento desnecessário. - if (response.jsonBody['error']) { - return false; - } - - // Uso eficiente de coleções para verificar a condição desejada. - final String uuid = cliUUID ?? AppState().cliUUID; - final bool itemFound = response.jsonBody['locais'].any( - (local) => local['CLI_ID'] == uuid && local['CLU_STATUS'] == "A", - ); - - // Log e retorno condicional baseado no resultado da busca. - if (itemFound) { - return true; - } else { - // A chamada para showModalBottomSheet permanece, mas a atualização da UI é otimizada. - await showModalBottomSheet( - isScrollControlled: true, - backgroundColor: Colors.transparent, - enableDrag: false, - context: context, - builder: (context) => GestureDetector( - onTap: () => model.unfocusNode.canRequestFocus - ? FocusScope.of(context).requestFocus(model.unfocusNode) - : FocusScope.of(context).unfocus(), - child: Padding( - padding: MediaQuery.viewInsetsOf(context), - child: const BottomArrowLinkedLocalsComponentWidget(), - ), - ), + do { + // A chamada para a API permanece a mesma, assumindo que é necessária sempre. + final response = await PhpGroup.getLocalsCall.call( + devUUID: AppState().devUUID, + userUUID: AppState().userUUID, ); - safeSetState( - () {}); // Chamada otimizada fora do then para evitar encadeamentos desnecessários. - return false; - } + + // Verificação rápida de erro para evitar processamento desnecessário. + if (response.jsonBody['error']) { + return false; + } + + // Uso eficiente de coleções para verificar a condição desejada. + final String uuid = cliUUID ?? AppState().cliUUID; + itemFound = response.jsonBody['locais'].any( + (local) => local['CLI_ID'] == uuid && local['CLU_STATUS'] == "A", + ); + + // Log e retorno condicional baseado no resultado da busca. + if (itemFound) { + return true; + } else { + // A chamada para showModalBottomSheet permanece, mas a atualização da UI é otimizada. + modalResult = await showModalBottomSheet( + isScrollControlled: true, + backgroundColor: Colors.transparent, + enableDrag: false, + isDismissible: false, + context: context, + builder: (context) => GestureDetector( + onTap: () => model.unfocusNode.canRequestFocus + ? FocusScope.of(context).requestFocus(model.unfocusNode) + : FocusScope.of(context).unfocus(), + child: Padding( + padding: MediaQuery.viewInsetsOf(context), + child: const BottomArrowLinkedLocalsComponentWidget(), + ), + ), + ); + safeSetState( + () {}); // Chamada otimizada fora do then para evitar encadeamentos desnecessários. + } + } while (modalResult != true); + + return false; } Future answersRequest(BuildContext context, String? ref, String? task, diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 139ac6fc..15880855 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -41,51 +41,26 @@ class _HomePageWidgetState extends State { void fetchData() async { bool success = false; while (!success) { - await PhpGroup.getDadosCall - .call( - devUUID: AppState().devUUID, - userUUID: AppState().userUUID, - cliUUID: AppState().cliUUID, - atividade: 'getDados') - .then((value) async { - switch (value.statusCode) { - case 200: - if (value.jsonBody['error'] == false) { - success = true; - AppState().whatsapp = value.jsonBody['whatsapp']; - AppState().provisional = value.jsonBody['provisional']; - } else if (value.jsonBody['error_msg'] == - 'O seu vinculo nao esta ativo.') { - success = true; - showModalBottomSheet( - isScrollControlled: true, - backgroundColor: Colors.transparent, - enableDrag: false, - isDismissible: false, - context: context, - builder: (context) { - return GestureDetector( - onTap: () => _model.unfocusNode.canRequestFocus - ? FocusScope.of(context) - .requestFocus(_model.unfocusNode) - : FocusScope.of(context).unfocus(), - child: Padding( - padding: MediaQuery.viewInsetsOf(context), - child: const BottomArrowLinkedLocalsComponentWidget(), - ), - ); - }, - ).then((value) => safeSetState(() { - success = true; - })); - } - break; - default: - await DialogUtil.warningDefault(context); - safeSetState(() {}); - break; - } - }); + final response = await PhpGroup.getDadosCall.call( + devUUID: AppState().devUUID, + userUUID: AppState().userUUID, + cliUUID: AppState().cliUUID, + atividade: 'getDados', + ); + + switch (response.statusCode) { + case 200: + if (response.jsonBody['error'] == false) { + success = true; + AppState().whatsapp = response.jsonBody['whatsapp']; + AppState().provisional = response.jsonBody['provisional']; + } + break; + default: + await DialogUtil.warningDefault(context); + safeSetState(() {}); + break; + } } } From ebdcf93debad3c267a08c6aca5e6e9ba68c2a176 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 15:22:55 -0300 Subject: [PATCH 22/24] WIP --- .../menu_component/menu_component_model.dart | 24 +++++++++++++++++++ .../menu_component/menu_component_widget.dart | 11 +++++++++ .../preferences_settings_model.dart | 14 +++++++++-- 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/lib/components/organism_components/menu_component/menu_component_model.dart b/lib/components/organism_components/menu_component/menu_component_model.dart index 07f56b9c..1dd63013 100644 --- a/lib/components/organism_components/menu_component/menu_component_model.dart +++ b/lib/components/organism_components/menu_component/menu_component_model.dart @@ -113,6 +113,30 @@ class MenuComponentModel extends FlutterFlowModel { ); } + Future signOut(BuildContext context) async { + showAlertDialog( + context, + 'Logout', + FFLocalizations.of(context).getVariableText( + enText: 'Are you sure you want to logout?', + ptText: 'Tem certeza', + ), () async { + AppState().deleteAll(); + // setState(() {}); + + context.goNamed( + 'welcomePage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + }); + } + Future preferencesSettings(BuildContext context) async { context.pushNamed( 'preferencesSettings', diff --git a/lib/components/organism_components/menu_component/menu_component_widget.dart b/lib/components/organism_components/menu_component/menu_component_widget.dart index 7f47739e..c3870251 100644 --- a/lib/components/organism_components/menu_component/menu_component_widget.dart +++ b/lib/components/organism_components/menu_component/menu_component_widget.dart @@ -251,6 +251,17 @@ class _MenuComponentWidgetState extends State { ptText: 'Consultar Historicos', ), ), + MenuCardItem( + icon: Icons.logout, + action: () async { + await _model.signOut(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Logout Account', + ptText: 'Sair da Conta', + ), + ), MenuCardItem( icon: Icons.settings, action: () async { diff --git a/lib/pages/preferences_settings_page/preferences_settings_model.dart b/lib/pages/preferences_settings_page/preferences_settings_model.dart index 53637a29..07912126 100644 --- a/lib/pages/preferences_settings_page/preferences_settings_model.dart +++ b/lib/pages/preferences_settings_page/preferences_settings_model.dart @@ -313,8 +313,18 @@ class PreferencesPageModel with ChangeNotifier { AppState().deleteCliUUID(); AppState().deleteLocal(); AppState().deleteOwnerUUID(); - Navigator.pop(context); - Navigator.pop(context, true); + // Navigator.pop(context); + // Navigator.pop(context, true); + context.goNamed( + 'homePage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); ScaffoldMessenger.of(context).showSnackBar( SnackBar( From fdfba4eccf5ae96ffca147aab343643acc862e55 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 16:03:28 -0300 Subject: [PATCH 23/24] clean log --- .../schedule_complete_visit_page_widget.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart index 775160ef..7b50d328 100644 --- a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart +++ b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart @@ -1114,9 +1114,7 @@ Widget scheduleVisit(BuildContext context, if (value.contains('{') && value.contains('}') && value.contains(':')) { - // log("Valor e um Objeto | Usuário Escolheu o Motivo ${_model.dropDownValue1}"); } else { - // log("Valor e uma String | Usuário Escolheu o Motivo ${_model.dropDownValue1}"); if (reasonsJsonList != null && reasonsJsonList.isNotEmpty) { var item = reasonsJsonList.where( From f489eed7ba01ba83a0b5c0c4a966386f612a9402 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Thu, 22 Aug 2024 16:26:06 -0300 Subject: [PATCH 24/24] WIP - bloc removed --- .../connectivity_bloc/connectivity_bloc.dart | 37 ------------------- .../connectivity_bloc/connectivity_event.dart | 17 --------- .../connectivity_bloc/connectivity_state.dart | 14 ------- pubspec.yaml | 1 - 4 files changed, 69 deletions(-) delete mode 100644 lib/blocs/connectivity_bloc/connectivity_bloc.dart delete mode 100644 lib/blocs/connectivity_bloc/connectivity_event.dart delete mode 100644 lib/blocs/connectivity_bloc/connectivity_state.dart diff --git a/lib/blocs/connectivity_bloc/connectivity_bloc.dart b/lib/blocs/connectivity_bloc/connectivity_bloc.dart deleted file mode 100644 index 64c73c0e..00000000 --- a/lib/blocs/connectivity_bloc/connectivity_bloc.dart +++ /dev/null @@ -1,37 +0,0 @@ -import 'dart:async'; - -import 'package:bloc/bloc.dart'; -import 'package:connectivity_plus/connectivity_plus.dart'; -import 'package:equatable/equatable.dart'; - -part 'connectivity_event.dart'; -part 'connectivity_state.dart'; - -class ConnectivityBloc extends Bloc { - final Connectivity _connectivity; - late StreamSubscription> _connectivitySubscription; - - ConnectivityBloc(this._connectivity) : super(ConnectivityInitial()) { - on(_onConnectivityChanged); - _connectivitySubscription = _connectivity.onConnectivityChanged.listen( - (List result) { - add(ConnectivityChanged(result.first)); - }, - ); - } - - void _onConnectivityChanged( - ConnectivityChanged event, Emitter emit) { - if (event.result == ConnectivityResult.none) { - emit(ConnectivityFailure()); - } else { - emit(ConnectivitySuccess()); - } - } - - @override - Future close() { - _connectivitySubscription.cancel(); - return super.close(); - } -} diff --git a/lib/blocs/connectivity_bloc/connectivity_event.dart b/lib/blocs/connectivity_bloc/connectivity_event.dart deleted file mode 100644 index d069c479..00000000 --- a/lib/blocs/connectivity_bloc/connectivity_event.dart +++ /dev/null @@ -1,17 +0,0 @@ -part of 'connectivity_bloc.dart'; - -abstract class ConnectivityEvent extends Equatable { - const ConnectivityEvent(); - - @override - List get props => []; -} - -class ConnectivityChanged extends ConnectivityEvent { - final ConnectivityResult result; - - const ConnectivityChanged(this.result); - - @override - List get props => [result]; -} diff --git a/lib/blocs/connectivity_bloc/connectivity_state.dart b/lib/blocs/connectivity_bloc/connectivity_state.dart deleted file mode 100644 index d109a152..00000000 --- a/lib/blocs/connectivity_bloc/connectivity_state.dart +++ /dev/null @@ -1,14 +0,0 @@ -part of 'connectivity_bloc.dart'; - -abstract class ConnectivityState extends Equatable { - const ConnectivityState(); - - @override - List get props => []; -} - -class ConnectivityInitial extends ConnectivityState {} - -class ConnectivitySuccess extends ConnectivityState {} - -class ConnectivityFailure extends ConnectivityState {} diff --git a/pubspec.yaml b/pubspec.yaml index 8fa32471..1f3c6a80 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -79,7 +79,6 @@ dependencies: timeago: 3.6.1 url_launcher: 6.3.0 url_launcher_android: 6.3.3 - bloc: ^8.1.4 url_launcher_ios: 6.3.0 url_launcher_platform_interface: 2.3.2 video_player: 2.8.7