diff --git a/.metadata b/.metadata
index ec98142..6eb54a1 100644
--- a/.metadata
+++ b/.metadata
@@ -4,7 +4,42 @@
# This file should be version controlled and should not be manually edited.
version:
- revision: d79295af24c3ed621c33713ecda14ad196fd9c31
- channel: stable
+ revision: "761747bfc538b5af34aa0d3fac380f1bc331ec49"
+ channel: "stable"
project_type: app
+
+# Tracks metadata for the flutter migrate command
+migration:
+ platforms:
+ - platform: root
+ create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ - platform: android
+ create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ - platform: ios
+ create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ - platform: linux
+ create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ - platform: macos
+ create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ - platform: web
+ create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ - platform: windows
+ create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+ base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
+
+ # User provided section
+
+ # List of Local paths (relative to this file) that should be
+ # ignored by the migrate tool.
+ #
+ # Files that are not part of the templates will be ignored by default.
+ unmanaged_files:
+ - 'lib/main.dart'
+ - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..e0f15db
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "java.configuration.updateBuildConfiguration": "automatic"
+}
\ No newline at end of file
diff --git a/android/.project b/android/.project
index 3964dd3..79bb12b 100644
--- a/android/.project
+++ b/android/.project
@@ -14,4 +14,15 @@
org.eclipse.buildship.core.gradleprojectnature
+
+
+ 1721135133511
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/android/.settings/org.eclipse.buildship.core.prefs b/android/.settings/org.eclipse.buildship.core.prefs
index 2b6d83b..7c7a5b5 100644
--- a/android/.settings/org.eclipse.buildship.core.prefs
+++ b/android/.settings/org.eclipse.buildship.core.prefs
@@ -1,11 +1,11 @@
-arguments=
-auto.sync=false
+arguments=--init-script /var/folders/20/lrk1001d3v34wc_th8z_vgph0000gn/T/db3b08fc4a9ef609cb16b96b200fa13e563f396e9bb1ed0905fdab7bc3bc513b.gradle --init-script /var/folders/20/lrk1001d3v34wc_th8z_vgph0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle
+auto.sync=true
build.scans.enabled=false
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
connection.project.dir=
eclipse.preferences.version=1
gradle.user.home=
-java.home=/usr/lib/jvm/java-11-openjdk-amd64
+java.home=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
jvm.arguments=
offline.mode=false
override.workspace.settings=true
diff --git a/android/app/build.gradle b/android/app/build.gradle
index bcaadfc..33afcee 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,3 +1,10 @@
+plugins {
+ id "com.android.application"
+ id "kotlin-android"
+ id "dev.flutter.flutter-gradle-plugin"
+ id "com.google.gms.google-services"
+}
+
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
@@ -6,11 +13,6 @@ def localProperties = new Properties()
}
}
-def flutterRoot = localProperties.getProperty('flutter.sdk')
-if (flutterRoot == null) {
- throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
-}
-
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
@@ -21,74 +23,49 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
-def mapsProperties = new Properties()
- def localMapsPropertiesFile = rootProject.file('local_maps.properties')
- if (localMapsPropertiesFile.exists()) {
- project.logger.info('Load maps properties from local file')
- localMapsPropertiesFile.withReader('UTF-8') { reader ->
- mapsProperties.load(reader)
- }
- } else {
- project.logger.info('Load maps properties from environment')
- try {
- mapsProperties['MAPS_API_KEY'] = System.getenv('MAPS_API_KEY')
- } catch(NullPointerException e) {
- project.logger.warn('Failed to load MAPS_API_KEY from environment.', e)
- }
- }
-def mapsApiKey = mapsProperties.getProperty('MAPS_API_KEY')
-if(mapsApiKey == null){
- mapsApiKey = ""
- project.logger.error('Google Maps Api Key not configured. Set it in `local_maps.properties` or in the environment variable `MAPS_API_KEY`')
-}
-
-
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
- compileSdkVersion 31
+ namespace 'com.zenithaerospace.monitor'
+
+ compileSdkVersion 34
+ ndkVersion "25.2.9519653"
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
- defaultConfig {
- // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+ defaultConfig {
+ applicationId "com.zenithaerospace.monitor"
+ minSdkVersion 23
+ targetSdkVersion 31
+ multiDexEnabled true
+ versionCode flutterVersionCode.toInteger()
+ versionName flutterVersionName
+// manifestPlaceholders = [MAPS_API_KEY: mapsApiKey]
+ }
+ buildTypes {
+ release {
+ // Configuração de assinatura para o build de release
+ // (Substitua com sua própria configuração de assinatura)
+ signingConfig signingConfigs.debug
+ }
+ }
- applicationId "com.zenithaerospace.monitor"
- minSdkVersion 21
- targetSdkVersion 31
- multiDexEnabled true
- versionCode flutterVersionCode.toInteger()
- versionName flutterVersionName
- manifestPlaceholders = [MAPS_API_KEY: mapsApiKey]
- }
-
- buildTypes {
- release {
- // TODO: Add your own signing config for the release build.
- // Signing with the debug keys for now, so `flutter run --release` works.
- signingConfig signingConfigs.debug
- }
- }
- compileOptions {
- sourceCompatibility 1.8
- targetCompatibility 1.8
- }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_17
+ targetCompatibility JavaVersion.VERSION_17
+ }
}
flutter {
- source '../..'
+ source '../..'
}
dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
- implementation platform('com.google.firebase:firebase-bom:28.4.1')
- implementation 'com.google.firebase:firebase-auth'
- implementation 'com.google.android.gms:play-services-auth:19.2.0'
- implementation 'com.android.support:multidex:1.0.3'
+ implementation platform('com.google.firebase:firebase-bom:33.1.2')
+ implementation 'com.google.firebase:firebase-auth'
+ implementation 'com.google.android.gms:play-services-auth:19.2.0'
+ implementation 'com.android.support:multidex:1.0.3'
}
diff --git a/android/app/google-services.json b/android/app/google-services.json
deleted file mode 100644
index 540495c..0000000
--- a/android/app/google-services.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "project_info": {
- "project_number": "647188572266",
- "firebase_url": "https://zenith-monitor-a0d89.firebaseio.com",
- "project_id": "zenith-monitor-a0d89",
- "storage_bucket": "zenith-monitor-a0d89.appspot.com"
- },
- "client": [
- {
- "client_info": {
- "mobilesdk_app_id": "1:647188572266:android:32f5b010a7468bbf5c0213",
- "android_client_info": {
- "package_name": "com.zenithaerospace.monitor"
- }
- },
- "oauth_client": [
- {
- "client_id": "647188572266-lgq11v9n583h40cp5kikmst94lpd0bbr.apps.googleusercontent.com",
- "client_type": 1,
- "android_info": {
- "package_name": "com.zenithaerospace.monitor",
- "certificate_hash": "91962c976e6dc576832709338bf58626c6de3fd9"
- }
- },
- {
- "client_id": "647188572266-l4inuhtshf3p5cvo5srtao1r7tnvcdfd.apps.googleusercontent.com",
- "client_type": 3
- }
- ],
- "api_key": [
- {
- "current_key": "AIzaSyAdFLNjRj6EtKgvuyeyZZb6lwmSneDCltw"
- }
- ],
- "services": {
- "appinvite_service": {
- "other_platform_oauth_client": [
- {
- "client_id": "647188572266-l4inuhtshf3p5cvo5srtao1r7tnvcdfd.apps.googleusercontent.com",
- "client_type": 3
- }
- ]
- }
- }
- }
- ],
- "configuration_version": "1"
-}
\ No newline at end of file
diff --git a/android/build.gradle b/android/build.gradle
index 3d57536..4c22646 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,17 +1,3 @@
-buildscript {
- ext.kotlin_version = '1.6.10'
- repositories {
- google()
- jcenter()
- }
-
- dependencies {
- classpath 'com.android.tools.build:gradle:4.1.0'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- classpath 'com.google.gms:google-services:4.3.8' // Google Services' plugin
- }
-}
-
allprojects {
repositories {
google()
@@ -21,10 +7,26 @@ allprojects {
rootProject.buildDir = '../build'
subprojects {
+ afterEvaluate { project ->
+ if (project.hasProperty('android')) {
+ project.android {
+ if (namespace == null) {
+ namespace project.group
+ }
+ // Avoid adding android.defaults.buildfeatures.buildconfig=true
+ // to your gradle.properties file because that property is deprecated in AGP 8.0 and is scheduled to be removed in AGP 9.0.
+ buildFeatures {
+ if (buildConfig == null) {
+ buildConfig true
+ }
+ }
+ }
+ }
+ }
project.buildDir = "${rootProject.buildDir}/${project.name}"
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
-}
+}
\ No newline at end of file
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index bc6a58a..acb8e75 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Fri Jun 23 08:50:38 CEST 2017
+#Tue Jul 16 09:50:51 BRT 2024
distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip
distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
+zipStoreBase=GRADLE_USER_HOME
\ No newline at end of file
diff --git a/android/settings.gradle b/android/settings.gradle
index 44e62bc..6c3a7a2 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -1,11 +1,26 @@
-include ':app'
+pluginManagement {
+ def flutterSdkPath = {
+ def properties = new Properties()
+ file("local.properties").withInputStream { properties.load(it) }
+ def flutterSdkPath = properties.getProperty("flutter.sdk")
+ assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
+ return flutterSdkPath
+ }()
-def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
-def properties = new Properties()
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
-assert localPropertiesFile.exists()
-localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
-def flutterSdkPath = properties.getProperty("flutter.sdk")
-assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
-apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
+plugins {
+ id "dev.flutter.flutter-plugin-loader" version "1.0.0"
+ id "com.android.application" version "8.0.2" apply false
+ id "org.jetbrains.kotlin.android" version "1.8.10" apply false
+ id "com.google.gms.google-services" version "4.4.2" apply false
+}
+
+include ":app"
\ No newline at end of file
diff --git a/assets/images/devicon_google.png b/assets/images/devicon_google.png
new file mode 100644
index 0000000..ef466fd
Binary files /dev/null and b/assets/images/devicon_google.png differ
diff --git a/firebase.json b/firebase.json
new file mode 100644
index 0000000..03fb71f
--- /dev/null
+++ b/firebase.json
@@ -0,0 +1 @@
+{"flutter":{"platforms":{"android":{"default":{"projectId":"teste-firebase-zenith","appId":"1:767599767515:android:f96dbb868c7ca38e1e81fe","fileOutput":"android/app/google-services.json"}},"dart":{"lib/firebase_options.dart":{"projectId":"teste-firebase-zenith","configurations":{"android":"1:767599767515:android:f96dbb868c7ca38e1e81fe"}}}}}}
\ No newline at end of file
diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift
new file mode 100644
index 0000000..86a7c3b
--- /dev/null
+++ b/ios/RunnerTests/RunnerTests.swift
@@ -0,0 +1,12 @@
+import Flutter
+import UIKit
+import XCTest
+
+class RunnerTests: XCTestCase {
+
+ func testExample() {
+ // If you add code to the Runner application, consider adding tests here.
+ // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
+ }
+
+}
diff --git a/lib/firebase_options.dart b/lib/firebase_options.dart
index 522e2e9..7d9c2f2 100644
--- a/lib/firebase_options.dart
+++ b/lib/firebase_options.dart
@@ -1,5 +1,5 @@
// File generated by FlutterFire CLI.
-// ignore_for_file: lines_longer_than_80_chars, avoid_classes_with_only_static_members
+// ignore_for_file: type=lint
import 'package:firebase_core/firebase_core.dart' show FirebaseOptions;
import 'package:flutter/foundation.dart'
show defaultTargetPlatform, kIsWeb, TargetPlatform;
@@ -26,12 +26,25 @@ class DefaultFirebaseOptions {
case TargetPlatform.android:
return android;
case TargetPlatform.iOS:
- return ios;
+ throw UnsupportedError(
+ 'DefaultFirebaseOptions have not been configured for ios - '
+ 'you can reconfigure this by running the FlutterFire CLI again.',
+ );
case TargetPlatform.macOS:
throw UnsupportedError(
'DefaultFirebaseOptions have not been configured for macos - '
'you can reconfigure this by running the FlutterFire CLI again.',
);
+ case TargetPlatform.windows:
+ throw UnsupportedError(
+ 'DefaultFirebaseOptions have not been configured for windows - '
+ 'you can reconfigure this by running the FlutterFire CLI again.',
+ );
+ case TargetPlatform.linux:
+ throw UnsupportedError(
+ 'DefaultFirebaseOptions have not been configured for linux - '
+ 'you can reconfigure this by running the FlutterFire CLI again.',
+ );
default:
throw UnsupportedError(
'DefaultFirebaseOptions are not supported for this platform.',
@@ -40,23 +53,10 @@ class DefaultFirebaseOptions {
}
static const FirebaseOptions android = FirebaseOptions(
- apiKey: 'AIzaSyAdFLNjRj6EtKgvuyeyZZb6lwmSneDCltw',
- appId: '1:647188572266:android:32f5b010a7468bbf5c0213',
- messagingSenderId: '647188572266',
- projectId: 'zenith-monitor-a0d89',
- databaseURL: 'https://zenith-monitor-a0d89.firebaseio.com',
- storageBucket: 'zenith-monitor-a0d89.appspot.com',
- );
-
- static const FirebaseOptions ios = FirebaseOptions(
- apiKey: 'AIzaSyDb0CYZjgUE0WzIxc_vfR26VWh08FpRW3g',
- appId: '1:647188572266:ios:3b7c8e4eb2980b995c0213',
- messagingSenderId: '647188572266',
- projectId: 'zenith-monitor-a0d89',
- databaseURL: 'https://zenith-monitor-a0d89.firebaseio.com',
- storageBucket: 'zenith-monitor-a0d89.appspot.com',
- androidClientId: '647188572266-j3201qobbgvq19oqso8978l6t62tl13q.apps.googleusercontent.com',
- iosClientId: '647188572266-c0r04kh4gg2f4jq60mg1dari157af9s9.apps.googleusercontent.com',
- iosBundleId: 'com.example.zenithMonitor',
+ apiKey: 'AIzaSyAeOmRf75mRRVoXO1g4cm6wqVUoOuUf97I',
+ appId: '1:767599767515:android:f96dbb868c7ca38e1e81fe',
+ messagingSenderId: '767599767515',
+ projectId: 'teste-firebase-zenith',
+ storageBucket: 'teste-firebase-zenith.appspot.com',
);
}
diff --git a/lib/main.dart b/lib/main.dart
index 488dd0a..8f7d4c1 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
+import 'package:zenith_monitor/utils/services/authentication/google_auth.dart';
import 'package:zenith_monitor/utils/services/firestore_services/firestore_services.dart';
import 'package:zenith_monitor/widgets/not_found_screen.dart';
import 'firebase_options.dart';
@@ -45,7 +46,7 @@ class Application extends StatelessWidget {
FirestoreServices fireServices = FirestoreServices();
return MultiBlocProvider(
providers: [
- BlocProvider(create: (context) => LoginBloc()),
+ BlocProvider(create: (context) => LoginBloc(auth: GoogleAuth())),
BlocProvider(
create: (context) =>
DataBloc(usbManager: usbManager, fireServices: fireServices)),
@@ -77,7 +78,7 @@ class Application extends StatelessWidget {
routes: {
'/login': (context) => const LoginScreen(),
'/signup': (context) => const SignUpScreen(),
- '/forgotPwd': (context) => const ForgotMyPassword(),
+ // '/forgotPwd': (context) => const ForgotMyPassword(),
'/map': (context) => const MapScreen(),
'/configuration': (context) => ConfigurationScreen(),
'/terminal': (context) => const TerminalScreen(),
diff --git a/lib/modules/configuration/bloc/mission_controller/mission_variables_bloc.dart b/lib/modules/configuration/bloc/mission_controller/mission_variables_bloc.dart
index a6720df..5a6da25 100644
--- a/lib/modules/configuration/bloc/mission_controller/mission_variables_bloc.dart
+++ b/lib/modules/configuration/bloc/mission_controller/mission_variables_bloc.dart
@@ -35,7 +35,7 @@ class MissionVariablesBloc
(result == ConnectivityResult.none) ? false : true;
add(ConnectionChanged());
- });
+ } as void Function(List event)?);
dataBloc.stream.listen((event) {
if (event is UsbDisconnectedState) {
@@ -48,7 +48,6 @@ class MissionVariablesBloc
});
}
- @override
Stream mapEventToState(
MissionVariablesEvent event) async* {
if (event is AddStandardVariableEvent) {
diff --git a/lib/modules/configuration/screen/configuration_screen.dart b/lib/modules/configuration/screen/configuration_screen.dart
index 4225048..2266c63 100644
--- a/lib/modules/configuration/screen/configuration_screen.dart
+++ b/lib/modules/configuration/screen/configuration_screen.dart
@@ -66,7 +66,9 @@ class ConfigurationScreen extends StatelessWidget {
(MissionVariablesBloc bloc) =>
bloc.connections);
return FutureBuilder(
- future: Connectivity().checkConnectivity(),
+ future: Connectivity()
+ .checkConnectivity()
+ .then((results) => results.first),
builder: (BuildContext context,
AsyncSnapshot
snapshot) {
diff --git a/lib/modules/forget_password/bloc/forgot_pwd_bloc.dart b/lib/modules/forget_password/bloc/forgot_pwd_bloc.dart
index 0896e04..21ca8e7 100644
--- a/lib/modules/forget_password/bloc/forgot_pwd_bloc.dart
+++ b/lib/modules/forget_password/bloc/forgot_pwd_bloc.dart
@@ -1,29 +1,29 @@
-import 'package:bloc/bloc.dart';
-import 'package:zenith_monitor/utils/services/authentication/authentication_exceptions.dart';
-import 'package:zenith_monitor/utils/services/authentication/email_password_auth.dart';
+// import 'package:bloc/bloc.dart';
+// import 'package:zenith_monitor/utils/services/authentication/authentication_exceptions.dart';
+// // import 'package:zenith_monitor/utils/services/authentication/email_password_auth.dart';
-part 'forgot_pwd_state.dart';
-part 'forgot_pwd_event.dart';
+// part 'forgot_pwd_state.dart';
+// part 'forgot_pwd_event.dart';
-class ForgotPwdBloc extends Bloc {
- ForgotPwdBloc() : super(ForgotPwdInitialState());
+// class ForgotPwdBloc extends Bloc {
+// ForgotPwdBloc() : super(ForgotPwdInitialState());
- @override
- Stream mapEventToState(ForgotPwdEvent event) async* {
- if (event is PwdResetEmail) {
- yield LoadingState();
- EmailAndPasswordAuth _auth = EmailAndPasswordAuth();
- try {
- await _auth.resetPassword(event.email);
- yield ForgotPwdSuccess();
- } on UserNotFound {
- yield ForgotPwdError(errorMessage: "Usuário não encontrado");
- } on EmailBadlyFormatted {
- yield ForgotPwdError(
- errorMessage: "O email não está na formatação correta");
- } catch (e) {
- print(e.toString());
- }
- }
- }
-}
+// @override
+// Stream mapEventToState(ForgotPwdEvent event) async* {
+// if (event is PwdResetEmail) {
+// yield LoadingState();
+// EmailAndPasswordAuth _auth = EmailAndPasswordAuth();
+// try {
+// await _auth.resetPassword(event.email);
+// yield ForgotPwdSuccess();
+// } on UserNotFound {
+// yield ForgotPwdError(errorMessage: "Usuário não encontrado");
+// } on EmailBadlyFormatted {
+// yield ForgotPwdError(
+// errorMessage: "O email não está na formatação correta");
+// } catch (e) {
+// print(e.toString());
+// }
+// }
+// }
+// }
diff --git a/lib/modules/forget_password/screen/forgot_my_password_screen.dart b/lib/modules/forget_password/screen/forgot_my_password_screen.dart
index 24ecdde..4bdb3a0 100644
--- a/lib/modules/forget_password/screen/forgot_my_password_screen.dart
+++ b/lib/modules/forget_password/screen/forgot_my_password_screen.dart
@@ -1,48 +1,48 @@
-import 'package:flutter/material.dart';
-import 'package:flutter_bloc/flutter_bloc.dart';
-import 'package:zenith_monitor/constants/colors_constants.dart';
-import 'package:zenith_monitor/modules/forget_password/bloc/forgot_pwd_bloc.dart';
-import 'package:zenith_monitor/utils/ui/animations/zenith_progress_indicator.dart';
-import 'package:zenith_monitor/widgets/forgot_my_password.dart';
+// import 'package:flutter/material.dart';
+// import 'package:flutter_bloc/flutter_bloc.dart';
+// import 'package:zenith_monitor/constants/colors_constants.dart';
+// import 'package:zenith_monitor/modules/forget_password/bloc/forgot_pwd_bloc.dart';
+// import 'package:zenith_monitor/utils/ui/animations/zenith_progress_indicator.dart';
+// import 'package:zenith_monitor/widgets/forgot_my_password.dart';
-class ForgotMyPassword extends StatelessWidget {
- const ForgotMyPassword();
+// class ForgotMyPassword extends StatelessWidget {
+// const ForgotMyPassword();
- @override
- Widget build(BuildContext context) {
- return BlocProvider(
- create: (context) => ForgotPwdBloc(),
- child: SafeArea(
- child: Scaffold(
- body: BlocBuilder(
- builder: (context, state) {
- String? statusMessage;
- Color? messageColor;
- if (state is LoadingState) {
- return const ZenithProgressIndicator(
- size: 100, fileName: "z_icon_white.png");
- }
- if (state is ForgotPwdSuccess) {
- statusMessage =
- "Um email para recuperação de senha foi enviado com sucesso";
- messageColor = mantisGreen;
- }
+// @override
+// Widget build(BuildContext context) {
+// return BlocProvider(
+// create: (context) => ForgotPwdBloc(),
+// child: SafeArea(
+// child: Scaffold(
+// body: BlocBuilder(
+// builder: (context, state) {
+// String? statusMessage;
+// Color? messageColor;
+// if (state is LoadingState) {
+// return const ZenithProgressIndicator(
+// size: 100, fileName: "z_icon_white.png");
+// }
+// if (state is ForgotPwdSuccess) {
+// statusMessage =
+// "Um email para recuperação de senha foi enviado com sucesso";
+// messageColor = mantisGreen;
+// }
- if (state is ForgotPwdError) {
- statusMessage = state.errorMessage;
- messageColor = lightCoral;
- }
- return ForgotMyPasswordBody(
- screenWidth: MediaQuery.of(context).size.width,
- screenHeight: MediaQuery.of(context).size.height,
- deviceOrientation: MediaQuery.of(context).orientation,
- statusMessage: statusMessage,
- messageColor: messageColor,
- );
- },
- ),
- backgroundColor: eerieBlack,
- )),
- );
- }
-}
+// if (state is ForgotPwdError) {
+// statusMessage = state.errorMessage;
+// messageColor = lightCoral;
+// }
+// return ForgotMyPasswordBody(
+// screenWidth: MediaQuery.of(context).size.width,
+// screenHeight: MediaQuery.of(context).size.height,
+// deviceOrientation: MediaQuery.of(context).orientation,
+// statusMessage: statusMessage,
+// messageColor: messageColor,
+// );
+// },
+// ),
+// backgroundColor: eerieBlack,
+// )),
+// );
+// }
+// }
diff --git a/lib/modules/login/bloc/login_bloc.dart b/lib/modules/login/bloc/login_bloc.dart
index f14e08a..9b54350 100644
--- a/lib/modules/login/bloc/login_bloc.dart
+++ b/lib/modules/login/bloc/login_bloc.dart
@@ -2,73 +2,43 @@ import 'package:bloc/bloc.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:zenith_monitor/modules/login/screen/login_screen.dart';
-import 'package:zenith_monitor/utils/mixins/class_local_user.dart';
import 'package:zenith_monitor/utils/services/authentication/authentication.dart';
-import 'package:zenith_monitor/utils/services/authentication/email_password_auth.dart';
-import 'package:zenith_monitor/utils/services/authentication/authentication_exceptions.dart';
-import 'package:zenith_monitor/utils/services/authentication/facebook_auth.dart';
import 'package:zenith_monitor/utils/services/authentication/google_auth.dart';
import 'package:zenith_monitor/utils/services/user_firestore/user_document.dart';
-import 'package:zenith_monitor/utils/services/user_firestore/user_document_exceptions.dart';
-import 'package:zenith_monitor/utils/services/user_storage/user_storage.dart';
+import 'package:zenith_monitor/utils/mixins/class_local_user.dart';
part 'login_state.dart';
part 'login_event.dart';
class LoginBloc extends Bloc {
- LoginBloc() : super(LoginInitialState());
+ late final Authentication _auth;
- late LocalUser _user;
- late Authentication _auth;
+ LoginBloc({required Authentication auth})
+ : _auth = auth,
+ super(LoginInitialState()) {
+ on(_onGoogleLogin);
+ on(_onSignOut);
+ }
- @override
- Stream mapEventToState(LoginEvent event) async* {
- if (event is AuthenticationEvent) {
- yield LoadingState();
- try {
- await event.loginCall();
- _user = await event.getUser();
- _auth = event.auth;
- yield LoginSuccess(_user);
- } on WrongPassword {
- yield LoginError(errorMessage: "Senha errada");
- } on UserNotFound {
- yield LoginError(errorMessage: "Usuário não encontrado");
- } on EmailBadlyFormatted {
- yield LoginError(
- errorMessage: "O email não está na formatação correta");
- } on NullUser {
- yield LoginError(
- errorMessage:
- "Algum problema ocorreu durante a autenticação do usuário");
- } on EmailNotVerified {
- yield LoginError(
- errorMessage: "O email do usuário ainda não foi autenticado");
- } on UserFileNotFound {
- yield LoginError(
- errorMessage:
- "Os dados do usuário não foram encontrados. Por favor, forneça-os novamente");
- //apresentar janela para fornecimento dos dados
- } on AnotherCredentialUsed {
- yield LoginError(
- errorMessage:
- "O email associado a este método de autenticação já foi utilizado em outro método. Por favor, utilize outro método.");
- } on FirebaseProblem catch (e) {
- print(e.errorType());
- yield LoginError(
- errorMessage:
- "Um problema ocorreu durante a utilização do banco de dados. Verifique se o email fornecido foi verificado.");
- } catch (e) {
- print(e.toString());
- yield LoginError(errorMessage: "Erro desconhecido");
- }
- } else if (event is SignOutEvent) {
- await _auth.signOut();
- Navigator.pushAndRemoveUntil(
- event.context,
- MaterialPageRoute(
- builder: (BuildContext context) => const LoginScreen()),
- ModalRoute.withName('/login'));
+ Future _onGoogleLogin(
+ GoogleLoginEvent event, Emitter emit) async {
+ emit(LoadingState());
+ try {
+ await event.loginCall();
+ LocalUser user = await event.getUser();
+ emit(LoginSuccess(user));
+ } catch (e) {
+ emit(LoginError(errorMessage: "Erro ao tentar fazer login: $e"));
}
}
+
+ Future _onSignOut(SignOutEvent event, Emitter emit) async {
+ await _auth.signOut();
+ Navigator.pushAndRemoveUntil(
+ // ignore: use_build_context_synchronously
+ event.context,
+ MaterialPageRoute(builder: (BuildContext context) => const LoginScreen()),
+ ModalRoute.withName('/login'),
+ );
+ }
}
diff --git a/lib/modules/login/bloc/login_event.dart b/lib/modules/login/bloc/login_event.dart
index ad2f0b3..919ed78 100644
--- a/lib/modules/login/bloc/login_event.dart
+++ b/lib/modules/login/bloc/login_event.dart
@@ -3,7 +3,7 @@ part of 'login_bloc.dart';
abstract class LoginEvent {}
abstract class AuthenticationEvent extends LoginEvent {
- Authentication auth;
+ final Authentication auth;
AuthenticationEvent({required this.auth});
@@ -11,37 +11,12 @@ abstract class AuthenticationEvent extends LoginEvent {
Future getUser();
}
-class EmailLoginEvent extends AuthenticationEvent {
- String email;
- String password;
-
- EmailLoginEvent({required this.email, required this.password})
- : super(auth: EmailAndPasswordAuth());
-
- @override
- Future loginCall() async {
- await EmailAndPasswordAuth().signIn(email, password);
- }
-
- @override
- Future getUser() async {
- UserDocument userDocument = UserDocument(authMethod: auth);
- DocumentSnapshot? userDocSnap =
- await userDocument.getUserFirebaseDocument();
- if (userDocSnap == null) {
- await UserStorage().uploadImage();
- }
-
- return await userDocument.getUserFirestore(userDocSnap);
- }
-}
-
class GoogleLoginEvent extends AuthenticationEvent {
GoogleLoginEvent() : super(auth: GoogleAuth());
@override
Future loginCall() async {
- await GoogleAuth().signInwithGoogle();
+ await auth.signInWithGoogle();
}
@override
@@ -53,20 +28,8 @@ class GoogleLoginEvent extends AuthenticationEvent {
}
}
-class FacebookLoginEvent extends AuthenticationEvent {
- FacebookLoginEvent() : super(auth: FacebookAuth());
- @override
- Future loginCall() async {
- await FacebookAuth().signInWithFacebook();
- }
-
- @override
- Future getUser() async {
- return await auth.getUserAuthentication();
- }
-}
-
class SignOutEvent extends LoginEvent {
- BuildContext context;
+ final BuildContext context;
+
SignOutEvent({required this.context});
}
diff --git a/lib/modules/login/bloc/login_state.dart b/lib/modules/login/bloc/login_state.dart
index c9d8df8..fe9d271 100644
--- a/lib/modules/login/bloc/login_state.dart
+++ b/lib/modules/login/bloc/login_state.dart
@@ -1,13 +1,15 @@
part of 'login_bloc.dart';
abstract class LoginState {
- LocalUser? user;
+ late final LocalUser? user;
+
+ LoginState({this.user});
}
class LoginInitialState extends LoginState {}
class LoginError extends LoginState {
- String errorMessage;
+ final String errorMessage;
LoginError({required this.errorMessage});
}
@@ -15,7 +17,5 @@ class LoginError extends LoginState {
class LoadingState extends LoginState {}
class LoginSuccess extends LoginState {
- LoginSuccess(LocalUser newUser) {
- user = newUser;
- }
+ LoginSuccess(LocalUser newUser) : super(user: newUser);
}
diff --git a/lib/modules/login/screen/login_screen.dart b/lib/modules/login/screen/login_screen.dart
index 878ebaa..3322976 100644
--- a/lib/modules/login/screen/login_screen.dart
+++ b/lib/modules/login/screen/login_screen.dart
@@ -7,5 +7,26 @@ class LoginScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return const LoginWidget();
+ // final ButtonStyle style =
+ // ElevatedButton.styleFrom(textStyle: const TextStyle(fontSize: 20));
+ // return Center(
+ // child: Column(
+ // mainAxisSize: MainAxisSize.min,
+ // children: [
+ // ElevatedButton(
+ // style: style,
+ // onPressed: () {},
+ // child: Row(
+ // mainAxisSize: MainAxisSize.min,
+ // children: [
+ // Image.asset('assets/images/devicon_google.png', height: 20),
+ // const SizedBox(width: 10),
+ // const Text('Entrar com o Google'),
+ // ],
+ // ),
+ // ),
+ // ],
+ // ),
+ // );
}
}
diff --git a/lib/modules/signup/bloc/sign_up_bloc.dart b/lib/modules/signup/bloc/sign_up_bloc.dart
index 0a582f2..6bb9d5f 100644
--- a/lib/modules/signup/bloc/sign_up_bloc.dart
+++ b/lib/modules/signup/bloc/sign_up_bloc.dart
@@ -3,7 +3,7 @@ import 'dart:io';
import 'package:bloc/bloc.dart';
import 'package:image_picker/image_picker.dart';
import 'package:zenith_monitor/utils/mixins/class_local_user.dart';
-import 'package:zenith_monitor/utils/services/authentication/email_password_auth.dart';
+// import 'package:zenith_monitor/utils/services/authentication/email_password_auth.dart';
import 'package:zenith_monitor/utils/services/authentication/authentication_exceptions.dart';
import 'package:zenith_monitor/utils/services/user_storage/user_storage.dart';
@@ -13,11 +13,10 @@ part 'sign_up_event.dart';
class SignUpBloc extends Bloc {
SignUpBloc() : super(SignUpInitial());
- EmailAndPasswordAuth auth = EmailAndPasswordAuth();
+ // EmailAndPasswordAuth auth = EmailAndPasswordAuth();
UserStorage storage = UserStorage();
File? profileImage;
- @override
Stream mapEventToState(SignUpEvent event) async* {
if (event is UserRegisterEvent) {
yield LoadingState();
@@ -29,7 +28,7 @@ class SignUpBloc extends Bloc {
if (event.password != event.pwdConfirmation) {
yield SignUpError(errorMessage: "As senhas não batem");
} else {
- await auth.register(event.newUser, event.password);
+ // await auth.register(event.newUser, event.password);
yield SuccessfulSignup();
}
} on WeakPassword {
diff --git a/lib/utils/helpers/calc_text_size.dart b/lib/utils/helpers/calc_text_size.dart
index 3599a55..634b7b3 100644
--- a/lib/utils/helpers/calc_text_size.dart
+++ b/lib/utils/helpers/calc_text_size.dart
@@ -1,11 +1,15 @@
+import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import 'package:flutter/widgets.dart';
/// The function calcTextSize is used to get the size of a string based on its TextStyle
Size calcTextSize(String text, TextStyle style) {
+ // TextScaler textScaler = TextScaler(WidgetsBinding.instance!.window.scale);
+
final TextPainter textPainter = TextPainter(
text: TextSpan(text: text, style: style),
textDirection: TextDirection.ltr,
- textScaleFactor: WidgetsBinding.instance!.window.textScaleFactor,
+ textScaler: TextScaler.noScaling,
)..layout();
return textPainter.size;
}
diff --git a/lib/utils/services/authentication/authentication.dart b/lib/utils/services/authentication/authentication.dart
index 5905bb4..65ad341 100644
--- a/lib/utils/services/authentication/authentication.dart
+++ b/lib/utils/services/authentication/authentication.dart
@@ -1,9 +1,11 @@
import 'package:cloud_firestore/cloud_firestore.dart';
+import 'package:firebase_auth/firebase_auth.dart';
import 'package:zenith_monitor/utils/mixins/class_local_user.dart';
abstract class Authentication {
String type = "";
+ Future signInWithGoogle();
Future getUserAuthentication();
Future userCreationConditions(DocumentSnapshot? userDoc);
diff --git a/lib/utils/services/authentication/email_password_auth.dart b/lib/utils/services/authentication/email_password_auth.dart
index 51f96e5..8c51965 100644
--- a/lib/utils/services/authentication/email_password_auth.dart
+++ b/lib/utils/services/authentication/email_password_auth.dart
@@ -1,107 +1,107 @@
-import 'package:cloud_firestore/cloud_firestore.dart';
-import 'package:firebase_auth/firebase_auth.dart';
-import 'package:zenith_monitor/utils/mixins/class_local_user.dart';
-import 'package:zenith_monitor/utils/mixins/class_user_file.dart';
-import 'package:zenith_monitor/utils/services/authentication/authentication.dart';
-import 'package:zenith_monitor/utils/services/authentication/authentication_exceptions.dart';
-import 'package:zenith_monitor/utils/services/user_firestore/user_document_exceptions.dart';
+// import 'package:cloud_firestore/cloud_firestore.dart';
+// import 'package:firebase_auth/firebase_auth.dart';
+// import 'package:zenith_monitor/utils/mixins/class_local_user.dart';
+// import 'package:zenith_monitor/utils/mixins/class_user_file.dart';
+// import 'package:zenith_monitor/utils/services/authentication/authentication.dart';
+// import 'package:zenith_monitor/utils/services/authentication/authentication_exceptions.dart';
+// import 'package:zenith_monitor/utils/services/user_firestore/user_document_exceptions.dart';
-class EmailAndPasswordAuth extends Authentication {
- final FirebaseAuth _auth = FirebaseAuth.instance;
- final UserFile userFile = UserFile();
+// class EmailAndPasswordAuth extends Authentication {
+// final FirebaseAuth _auth = FirebaseAuth.instance;
+// final UserFile userFile = UserFile();
- EmailAndPasswordAuth() {
- type = "Email and Password";
- }
+// EmailAndPasswordAuth() {
+// type = "Email and Password";
+// }
- Future register(LocalUser newUser, String password) async {
- try {
- await _auth.createUserWithEmailAndPassword(
- email: newUser.getEmail(), password: password);
- User? firebaseUser = _auth.currentUser;
+// Future register(LocalUser newUser, String password) async {
+// try {
+// await _auth.createUserWithEmailAndPassword(
+// email: newUser.getEmail(), password: password);
+// User? firebaseUser = _auth.currentUser;
- if (firebaseUser != null) {
- if (!firebaseUser.emailVerified) {
- await firebaseUser.sendEmailVerification();
- }
+// if (firebaseUser != null) {
+// if (!firebaseUser.emailVerified) {
+// await firebaseUser.sendEmailVerification();
+// }
- firebaseUser.updateDisplayName(newUser.getCompleteName());
- firebaseUser.updateEmail(newUser.getEmail());
- firebaseUser.updatePhotoURL(newUser.getImageLink());
- userFile.writeUser(newUser);
- _auth.signOut();
- }
- } on FirebaseAuthException catch (e) {
- if (e.code == 'weak-password') {
- throw WeakPassword();
- } else if (e.code == 'email-already-in-use') {
- throw EmailAlreadyInUse();
- } else if (e.code == "invalid-email") {
- throw EmailBadlyFormatted();
- } else if (e.code == "invalid-email-verified") {
- print("Erro invalid-email-verified");
- }
- throw FirebaseProblem(isFirebaseException: true, errorMsg: e.toString());
- } catch (e) {
- throw FirebaseProblem(isFirebaseException: false, errorMsg: e.toString());
- }
- }
+// firebaseUser.updateDisplayName(newUser.getCompleteName());
+// firebaseUser.updateEmail(newUser.getEmail());
+// firebaseUser.updatePhotoURL(newUser.getImageLink());
+// userFile.writeUser(newUser);
+// _auth.signOut();
+// }
+// } on FirebaseAuthException catch (e) {
+// if (e.code == 'weak-password') {
+// throw WeakPassword();
+// } else if (e.code == 'email-already-in-use') {
+// throw EmailAlreadyInUse();
+// } else if (e.code == "invalid-email") {
+// throw EmailBadlyFormatted();
+// } else if (e.code == "invalid-email-verified") {
+// print("Erro invalid-email-verified");
+// }
+// throw FirebaseProblem(isFirebaseException: true, errorMsg: e.toString());
+// } catch (e) {
+// throw FirebaseProblem(isFirebaseException: false, errorMsg: e.toString());
+// }
+// }
- Future signIn(String email, String password) async {
- try {
- await _auth.signInWithEmailAndPassword(email: email, password: password);
- } on FirebaseAuthException catch (e) {
- if (e.code == "wrong-password") {
- throw WrongPassword();
- } else if (e.code == "user-not-found") {
- throw UserNotFound();
- } else if (e.code == "invalid-email") {
- throw EmailBadlyFormatted();
- }
- throw FirebaseProblem(isFirebaseException: true, errorMsg: e.toString());
- } catch (e) {
- throw FirebaseProblem(isFirebaseException: false, errorMsg: e.toString());
- }
- }
+// Future signIn(String email, String password) async {
+// try {
+// await _auth.signInWithEmailAndPassword(email: email, password: password);
+// } on FirebaseAuthException catch (e) {
+// if (e.code == "wrong-password") {
+// throw WrongPassword();
+// } else if (e.code == "user-not-found") {
+// throw UserNotFound();
+// } else if (e.code == "invalid-email") {
+// throw EmailBadlyFormatted();
+// }
+// throw FirebaseProblem(isFirebaseException: true, errorMsg: e.toString());
+// } catch (e) {
+// throw FirebaseProblem(isFirebaseException: false, errorMsg: e.toString());
+// }
+// }
- Future resetPassword(String email) async {
- try {
- await _auth.sendPasswordResetEmail(email: email);
- } on FirebaseAuthException catch (e) {
- if (e.code == "user-not-found") {
- throw UserNotFound();
- } else if (e.code == "invalid-email") {
- throw EmailBadlyFormatted();
- }
- throw FirebaseProblem(isFirebaseException: true, errorMsg: e.toString());
- } catch (e) {
- throw FirebaseProblem(isFirebaseException: false, errorMsg: e.toString());
- }
- }
+// Future resetPassword(String email) async {
+// try {
+// await _auth.sendPasswordResetEmail(email: email);
+// } on FirebaseAuthException catch (e) {
+// if (e.code == "user-not-found") {
+// throw UserNotFound();
+// } else if (e.code == "invalid-email") {
+// throw EmailBadlyFormatted();
+// }
+// throw FirebaseProblem(isFirebaseException: true, errorMsg: e.toString());
+// } catch (e) {
+// throw FirebaseProblem(isFirebaseException: false, errorMsg: e.toString());
+// }
+// }
- @override
- Future userCreationConditions(DocumentSnapshot? userDoc) async {
- if (userDoc == null ||
- !(userDoc.exists) ||
- userDoc.get('created_with') != "Email and Password") {
- LocalUser newUser = await getUserAuthentication();
+// @override
+// Future userCreationConditions(DocumentSnapshot? userDoc) async {
+// if (userDoc == null ||
+// !(userDoc.exists) ||
+// userDoc.get('created_with') != "Email and Password") {
+// LocalUser newUser = await getUserAuthentication();
- return newUser;
- }
+// return newUser;
+// }
- return null;
- }
+// return null;
+// }
- @override
- Future getUserAuthentication() async {
- UserFile file = UserFile();
- LocalUser? newUser = await file.readUser();
- if (newUser == null) throw UserFileNotFound();
- return newUser;
- }
+// @override
+// Future getUserAuthentication() async {
+// UserFile file = UserFile();
+// LocalUser? newUser = await file.readUser();
+// if (newUser == null) throw UserFileNotFound();
+// return newUser;
+// }
- @override
- Future signOut() async {
- await _auth.signOut();
- }
-}
+// @override
+// Future signOut() async {
+// await _auth.signOut();
+// }
+// }
diff --git a/lib/utils/services/authentication/facebook_auth.dart b/lib/utils/services/authentication/facebook_auth.dart
index e3537e1..ca72b42 100644
--- a/lib/utils/services/authentication/facebook_auth.dart
+++ b/lib/utils/services/authentication/facebook_auth.dart
@@ -1,75 +1,75 @@
-import 'package:cloud_firestore/cloud_firestore.dart';
-import 'package:firebase_auth/firebase_auth.dart';
-import 'package:flutter_facebook_auth/flutter_facebook_auth.dart'
- as facebook_auth_method;
-import 'package:zenith_monitor/utils/mixins/class_local_user.dart';
-import 'package:zenith_monitor/utils/services/user_firestore/user_document_exceptions.dart';
-import 'package:zenith_monitor/utils/services/authentication/authentication_exceptions.dart';
-import 'authentication.dart';
-
-/// Facebook's authentication has the problem that the current User has
-/// its verified email property set to false. That's why it was chosen
-/// not to use the user provided by Facebook as a way to write Firebase
-/// documents.
-
-class FacebookAuth extends Authentication {
- final FirebaseAuth _auth = FirebaseAuth.instance;
- final facebook_auth_method.FacebookAuth _facebookAuth =
- facebook_auth_method.FacebookAuth.instance;
-
- FacebookAuth() {
- type = "Facebook";
- }
-
- Future signInWithFacebook() async {
- try {
- final facebook_auth_method.LoginResult result =
- await _facebookAuth.login();
-
- if (result.status == facebook_auth_method.LoginStatus.success) {
- final AuthCredential facebookCredential =
- FacebookAuthProvider.credential(result.accessToken!.token);
- await _auth.signInWithCredential(facebookCredential);
- } else if (result.status == facebook_auth_method.LoginStatus.cancelled) {
- print(result.message);
- } else if (result.status == facebook_auth_method.LoginStatus.failed) {
- print(result.message);
- }
- } on FirebaseAuthException catch (e) {
- if (e.code == "account-exists-with-different-credential") {
- throw AnotherCredentialUsed();
- }
-
- throw FirebaseProblem(isFirebaseException: true, errorMsg: e.toString());
- } catch (e) {
- print(e.toString());
- throw FirebaseProblem(isFirebaseException: false, errorMsg: e.toString());
- }
- }
-
- @override
- Future signOut() async {
- await _facebookAuth.logOut();
- await _auth.signOut();
- }
-
- /// This method is not even necessary here,
- /// it's used in Google and EmailAndPassword
- /// authentication only.
- @override
- Future userCreationConditions(DocumentSnapshot? userDoc) async {
- return null;
- }
-
- @override
- Future getUserAuthentication() async {
- if (_auth.currentUser == null) throw NullUser();
-
- final Map userData = await _facebookAuth.getUserData();
-
- LocalUser user = LocalUser(userData["name"], "", userData["email"],
- imageLink: userData["picture"]["data"]["url"]);
- user.setAccessLevel("Normal User");
- return user;
- }
-}
+// import 'package:cloud_firestore/cloud_firestore.dart';
+// import 'package:firebase_auth/firebase_auth.dart';
+// import 'package:flutter_facebook_auth/flutter_facebook_auth.dart'
+// as facebook_auth_method;
+// import 'package:zenith_monitor/utils/mixins/class_local_user.dart';
+// import 'package:zenith_monitor/utils/services/user_firestore/user_document_exceptions.dart';
+// import 'package:zenith_monitor/utils/services/authentication/authentication_exceptions.dart';
+// import 'authentication.dart';
+//
+// /// Facebook's authentication has the problem that the current User has
+// /// its verified email property set to false. That's why it was chosen
+// /// not to use the user provided by Facebook as a way to write Firebase
+// /// documents.
+//
+// class FacebookAuth extends Authentication {
+// final FirebaseAuth _auth = FirebaseAuth.instance;
+// final facebook_auth_method.FacebookAuth _facebookAuth =
+// facebook_auth_method.FacebookAuth.instance;
+//
+// FacebookAuth() {
+// type = "Facebook";
+// }
+//
+// Future signInWithFacebook() async {
+// try {
+// final facebook_auth_method.LoginResult result =
+// await _facebookAuth.login();
+//
+// if (result.status == facebook_auth_method.LoginStatus.success) {
+// final AuthCredential facebookCredential =
+// FacebookAuthProvider.credential(result.accessToken!.token);
+// await _auth.signInWithCredential(facebookCredential);
+// } else if (result.status == facebook_auth_method.LoginStatus.cancelled) {
+// print(result.message);
+// } else if (result.status == facebook_auth_method.LoginStatus.failed) {
+// print(result.message);
+// }
+// } on FirebaseAuthException catch (e) {
+// if (e.code == "account-exists-with-different-credential") {
+// throw AnotherCredentialUsed();
+// }
+//
+// throw FirebaseProblem(isFirebaseException: true, errorMsg: e.toString());
+// } catch (e) {
+// print(e.toString());
+// throw FirebaseProblem(isFirebaseException: false, errorMsg: e.toString());
+// }
+// }
+//
+// @override
+// Future signOut() async {
+// await _facebookAuth.logOut();
+// await _auth.signOut();
+// }
+//
+// /// This method is not even necessary here,
+// /// it's used in Google and EmailAndPassword
+// /// authentication only.
+// @override
+// Future userCreationConditions(DocumentSnapshot? userDoc) async {
+// return null;
+// }
+//
+// @override
+// Future getUserAuthentication() async {
+// if (_auth.currentUser == null) throw NullUser();
+//
+// final Map userData = await _facebookAuth.getUserData();
+//
+// LocalUser user = LocalUser(userData["name"], "", userData["email"],
+// imageLink: userData["picture"]["data"]["url"]);
+// user.setAccessLevel("Normal User");
+// return user;
+// }
+// }
diff --git a/lib/utils/services/authentication/google_auth.dart b/lib/utils/services/authentication/google_auth.dart
index 61eac86..fad548a 100644
--- a/lib/utils/services/authentication/google_auth.dart
+++ b/lib/utils/services/authentication/google_auth.dart
@@ -13,24 +13,23 @@ class GoogleAuth extends Authentication {
type = "Google";
}
- Future signInwithGoogle() async {
- try {
- final GoogleSignInAccount? googleSignInAccount =
- await _googleSignIn.signIn();
- final GoogleSignInAuthentication googleSignInAuthentication =
- await googleSignInAccount!.authentication;
- final AuthCredential credential = GoogleAuthProvider.credential(
- accessToken: googleSignInAuthentication.accessToken,
- idToken: googleSignInAuthentication.idToken,
- );
+ @override
+ Future signInWithGoogle() async {
+ // Trigger the authentication flow
+ final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
- await _auth.signInWithCredential(credential);
- } on FirebaseAuthException catch (e) {
- throw FirebaseProblem(isFirebaseException: true, errorMsg: e.toString());
- } catch (e) {
- print(e.toString());
- throw FirebaseProblem(isFirebaseException: false, errorMsg: e.toString());
- }
+ // Obtain the auth details from the request
+ final GoogleSignInAuthentication? googleAuth =
+ await googleUser?.authentication;
+
+ // Create a new credential
+ final credential = GoogleAuthProvider.credential(
+ accessToken: googleAuth?.accessToken,
+ idToken: googleAuth?.idToken,
+ );
+
+ // Once signed in, return the UserCredential
+ return await FirebaseAuth.instance.signInWithCredential(credential);
}
@override
diff --git a/lib/utils/services/user_storage/user_storage.dart b/lib/utils/services/user_storage/user_storage.dart
index 9596c13..9b5b8a1 100644
--- a/lib/utils/services/user_storage/user_storage.dart
+++ b/lib/utils/services/user_storage/user_storage.dart
@@ -1,12 +1,10 @@
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart';
-import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:image_cropper/image_cropper.dart';
import 'package:image_picker/image_picker.dart';
import 'dart:io';
-import 'package:zenith_monitor/constants/colors_constants.dart';
import 'package:zenith_monitor/utils/mixins/class_local_user.dart';
import 'package:zenith_monitor/utils/mixins/class_user_file.dart';
import 'package:zenith_monitor/utils/services/user_firestore/user_document_exceptions.dart';
@@ -64,19 +62,19 @@ class UserStorage {
Future cropImage(File image) async {
try {
- File? cropped = await ImageCropper().cropImage(
+ File? cropped = (await ImageCropper().cropImage(
sourcePath: image.path,
- cropStyle: CropStyle.circle,
+ // cropStyle: CropStyle.circle,
aspectRatio: const CropAspectRatio(ratioX: 1, ratioY: 1),
compressQuality: 100,
maxHeight: 700,
maxWidth: 700,
- androidUiSettings: const AndroidUiSettings(
- toolbarColor: Colors.black,
- toolbarWidgetColor: white,
- hideBottomControls: true,
- ),
- );
+ // androidUiSettings: const AndroidUiSettings(
+ // toolbarColor: Colors.black,
+ // toolbarWidgetColor: white,
+ // hideBottomControls: true,
+ // ),
+ )) as File?;
return cropped;
} catch (e) {
print(e.toString());
diff --git a/lib/widgets/elevated_button_container.dart b/lib/widgets/elevated_button_container.dart
index 2db420f..e8b7f79 100644
--- a/lib/widgets/elevated_button_container.dart
+++ b/lib/widgets/elevated_button_container.dart
@@ -35,8 +35,8 @@ class ElevatedButtonContainer extends StatelessWidget {
)),
onPressed: buttonFunction,
style: ElevatedButton.styleFrom(
- primary: buttonColor,
- onPrimary: Colors.grey,
+ // primary: buttonColor,
+ // onPrimary: Colors.grey,
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.all(Radius.circular(borderRadius))),
diff --git a/lib/widgets/forgot_my_password.dart b/lib/widgets/forgot_my_password.dart
index 217a183..4b3a2c5 100644
--- a/lib/widgets/forgot_my_password.dart
+++ b/lib/widgets/forgot_my_password.dart
@@ -1,85 +1,85 @@
-import 'package:flutter/material.dart';
-import 'package:flutter_bloc/flutter_bloc.dart';
-import 'package:zenith_monitor/constants/colors_constants.dart';
-import 'package:zenith_monitor/modules/forget_password/bloc/forgot_pwd_bloc.dart';
-import 'package:zenith_monitor/widgets/status_message.dart';
-import 'package:zenith_monitor/widgets/forgot_my_password_email_buttons_section.dart';
-import 'package:zenith_monitor/widgets/forgot_my_password_title_section.dart';
+// import 'package:flutter/material.dart';
+// import 'package:flutter_bloc/flutter_bloc.dart';
+// import 'package:zenith_monitor/constants/colors_constants.dart';
+// import 'package:zenith_monitor/modules/forget_password/bloc/forgot_pwd_bloc.dart';
+// import 'package:zenith_monitor/widgets/status_message.dart';
+// import 'package:zenith_monitor/widgets/forgot_my_password_email_buttons_section.dart';
+// import 'package:zenith_monitor/widgets/forgot_my_password_title_section.dart';
-class ForgotMyPasswordBody extends StatefulWidget {
- final double screenWidth;
- final double screenHeight;
- final Orientation deviceOrientation;
- final String? statusMessage;
- final Color? messageColor;
+// class ForgotMyPasswordBody extends StatefulWidget {
+// final double screenWidth;
+// final double screenHeight;
+// final Orientation deviceOrientation;
+// final String? statusMessage;
+// final Color? messageColor;
- const ForgotMyPasswordBody(
- {required this.screenWidth,
- required this.screenHeight,
- required this.deviceOrientation,
- required this.statusMessage,
- required this.messageColor});
+// const ForgotMyPasswordBody(
+// {required this.screenWidth,
+// required this.screenHeight,
+// required this.deviceOrientation,
+// required this.statusMessage,
+// required this.messageColor});
- @override
- _FMyPWDBodyState createState() => _FMyPWDBodyState();
-}
+// @override
+// _FMyPWDBodyState createState() => _FMyPWDBodyState();
+// }
-class _FMyPWDBodyState extends State {
- late TextEditingController emailController;
- @override
- void initState() {
- super.initState();
+// class _FMyPWDBodyState extends State {
+// late TextEditingController emailController;
+// @override
+// void initState() {
+// super.initState();
- emailController = TextEditingController();
- }
+// emailController = TextEditingController();
+// }
- @override
- void dispose() {
- super.dispose();
+// @override
+// void dispose() {
+// super.dispose();
- emailController.dispose();
- }
+// emailController.dispose();
+// }
- @override
- Widget build(BuildContext context) {
- return SingleChildScrollView(
- child: Column(mainAxisAlignment: MainAxisAlignment.start, children: [
- TitleSection(
- screenWidth: widget.screenWidth,
- screenHeight: widget.screenHeight,
- deviceOrientation: widget.deviceOrientation),
- Container(
- height: 0.50 * widget.screenHeight,
- margin: EdgeInsets.only(top: 0.27 * widget.screenHeight),
- decoration: BoxDecoration(
- gradient: const LinearGradient(
- begin: Alignment.topCenter,
- end: Alignment.bottomCenter,
- colors: [
- raisingBlack,
- black,
- ]),
- borderRadius: BorderRadius.only(
- topLeft: Radius.circular(_boderRadius()),
- topRight: Radius.circular(_boderRadius()))),
- child: EmailButtonsSection(
- screenWidth: widget.screenWidth,
- screenHeight: widget.screenHeight,
- deviceOrientation: widget.deviceOrientation,
- emailController: emailController,
- funcSubmit: () => BlocProvider.of(context)
- .add(PwdResetEmail(email: emailController.text.trim())),
- statusMessage: StatusMessage(
- message: widget.statusMessage,
- color: widget.messageColor,
- ),
- ),
- alignment: Alignment.center)
- ]));
- }
+// @override
+// Widget build(BuildContext context) {
+// return SingleChildScrollView(
+// child: Column(mainAxisAlignment: MainAxisAlignment.start, children: [
+// TitleSection(
+// screenWidth: widget.screenWidth,
+// screenHeight: widget.screenHeight,
+// deviceOrientation: widget.deviceOrientation),
+// Container(
+// height: 0.50 * widget.screenHeight,
+// margin: EdgeInsets.only(top: 0.27 * widget.screenHeight),
+// decoration: BoxDecoration(
+// gradient: const LinearGradient(
+// begin: Alignment.topCenter,
+// end: Alignment.bottomCenter,
+// colors: [
+// raisingBlack,
+// black,
+// ]),
+// borderRadius: BorderRadius.only(
+// topLeft: Radius.circular(_boderRadius()),
+// topRight: Radius.circular(_boderRadius()))),
+// child: EmailButtonsSection(
+// screenWidth: widget.screenWidth,
+// screenHeight: widget.screenHeight,
+// deviceOrientation: widget.deviceOrientation,
+// emailController: emailController,
+// funcSubmit: () => BlocProvider.of(context)
+// .add(PwdResetEmail(email: emailController.text.trim())),
+// statusMessage: StatusMessage(
+// message: widget.statusMessage,
+// color: widget.messageColor,
+// ),
+// ),
+// alignment: Alignment.center)
+// ]));
+// }
- double _boderRadius() {
- return widget.screenWidth *
- ((widget.deviceOrientation == Orientation.portrait) ? 0.14 : 0.07);
- }
-}
+// double _boderRadius() {
+// return widget.screenWidth *
+// ((widget.deviceOrientation == Orientation.portrait) ? 0.14 : 0.07);
+// }
+// }
diff --git a/lib/widgets/login.dart b/lib/widgets/login.dart
index bd7c3bc..fc97289 100644
--- a/lib/widgets/login.dart
+++ b/lib/widgets/login.dart
@@ -10,16 +10,14 @@ class LoginWidget extends StatefulWidget {
const LoginWidget();
@override
- _LoginWidgetState createState() => _LoginWidgetState();
+ LoginWidgetState createState() => LoginWidgetState();
}
-class _LoginWidgetState extends State {
- TextEditingController emailController = TextEditingController();
- TextEditingController passwordController = TextEditingController();
+class LoginWidgetState extends State {
+ // final ButtonStyle style =
+ // ElevatedButton.styleFrom(textStyle: const TextStyle(fontSize: 20));
- late rive.RiveAnimationController _githubLoginController;
- late rive.RiveAnimationController _facebookLoginController;
- late rive.RiveAnimationController _googleLoginController;
+ // late rive.RiveAnimationController _googleLoginController;
void _toggleAnimation(rive.RiveAnimationController controller) {
if (controller.isActive == false) {
@@ -30,19 +28,10 @@ class _LoginWidgetState extends State {
@override
void initState() {
super.initState();
- _githubLoginController = rive.OneShotAnimation(
- 'changeColors',
- autoplay: false,
- );
-
- _facebookLoginController = rive.OneShotAnimation(
- 'changeColors',
- autoplay: false,
- );
- _googleLoginController = rive.OneShotAnimation(
- 'changeColors',
- autoplay: false,
- );
+ // _googleLoginController = rive.OneShotAnimation(
+ // 'changeColors',
+ // autoplay: false,
+ // );
}
@override
@@ -80,10 +69,12 @@ class _LoginWidgetState extends State {
BoxConstraints(maxHeight: MediaQuery.of(context).size.height),
child: Container(
decoration: const BoxDecoration(
- color: eerieBlack,
- borderRadius: BorderRadius.only(
- bottomLeft: Radius.circular(40.0),
- bottomRight: Radius.circular(40.0))),
+ color: eerieBlack,
+ borderRadius: BorderRadius.only(
+ bottomLeft: Radius.circular(40.0),
+ bottomRight: Radius.circular(40.0),
+ ),
+ ),
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height *
((MediaQuery.of(context).orientation == Orientation.portrait)
@@ -99,10 +90,8 @@ class _LoginWidgetState extends State {
child: const rive.RiveAnimation.asset(
"assets/animations/zenithlogo.riv"),
),
- emailPasswordForgotPasswordColumn(),
StatusMessage(message: errorMsg, color: lightCoral),
- singUpLoginRow(),
- otherMethodsOfLoginRow()
+ loginWithGoogleButton(),
],
),
),
@@ -110,132 +99,27 @@ class _LoginWidgetState extends State {
);
}
- Row otherMethodsOfLoginRow() {
- return Row(mainAxisAlignment: MainAxisAlignment.center, children: [
- otherMethodsOfLoginButton("github", _githubLoginController,
- null), // github auth service doesn't exist yet, later github auth event must be passed as a parameter
- otherMethodsOfLoginButton(
- "facebook", _facebookLoginController, FacebookLoginEvent()),
- otherMethodsOfLoginButton(
- "google", _googleLoginController, GoogleLoginEvent())
- ]);
- }
-
- Row singUpLoginRow() {
- return Row(
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
- children: [singInLoginButton("Sign Up"), singInLoginButton("Login")],
- );
- }
-
- Column emailPasswordForgotPasswordColumn() {
- return Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- textField("Email", emailController, false),
- const Divider(),
- textField("Senha", passwordController, true),
- forgotPasswordButton(),
- ],
- );
- }
-
- ElevatedButton otherMethodsOfLoginButton(String animationPathForType,
- rive.RiveAnimationController _controller, AuthenticationEvent? event) {
- String animationPath =
- "assets/animations/" + animationPathForType + "_icon.riv";
-
- return ElevatedButton(
- onPressed: () => {
- if (event != null)
- {
- _toggleAnimation(_controller),
- BlocProvider.of(context).add(event),
- }
- },
- child: Container(
- width: 40,
- height: 40,
- child: rive.RiveAnimation.asset(
- animationPath,
- controllers: [_controller],
- )),
- style: ButtonStyle(
- shape: MaterialStateProperty.all(const CircleBorder()),
- backgroundColor: MaterialStateProperty.all(white.withOpacity(0.001))),
- );
- }
-
- Container singInLoginButton(String buttonText) {
- return Container(
- decoration: BoxDecoration(
- color: lightBrown, borderRadius: BorderRadius.circular(30)),
- width: MediaQuery.of(context).size.width * 0.35,
- child: TextButton(
- onPressed: () {
- if (buttonText == "Login") {
- BlocProvider.of(context).add(EmailLoginEvent(
- email: emailController.text.trim(),
- password: passwordController.text));
- passwordController.clear();
- } else {
- Navigator.pushNamed(context, '/signup');
- }
- },
- child: Text(buttonText,
- style: const TextStyle(
- color: white, fontFamily: 'DMSans', fontSize: 18))),
- );
- }
-
- Align forgotPasswordButton() {
- return Align(
- alignment: const Alignment(0.7, 0),
- child: TextButton(
- onPressed: () {
- Navigator.pushNamed(context, '/forgotPwd');
- },
- child: const Text(
- "Esqueci a Senha",
- textAlign: TextAlign.right,
- style: TextStyle(color: white),
- )),
- );
- }
-
- Container textField(
- String hintText, TextEditingController controller, bool hideText) {
- return Container(
- width: MediaQuery.of(context).size.width * 0.8,
- decoration: const BoxDecoration(
- gradient: LinearGradient(
- begin: Alignment.centerRight,
- end: Alignment.centerLeft,
- colors: [
- Color(0xff404245),
- Color(0xff212325),
- ]),
- borderRadius: BorderRadius.all(Radius.circular(10)),
- ),
- child: TextField(
- controller: controller,
- cursorColor: white,
- obscureText: hideText,
- style: const TextStyle(
- color: white,
- fontWeight: FontWeight.normal,
- fontFamily: 'DMSans',
- fontSize: 20.0),
- decoration: InputDecoration(
- isDense: true,
- hintStyle: const TextStyle(color: white),
- focusedBorder: const OutlineInputBorder(
- borderSide: BorderSide(color: raisingBlack),
- borderRadius: BorderRadius.all(Radius.circular(10))),
- enabledBorder: const OutlineInputBorder(
- borderSide: BorderSide(color: raisingBlack),
- borderRadius: BorderRadius.all(Radius.circular(10))),
- hintText: hintText),
+ Center loginWithGoogleButton() {
+ return Center(
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ ElevatedButton(
+ // style: const TextStyle(fontSize: 20)),
+ onPressed: () {
+ // _toggleAnimation(_googleLoginController);
+ BlocProvider.of(context).add(GoogleLoginEvent());
+ },
+ child: Row(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Image.asset('assets/images/devicon_google.png', height: 20),
+ const SizedBox(width: 10),
+ const Text('Entrar com o Google'),
+ ],
+ ),
+ ),
+ ],
),
);
}
diff --git a/lib/widgets/mission_creation.dart b/lib/widgets/mission_creation.dart
index a2a54d5..5dae140 100644
--- a/lib/widgets/mission_creation.dart
+++ b/lib/widgets/mission_creation.dart
@@ -182,13 +182,13 @@ class _MissionCreationState extends State {
height: 30,
child: ElevatedButton(
style: ButtonStyle(
- backgroundColor: MaterialStateProperty.resolveWith(
- (Set states) {
- if (states.contains(MaterialState.pressed)) return Colors.green;
+ backgroundColor: WidgetStateProperty.resolveWith(
+ (Set states) {
+ if (states.contains(WidgetState.pressed)) return Colors.green;
return mantisGreen;
},
),
- shape: MaterialStateProperty.all(
+ shape: WidgetStateProperty.all(
RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0),
))),
diff --git a/lib/widgets/not_found_screen.dart b/lib/widgets/not_found_screen.dart
index 1c007f1..c20da71 100644
--- a/lib/widgets/not_found_screen.dart
+++ b/lib/widgets/not_found_screen.dart
@@ -5,12 +5,12 @@ import 'package:zenith_monitor/widgets/standard_app_bar.dart';
class NotFoundScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
- return Scaffold(
+ return const Scaffold(
backgroundColor: eerieBlack,
- appBar: const StandardAppBar(title: "404"),
+ appBar: StandardAppBar(title: "404"),
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
- children: const [
+ children: [
Align(
alignment: Alignment.topLeft,
child: Padding(
diff --git a/lib/widgets/terminal.dart b/lib/widgets/terminal.dart
index 6546ec1..7e31f2c 100644
--- a/lib/widgets/terminal.dart
+++ b/lib/widgets/terminal.dart
@@ -20,9 +20,7 @@ class Terminal extends StatelessWidget {
@override
Widget build(BuildContext context) {
- if (WidgetsBinding.instance != null) {
- WidgetsBinding.instance!.addPostFrameCallback((_) => _scrollToEnd());
- }
+ WidgetsBinding.instance.addPostFrameCallback((_) => _scrollToEnd());
return Scaffold(
body: SafeArea(
child: CustomScrollView(
diff --git a/pubspec.lock b/pubspec.lock
index c44583c..9afc3d1 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -1,230 +1,278 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
+ _flutterfire_internals:
+ dependency: transitive
+ description:
+ name: _flutterfire_internals
+ sha256: b46f62516902afb04befa4b30eb6a12ac1f58ca8cb25fb9d632407259555dd3d
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.3.39"
args:
dependency: transitive
description:
name: args
- url: "https://pub.dartlang.org"
+ sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a"
+ url: "https://pub.dev"
source: hosted
- version: "2.3.1"
+ version: "2.5.0"
async:
dependency: transitive
description:
name: async
- url: "https://pub.dartlang.org"
+ sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
+ url: "https://pub.dev"
source: hosted
- version: "2.8.2"
+ version: "2.11.0"
bloc:
dependency: "direct main"
description:
name: bloc
- url: "https://pub.dartlang.org"
+ sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e"
+ url: "https://pub.dev"
source: hosted
- version: "7.2.1"
+ version: "8.1.4"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
- url: "https://pub.dartlang.org"
+ sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
+ url: "https://pub.dev"
source: hosted
- version: "2.1.0"
+ version: "2.1.1"
characters:
dependency: transitive
description:
name: characters
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.2.0"
- charcode:
- dependency: transitive
- description:
- name: charcode
- url: "https://pub.dartlang.org"
+ sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
+ url: "https://pub.dev"
source: hosted
- version: "1.3.1"
+ version: "1.3.0"
clock:
dependency: transitive
description:
name: clock
- url: "https://pub.dartlang.org"
+ sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
+ url: "https://pub.dev"
source: hosted
- version: "1.1.0"
+ version: "1.1.1"
cloud_firestore:
dependency: "direct main"
description:
name: cloud_firestore
- url: "https://pub.dartlang.org"
+ sha256: "240c1c3598e62ad58ee665b6df9c65172d2fbe4742770c21ed060e013cb8e037"
+ url: "https://pub.dev"
source: hosted
- version: "2.5.4"
+ version: "5.1.0"
cloud_firestore_platform_interface:
- dependency: transitive
+ dependency: "direct main"
description:
name: cloud_firestore_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: "5b5a9c2b5a85bf995f12e7447c4197d7ad659533d642d3d904ccbb509f83d62a"
+ url: "https://pub.dev"
source: hosted
- version: "5.5.7"
+ version: "6.2.9"
cloud_firestore_web:
dependency: transitive
description:
name: cloud_firestore_web
- url: "https://pub.dartlang.org"
+ sha256: "898e9f65548df65ca7b2cff9f32cf233424ceccff1d870b8819ea2b8050d5b39"
+ url: "https://pub.dev"
source: hosted
- version: "2.6.16"
+ version: "4.0.3"
collection:
dependency: transitive
description:
name: collection
- url: "https://pub.dartlang.org"
+ sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
+ url: "https://pub.dev"
source: hosted
- version: "1.15.0"
+ version: "1.18.0"
connectivity_plus:
dependency: "direct main"
description:
name: connectivity_plus
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.3.5"
- connectivity_plus_linux:
- dependency: transitive
- description:
- name: connectivity_plus_linux
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.3.1"
- connectivity_plus_macos:
- dependency: transitive
- description:
- name: connectivity_plus_macos
- url: "https://pub.dartlang.org"
+ sha256: db7a4e143dc72cc3cb2044ef9b052a7ebfe729513e6a82943bc3526f784365b8
+ url: "https://pub.dev"
source: hosted
- version: "1.2.4"
+ version: "6.0.3"
connectivity_plus_platform_interface:
dependency: transitive
description:
name: connectivity_plus_platform_interface
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.2.1"
- connectivity_plus_web:
- dependency: transitive
- description:
- name: connectivity_plus_web
- url: "https://pub.dartlang.org"
+ sha256: b6a56efe1e6675be240de39107281d4034b64ac23438026355b4234042a35adb
+ url: "https://pub.dev"
source: hosted
- version: "1.2.2"
- connectivity_plus_windows:
+ version: "2.0.0"
+ cross_file:
dependency: transitive
description:
- name: connectivity_plus_windows
- url: "https://pub.dartlang.org"
+ name: cross_file
+ sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32"
+ url: "https://pub.dev"
source: hosted
- version: "1.2.2"
- cross_file:
+ version: "0.3.4+1"
+ csslib:
dependency: transitive
description:
- name: cross_file
- url: "https://pub.dartlang.org"
+ name: csslib
+ sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb"
+ url: "https://pub.dev"
source: hosted
- version: "0.3.3+1"
+ version: "1.0.0"
cupertino_icons:
dependency: "direct main"
description:
name: cupertino_icons
- url: "https://pub.dartlang.org"
+ sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
+ url: "https://pub.dev"
source: hosted
- version: "1.0.4"
+ version: "1.0.8"
dbus:
dependency: transitive
description:
name: dbus
- url: "https://pub.dartlang.org"
+ sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.7.10"
+ equatable:
+ dependency: "direct main"
+ description:
+ name: equatable
+ sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2
+ url: "https://pub.dev"
source: hosted
- version: "0.7.3"
+ version: "2.0.5"
+ facebook_auth_desktop:
+ dependency: transitive
+ description:
+ name: facebook_auth_desktop
+ sha256: "0e4f147a57de8fdb8eaaee4836e6b9859482921143af0c350ffbf2a9bbd531a0"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.0"
fake_async:
dependency: transitive
description:
name: fake_async
- url: "https://pub.dartlang.org"
+ sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
+ url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "1.3.1"
ffi:
dependency: transitive
description:
name: ffi
- url: "https://pub.dartlang.org"
+ sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
+ url: "https://pub.dev"
source: hosted
- version: "1.2.1"
- file:
+ version: "2.1.2"
+ file_selector_linux:
dependency: transitive
description:
- name: file
- url: "https://pub.dartlang.org"
+ name: file_selector_linux
+ sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492"
+ url: "https://pub.dev"
source: hosted
- version: "6.1.2"
+ version: "0.9.2+1"
+ file_selector_macos:
+ dependency: transitive
+ description:
+ name: file_selector_macos
+ sha256: f42eacb83b318e183b1ae24eead1373ab1334084404c8c16e0354f9a3e55d385
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.9.4"
+ file_selector_platform_interface:
+ dependency: transitive
+ description:
+ name: file_selector_platform_interface
+ sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.6.2"
+ file_selector_windows:
+ dependency: transitive
+ description:
+ name: file_selector_windows
+ sha256: d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.9.3+1"
firebase_auth:
dependency: "direct main"
description:
name: firebase_auth
- url: "https://pub.dartlang.org"
+ sha256: a41b56878fa6aef3ea52962329b47eee333672d4b0ecc406e071b9fc729f242c
+ url: "https://pub.dev"
source: hosted
- version: "3.3.19"
+ version: "5.1.2"
firebase_auth_platform_interface:
dependency: transitive
description:
name: firebase_auth_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: d1c68097588f3b75ef79a22102ff96c311735c254353bccf6824d19f1a7e86b9
+ url: "https://pub.dev"
source: hosted
- version: "6.2.7"
+ version: "7.4.2"
firebase_auth_web:
dependency: transitive
description:
name: firebase_auth_web
- url: "https://pub.dartlang.org"
+ sha256: e66ec0ae5697ee39ccd4865d6887cb0df220dd4ea0b21404910c68ca4c1a731a
+ url: "https://pub.dev"
source: hosted
- version: "3.3.16"
+ version: "5.12.4"
firebase_core:
dependency: "direct main"
description:
name: firebase_core
- url: "https://pub.dartlang.org"
+ sha256: "5159984ce9b70727473eb388394650677c02c925aaa6c9439905e1f30966a4d5"
+ url: "https://pub.dev"
source: hosted
- version: "1.17.1"
+ version: "3.2.0"
firebase_core_platform_interface:
- dependency: transitive
+ dependency: "direct overridden"
description:
name: firebase_core_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: "1003a5a03a61fc9a22ef49f37cbcb9e46c86313a7b2e7029b9390cf8c6fc32cb"
+ url: "https://pub.dev"
source: hosted
- version: "4.4.0"
+ version: "5.1.0"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
- url: "https://pub.dartlang.org"
+ sha256: "23509cb3cddfb3c910c143279ac3f07f06d3120f7d835e4a5d4b42558e978712"
+ url: "https://pub.dev"
source: hosted
- version: "1.6.4"
+ version: "2.17.3"
firebase_storage:
dependency: "direct main"
description:
name: firebase_storage
- url: "https://pub.dartlang.org"
+ sha256: "472e8532dfdcffd00ed8cc1ff57fda76af6f0a8a26547908bc20f25079922408"
+ url: "https://pub.dev"
source: hosted
- version: "10.2.17"
+ version: "12.1.1"
firebase_storage_platform_interface:
dependency: transitive
description:
name: firebase_storage_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: f07b5dbf0efcaab0f7d38910851791f7509b8864d491bb11c079f67339f31b27
+ url: "https://pub.dev"
source: hosted
- version: "4.1.7"
+ version: "5.1.26"
firebase_storage_web:
dependency: transitive
description:
name: firebase_storage_web
- url: "https://pub.dartlang.org"
+ sha256: ef9d27afcd68a1c2b90d0cad2b02cf6333a053655988f4a2f6cba2796134cae5
+ url: "https://pub.dev"
source: hosted
- version: "3.2.16"
+ version: "3.9.11"
flutter:
dependency: "direct main"
description: flutter
@@ -234,58 +282,114 @@ packages:
dependency: "direct main"
description:
name: flutter_bloc
- url: "https://pub.dartlang.org"
+ sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a
+ url: "https://pub.dev"
source: hosted
- version: "7.3.3"
+ version: "8.1.6"
flutter_dotenv:
dependency: "direct main"
description:
name: flutter_dotenv
- url: "https://pub.dartlang.org"
+ sha256: "9357883bdd153ab78cbf9ffa07656e336b8bbb2b5a3ca596b0b27e119f7c7d77"
+ url: "https://pub.dev"
source: hosted
- version: "5.0.2"
+ version: "5.1.0"
flutter_facebook_auth:
dependency: "direct main"
description:
name: flutter_facebook_auth
- url: "https://pub.dartlang.org"
+ sha256: "48aab06f3b1d3494a33b0c10c11ecbc226fdcf0bf37b478e91d9de57cce840f5"
+ url: "https://pub.dev"
source: hosted
- version: "3.5.7"
+ version: "7.0.1"
flutter_facebook_auth_platform_interface:
dependency: transitive
description:
name: flutter_facebook_auth_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: dc9d621dd45c4f0b341173a16e94f4b77155fa9c0f4326743f1251f2f445ba38
+ url: "https://pub.dev"
source: hosted
- version: "2.7.1"
+ version: "6.0.0"
flutter_facebook_auth_web:
dependency: transitive
description:
name: flutter_facebook_auth_web
- url: "https://pub.dartlang.org"
+ sha256: "947d93fc5a7cc5db1ce0274505254bb3b619cdd98176954f125f742964696804"
+ url: "https://pub.dev"
source: hosted
- version: "2.6.0+2"
+ version: "6.0.0"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
- url: "https://pub.dartlang.org"
+ sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c"
+ url: "https://pub.dev"
source: hosted
- version: "1.0.4"
+ version: "4.0.0"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
- url: "https://pub.dartlang.org"
+ sha256: c6b0b4c05c458e1c01ad9bcc14041dd7b1f6783d487be4386f793f47a8a4d03e
+ url: "https://pub.dev"
source: hosted
- version: "2.0.6"
+ version: "2.0.20"
flutter_polyline_points:
dependency: "direct main"
description:
name: flutter_polyline_points
- url: "https://pub.dartlang.org"
+ sha256: "3a1c8c30abee9fb0fbe44c70d5d1cedb10ef28ec7ea285c669f02b3e183483aa"
+ url: "https://pub.dev"
source: hosted
- version: "1.0.0"
+ version: "2.1.0"
+ flutter_secure_storage:
+ dependency: transitive
+ description:
+ name: flutter_secure_storage
+ sha256: "165164745e6afb5c0e3e3fcc72a012fb9e58496fb26ffb92cf22e16a821e85d0"
+ url: "https://pub.dev"
+ source: hosted
+ version: "9.2.2"
+ flutter_secure_storage_linux:
+ dependency: transitive
+ description:
+ name: flutter_secure_storage_linux
+ sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.1"
+ flutter_secure_storage_macos:
+ dependency: transitive
+ description:
+ name: flutter_secure_storage_macos
+ sha256: "1693ab11121a5f925bbea0be725abfcfbbcf36c1e29e571f84a0c0f436147a81"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.1.2"
+ flutter_secure_storage_platform_interface:
+ dependency: transitive
+ description:
+ name: flutter_secure_storage_platform_interface
+ sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.2"
+ flutter_secure_storage_web:
+ dependency: transitive
+ description:
+ name: flutter_secure_storage_web
+ sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.1"
+ flutter_secure_storage_windows:
+ dependency: transitive
+ description:
+ name: flutter_secure_storage_windows
+ sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.1.2"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -296,321 +400,462 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
- geoflutterfire:
- dependency: "direct main"
- description:
- name: geoflutterfire
- url: "https://pub.dartlang.org"
- source: hosted
- version: "3.0.1"
get:
dependency: "direct main"
description:
name: get
- url: "https://pub.dartlang.org"
+ sha256: e4e7335ede17452b391ed3b2ede016545706c01a02292a6c97619705e7d2a85e
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.6.6"
+ google_identity_services_web:
+ dependency: transitive
+ description:
+ name: google_identity_services_web
+ sha256: "9482364c9f8b7bd36902572ebc3a7c2b5c8ee57a9c93e6eb5099c1a9ec5265d8"
+ url: "https://pub.dev"
source: hosted
- version: "4.6.5"
+ version: "0.3.1+1"
+ google_maps:
+ dependency: transitive
+ description:
+ name: google_maps
+ sha256: "47eef3836b49bb030d5cb3afc60b8451408bf34cf753e571b645d6529eb4251a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "7.1.0"
google_maps_flutter:
dependency: "direct main"
description:
name: google_maps_flutter
- url: "https://pub.dartlang.org"
+ sha256: acf0ec482d86b2ac55ade80597ce7f797a47971f5210ebfd030f0d58130e0a94
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.7.0"
+ google_maps_flutter_android:
+ dependency: transitive
+ description:
+ name: google_maps_flutter_android
+ sha256: f6306d83edddba7aa017ca6f547d6f36a1443f90ed49d91d48ef70d7aa86e2e1
+ url: "https://pub.dev"
source: hosted
- version: "2.1.6"
+ version: "2.12.0"
+ google_maps_flutter_ios:
+ dependency: transitive
+ description:
+ name: google_maps_flutter_ios
+ sha256: a6e3c6ecdda6c985053f944be13a0645ebb919da2ef0f5bc579c5e1670a5b2a8
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.10.0"
google_maps_flutter_platform_interface:
dependency: transitive
description:
name: google_maps_flutter_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: bd60ca330e3c7763b95b477054adec338a522d982af73ecc520b232474063ac5
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.8.0"
+ google_maps_flutter_web:
+ dependency: transitive
+ description:
+ name: google_maps_flutter_web
+ sha256: f3155c12119d8a5c2732fdf39ceb5cc095bc662059a03b4ea23294ecebe1d199
+ url: "https://pub.dev"
source: hosted
- version: "2.1.7"
+ version: "0.5.8"
google_sign_in:
dependency: "direct main"
description:
name: google_sign_in
- url: "https://pub.dartlang.org"
+ sha256: "0b8787cb9c1a68ad398e8010e8c8766bfa33556d2ab97c439fb4137756d7308f"
+ url: "https://pub.dev"
source: hosted
- version: "5.3.2"
+ version: "6.2.1"
google_sign_in_android:
dependency: transitive
description:
name: google_sign_in_android
- url: "https://pub.dartlang.org"
+ sha256: d30fb34b659679ea74397e9748b4ab5d720720d57dcc79538f1b3c4a68654cb3
+ url: "https://pub.dev"
source: hosted
- version: "5.2.8"
+ version: "6.1.27"
google_sign_in_ios:
dependency: transitive
description:
name: google_sign_in_ios
- url: "https://pub.dartlang.org"
+ sha256: a058c9880be456f21e2e8571c1126eaacd570bdc5b6c6d9d15aea4bdf22ca9fe
+ url: "https://pub.dev"
source: hosted
- version: "5.3.1"
+ version: "5.7.6"
google_sign_in_platform_interface:
dependency: transitive
description:
name: google_sign_in_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: "1f6e5787d7a120cc0359ddf315c92309069171306242e181c09472d1b00a2971"
+ url: "https://pub.dev"
source: hosted
- version: "2.1.3"
+ version: "2.4.5"
google_sign_in_web:
dependency: transitive
description:
name: google_sign_in_web
- url: "https://pub.dartlang.org"
+ sha256: d606264c7a1a526a3aa79d938b85a601d8589731a478bd4a3dcbdeb14a572228
+ url: "https://pub.dev"
source: hosted
- version: "0.10.1+2"
+ version: "0.12.4+1"
graphs:
dependency: transitive
description:
name: graphs
- url: "https://pub.dartlang.org"
+ sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19
+ url: "https://pub.dev"
source: hosted
- version: "2.1.0"
+ version: "2.3.1"
+ html:
+ dependency: transitive
+ description:
+ name: html
+ sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.15.4"
http:
dependency: "direct main"
description:
name: http
- url: "https://pub.dartlang.org"
+ sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010
+ url: "https://pub.dev"
source: hosted
- version: "0.13.4"
+ version: "1.2.2"
http_parser:
dependency: "direct main"
description:
name: http_parser
- url: "https://pub.dartlang.org"
+ sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
+ url: "https://pub.dev"
source: hosted
- version: "4.0.1"
+ version: "4.0.2"
image_cropper:
dependency: "direct main"
description:
name: image_cropper
- url: "https://pub.dartlang.org"
+ sha256: d31be025c744ac1bf52d1f49cfdd92fd421e7e45ddadaaac0b39901f67c2a7e3
+ url: "https://pub.dev"
+ source: hosted
+ version: "7.1.0"
+ image_cropper_for_web:
+ dependency: transitive
+ description:
+ name: image_cropper_for_web
+ sha256: "6386e64908ce5d5df404e01c750a99b633dfcea88da69b3efcd3b3811d639760"
+ url: "https://pub.dev"
source: hosted
- version: "1.5.1"
+ version: "5.1.0"
+ image_cropper_platform_interface:
+ dependency: transitive
+ description:
+ name: image_cropper_platform_interface
+ sha256: "39c6539571bda7ce666e0a2f450246a5d42187406eef8f486a3d64f1d9381637"
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.1.0"
image_picker:
dependency: "direct main"
description:
name: image_picker
- url: "https://pub.dartlang.org"
+ sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a"
+ url: "https://pub.dev"
source: hosted
- version: "0.8.5+3"
+ version: "1.1.2"
image_picker_android:
dependency: transitive
description:
name: image_picker_android
- url: "https://pub.dartlang.org"
+ sha256: ff39a10ab4f48f4ac70776d0494a97bf073cd2570892cd46bc8a5cac162c25db
+ url: "https://pub.dev"
source: hosted
- version: "0.8.4+13"
+ version: "0.8.12+4"
image_picker_for_web:
dependency: transitive
description:
name: image_picker_for_web
- url: "https://pub.dartlang.org"
+ sha256: "5d6eb13048cd47b60dbf1a5495424dea226c5faf3950e20bf8120a58efb5b5f3"
+ url: "https://pub.dev"
source: hosted
- version: "2.1.8"
+ version: "3.0.4"
image_picker_ios:
dependency: transitive
description:
name: image_picker_ios
- url: "https://pub.dartlang.org"
+ sha256: "6703696ad49f5c3c8356d576d7ace84d1faf459afb07accbb0fae780753ff447"
+ url: "https://pub.dev"
source: hosted
- version: "0.8.5+5"
+ version: "0.8.12"
+ image_picker_linux:
+ dependency: transitive
+ description:
+ name: image_picker_linux
+ sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.1+1"
+ image_picker_macos:
+ dependency: transitive
+ description:
+ name: image_picker_macos
+ sha256: "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.1+1"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80"
+ url: "https://pub.dev"
source: hosted
- version: "2.5.0"
- intl:
+ version: "2.10.0"
+ image_picker_windows:
dependency: transitive
description:
- name: intl
- url: "https://pub.dartlang.org"
+ name: image_picker_windows
+ sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb"
+ url: "https://pub.dev"
source: hosted
- version: "0.17.0"
+ version: "0.2.1+1"
js:
dependency: transitive
description:
name: js
- url: "https://pub.dartlang.org"
+ sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.6.7"
+ js_wrapping:
+ dependency: transitive
+ description:
+ name: js_wrapping
+ sha256: e385980f7c76a8c1c9a560dfb623b890975841542471eade630b2871d243851c
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.7.4"
+ leak_tracker:
+ dependency: transitive
+ description:
+ name: leak_tracker
+ sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "10.0.4"
+ leak_tracker_flutter_testing:
+ dependency: transitive
+ description:
+ name: leak_tracker_flutter_testing
+ sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.3"
+ leak_tracker_testing:
+ dependency: transitive
+ description:
+ name: leak_tracker_testing
+ sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
+ url: "https://pub.dev"
source: hosted
- version: "0.6.3"
+ version: "3.0.1"
lints:
dependency: transitive
description:
name: lints
- url: "https://pub.dartlang.org"
+ sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235"
+ url: "https://pub.dev"
source: hosted
- version: "1.0.1"
+ version: "4.0.0"
location:
dependency: "direct main"
description:
name: location
- url: "https://pub.dartlang.org"
+ sha256: "6463a242973bf247e3fb1c7722919521b98026978ee3b5177202e103a39c145e"
+ url: "https://pub.dev"
source: hosted
- version: "4.4.0"
+ version: "7.0.0"
location_platform_interface:
dependency: transitive
description:
name: location_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: "1e535ccc8b4a9612de4e4319871136b45d2b5d1fb0c2a8bf99687242bf7ca5f7"
+ url: "https://pub.dev"
source: hosted
- version: "2.3.0"
+ version: "5.0.0"
location_web:
dependency: transitive
description:
name: location_web
- url: "https://pub.dartlang.org"
+ sha256: "613597b489beb396f658c6f4358dd383c5ed0a1402d95e287642a5f2d8171cb0"
+ url: "https://pub.dev"
source: hosted
- version: "3.1.1"
+ version: "5.0.3"
matcher:
dependency: transitive
description:
name: matcher
- url: "https://pub.dartlang.org"
+ sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
+ url: "https://pub.dev"
source: hosted
- version: "0.12.11"
+ version: "0.12.16+1"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
- url: "https://pub.dartlang.org"
+ sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
+ url: "https://pub.dev"
source: hosted
- version: "0.1.3"
+ version: "0.8.0"
meta:
dependency: transitive
description:
name: meta
- url: "https://pub.dartlang.org"
+ sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.12.0"
+ mime:
+ dependency: transitive
+ description:
+ name: mime
+ sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2"
+ url: "https://pub.dev"
source: hosted
- version: "1.7.0"
+ version: "1.0.5"
nested:
dependency: transitive
description:
name: nested
- url: "https://pub.dartlang.org"
+ sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
+ url: "https://pub.dev"
source: hosted
version: "1.0.0"
nm:
dependency: transitive
description:
name: nm
- url: "https://pub.dartlang.org"
+ sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254"
+ url: "https://pub.dev"
source: hosted
version: "0.5.0"
path:
dependency: transitive
description:
name: path
- url: "https://pub.dartlang.org"
+ sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
+ url: "https://pub.dev"
source: hosted
- version: "1.8.0"
+ version: "1.9.0"
path_provider:
dependency: "direct main"
description:
name: path_provider
- url: "https://pub.dartlang.org"
+ sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161
+ url: "https://pub.dev"
source: hosted
- version: "2.0.10"
+ version: "2.1.3"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
- url: "https://pub.dartlang.org"
+ sha256: "30c5aa827a6ae95ce2853cdc5fe3971daaac00f6f081c419c013f7f57bff2f5e"
+ url: "https://pub.dev"
source: hosted
- version: "2.0.14"
- path_provider_ios:
+ version: "2.2.7"
+ path_provider_foundation:
dependency: transitive
description:
- name: path_provider_ios
- url: "https://pub.dartlang.org"
+ name: path_provider_foundation
+ sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16
+ url: "https://pub.dev"
source: hosted
- version: "2.0.9"
+ version: "2.4.0"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
- url: "https://pub.dartlang.org"
+ sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
+ url: "https://pub.dev"
source: hosted
- version: "2.1.7"
- path_provider_macos:
- dependency: transitive
- description:
- name: path_provider_macos
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.0.6"
+ version: "2.2.1"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
+ url: "https://pub.dev"
source: hosted
- version: "2.0.4"
+ version: "2.1.2"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
- url: "https://pub.dartlang.org"
+ sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
+ url: "https://pub.dev"
source: hosted
- version: "2.0.7"
+ version: "2.3.0"
petitparser:
dependency: transitive
description:
name: petitparser
- url: "https://pub.dartlang.org"
+ sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
+ url: "https://pub.dev"
source: hosted
- version: "4.4.0"
+ version: "6.0.2"
platform:
dependency: transitive
description:
name: platform
- url: "https://pub.dartlang.org"
+ sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65"
+ url: "https://pub.dev"
source: hosted
- version: "3.1.0"
+ version: "3.1.5"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
- url: "https://pub.dartlang.org"
- source: hosted
- version: "2.1.2"
- process:
- dependency: transitive
- description:
- name: process
- url: "https://pub.dartlang.org"
+ sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
+ url: "https://pub.dev"
source: hosted
- version: "4.2.4"
+ version: "2.1.8"
provider:
dependency: transitive
description:
name: provider
- url: "https://pub.dartlang.org"
+ sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c
+ url: "https://pub.dev"
source: hosted
- version: "6.0.3"
- quiver:
- dependency: transitive
- description:
- name: quiver
- url: "https://pub.dartlang.org"
- source: hosted
- version: "3.1.0"
+ version: "6.1.2"
rive:
dependency: "direct main"
description:
name: rive
- url: "https://pub.dartlang.org"
+ sha256: "3c0047e636ebe8e4044087e239dffdd026cf839fe9aecf55d53431b255668bcf"
+ url: "https://pub.dev"
source: hosted
- version: "0.7.33"
- rxdart:
+ version: "0.13.9"
+ rive_common:
dependency: transitive
description:
- name: rxdart
- url: "https://pub.dartlang.org"
+ name: rive_common
+ sha256: "3fe76ba4680787741688ee393e47b63417e8643816795e4eac01021683af1d84"
+ url: "https://pub.dev"
source: hosted
- version: "0.27.4"
+ version: "0.4.9"
+ sanitize_html:
+ dependency: transitive
+ description:
+ name: sanitize_html
+ sha256: "12669c4a913688a26555323fb9cec373d8f9fbe091f2d01c40c723b33caa8989"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.0"
sky_engine:
dependency: transitive
description: flutter
@@ -620,93 +865,122 @@ packages:
dependency: transitive
description:
name: source_span
- url: "https://pub.dartlang.org"
+ sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
+ url: "https://pub.dev"
source: hosted
- version: "1.8.1"
+ version: "1.10.0"
stack_trace:
dependency: transitive
description:
name: stack_trace
- url: "https://pub.dartlang.org"
+ sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
+ url: "https://pub.dev"
source: hosted
- version: "1.10.0"
+ version: "1.11.1"
stream_channel:
dependency: transitive
description:
name: stream_channel
- url: "https://pub.dartlang.org"
+ sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
+ url: "https://pub.dev"
source: hosted
- version: "2.1.0"
+ version: "2.1.2"
stream_transform:
dependency: transitive
description:
name: stream_transform
- url: "https://pub.dartlang.org"
+ sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
+ url: "https://pub.dev"
source: hosted
- version: "2.0.0"
+ version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
- url: "https://pub.dartlang.org"
+ sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
+ url: "https://pub.dev"
source: hosted
- version: "1.1.0"
+ version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
- url: "https://pub.dartlang.org"
+ sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
+ url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
- url: "https://pub.dartlang.org"
+ sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
+ url: "https://pub.dev"
source: hosted
- version: "0.4.8"
+ version: "0.7.0"
typed_data:
dependency: transitive
description:
name: typed_data
- url: "https://pub.dartlang.org"
+ sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
+ url: "https://pub.dev"
source: hosted
- version: "1.3.0"
+ version: "1.3.2"
usb_serial:
dependency: "direct main"
description:
name: usb_serial
- url: "https://pub.dartlang.org"
+ sha256: a605a600e34e7f28d4e80851ca3999ef747e42e406138887b8a88b8c382a8b07
+ url: "https://pub.dev"
source: hosted
- version: "0.3.0"
+ version: "0.5.2"
vector_math:
dependency: transitive
description:
name: vector_math
- url: "https://pub.dartlang.org"
+ sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
+ url: "https://pub.dev"
source: hosted
- version: "2.1.1"
+ version: "2.1.4"
+ vm_service:
+ dependency: transitive
+ description:
+ name: vm_service
+ sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
+ url: "https://pub.dev"
+ source: hosted
+ version: "14.2.1"
+ web:
+ dependency: transitive
+ description:
+ name: web
+ sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.5.1"
win32:
dependency: transitive
description:
name: win32
- url: "https://pub.dartlang.org"
+ sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4
+ url: "https://pub.dev"
source: hosted
- version: "2.5.2"
+ version: "5.5.1"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
- url: "https://pub.dartlang.org"
+ sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
+ url: "https://pub.dev"
source: hosted
- version: "0.2.0+1"
+ version: "1.0.4"
xml:
dependency: transitive
description:
name: xml
- url: "https://pub.dartlang.org"
+ sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
+ url: "https://pub.dev"
source: hosted
- version: "5.3.1"
+ version: "6.5.0"
sdks:
- dart: ">=2.16.0 <3.0.0"
- flutter: ">=2.8.1"
+ dart: ">=3.4.0 <4.0.0"
+ flutter: ">=3.22.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 0fe36f4..a3df3b0 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -29,30 +29,34 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
- http: ^0.13.3
- flutter_polyline_points: ^1.0.0
- bloc: ^7.2.1
- flutter_bloc: ^7.3.1
+ http: ^1.2.1
+ flutter_polyline_points: ^2.1.0
+ bloc: ^8.1.4
+ flutter_bloc: ^8.1.6
path_provider: ^2.0.3
- http_parser: ^4.0.0
- google_sign_in: ^5.1.0
- firebase_auth: ^3.0.2
- firebase_core: ^1.7.0
- cloud_firestore: ^2.5.3
- geoflutterfire: ^3.0.0-nullsafety.2
- google_maps_flutter: ^2.0.10
- location: ^4.3.0
- flutter_facebook_auth: ^3.5.2
- rive: ^0.7.33
- image_picker: ^0.8.4+10
- image_cropper: ^1.5.0
- firebase_storage: ^10.2.9
- usb_serial: ^0.3.0
- connectivity_plus: ^2.3.5
+ http_parser: ^4.0.2
+ google_sign_in: ^6.2.1
+ firebase_auth: ^5.1.2
+ firebase_core: ^3.2.0
+ cloud_firestore: ^5.1.0
+ google_maps_flutter: ^2.2.5
+ location: ^7.0.0
+ flutter_facebook_auth: ^7.0.1
+ rive: ^0.13.9
+ image_picker: ^1.1.2
+ image_cropper: ^7.1.0
+ firebase_storage: ^12.1.1
+ usb_serial: ^0.5.2
+ connectivity_plus: ^6.0.3
flutter_dotenv: ^5.0.2
+ cloud_firestore_platform_interface: ^6.2.9
+ equatable: ^2.0.5
+
+dependency_overrides:
+ firebase_core_platform_interface: 5.1.0
dev_dependencies:
- flutter_lints: ^1.0.4
+ flutter_lints: ^4.0.0
flutter_test:
sdk: flutter