fix cache userName

This commit is contained in:
J. A. Messias 2024-10-04 08:34:12 -03:00
parent 3be97a85e7
commit 909ac01852
21 changed files with 529 additions and 210 deletions

View File

@ -1 +1 @@
gradle 7.5 gradle 7.6.1

View File

@ -1,2 +1,2 @@
gradle 8.7 gradle 8.10.2
kotlin 1.7.10 kotlin 2.0.20

View File

@ -1,7 +1,10 @@
plugins { plugins {
id "com.android.application" id 'com.android.application'
id "kotlin-android" id 'com.android.library' apply false
id "dev.flutter.flutter-gradle-plugin" id 'org.jetbrains.kotlin.android'
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
} }
def localProperties = new Properties() def localProperties = new Properties()
@ -29,6 +32,7 @@ if (keystorePropertiesFile.exists()) {
} }
android { android {
namespace 'com.freaccess.hub'
compileSdkVersion 34 compileSdkVersion 34
compileSdk 34 compileSdk 34
@ -48,17 +52,17 @@ android {
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
versionName flutterVersionName versionName flutterVersionName
multiDexEnabled true multiDexEnabled true
} }
compileOptions { compileOptions {
// Flag to enable support for the new language APIs coreLibraryDesugaringEnabled true
coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_1_8
// Sets Java compatibility to Java 8 targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8 }
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
signingConfigs { signingConfigs {
release { release {
@ -86,18 +90,12 @@ flutter {
dependencies { dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10"
// id "org.jetbrains.kotlin.android" version "1.8.10" apply false implementation 'com.android.support:multidex:1.0.3'
implementation 'com.android.support:multidex:1.0.3' // Se necessário, adicione suporte ao multidex
// Adicione outras dependências do seu aplicativo aqui
implementation 'androidx.window:window:1.0.0' implementation 'androidx.window:window:1.0.0'
implementation 'androidx.window:window-java:1.0.0' implementation 'androidx.window:window-java:1.0.0'
implementation ('com.google.firebase:firebase-messaging:24.0.0') { implementation ('com.google.firebase:firebase-messaging:24.0.0') {
exclude group: 'com.google.firebase', module: 'firebase-iid' exclude group: 'com.google.firebase', module: 'firebase-iid'
} }
} }
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.gms.google-services'

View File

@ -1,16 +1,17 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.8.10' // Replace with the latest version ext.kotlin_version = '2.0.20' // Replace with the latest version
ext.gradle_version = '8.6.0' // Replace with the latest version
ext.google_services_version = '4.4.2' // Replace with the latest version
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:7.3.1' // Use a versão do Gradle que corresponde à sua configuração classpath "com.android.tools.build:gradle:$gradle_version" // Use a versão do Gradle que corresponde à sua configuração
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.4.2' // Google Services plugin classpath "com.google.gms:google-services:$google_services_version" // Google Services plugin
// Certifique-se de adicionar outras dependências do classpath aqui, se necessário. }
}
} }
allprojects { allprojects {

View File

@ -1,4 +1,3 @@
org.gradle.jvmargs=-Xmx4608m org.gradle.jvmargs=-Xmx4608m
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
android.enableR8=true

View File

@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

View File

@ -18,12 +18,16 @@ pluginManagement {
plugins { plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.3.0" apply false id 'com.android.application' version '8.6.0' apply false
id 'com.android.library' version '8.6.0' apply false
id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
// START: FlutterFire Configuration // START: FlutterFire Configuration
id "com.google.gms.google-services" version "4.3.15" apply false id "com.google.gms.google-services" version "4.3.15" apply false
// END: FlutterFire Configuration // END: FlutterFire Configuration
// id "org.jetbrains.kotlin.android" version "1.7.10" apply false // id "org.jetbrains.kotlin.android" version "1.7.10" apply false
id "org.jetbrains.kotlin.android" version "1.8.10" apply false // id "org.jetbrains.kotlin.android" version "1.8.10" apply false

View File

@ -0,0 +1,48 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:hub/main.dart';
import 'package:integration_test/integration_test.dart';
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
group('Authentication Tests', () {
setUp(() async {
await initializeApp();
});
testWidgets('Test MyApp', (WidgetTester tester) async {
await tester.pumpWidget(const App());
await _navToSignIn(tester);
await _enterCredentialsAndSignIn(tester);
await _login(tester);
});
});
}
Future<void> _navToSignIn(WidgetTester tester) async {
final navToSignIn = find.byKey(const Key('toggleSignInPage'));
if (navToSignIn.evaluate().isNotEmpty) {
await tester.tap(navToSignIn);
await tester.pumpAndSettle();
}
}
Future<void> _enterCredentialsAndSignIn(WidgetTester tester) async {
final emailField = find.byKey(const ValueKey('emailField'));
await tester.enterText(emailField, 'test@example.com');
await tester.pumpAndSettle();
final passwordField = find.byKey(const ValueKey('passwordField'));
await tester.enterText(passwordField, 'password123');
await tester.pumpAndSettle();
}
Future<void> _login(WidgetTester tester) async {
// Encontre o botão de login e clique nele
final signInButton = find.byKey(const Key('loginCallback'));
// expect(signInButton, findsOneWidget);
tester.press(signInButton);
await tester.pumpAndSettle();
}

View File

@ -236,6 +236,8 @@ class _SignInTemplateComponentWidgetState
child: SizedBox( child: SizedBox(
width: double.infinity, width: double.infinity,
child: TextFormField( child: TextFormField(
key: const ValueKey<String>(
'emailField'),
controller: _model controller: _model
.emailAddressTextController, .emailAddressTextController,
focusNode: _model focusNode: _model
@ -383,6 +385,8 @@ class _SignInTemplateComponentWidgetState
child: SizedBox( child: SizedBox(
width: double.infinity, width: double.infinity,
child: TextFormField( child: TextFormField(
key: const ValueKey<String>(
'passwordField'),
controller: _model controller: _model
.passwordTextController, .passwordTextController,
cursorColor: cursorColor:
@ -711,6 +715,9 @@ class _SignInTemplateComponentWidgetState
.fromSTEB(0.0, 0.0, .fromSTEB(0.0, 0.0,
0.0, 16.0), 0.0, 16.0),
child: FFButtonWidget( child: FFButtonWidget(
key: const ValueKey<
String>(
'loginCallback'),
onPressed: onPressed:
_isFormInvalid() _isFormInvalid()
? null ? null

View File

@ -1,13 +1,14 @@
import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:hub/components/atomic_components/shared_components_atoms/atom_image_svg_theme.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/atom_image_svg_theme.dart';
import '/flutter_flow/flutter_flow_animations.dart'; import '/flutter_flow/flutter_flow_animations.dart';
import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart'; import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart'; import '/flutter_flow/flutter_flow_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:google_fonts/google_fonts.dart';
import 'welcome_template_component_model.dart'; import 'welcome_template_component_model.dart';
export 'welcome_template_component_model.dart'; export 'welcome_template_component_model.dart';
class WelcomeTemplateComponentWidget extends StatefulWidget { class WelcomeTemplateComponentWidget extends StatefulWidget {
@ -165,7 +166,8 @@ class _WelcomeTemplateComponentWidgetState
decoration: const BoxDecoration(), decoration: const BoxDecoration(),
child: ClipRRect( child: ClipRRect(
borderRadius: BorderRadius.circular(0.0), borderRadius: BorderRadius.circular(0.0),
child: const AtomImageSvgTheme(filename: 'welcome', width: 600, height: double.infinity), child: const AtomImageSvgTheme(
filename: 'welcome', width: 600, height: double.infinity),
), ),
), ),
Align( Align(
@ -209,9 +211,12 @@ class _WelcomeTemplateComponentWidgetState
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
Padding( Padding(
padding: const EdgeInsetsDirectional.fromSTEB( padding:
0.0, 0.0, 0.0, 16.0), const EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 16.0),
child: FFButtonWidget( child: FFButtonWidget(
key: const ValueKey<String>(
'toggleSignInPage'),
onPressed: () async { onPressed: () async {
await widget.toggleSignInPage?.call(); await widget.toggleSignInPage?.call();
}, },
@ -222,12 +227,11 @@ class _WelcomeTemplateComponentWidgetState
options: FFButtonOptions( options: FFButtonOptions(
width: double.infinity, width: double.infinity,
height: 44.0, height: 44.0,
padding: padding: const EdgeInsetsDirectional
const EdgeInsetsDirectional.fromSTEB( .fromSTEB(0.0, 0.0, 0.0, 0.0),
0.0, 0.0, 0.0, 0.0),
iconPadding: iconPadding:
const EdgeInsetsDirectional.fromSTEB( const EdgeInsetsDirectional
0.0, 0.0, 0.0, 0.0), .fromSTEB(0.0, 0.0, 0.0, 0.0),
color: FlutterFlowTheme.of(context) color: FlutterFlowTheme.of(context)
.primary, .primary,
textStyle: FlutterFlowTheme.of( textStyle: FlutterFlowTheme.of(
@ -258,9 +262,12 @@ class _WelcomeTemplateComponentWidgetState
), ),
), ),
Padding( Padding(
padding: const EdgeInsetsDirectional.fromSTEB( padding:
0.0, 0.0, 0.0, 16.0), const EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 16.0),
child: FFButtonWidget( child: FFButtonWidget(
key: const ValueKey<String>(
'toggleSignUpPage'),
onPressed: () async { onPressed: () async {
await widget.toggleSignUpPage?.call(); await widget.toggleSignUpPage?.call();
}, },
@ -271,12 +278,11 @@ class _WelcomeTemplateComponentWidgetState
options: FFButtonOptions( options: FFButtonOptions(
width: double.infinity, width: double.infinity,
height: 44.0, height: 44.0,
padding: padding: const EdgeInsetsDirectional
const EdgeInsetsDirectional.fromSTEB( .fromSTEB(0.0, 0.0, 0.0, 0.0),
0.0, 0.0, 0.0, 0.0),
iconPadding: iconPadding:
const EdgeInsetsDirectional.fromSTEB( const EdgeInsetsDirectional
0.0, 0.0, 0.0, 0.0), .fromSTEB(0.0, 0.0, 0.0, 0.0),
color: FlutterFlowTheme.of(context) color: FlutterFlowTheme.of(context)
.customColor1, .customColor1,
textStyle: FlutterFlowTheme.of( textStyle: FlutterFlowTheme.of(
@ -316,8 +322,8 @@ class _WelcomeTemplateComponentWidgetState
children: [ children: [
Expanded( Expanded(
child: Padding( child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB( padding: const EdgeInsetsDirectional
0.0, 0.0, 0.0, 16.0), .fromSTEB(0.0, 0.0, 0.0, 16.0),
child: FFButtonWidget( child: FFButtonWidget(
onPressed: () async { onPressed: () async {
await widget.toggleSignInPage await widget.toggleSignInPage
@ -330,11 +336,11 @@ class _WelcomeTemplateComponentWidgetState
options: FFButtonOptions( options: FFButtonOptions(
width: double.infinity, width: double.infinity,
height: 44.0, height: 44.0,
padding: padding: const EdgeInsetsDirectional
const EdgeInsetsDirectional.fromSTEB( .fromSTEB(0.0, 0.0, 0.0, 0.0),
0.0, 0.0, 0.0, 0.0),
iconPadding: iconPadding:
const EdgeInsetsDirectional.fromSTEB( const EdgeInsetsDirectional
.fromSTEB(
0.0, 0.0, 0.0, 0.0), 0.0, 0.0, 0.0, 0.0),
color: FlutterFlowTheme.of(context) color: FlutterFlowTheme.of(context)
.primary, .primary,
@ -369,8 +375,8 @@ class _WelcomeTemplateComponentWidgetState
), ),
Expanded( Expanded(
child: Padding( child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB( padding: const EdgeInsetsDirectional
0.0, 0.0, 0.0, 16.0), .fromSTEB(0.0, 0.0, 0.0, 16.0),
child: FFButtonWidget( child: FFButtonWidget(
onPressed: () async { onPressed: () async {
await widget.toggleSignUpPage await widget.toggleSignUpPage
@ -383,11 +389,11 @@ class _WelcomeTemplateComponentWidgetState
options: FFButtonOptions( options: FFButtonOptions(
width: double.infinity, width: double.infinity,
height: 44.0, height: 44.0,
padding: padding: const EdgeInsetsDirectional
const EdgeInsetsDirectional.fromSTEB( .fromSTEB(0.0, 0.0, 0.0, 0.0),
0.0, 0.0, 0.0, 0.0),
iconPadding: iconPadding:
const EdgeInsetsDirectional.fromSTEB( const EdgeInsetsDirectional
.fromSTEB(
0.0, 0.0, 0.0, 0.0), 0.0, 0.0, 0.0, 0.0),
color: FlutterFlowTheme.of(context) color: FlutterFlowTheme.of(context)
.primary, .primary,

View File

@ -254,7 +254,7 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'en': 'End of Visit', 'en': 'End of Visit',
}, },
'xpgc5e8d': { 'xpgc5e8d': {
'pt': 'Quando a visita terminá?', 'pt': 'Quando a visita terminará?',
'en': 'When will the visit end?', 'en': 'When will the visit end?',
}, },
'0meymh6u': { '0meymh6u': {

View File

@ -9,7 +9,6 @@ import 'package:hub/flutter_flow/nav/nav.dart';
import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/dialog_util.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:mime_type/mime_type.dart'; import 'package:mime_type/mime_type.dart';
import 'package:video_player/video_player.dart';
import 'flutter_flow_theme.dart'; import 'flutter_flow_theme.dart';
import 'flutter_flow_util.dart'; import 'flutter_flow_util.dart';
@ -533,10 +532,12 @@ Future<MediaDimensions> _getImageDimensions(Uint8List mediaBytes) async {
} }
Future<MediaDimensions> _getVideoDimensions(String path) async { Future<MediaDimensions> _getVideoDimensions(String path) async {
final VideoPlayerController videoPlayerController = // final VideoPlayerController videoPlayerController =
VideoPlayerController.asset(path); // VideoPlayerController.asset(path);
await videoPlayerController.initialize(); // await videoPlayerController.initialize();
final size = videoPlayerController.value.size; // final size = videoPlayerController.value.size;
//mock
final size = const Size(1920, 1080);
return MediaDimensions(width: size.width, height: size.height); return MediaDimensions(width: size.width, height: size.height);
} }

View File

@ -2,7 +2,6 @@ import 'dart:developer';
import 'dart:io'; import 'dart:io';
import 'package:app_tracking_transparency/app_tracking_transparency.dart'; import 'package:app_tracking_transparency/app_tracking_transparency.dart';
import 'package:awesome_notifications/awesome_notifications.dart';
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
@ -15,19 +14,18 @@ import 'package:hub/backend/notifications/notification_service.dart';
import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart';
import 'package:hub/flutter_flow/internationalization.dart'; import 'package:hub/flutter_flow/internationalization.dart';
import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/flutter_flow/nav/nav.dart';
import 'package:hub/shared/helpers/secure_storage_helper.dart';
import 'package:hub/shared/utils/storage_util.dart'; import 'package:hub/shared/utils/storage_util.dart';
import 'package:responsive_framework/responsive_framework.dart'; import 'package:responsive_framework/responsive_framework.dart';
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>(); final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
void main() async { void main() async {
await _initializeApp(); await initializeApp();
runApp(const App()); runApp(const App());
FirebaseMessaging.onBackgroundMessage(_backgroundHandlerMessage); FirebaseMessaging.onBackgroundMessage(_backgroundHandlerMessage);
} }
Future<void> _initializeApp() async { Future<void> initializeApp() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
await _initializeStorageHelpers(); await _initializeStorageHelpers();
@ -165,11 +163,15 @@ class _AppState extends State<App> {
]; ];
Widget Function(BuildContext, Widget?)? builder = (context, widget) { Widget Function(BuildContext, Widget?)? builder = (context, widget) {
const String HD4K = '4K';
const String ULTRAWIDE = 'ULTRAWIDE';
final breakpoints = [ final breakpoints = [
const Breakpoint(start: 0, end: 450, name: MOBILE), const Breakpoint(start: 0, end: 450, name: MOBILE),
const Breakpoint(start: 451, end: 800, name: TABLET), const Breakpoint(start: 451, end: 800, name: TABLET),
const Breakpoint(start: 801, end: 1920, name: DESKTOP), const Breakpoint(start: 801, end: 1920, name: DESKTOP),
const Breakpoint(start: 1921, end: double.infinity, name: '4K'), const Breakpoint(start: 1921, end: 2560, name: HD4K),
const Breakpoint(start: 2561, end: double.infinity, name: ULTRAWIDE),
]; ];
return ResponsiveBreakpoints.builder( return ResponsiveBreakpoints.builder(
child: BouncingScrollWrapper.builder(context, widget!), child: BouncingScrollWrapper.builder(context, widget!),

View File

@ -4,8 +4,6 @@ import 'package:hub/components/organism_components/menu_component/menu_component
import 'package:hub/components/organism_components/message_well_component/message_well_component_model.dart'; import 'package:hub/components/organism_components/message_well_component/message_well_component_model.dart';
import 'package:hub/flutter_flow/flutter_flow_model.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart';
import 'package:hub/pages/home_page/home_page_widget.dart'; import 'package:hub/pages/home_page/home_page_widget.dart';
import 'package:hub/shared/helpers/secure_storage_helper.dart';
import 'package:hub/shared/helpers/sqlite_storage_helper.dart';
import 'package:hub/shared/utils/storage_util.dart'; import 'package:hub/shared/utils/storage_util.dart';
class HomePageModel extends FlutterFlowModel<HomePageWidget> { class HomePageModel extends FlutterFlowModel<HomePageWidget> {
@ -28,7 +26,7 @@ class HomePageModel extends FlutterFlowModel<HomePageWidget> {
devUUID = StorageUtil().devUUID; devUUID = StorageUtil().devUUID;
cliUUID = StorageUtil().cliUUID; cliUUID = StorageUtil().cliUUID;
userUUID = StorageUtil().userUUID; userUUID = StorageUtil().userUUID;
userName = StorageUtil().cliName; userName = StorageUtil().userName;
userEmail = StorageUtil().email; userEmail = StorageUtil().email;
} }

View File

@ -1,27 +1,19 @@
import 'dart:developer'; import 'package:flutter/material.dart';
import 'package:hub/backend/api_requests/api_calls.dart'; import 'package:hub/backend/api_requests/api_calls.dart';
import 'package:hub/backend/api_requests/api_manager.dart';
import 'package:hub/components/templates_components/details_component/details_component_widget.dart'; import 'package:hub/components/templates_components/details_component/details_component_widget.dart';
import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart';
import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart';
import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; import 'package:hub/flutter_flow/flutter_flow_widgets.dart';
import 'package:hub/flutter_flow/form_field_controller.dart'; import 'package:hub/flutter_flow/form_field_controller.dart';
import 'package:hub/flutter_flow/internationalization.dart';
import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/flutter_flow/nav/nav.dart';
import 'package:hub/flutter_flow/request_manager.dart'; import 'package:hub/flutter_flow/request_manager.dart';
import 'package:flutter/material.dart';
import 'package:hub/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart'; import 'package:hub/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart';
import 'package:hub/pages/schedule_complete_visit_page/visit_history_page_widget.dart';
import 'package:hub/shared/helpers/sqlite_storage_helper.dart';
import 'package:hub/shared/mixins/status_mixin.dart'; import 'package:hub/shared/mixins/status_mixin.dart';
import 'package:hub/shared/utils/storage_util.dart'; import 'package:hub/shared/utils/storage_util.dart';
import 'package:hub/shared/utils/validator_util.dart';
import 'package:intl/intl.dart';
import 'package:share_plus/share_plus.dart'; import 'package:share_plus/share_plus.dart';
import '../../shared/utils/validator_util.dart';
class ScheduleCompleteVisitPageModel class ScheduleCompleteVisitPageModel
extends FlutterFlowModel<ScheduleComplete> { extends FlutterFlowModel<ScheduleComplete> {
late VoidCallback safeSetState; late VoidCallback safeSetState;
@ -111,8 +103,7 @@ class ScheduleCompleteVisitPageModel
return false; return false;
} }
if (selectedDateTime1.isBefore(currentDateTime) || if (selectedDateTime2.isBefore(currentDateTime)) {
selectedDateTime2.isBefore(currentDateTime)) {
return false; return false;
} }
@ -120,6 +111,10 @@ class ScheduleCompleteVisitPageModel
return false; return false;
} }
if (selectedDateTime1.isAtSameMomentAs(selectedDateTime2)) {
return false;
}
return true; return true;
} }
@ -156,6 +151,12 @@ class ScheduleCompleteVisitPageModel
ptText: 'A data de início deve ser posterior à data atual.', ptText: 'A data de início deve ser posterior à data atual.',
); );
} }
if (startDate.isAtSameMomentAs(endDate)) {
return FFLocalizations.of(context).getVariableText(
enText: 'Start date must be different from end date.',
ptText: 'A data de início deve ser diferente da data de término.',
);
}
} catch (e) { } catch (e) {
return FFLocalizations.of(context).getVariableText( return FFLocalizations.of(context).getVariableText(
ptText: 'Preencha corretamente o campo de término da visita!', ptText: 'Preencha corretamente o campo de término da visita!',
@ -195,6 +196,12 @@ class ScheduleCompleteVisitPageModel
ptText: 'A data de término deve ser posterior à data atual.', ptText: 'A data de término deve ser posterior à data atual.',
); );
} }
if (startDate.isAtSameMomentAs(endDate)) {
return FFLocalizations.of(context).getVariableText(
enText: 'End date must be different from start date.',
ptText: 'A data de término deve ser diferente da data de início.',
);
}
} catch (e) { } catch (e) {
return FFLocalizations.of(context).getVariableText( return FFLocalizations.of(context).getVariableText(
ptText: 'Preencha corretamente o campo de início da visita!', ptText: 'Preencha corretamente o campo de início da visita!',

View File

@ -1,10 +1,11 @@
import 'package:flutter/material.dart';
import 'package:hub/shared/mixins/switcher_mixin.dart'; import 'package:hub/shared/mixins/switcher_mixin.dart';
import '/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart'; import '/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart';
import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart'; import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'sign_up_page_model.dart'; import 'sign_up_page_model.dart';
export 'sign_up_page_model.dart'; export 'sign_up_page_model.dart';
class SignUpPageWidget extends StatefulWidget with Switcher { class SignUpPageWidget extends StatefulWidget with Switcher {
@ -50,7 +51,7 @@ class _SignUpPageWidgetState extends State<SignUpPageWidget> {
child: SignUpTemplateComponentWidget( child: SignUpTemplateComponentWidget(
toggleSignInPage: () async { toggleSignInPage: () async {
await Switcher.toggleSignInPage(context); await Switcher.toggleSignInPage(context);
setState(() {}); safeSetState(() {});
}, },
), ),
), ),

View File

@ -1,8 +1,9 @@
import 'dart:developer'; import 'dart:developer';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:hub/shared/utils/storage_util.dart';
import 'package:hub/shared/utils/cache_util.dart'; import 'package:hub/shared/utils/cache_util.dart';
import 'package:hub/shared/utils/storage_util.dart';
class SecureStorageHelper extends ChangeNotifier implements Storage { class SecureStorageHelper extends ChangeNotifier implements Storage {
static final SecureStorageHelper _instance = SecureStorageHelper._internal(); static final SecureStorageHelper _instance = SecureStorageHelper._internal();

View File

@ -7,7 +7,7 @@ import 'package:hub/shared/helpers/sqlite_storage_helper.dart';
import 'package:hub/shared/utils/cache_util.dart'; import 'package:hub/shared/utils/cache_util.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
enum StorageType { SecureStorage, SharedPreferences, SQLite3 } enum StorageType { secureStorage, sharedPreferences, dbSQLite3 }
abstract class Storage { abstract class Storage {
Future<void> set(String key, dynamic value, Function(dynamic) cacheSetter); Future<void> set(String key, dynamic value, Function(dynamic) cacheSetter);
@ -47,14 +47,14 @@ class StorageUtil {
} }
switch (data.type) { switch (data.type) {
case StorageType.SecureStorage: case StorageType.secureStorage:
await SecureStorageHelper().set(data.key, data.value, (v) {}); await SecureStorageHelper().set(data.key, data.value, (v) {});
break; break;
case StorageType.SharedPreferences: case StorageType.sharedPreferences:
await SharedPreferencesStorageHelper() await SharedPreferencesStorageHelper()
.set(data.key, data.value, (v) {}); .set(data.key, data.value, (v) {});
break; break;
case StorageType.SQLite3: case StorageType.dbSQLite3:
await SQLiteStorageHelper().set(data.key, data.value, (v) {}); await SQLiteStorageHelper().set(data.key, data.value, (v) {});
break; break;
} }
@ -69,13 +69,13 @@ class StorageUtil {
var value = CacheUtil().get(data.key); var value = CacheUtil().get(data.key);
if (value == null) { if (value == null) {
switch (data.type) { switch (data.type) {
case StorageType.SecureStorage: case StorageType.secureStorage:
value = await SecureStorageHelper().get(data.key); value = await SecureStorageHelper().get(data.key);
break; break;
case StorageType.SharedPreferences: case StorageType.sharedPreferences:
value = await SharedPreferencesStorageHelper().get(data.key); value = await SharedPreferencesStorageHelper().get(data.key);
break; break;
case StorageType.SQLite3: case StorageType.dbSQLite3:
value = await SQLiteStorageHelper().get(data.key); value = await SQLiteStorageHelper().get(data.key);
break; break;
} }
@ -92,13 +92,13 @@ class StorageUtil {
try { try {
CacheUtil().delete(data.key); CacheUtil().delete(data.key);
switch (data.type) { switch (data.type) {
case StorageType.SecureStorage: case StorageType.secureStorage:
await SecureStorageHelper().delete(data.key); await SecureStorageHelper().delete(data.key);
break; break;
case StorageType.SharedPreferences: case StorageType.sharedPreferences:
await SharedPreferencesStorageHelper().delete(data.key); await SharedPreferencesStorageHelper().delete(data.key);
break; break;
case StorageType.SQLite3: case StorageType.dbSQLite3:
await SQLiteStorageHelper().delete(data.key); await SQLiteStorageHelper().delete(data.key);
break; break;
} }

View File

@ -1,12 +1,12 @@
import 'package:cached_network_image/cached_network_image.dart'; import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hub/backend/schema/enums/enums.dart'; import 'package:hub/backend/schema/enums/enums.dart';
import 'package:hub/components/organism_components/menu_component/menu_component_widget.dart';
import 'package:hub/flutter_flow/custom_functions.dart';
import 'package:hub/flutter_flow/flutter_flow_theme.dart';
import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart';
import 'package:hub/pages/home_page/home_page_model.dart'; import 'package:hub/pages/home_page/home_page_model.dart';
import '../../../components/organism_components/menu_component/menu_component_widget.dart';
import '../../../flutter_flow/flutter_flow_theme.dart';
class CustomDrawer extends StatelessWidget { class CustomDrawer extends StatelessWidget {
const CustomDrawer({super.key, required this.model}); const CustomDrawer({super.key, required this.model});
final HomePageModel model; final HomePageModel model;
@ -79,7 +79,7 @@ class CustomDrawer extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( Text(
convertToUppercase(model.userName) ?? '', model.userName,
style: FlutterFlowTheme.of(context).bodyLarge.override( style: FlutterFlowTheme.of(context).bodyLarge.override(
fontFamily: 'Nunito Sans', fontFamily: 'Nunito Sans',
color: FlutterFlowTheme.of(context).primaryText, color: FlutterFlowTheme.of(context).primaryText,

View File

@ -1,6 +1,14 @@
# Generated by pub # Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile # See https://dart.dev/tools/pub/glossary#lockfile
packages: packages:
_fe_analyzer_shared:
dependency: transitive
description:
name: _fe_analyzer_shared
sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834
url: "https://pub.dev"
source: hosted
version: "72.0.0"
_flutterfire_internals: _flutterfire_internals:
dependency: transitive dependency: transitive
description: description:
@ -9,6 +17,19 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.37" version: "1.3.37"
_macros:
dependency: transitive
description: dart
source: sdk
version: "0.3.2"
analyzer:
dependency: transitive
description:
name: analyzer
sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139
url: "https://pub.dev"
source: hosted
version: "6.7.0"
app_tracking_transparency: app_tracking_transparency:
dependency: "direct main" dependency: "direct main"
description: description:
@ -89,6 +110,70 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.1"
build:
dependency: transitive
description:
name: build
sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
build_config:
dependency: transitive
description:
name: build_config
sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
url: "https://pub.dev"
source: hosted
version: "1.1.1"
build_daemon:
dependency: transitive
description:
name: build_daemon
sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
build_resolvers:
dependency: transitive
description:
name: build_resolvers
sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a"
url: "https://pub.dev"
source: hosted
version: "2.4.2"
build_runner:
dependency: "direct dev"
description:
name: build_runner
sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d"
url: "https://pub.dev"
source: hosted
version: "2.4.13"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0
url: "https://pub.dev"
source: hosted
version: "7.3.2"
built_collection:
dependency: transitive
description:
name: built_collection
sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
url: "https://pub.dev"
source: hosted
version: "5.1.1"
built_value:
dependency: transitive
description:
name: built_value
sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb
url: "https://pub.dev"
source: hosted
version: "8.9.2"
cached_network_image: cached_network_image:
dependency: "direct main" dependency: "direct main"
description: description:
@ -125,10 +210,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: camera_android_camerax name: camera_android_camerax
sha256: "7cd93578ad201dcc6bb5810451fb00d76a86bab9b68dceb68b8cbd7038ac5846" sha256: "803e45c406de922bd107199089be3f3d5ae7ab0a1ff119a27a0062325541c50e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.8+3" version: "0.6.9"
camera_avfoundation: camera_avfoundation:
dependency: transitive dependency: transitive
description: description:
@ -185,6 +270,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.1"
code_builder:
dependency: transitive
description:
name: code_builder
sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37
url: "https://pub.dev"
source: hosted
version: "4.10.0"
collection: collection:
dependency: "direct main" dependency: "direct main"
description: description:
@ -209,6 +302,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
convert:
dependency: transitive
description:
name: convert
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.1.1"
crop_your_image: crop_your_image:
dependency: "direct main" dependency: "direct main"
description: description:
@ -233,14 +334,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.5" version: "3.0.5"
csslib:
dependency: transitive
description:
name: csslib
sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
csv: csv:
dependency: "direct main" dependency: "direct main"
description: description:
@ -257,6 +350,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.8" version: "1.0.8"
dart_style:
dependency: transitive
description:
name: dart_style
sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab"
url: "https://pub.dev"
source: hosted
version: "2.3.7"
dbus: dbus:
dependency: transitive dependency: transitive
description: description:
@ -357,18 +458,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: file_selector_linux name: file_selector_linux
sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492" sha256: "712ce7fab537ba532c8febdb1a8f167b32441e74acd68c3ccb2e36dcb52c4ab2"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.9.2+1" version: "0.9.3"
file_selector_macos: file_selector_macos:
dependency: transitive dependency: transitive
description: description:
name: file_selector_macos name: file_selector_macos
sha256: f42eacb83b318e183b1ae24eead1373ab1334084404c8c16e0354f9a3e55d385 sha256: cb284e267f8e2a45a904b5c094d2ba51d0aabfc20b1538ab786d9ef7dc2bf75c
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.9.4" version: "0.9.4+1"
file_selector_platform_interface: file_selector_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -381,10 +482,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: file_selector_windows name: file_selector_windows
sha256: "2ad726953f6e8affbc4df8dc78b77c3b4a060967a291e528ef72ae846c60fb69" sha256: "8f5d2f6590d51ecd9179ba39c64f722edc15226cc93dcc8698466ad36a4a85a4"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.9.3+2" version: "0.9.3+3"
firebase_analytics: firebase_analytics:
dependency: "direct main" dependency: "direct main"
description: description:
@ -421,18 +522,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_platform_interface name: firebase_core_platform_interface
sha256: "3c3a1e92d6f4916c32deea79c4a7587aa0e9dbbe5889c7a16afcf005a485ee02" sha256: e30da58198a6d4b49d5bce4e852f985c32cb10db329ebef9473db2b9f09ce810
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.2.0" version: "5.3.0"
firebase_core_web: firebase_core_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_web name: firebase_core_web
sha256: e8d1e22de72cb21cdcfc5eed7acddab3e99cd83f3b317f54f7a96c32f25fd11e sha256: "362e52457ed2b7b180964769c1e04d1e0ea0259fdf7025fdfedd019d4ae2bd88"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.17.4" version: "2.17.5"
firebase_crashlytics: firebase_crashlytics:
dependency: "direct main" dependency: "direct main"
description: description:
@ -510,14 +611,19 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.3.2" version: "3.3.2"
flutter_driver:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_expandable_fab: flutter_expandable_fab:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_expandable_fab name: flutter_expandable_fab
sha256: f4692d1949cda81e10ca0c3e75aea1e14e29ecc12d9328996321b96e9747a955 sha256: "85275279d19faf4fbe5639dc1f139b4555b150e079d056f085601a45688af12c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.0" version: "2.3.0"
flutter_inappwebview: flutter_inappwebview:
dependency: "direct main" dependency: "direct main"
description: description:
@ -530,10 +636,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_inappwebview_android name: flutter_inappwebview_android
sha256: d247f6ed417f1f8c364612fa05a2ecba7f775c8d0c044c1d3b9ee33a6515c421 sha256: "62557c15a5c2db5d195cb3892aab74fcaec266d7b86d59a6f0027abd672cddba"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.13" version: "1.1.3"
flutter_inappwebview_internal_annotations: flutter_inappwebview_internal_annotations:
dependency: transitive dependency: transitive
description: description:
@ -546,26 +652,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_inappwebview_ios name: flutter_inappwebview_ios
sha256: f363577208b97b10b319cd0c428555cd8493e88b468019a8c5635a0e4312bd0f sha256: "5818cf9b26cf0cbb0f62ff50772217d41ea8d3d9cc00279c45f8aabaa1b4025d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.13" version: "1.1.2"
flutter_inappwebview_macos: flutter_inappwebview_macos:
dependency: transitive dependency: transitive
description: description:
name: flutter_inappwebview_macos name: flutter_inappwebview_macos
sha256: b55b9e506c549ce88e26580351d2c71d54f4825901666bd6cfa4be9415bb2636 sha256: c1fbb86af1a3738e3541364d7d1866315ffb0468a1a77e34198c9be571287da1
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.11" version: "1.1.2"
flutter_inappwebview_platform_interface: flutter_inappwebview_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: flutter_inappwebview_platform_interface name: flutter_inappwebview_platform_interface
sha256: "545fd4c25a07d2775f7d5af05a979b2cac4fbf79393b0a7f5d33ba39ba4f6187" sha256: "6862f4e08aa8f6136762e022c9c1edafb18c1dc3beb03052f2f3f2a48605a182"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.10" version: "1.3.0"
flutter_inappwebview_web: flutter_inappwebview_web:
dependency: transitive dependency: transitive
description: description:
@ -663,10 +769,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_shaders name: flutter_shaders
sha256: "02750b545c01ff4d8e9bbe8f27a7731aa3778402506c67daa1de7f5fc3f4befe" sha256: "34794acadd8275d971e02df03afee3dee0f98dbfb8c4837082ad0034f612a3e2"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.2" version: "0.1.3"
flutter_spinkit: flutter_spinkit:
dependency: "direct main" dependency: "direct main"
description: description:
@ -725,6 +831,27 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
frontend_server_client:
dependency: transitive
description:
name: frontend_server_client
sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
url: "https://pub.dev"
source: hosted
version: "4.0.0"
fuchsia_remote_debug_protocol:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
glob:
dependency: transitive
description:
name: glob
sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
go_router: go_router:
dependency: "direct main" dependency: "direct main"
description: description:
@ -757,14 +884,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.11.1" version: "0.11.1"
html: graphs:
dependency: transitive dependency: transitive
description: description:
name: html name: graphs
sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.15.4" version: "2.3.2"
http: http:
dependency: "direct main" dependency: "direct main"
description: description:
@ -773,6 +900,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.1"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
url: "https://pub.dev"
source: hosted
version: "3.2.1"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
@ -853,6 +988,11 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.2.1+1" version: "0.2.1+1"
integration_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
intl: intl:
dependency: "direct main" dependency: "direct main"
description: description:
@ -861,6 +1001,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.19.0" version: "0.19.0"
io:
dependency: transitive
description:
name: io
sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
url: "https://pub.dev"
source: hosted
version: "1.0.4"
iregexp: iregexp:
dependency: transitive dependency: transitive
description: description:
@ -937,18 +1085,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: local_auth_android name: local_auth_android
sha256: e99c44ca0bce08f26f25e2a2e07d3b443d69986e1c3acf67c1449f7d847e3625 sha256: "5351c7eea8823de28e37d8b7b3e386d944b80f2a77edb91a5707fb97a41fc1b1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.43" version: "1.0.45"
local_auth_darwin: local_auth_darwin:
dependency: transitive dependency: transitive
description: description:
name: local_auth_darwin name: local_auth_darwin
sha256: "7ba5738c874ca2b910d72385d00d2bebad9d4e807612936cf5e32bc01a048c71" sha256: "6d2950da311d26d492a89aeb247c72b4653ddc93601ea36a84924a396806d49c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.4.0" version: "1.4.1"
local_auth_platform_interface: local_auth_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -973,6 +1121,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
macros:
dependency: transitive
description:
name: macros
sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536"
url: "https://pub.dev"
source: hosted
version: "0.1.2-main.4"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
@ -993,10 +1149,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: material_symbols_icons name: material_symbols_icons
sha256: b72bf7566d024d51627dce81b1b98539830a0e3ffbb5784989aa3e97c8493160 sha256: "66416c4e30bd363508e12669634fc4f3250b83b69e862de67f4f9c480cf42414"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.2784.0" version: "4.2785.1"
maybe_just_nothing: maybe_just_nothing:
dependency: transitive dependency: transitive
description: description:
@ -1017,10 +1173,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: mime name: mime
sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.5" version: "1.0.6"
mime_type: mime_type:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1029,6 +1185,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
mockito:
dependency: "direct dev"
description:
name: mockito
sha256: "6841eed20a7befac0ce07df8116c8b8233ed1f4486a7647c7fc5a02ae6163917"
url: "https://pub.dev"
source: hosted
version: "5.4.4"
nested: nested:
dependency: transitive dependency: transitive
description: description:
@ -1053,6 +1217,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.0" version: "2.1.0"
package_config:
dependency: transitive
description:
name: package_config
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
page_transition: page_transition:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1169,10 +1341,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_platform_interface name: permission_handler_platform_interface
sha256: fe0ffe274d665be8e34f9c59705441a7d248edebbe5d9e3ec2665f88b79358ea sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.2.2" version: "4.2.3"
permission_handler_windows: permission_handler_windows:
dependency: transitive dependency: transitive
description: description:
@ -1213,6 +1385,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.8" version: "2.1.8"
pool:
dependency: transitive
description:
name: pool
sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
url: "https://pub.dev"
source: hosted
version: "1.5.1"
process:
dependency: transitive
description:
name: process
sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32"
url: "https://pub.dev"
source: hosted
version: "5.0.2"
provider: provider:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1221,6 +1409,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.2" version: "6.1.2"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8
url: "https://pub.dev"
source: hosted
version: "1.3.0"
qr: qr:
dependency: transitive dependency: transitive
description: description:
@ -1341,11 +1545,35 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.2" version: "2.3.2"
shelf:
dependency: transitive
description:
name: shelf
sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4
url: "https://pub.dev"
source: hosted
version: "1.4.1"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.99" version: "0.0.99"
source_gen:
dependency: transitive
description:
name: source_gen
sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832"
url: "https://pub.dev"
source: hosted
version: "1.5.0"
source_span: source_span:
dependency: transitive dependency: transitive
description: description:
@ -1374,10 +1602,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: sqflite_common name: sqflite_common
sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" sha256: "2d8e607db72e9cb7748c9c6e739e2c9618320a5517de693d5a24609c4671b1a4"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.5.4" version: "2.5.4+4"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
@ -1418,6 +1646,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
sync_http:
dependency: transitive
description:
name: sync_http
sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961"
url: "https://pub.dev"
source: hosted
version: "0.3.1"
synchronized: synchronized:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1450,6 +1686,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.6.1" version: "3.6.1"
timing:
dependency: transitive
description:
name: timing
sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32"
url: "https://pub.dev"
source: hosted
version: "1.0.1"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
@ -1494,10 +1738,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_macos name: url_launcher_macos
sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.2.0" version: "3.2.1"
url_launcher_platform_interface: url_launcher_platform_interface:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1526,10 +1770,10 @@ packages:
dependency: "direct overridden" dependency: "direct overridden"
description: description:
name: uuid name: uuid
sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90" sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.4.2" version: "4.5.1"
vector_graphics: vector_graphics:
dependency: transitive dependency: transitive
description: description:
@ -1562,46 +1806,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.4" version: "2.1.4"
video_player:
dependency: "direct main"
description:
name: video_player
sha256: aced48e701e24c02b0b7f881a8819e4937794e46b5a5821005e2bf3b40a324cc
url: "https://pub.dev"
source: hosted
version: "2.8.7"
video_player_android:
dependency: "direct main"
description:
name: video_player_android
sha256: "9529001630e42988f755772972d5014d30121610700e8e502278a245939f8fc8"
url: "https://pub.dev"
source: hosted
version: "2.5.0"
video_player_avfoundation:
dependency: "direct main"
description:
name: video_player_avfoundation
sha256: d1e9a824f2b324000dc8fb2dcb2a3285b6c1c7c487521c63306cc5b394f68a7c
url: "https://pub.dev"
source: hosted
version: "2.6.1"
video_player_platform_interface:
dependency: "direct main"
description:
name: video_player_platform_interface
sha256: "236454725fafcacf98f0f39af0d7c7ab2ce84762e3b63f2cbb3ef9a7e0550bc6"
url: "https://pub.dev"
source: hosted
version: "6.2.2"
video_player_web:
dependency: "direct main"
description:
name: video_player_web
sha256: ff4d69a6614b03f055397c27a71c9d3ddea2b2a23d71b2ba0164f59ca32b8fe2
url: "https://pub.dev"
source: hosted
version: "2.3.1"
vm_service: vm_service:
dependency: transitive dependency: transitive
description: description:
@ -1610,6 +1814,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.2.5" version: "14.2.5"
watcher:
dependency: transitive
description:
name: watcher
sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
web: web:
dependency: transitive dependency: transitive
description: description:
@ -1618,22 +1830,46 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.5.1" version: "0.5.1"
web_socket:
dependency: transitive
description:
name: web_socket
sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83"
url: "https://pub.dev"
source: hosted
version: "0.1.6"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f"
url: "https://pub.dev"
source: hosted
version: "3.0.1"
webdriver:
dependency: transitive
description:
name: webdriver
sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e"
url: "https://pub.dev"
source: hosted
version: "3.0.3"
webview_flutter: webview_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
name: webview_flutter name: webview_flutter
sha256: "6869c8786d179f929144b4a1f86e09ac0eddfe475984951ea6c634774c16b522" sha256: ec81f57aa1611f8ebecf1d2259da4ef052281cb5ad624131c93546c79ccc7736
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.8.0" version: "4.9.0"
webview_flutter_android: webview_flutter_android:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_android name: webview_flutter_android
sha256: c66651fba15f9d7ddd31daec42da8d6bce46c85610a7127e3ebcb39a4395c3c9 sha256: ed021f27ae621bc97a6019fb601ab16331a3db4bf8afa305e9f6689bdb3edced
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.16.6" version: "3.16.8"
webview_flutter_platform_interface: webview_flutter_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -1646,10 +1882,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_wkwebview name: webview_flutter_wkwebview
sha256: "9c62cc46fa4f2d41e10ab81014c1de470a6c6f26051a2de32111b2ee55287feb" sha256: "1942a12224ab31e9508cf00c0c6347b931b023b8a4f0811e5dec3b06f94f117d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.14.0" version: "3.15.0"
win32: win32:
dependency: "direct overridden" dependency: "direct overridden"
description: description:
@ -1662,10 +1898,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: win32_registry name: win32_registry
sha256: "723b7f851e5724c55409bb3d5a32b203b3afe8587eaf5dafb93a5fed8ecda0d6" sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.4" version: "1.1.5"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:

View File

@ -83,11 +83,11 @@ dependencies:
url_launcher_android: 6.3.3 url_launcher_android: 6.3.3
url_launcher_ios: 6.3.0 url_launcher_ios: 6.3.0
url_launcher_platform_interface: 2.3.2 url_launcher_platform_interface: 2.3.2
video_player: 2.8.7 # video_player: 2.8.7
video_player_android: 2.5.0 # video_player_android: 2.5.0
video_player_avfoundation: 2.6.1 # video_player_avfoundation: 2.6.1
video_player_platform_interface: 6.2.2 # video_player_platform_interface: 6.2.2
video_player_web: 2.3.1 # video_player_web: 2.3.1
material_symbols_icons: ^4.2784.0 material_symbols_icons: ^4.2784.0
fluttertoast: ^8.2.8 fluttertoast: ^8.2.8
@ -112,10 +112,16 @@ dev_dependencies:
flutter_lints: 4.0.0 flutter_lints: 4.0.0
image: 4.2.0 image: 4.2.0
lints: 4.0.0 lints: 4.0.0
integration_test:
sdk: flutter
build_runner: ^2.4.13
mockito: ^5.4.4
flutter_test: flutter_test:
sdk: flutter sdk: flutter
flutter_launcher_icons: flutter_launcher_icons:
android: "launcher_icon" android: "launcher_icon"
ios: true ios: true
@ -125,7 +131,10 @@ flutter_launcher_icons:
adaptive_icon_background: "assets/images/adaptive_background_icon.svg" adaptive_icon_background: "assets/images/adaptive_background_icon.svg"
adaptive_icon_foreground: "assets/images/adaptive_foreground_icon.svg" adaptive_icon_foreground: "assets/images/adaptive_foreground_icon.svg"
flutter: flutter:
uses-material-design: true uses-material-design: true
assets: assets: