diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index 5806f8f..5833be8 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -1,8 +1,9 @@
plugins {
id("com.android.application")
id("kotlin-android")
- // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
+ // اضافه کردن پلاگin گوگل سرویسز برای فایربیس
+ id("com.google.gms.google-services")
}
android {
@@ -11,19 +12,20 @@ android {
ndkVersion = flutter.ndkVersion
compileOptions {
- sourceCompatibility = JavaVersion.VERSION_11
- targetCompatibility = JavaVersion.VERSION_11
+ // فلاتر به صورت پیشفرض از جاوا ۸ استفاده میکند.
+ // اگر به صورت دستی به ۱۱ تغییر دادهاید، مشکلی نیست.
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
- jvmTarget = JavaVersion.VERSION_11.toString()
+ jvmTarget = "1.8"
}
defaultConfig {
- // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "com.example.lba"
- // You can update the following values to match your application needs.
- // For more information, see: https://flutter.dev/to/review-gradle-config.
+ // حداقل SDK برای کتابخانههای جدید فایربیس معمولاً ۲۱ است.
+ // ۲۴ که شما تنظیم کردهاید کاملاً مناسب است.
minSdk = 24
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
@@ -32,11 +34,11 @@ android {
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.getByName("debug")
- isMinifyEnabled = false
- isShrinkResources = false
+ // این تنظیمات برای نسخه نهایی (release) مهم هستند
+ // اما برای تست میتوانید آنها را غیرفعال نگه دارید.
+ // isMinifyEnabled = true
+ // isShrinkResources = true
// proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
@@ -45,3 +47,17 @@ android {
flutter {
source = "../.."
}
+
+// اضافه کردن این بخش برای کتابخانههای فایربیس
+dependencies {
+ // اضافه کردن Firebase Bill of Materials (BoM)
+ // این کار نسخههای تمام کتابخانههای فایربیس را مدیریت میکند
+ implementation(platform("com.google.firebase:firebase-bom:33.1.0"))
+
+ // کتابخانههای مورد نیاز برای آنالیتیکس و احراز هویت
+ implementation("com.google.firebase:firebase-analytics")
+ implementation("com.google.firebase:firebase-auth")
+
+ // کتابخانه مورد نیاز برای پکیج google_sign_in
+ implementation("com.google.android.gms:play-services-auth:21.2.0")
+}
\ No newline at end of file
diff --git a/android/app/google-services.json b/android/app/google-services.json
new file mode 100644
index 0000000..0eab273
--- /dev/null
+++ b/android/app/google-services.json
@@ -0,0 +1,47 @@
+{
+ "project_info": {
+ "project_number": "81202355575",
+ "project_id": "lba-app-c4a7e",
+ "storage_bucket": "lba-app-c4a7e.firebasestorage.app"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:81202355575:android:6d4c7db49b6120f8239572",
+ "android_client_info": {
+ "package_name": "com.example.lba"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "81202355575-fchlrrp4fu3irskh6co1ep8i04oi3adr.apps.googleusercontent.com",
+ "client_type": 1,
+ "android_info": {
+ "package_name": "com.example.lba",
+ "certificate_hash": "b64c77112af5000772d60fbe05138e873f6fc118"
+ }
+ },
+ {
+ "client_id": "81202355575-toafncrkf106nnu2g7hmqh2gho491gjt.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyB22NqmwB_PpI1s37xbc2ABJ5_COEHeC8g"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "81202355575-toafncrkf106nnu2g7hmqh2gho491gjt.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 026f001..9dc4a88 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -10,6 +10,7 @@
+
("clean") {
delete(rootProject.layout.buildDirectory)
}
+
+plugins {
+ // The Flutter Gradle Plugin is managed by the Flutter SDK, so we don't specify a version.
+ id("dev.flutter.flutter-gradle-plugin") apply false
+ // The Android Gradle Plugin version is also managed, so we remove the explicit version.
+ id("com.android.application") apply false
+ // The Kotlin plugin version is also managed.
+ id("org.jetbrains.kotlin.android") apply false
+ // اضافه کردن این خط برای تعریف پلاگین گوگل سرویسز
+ id("com.google.gms.google-services") version "4.4.1" apply false
+}
diff --git a/android/gradle.properties b/android/gradle.properties
index f018a61..0c1d39b 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,3 +1,4 @@
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
+org.gradle.java.home=D:/Program Files/Android/Android Studio/jbr
\ No newline at end of file
diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts
index a439442..5fc28b5 100644
--- a/android/settings.gradle.kts
+++ b/android/settings.gradle.kts
@@ -19,7 +19,8 @@ pluginManagement {
plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.7.0" apply false
- id("org.jetbrains.kotlin.android") version "1.8.22" apply false
+ // Updated Kotlin version to the latest stable release
+ id("org.jetbrains.kotlin.android") version "2.0.0" apply false
}
-include(":app")
+include(":app")
\ No newline at end of file
diff --git a/assets/icons/card.svg b/assets/icons/card.svg
new file mode 100644
index 0000000..681275f
--- /dev/null
+++ b/assets/icons/card.svg
@@ -0,0 +1,6 @@
+
diff --git a/lib/features/auth/presentation/bloc/auth_bloc.dart b/lib/features/auth/presentation/bloc/auth_bloc.dart
index 43f5ec9..f0b6734 100644
--- a/lib/features/auth/presentation/bloc/auth_bloc.dart
+++ b/lib/features/auth/presentation/bloc/auth_bloc.dart
@@ -1,4 +1,6 @@
import 'package:flutter_bloc/flutter_bloc.dart';
+import 'package:google_sign_in/google_sign_in.dart';
+import 'package:firebase_auth/firebase_auth.dart';
import '../../domain/usecases/send_otp.dart';
import '../../domain/usecases/verify_otp.dart';
@@ -8,6 +10,7 @@ part 'auth_state.dart';
class AuthBloc extends Bloc {
final SendOTP sendOTPUseCase;
final VerifyOTP verifyOTPUseCase;
+ final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
String _timeStamp = "";
String _timeDue = "";
@@ -21,13 +24,12 @@ class AuthBloc extends Bloc {
}) : super(AuthInitial()) {
on(_onSendOTP);
on(_onVerifyOTP);
+ on(_onSignInWithGoogle);
}
Future _onSendOTP(SendOTPEvent event, Emitter emit) async {
emit(AuthLoading());
-
final result = await sendOTPUseCase(SendOTPParams(phoneNumber: event.phoneNumber));
-
if (result.isSuccess && result.data != null) {
_timeStamp = result.data!.timeStamp;
_timeDue = result.data!.timeDue;
@@ -37,22 +39,59 @@ class AuthBloc extends Bloc {
timeDue: _timeDue,
));
} else {
- emit(AuthError('خطا در ارسال کد. لطفاً دوباره تلاش کنید.'));
+ emit(AuthError('Error sending code. Please try again.'));
}
}
Future _onVerifyOTP(VerifyOTPEvent event, Emitter emit) async {
emit(AuthLoading());
-
final result = await verifyOTPUseCase(VerifyOTPParams(
otpCode: event.otpCode,
phoneNumber: event.phoneNumber,
));
-
if (result.isSuccess && result.data == true) {
emit(OTPVerified());
} else {
- emit(AuthError('کد وارد شده نادرست است. لطفاً دوباره تلاش کنید.'));
+ emit(AuthError('The code entered is incorrect. Please try again.'));
}
}
-}
+
+ Future _onSignInWithGoogle(
+ SignInWithGoogleEvent event,
+ Emitter emit,
+ ) async {
+ emit(AuthLoading());
+ try {
+ final GoogleSignIn googleSignIn = GoogleSignIn(
+ scopes: ['email'],
+ );
+
+ final GoogleSignInAccount? googleUser = await googleSignIn.signIn();
+
+ if (googleUser == null) {
+ emit(AuthInitial());
+ return;
+ }
+
+ final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
+
+ final credential = GoogleAuthProvider.credential(
+ accessToken: googleAuth.accessToken,
+ idToken: googleAuth.idToken,
+ );
+
+ final UserCredential userCredential =
+ await _firebaseAuth.signInWithCredential(credential);
+
+ if (userCredential.user != null) {
+ emit(GoogleSignInSuccess());
+ } else {
+ emit(AuthError("Error signing in with Google"));
+ }
+
+ } catch (e) {
+ emit(AuthError("Error signing in with Google: ${e.toString()}"));
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/lib/features/auth/presentation/bloc/auth_event.dart b/lib/features/auth/presentation/bloc/auth_event.dart
index a3050bc..082f25c 100644
--- a/lib/features/auth/presentation/bloc/auth_event.dart
+++ b/lib/features/auth/presentation/bloc/auth_event.dart
@@ -17,3 +17,5 @@ class VerifyOTPEvent extends AuthEvent {
required this.phoneNumber,
});
}
+
+class SignInWithGoogleEvent extends AuthEvent {}
\ No newline at end of file
diff --git a/lib/features/auth/presentation/bloc/auth_state.dart b/lib/features/auth/presentation/bloc/auth_state.dart
index e90b162..5792b44 100644
--- a/lib/features/auth/presentation/bloc/auth_state.dart
+++ b/lib/features/auth/presentation/bloc/auth_state.dart
@@ -1,4 +1,3 @@
-// lib/features/auth/presentation/bloc/auth_state.dart
part of 'auth_bloc.dart';
abstract class AuthState {}
@@ -9,9 +8,6 @@ class AuthLoading extends AuthState {}
class AuthSuccess extends AuthState {
final String phoneNumber;
- //
- // CHANGE: Made timeStamp and timeDue required.
- //
final String timeStamp;
final String timeDue;
@@ -28,4 +24,6 @@ class AuthError extends AuthState {
AuthError(this.message);
}
-class OTPVerified extends AuthState {}
\ No newline at end of file
+class OTPVerified extends AuthState {}
+
+class GoogleSignInSuccess extends AuthState {}
\ No newline at end of file
diff --git a/lib/features/auth/presentation/pages/login_page.dart b/lib/features/auth/presentation/pages/login_page.dart
index 5bbfe29..b995eba 100644
--- a/lib/features/auth/presentation/pages/login_page.dart
+++ b/lib/features/auth/presentation/pages/login_page.dart
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:country_pickers/country_pickers.dart';
+import 'package:lba/features/auth/presentation/pages/user_info_page.dart';
import '../../../../extension/screenSize.dart';
import '../../../../gen/assets.gen.dart';
import '../bloc/auth_bloc.dart';
@@ -167,6 +168,14 @@ class _LoginPageState extends State {
),
);
}
+ if (state is GoogleSignInSuccess) {
+ Navigator.pushReplacement(
+ context,
+ MaterialPageRoute(
+ builder: (context) => const UserInfoPage(),
+ ),
+ );
+ }
if (state is AuthError) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
@@ -242,7 +251,9 @@ class _LoginPageState extends State {
borderRadius: BorderRadius.circular(32),
),
),
- onPressed: () {},
+ onPressed: () {
+ context.read().add(SignInWithGoogleEvent());
+ },
),
),
],
diff --git a/lib/gen/assets.gen.dart b/lib/gen/assets.gen.dart
index 57ee77c..0ed776d 100644
--- a/lib/gen/assets.gen.dart
+++ b/lib/gen/assets.gen.dart
@@ -1,3 +1,5 @@
+// dart format width=80
+
/// GENERATED CODE - DO NOT MODIFY BY HAND
/// *****************************************************
/// FlutterGen
@@ -5,7 +7,7 @@
// coverage:ignore-file
// ignore_for_file: type=lint
-// ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use
+// ignore_for_file: deprecated_member_use,directives_ordering,implicit_dynamic_list_literal,unnecessary_import
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
@@ -93,6 +95,9 @@ class $AssetsIconsGen {
/// File path: assets/icons/card-pos.svg
SvgGenImage get cardPos => const SvgGenImage('assets/icons/card-pos.svg');
+ /// File path: assets/icons/card.svg
+ SvgGenImage get card => const SvgGenImage('assets/icons/card.svg');
+
/// File path: assets/icons/category-2.svg
SvgGenImage get category2 => const SvgGenImage('assets/icons/category-2.svg');
@@ -367,6 +372,7 @@ class $AssetsIconsGen {
camera2,
cardAdd,
cardPos,
+ card,
category2,
checkAlternative,
clander,
@@ -506,12 +512,18 @@ class Assets {
}
class AssetGenImage {
- const AssetGenImage(this._assetName, {this.size, this.flavors = const {}});
+ const AssetGenImage(
+ this._assetName, {
+ this.size,
+ this.flavors = const {},
+ this.animation,
+ });
final String _assetName;
final Size? size;
final Set flavors;
+ final AssetGenImageAnimation? animation;
Image image({
Key? key,
@@ -575,6 +587,18 @@ class AssetGenImage {
String get keyName => _assetName;
}
+class AssetGenImageAnimation {
+ const AssetGenImageAnimation({
+ required this.isAnimation,
+ required this.duration,
+ required this.frames,
+ });
+
+ final bool isAnimation;
+ final Duration duration;
+ final int frames;
+}
+
class SvgGenImage {
const SvgGenImage(this._assetName, {this.size, this.flavors = const {}})
: _isVecFormat = false;
@@ -601,6 +625,7 @@ class SvgGenImage {
String? semanticsLabel,
bool excludeFromSemantics = false,
_svg.SvgTheme? theme,
+ _svg.ColorMapper? colorMapper,
ColorFilter? colorFilter,
Clip clipBehavior = Clip.hardEdge,
@deprecated Color? color,
@@ -620,6 +645,7 @@ class SvgGenImage {
assetBundle: bundle,
packageName: package,
theme: theme,
+ colorMapper: colorMapper,
);
}
return _svg.SvgPicture(
diff --git a/lib/gen/fonts.gen.dart b/lib/gen/fonts.gen.dart
index 7298f8c..9962f14 100644
--- a/lib/gen/fonts.gen.dart
+++ b/lib/gen/fonts.gen.dart
@@ -1,3 +1,4 @@
+// dart format width=80
/// GENERATED CODE - DO NOT MODIFY BY HAND
/// *****************************************************
/// FlutterGen
@@ -5,7 +6,7 @@
// coverage:ignore-file
// ignore_for_file: type=lint
-// ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use
+// ignore_for_file: deprecated_member_use,directives_ordering,implicit_dynamic_list_literal,unnecessary_import
class FontFamily {
FontFamily._();
diff --git a/lib/main.dart b/lib/main.dart
index a8ddfcb..ccc51e1 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -5,8 +5,11 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'features/auth/presentation/pages/onboarding_page.dart';
import 'widgets/animated_splash_screen.dart';
import 'injection_container.dart';
+import 'package:firebase_core/firebase_core.dart';
-void main() {
+Future main() async {
+ WidgetsFlutterBinding.ensureInitialized();
+ await Firebase.initializeApp();
sl.init();
runApp(const MyApp());
}
diff --git a/lib/screens/mains/planner/planner.dart b/lib/screens/mains/planner/planner.dart
index 579289e..5932ddb 100644
--- a/lib/screens/mains/planner/planner.dart
+++ b/lib/screens/mains/planner/planner.dart
@@ -11,6 +11,7 @@ import 'package:flutter_sound/flutter_sound.dart';
import 'package:audioplayers/audioplayers.dart';
import 'package:path_provider/path_provider.dart';
import 'package:permission_handler/permission_handler.dart';
+import 'package:vibration/vibration.dart';
class Planner extends StatefulWidget {
const Planner({super.key});
@@ -236,11 +237,31 @@ class _PlannerState extends State with TickerProviderStateMixin {
Future _startRecording() async {
try {
- HapticFeedback.mediumImpact();
+ debugPrint('🎤 Starting recording...');
+
+ try {
+ debugPrint('📳 Attempting vibration...');
+
+ bool? hasVibrator = await Vibration.hasVibrator();
+ debugPrint('🔍 Device has vibrator: $hasVibrator');
+
+ if (hasVibrator == true) {
+ await Vibration.vibrate(duration: 100);
+ debugPrint('✅ Vibration pattern done');
+ }
+
+ await HapticFeedback.heavyImpact();
+ debugPrint('✅ Heavy impact done');
+
+ } catch (e) {
+ debugPrint('❌ Vibration error: $e');
+ }
final permission = await Permission.microphone.request();
+ debugPrint('🎙️ Microphone permission status: $permission');
if (permission != PermissionStatus.granted) {
+ debugPrint('❌ Microphone permission denied');
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text(
@@ -250,6 +271,7 @@ class _PlannerState extends State with TickerProviderStateMixin {
}
if (_audioRecorder == null) {
+ debugPrint('🔧 Initializing recorder...');
await _initRecorder();
}
@@ -257,12 +279,14 @@ class _PlannerState extends State with TickerProviderStateMixin {
await getApplicationDocumentsDirectory();
final String filePath =
'${appDocumentsDir.path}/recording_${DateTime.now().millisecondsSinceEpoch}.aac';
+ debugPrint('📁 Recording to: $filePath');
await _audioRecorder!.startRecorder(
toFile: filePath,
codec: Codec.aacADTS,
);
+ debugPrint('✅ Recording started successfully');
setState(() {
_isRecording = true;
_recordDuration = Duration.zero;
@@ -270,22 +294,44 @@ class _PlannerState extends State with TickerProviderStateMixin {
_startRecordTimer();
} catch (e) {
- debugPrint('Error starting recording: $e');
+ debugPrint('❌ Error starting recording: $e');
}
}
Future _stopRecording() async {
try {
- HapticFeedback.lightImpact();
+ debugPrint('🛑 Stopping recording...');
+
+ try {
+ debugPrint('📳 Attempting stop vibration...');
+
+ bool? hasVibrator = await Vibration.hasVibrator();
+ debugPrint('🔍 Device has vibrator: $hasVibrator');
+
+ if (hasVibrator == true) {
+ await Vibration.vibrate(duration: 50);
+ await Future.delayed(Duration(milliseconds: 100));
+ await Vibration.vibrate(duration: 50);
+ debugPrint('✅ Double vibration done');
+ }
+
+ await HapticFeedback.lightImpact();
+ debugPrint('✅ Light impact done');
+
+ } catch (e) {
+ debugPrint('❌ Stop vibration error: $e');
+ }
+
_recordingTimer?.cancel();
final path = await _audioRecorder!.stopRecorder();
+ debugPrint('✅ Recording stopped. Path: $path');
setState(() {
_isRecording = false;
_recordedAudioPath = path;
});
} catch (e) {
- debugPrint('Error stopping recording: $e');
+ debugPrint('❌ Error stopping recording: $e');
}
}
@@ -1046,8 +1092,29 @@ class _PlannerState extends State with TickerProviderStateMixin {
),
),
GestureDetector(
- onLongPressStart: (_) => _startRecording(),
- onLongPressEnd: (_) => _stopRecording(),
+ onLongPressStart: (_) {
+ debugPrint('🔴 Long press started');
+ _startRecording();
+ },
+ onLongPressEnd: (_) {
+ debugPrint('🔴 Long press ended');
+ _stopRecording();
+ },
+ onTap: () async {
+ debugPrint('👆 Mic tapped for test');
+ try {
+ bool? hasVibrator = await Vibration.hasVibrator();
+ debugPrint('🔍 Device vibration support: $hasVibrator');
+ if (hasVibrator == true) {
+ await Vibration.vibrate(duration: 200);
+ debugPrint('✅ Test vibration completed');
+ }
+ await HapticFeedback.heavyImpact();
+ debugPrint('✅ Test haptic completed');
+ } catch (e) {
+ debugPrint('❌ Test vibration error: $e');
+ }
+ },
child: AnimatedBuilder(
animation: _micPulseAnimation,
builder: (context, child) {
diff --git a/lib/widgets/add_card_bottom_sheet.dart b/lib/widgets/add_card_bottom_sheet.dart
index 3b29f97..9cf4650 100644
--- a/lib/widgets/add_card_bottom_sheet.dart
+++ b/lib/widgets/add_card_bottom_sheet.dart
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
-import 'package:lba/res/colors.dart';
+import 'package:flutter_svg/svg.dart';
+import 'package:lba/gen/assets.gen.dart';
import 'package:lba/widgets/button.dart';
class AddCardBottomSheet extends StatefulWidget {
@@ -26,7 +27,6 @@ class _AddCardBottomSheetState extends State {
_cardNumberController.addListener(_validateCardNumber);
_expiryDateController.addListener(_validateExpiryDate);
- // Change border color on focus
_cardNumberFocus.addListener(() {
setState(() {
_borderColor = _cardNumberFocus.hasFocus || _expiryDateFocus.hasFocus
@@ -118,7 +118,7 @@ class _AddCardBottomSheetState extends State {
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
- color: Colors.black87,
+ color: Color.fromARGB(255, 85,84, 81),
),
),
const SizedBox(height: 8),
@@ -133,9 +133,9 @@ class _AddCardBottomSheetState extends State {
),
child: Row(
children: [
- const Padding(
+ Padding(
padding: EdgeInsets.symmetric(horizontal: 12.0),
- child: Icon(Icons.credit_card, color: Colors.grey),
+ child: SvgPicture.asset(Assets.icons.card.path, width: 24, height: 24),
),
Expanded(
child: TextFormField(
diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift
index fd92eba..6dc6662 100644
--- a/macos/Flutter/GeneratedPluginRegistrant.swift
+++ b/macos/Flutter/GeneratedPluginRegistrant.swift
@@ -6,22 +6,32 @@ import FlutterMacOS
import Foundation
import audioplayers_darwin
+import device_info_plus
import file_selector_macos
+import firebase_auth
+import firebase_core
import geolocator_apple
+import google_sign_in_ios
import location
import maps_launcher
import mobile_scanner
+import package_info_plus
import path_provider_foundation
import shared_preferences_foundation
import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin"))
+ DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
+ FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin"))
+ FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin"))
+ FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin"))
LocationPlugin.register(with: registry.registrar(forPlugin: "LocationPlugin"))
MapsLauncherPlugin.register(with: registry.registrar(forPlugin: "MapsLauncherPlugin"))
MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin"))
+ FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
diff --git a/pubspec.lock b/pubspec.lock
index ba89396..ece1664 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -5,18 +5,26 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
- sha256: e55636ed79578b9abca5fecf9437947798f5ef7456308b5cb85720b793eac92f
+ sha256: f0bb5d1648339c8308cc0b9838d8456b3cfe5c91f9dc1a735b4d003269e5da9a
url: "https://pub.dev"
source: hosted
- version: "82.0.0"
+ version: "88.0.0"
+ _flutterfire_internals:
+ dependency: transitive
+ description:
+ name: _flutterfire_internals
+ sha256: bb84ee51e527053dd8e25ecc9f97a6abfdc19130fb4d883e4e8585e23e7e6dd8
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.3.60"
analyzer:
dependency: transitive
description:
name: analyzer
- sha256: "13c1e6c6fd460522ea840abec3f677cc226f5fec7872c04ad7b425517ccf54f7"
+ sha256: "0b7b9c329d2879f8f05d6c05b32ee9ec025f39b077864bdb5ac9a7b63418a98f"
url: "https://pub.dev"
source: hosted
- version: "7.4.4"
+ version: "8.1.1"
archive:
dependency: transitive
description:
@@ -117,18 +125,18 @@ packages:
dependency: transitive
description:
name: build
- sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0
+ sha256: "6439a9c71a4e6eca8d9490c1b380a25b02675aa688137dfbe66d2062884a23ac"
url: "https://pub.dev"
source: hosted
- version: "2.4.2"
+ version: "3.0.2"
build_config:
dependency: transitive
description:
name: build_config
- sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33"
+ sha256: "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187"
url: "https://pub.dev"
source: hosted
- version: "1.1.2"
+ version: "1.2.0"
build_daemon:
dependency: transitive
description:
@@ -141,26 +149,26 @@ packages:
dependency: transitive
description:
name: build_resolvers
- sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0
+ sha256: "2b21a125d66a86b9511cc3fb6c668c42e9a1185083922bf60e46d483a81a9712"
url: "https://pub.dev"
source: hosted
- version: "2.4.4"
+ version: "3.0.2"
build_runner:
dependency: "direct dev"
description:
name: build_runner
- sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99"
+ sha256: fd3c09f4bbff7fa6e8d8ef688a0b2e8a6384e6483a25af0dac75fef362bcfe6f
url: "https://pub.dev"
source: hosted
- version: "2.4.15"
+ version: "2.7.0"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
- sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021"
+ sha256: ab27e46c8aa233e610cf6084ee6d8a22c6f873a0a9929241d8855b7a72978ae7
url: "https://pub.dev"
source: hosted
- version: "8.0.0"
+ version: "9.3.0"
built_collection:
dependency: transitive
description:
@@ -173,10 +181,10 @@ packages:
dependency: transitive
description:
name: built_value
- sha256: ea90e81dc4a25a043d9bee692d20ed6d1c4a1662a28c03a96417446c093ed6b4
+ sha256: ba95c961bafcd8686d1cf63be864eb59447e795e124d98d6a27d91fcd13602fb
url: "https://pub.dev"
source: hosted
- version: "8.9.5"
+ version: "8.11.1"
characters:
dependency: transitive
description:
@@ -273,14 +281,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.0"
+ dart_polylabel2:
+ dependency: transitive
+ description:
+ name: dart_polylabel2
+ sha256: "7eeab15ce72894e4bdba6a8765712231fc81be0bd95247de4ad9966abc57adc6"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.0"
dart_style:
dependency: transitive
description:
name: dart_style
- sha256: "27eb0ae77836989a3bc541ce55595e8ceee0992807f14511552a898ddd0d88ac"
+ sha256: c87dfe3d56f183ffe9106a18aebc6db431fc7c98c31a54b952a77f3d54a85697
url: "https://pub.dev"
source: hosted
- version: "3.0.1"
+ version: "3.1.2"
dartx:
dependency: transitive
description:
@@ -289,14 +305,38 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.0"
+ dbus:
+ dependency: transitive
+ description:
+ name: dbus
+ sha256: "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.7.11"
+ device_info_plus:
+ dependency: transitive
+ description:
+ name: device_info_plus
+ sha256: "98f28b42168cc509abc92f88518882fd58061ea372d7999aecc424345c7bff6a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "11.5.0"
+ device_info_plus_platform_interface:
+ dependency: transitive
+ description:
+ name: device_info_plus_platform_interface
+ sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f
+ url: "https://pub.dev"
+ source: hosted
+ version: "7.0.3"
dio:
dependency: "direct main"
description:
name: dio
- sha256: "253a18bbd4851fecba42f7343a1df3a9a4c1d31a2c1b37e221086b4fa8c8dbc9"
+ sha256: d90ee57923d1828ac14e492ca49440f65477f4bb1263575900be731a3dac66a9
url: "https://pub.dev"
source: hosted
- version: "5.8.0+1"
+ version: "5.9.0"
dio_web_adapter:
dependency: transitive
description:
@@ -369,6 +409,54 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.9.3+4"
+ firebase_auth:
+ dependency: "direct main"
+ description:
+ name: firebase_auth
+ sha256: abd15b7287285390c4ac144fed7825a1877496366e0d15ffc0ddfa9774deb3f3
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.0.1"
+ firebase_auth_platform_interface:
+ dependency: transitive
+ description:
+ name: firebase_auth_platform_interface
+ sha256: c1d8a2f40980fbae191598e80431dd1228ddaeba17f96f4fe14babab721bdf3d
+ url: "https://pub.dev"
+ source: hosted
+ version: "8.1.0"
+ firebase_auth_web:
+ dependency: transitive
+ description:
+ name: firebase_auth_web
+ sha256: "337e01f3bb30de85b74634c33712c57f76cc15f7be9d35b24aab9e95e451a4e2"
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.0.1"
+ firebase_core:
+ dependency: "direct main"
+ description:
+ name: firebase_core
+ sha256: "6b343e6f7b72a4f32d7ce8df8c9a28d8f54b4ac20d7c6500f3e8b3969afca457"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.0"
+ firebase_core_platform_interface:
+ dependency: transitive
+ description:
+ name: firebase_core_platform_interface
+ sha256: "5dbc900677dcbe5873d22ad7fbd64b047750124f1f9b7ebe2a33b9ddccc838eb"
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.0.0"
+ firebase_core_web:
+ dependency: transitive
+ description:
+ name: firebase_core_web
+ sha256: "5d28b14dd32282fb7ce2b22b897362453755b6b8541d491127dc72b755bb7b16"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.0"
fixnum:
dependency: transitive
description:
@@ -386,26 +474,26 @@ packages:
dependency: "direct main"
description:
name: flutter_bloc
- sha256: "1046d719fbdf230330d3443187cc33cc11963d15c9089f6cc56faa42a4c5f0cc"
+ sha256: cf51747952201a455a1c840f8171d273be009b932c75093020f9af64f2123e38
url: "https://pub.dev"
source: hosted
- version: "9.1.0"
+ version: "9.1.1"
flutter_gen_core:
dependency: transitive
description:
name: flutter_gen_core
- sha256: "3eaa2d3d8be58267ac4cd5e215ac965dd23cae0410dc073de2e82e227be32bfc"
+ sha256: eda54fdc5de08e7eeea663eb8442aafc8660b5a13fda4e0c9e572c64e50195fb
url: "https://pub.dev"
source: hosted
- version: "5.10.0"
+ version: "5.11.0"
flutter_gen_runner:
dependency: "direct dev"
description:
name: flutter_gen_runner
- sha256: e74b4ead01df3e8f02e73a26ca856759dbbe8cb3fd60941ba9f4005cd0cd19c9
+ sha256: "669bf8b7a9b4acbdcb7fcc5e12bf638aca19acedf43341714cbca3bf3a219521"
url: "https://pub.dev"
source: hosted
- version: "5.10.0"
+ version: "5.11.0"
flutter_lints:
dependency: "direct dev"
description:
@@ -418,10 +506,10 @@ packages:
dependency: "direct main"
description:
name: flutter_map
- sha256: f7d0379477274f323c3f3bc12d369a2b42eb86d1e7bd2970ae1ea3cff782449a
+ sha256: df33e784b09fae857c6261a5521dd42bd4d3342cb6200884bb70730638af5fd5
url: "https://pub.dev"
source: hosted
- version: "8.1.1"
+ version: "8.2.1"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
@@ -458,10 +546,10 @@ packages:
dependency: "direct main"
description:
name: flutter_svg
- sha256: d44bf546b13025ec7353091516f6881f1d4c633993cb109c3916c3a0159dadf1
+ sha256: cd57f7969b4679317c17af6fd16ee233c1e60a82ed209d8a475c54fd6fd6f845
url: "https://pub.dev"
source: hosted
- version: "2.1.0"
+ version: "2.2.0"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -480,22 +568,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.0.0"
+ geoclue:
+ dependency: transitive
+ description:
+ name: geoclue
+ sha256: c2a998c77474fc57aa00c6baa2928e58f4b267649057a1c76738656e9dbd2a7f
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.1.1"
geolocator:
dependency: "direct main"
description:
name: geolocator
- sha256: e7ebfa04ce451daf39b5499108c973189a71a919aa53c1204effda1c5b93b822
+ sha256: "79939537046c9025be47ec645f35c8090ecadb6fe98eba146a0d25e8c1357516"
url: "https://pub.dev"
source: hosted
- version: "14.0.0"
+ version: "14.0.2"
geolocator_android:
dependency: transitive
description:
name: geolocator_android
- sha256: "114072db5d1dce0ec0b36af2697f55c133bc89a2c8dd513e137c0afe59696ed4"
+ sha256: "179c3cb66dfa674fc9ccbf2be872a02658724d1c067634e2c427cf6df7df901a"
url: "https://pub.dev"
source: hosted
- version: "5.0.1+1"
+ version: "5.0.2"
geolocator_apple:
dependency: transitive
description:
@@ -504,6 +600,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.3.13"
+ geolocator_linux:
+ dependency: transitive
+ description:
+ name: geolocator_linux
+ sha256: c4e966f0a7a87e70049eac7a2617f9e16fd4c585a26e4330bdfc3a71e6a721f3
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.3"
geolocator_platform_interface:
dependency: transitive
description:
@@ -536,6 +640,54 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.3"
+ google_identity_services_web:
+ dependency: transitive
+ description:
+ name: google_identity_services_web
+ sha256: "5d187c46dc59e02646e10fe82665fc3884a9b71bc1c90c2b8b749316d33ee454"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.3.3+1"
+ google_sign_in:
+ dependency: "direct main"
+ description:
+ name: google_sign_in
+ sha256: d0a2c3bcb06e607bb11e4daca48bd4b6120f0bbc4015ccebbe757d24ea60ed2a
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.3.0"
+ google_sign_in_android:
+ dependency: transitive
+ description:
+ name: google_sign_in_android
+ sha256: d5e23c56a4b84b6427552f1cf3f98f716db3b1d1a647f16b96dbb5b93afa2805
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.2.1"
+ google_sign_in_ios:
+ dependency: transitive
+ description:
+ name: google_sign_in_ios
+ sha256: "102005f498ce18442e7158f6791033bbc15ad2dcc0afa4cf4752e2722a516c96"
+ url: "https://pub.dev"
+ source: hosted
+ version: "5.9.0"
+ google_sign_in_platform_interface:
+ dependency: transitive
+ description:
+ name: google_sign_in_platform_interface
+ sha256: "5f6f79cf139c197261adb6ac024577518ae48fdff8e53205c5373b5f6430a8aa"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.5.0"
+ google_sign_in_web:
+ dependency: transitive
+ description:
+ name: google_sign_in_web
+ sha256: "460547beb4962b7623ac0fb8122d6b8268c951cf0b646dd150d60498430e4ded"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.12.4+4"
graphs:
dependency: transitive
description:
@@ -544,6 +696,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.3.2"
+ gsettings:
+ dependency: transitive
+ description:
+ name: gsettings
+ sha256: "1b0ce661f5436d2db1e51f3c4295a49849f03d304003a7ba177d01e3a858249c"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.2.8"
hashcodes:
dependency: transitive
description:
@@ -556,10 +716,10 @@ packages:
dependency: transitive
description:
name: http
- sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f
+ sha256: bb2ce4590bc2667c96f318d68cac1b5a7987ec819351d32b1c987239a815e007
url: "https://pub.dev"
source: hosted
- version: "1.3.0"
+ version: "1.5.0"
http_multi_server:
dependency: transitive
description:
@@ -576,6 +736,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.1.2"
+ image:
+ dependency: transitive
+ description:
+ name: image
+ sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.5.4"
image_picker:
dependency: "direct main"
description:
@@ -644,10 +812,10 @@ packages:
dependency: transitive
description:
name: image_size_getter
- sha256: "9a299e3af2ebbcfd1baf21456c3c884037ff524316c97d8e56035ea8fdf35653"
+ sha256: "7c26937e0ae341ca558b7556591fd0cc456fcc454583b7cb665d2f03e93e590f"
url: "https://pub.dev"
source: hosted
- version: "2.4.0"
+ version: "2.4.1"
intl:
dependency: "direct main"
description:
@@ -664,14 +832,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.5"
- js:
- dependency: transitive
- description:
- name: js
- sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc"
- url: "https://pub.dev"
- source: hosted
- version: "0.7.2"
json_annotation:
dependency: transitive
description:
@@ -732,34 +892,34 @@ packages:
dependency: "direct main"
description:
name: location
- sha256: c2c4304071ec860525d5c50d142410072f8620c1d9f74874811af2e804e1a9c8
+ sha256: b080053c181c7d152c43dd576eec6436c40e25f326933051c330da563ddd5333
url: "https://pub.dev"
source: hosted
- version: "8.0.0"
+ version: "8.0.1"
location_platform_interface:
dependency: transitive
description:
name: location_platform_interface
- sha256: a3404ea6d74e89b121630be62ed8edcc7b39fd108bd19805d0ae55c397135dd7
+ sha256: ca8700bb3f6b1e8b2afbd86bd78b2280d116c613ca7bfa1d4d7b64eba357d749
url: "https://pub.dev"
source: hosted
- version: "6.0.0"
+ version: "6.0.1"
location_web:
dependency: transitive
description:
name: location_web
- sha256: "744bdff53dc455a2dc9a34474c49cde364d4fbef2aee009f8b0b4b68570c27a1"
+ sha256: b8e3add5efe0d65c5e692b7a135d80a4015c580d3ea646fa71973e97668dd868
url: "https://pub.dev"
source: hosted
- version: "6.0.0"
+ version: "6.0.1"
logger:
dependency: transitive
description:
name: logger
- sha256: be4b23575aac7ebf01f225a241eb7f6b5641eeaf43c6a8613510fc2f8cf187d1
+ sha256: "55d6c23a6c15db14920e037fe7e0dc32e7cdaf3b64b4b25df2d541b5b6b81c0c"
url: "https://pub.dev"
source: hosted
- version: "2.5.0"
+ version: "2.6.1"
logging:
dependency: transitive
description:
@@ -840,6 +1000,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.2.0"
+ package_info_plus:
+ dependency: transitive
+ description:
+ name: package_info_plus
+ sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968"
+ url: "https://pub.dev"
+ source: hosted
+ version: "8.3.1"
+ package_info_plus_platform_interface:
+ dependency: transitive
+ description:
+ name: package_info_plus_platform_interface
+ sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.2.1"
path:
dependency: transitive
description:
@@ -976,14 +1152,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.8"
- polylabel:
- dependency: transitive
- description:
- name: polylabel
- sha256: "41b9099afb2aa6c1730bdd8a0fab1400d287694ec7615dd8516935fa3144214b"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.1"
pool:
dependency: transitive
description:
@@ -996,10 +1164,10 @@ packages:
dependency: transitive
description:
name: posix
- sha256: f0d7856b6ca1887cfa6d1d394056a296ae33489db914e365e2044fdada449e62
+ sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61"
url: "https://pub.dev"
source: hosted
- version: "6.0.2"
+ version: "6.0.3"
proj4dart:
dependency: transitive
description:
@@ -1012,10 +1180,10 @@ packages:
dependency: transitive
description:
name: provider
- sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84"
+ sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272"
url: "https://pub.dev"
source: hosted
- version: "6.1.5"
+ version: "6.1.5+1"
pub_semver:
dependency: transitive
description:
@@ -1044,10 +1212,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_android
- sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac"
+ sha256: "5bcf0772a761b04f8c6bf814721713de6f3e5d9d89caf8d3fe031b02a342379e"
url: "https://pub.dev"
source: hosted
- version: "2.4.10"
+ version: "2.4.11"
shared_preferences_foundation:
dependency: transitive
description:
@@ -1217,26 +1385,26 @@ packages:
dependency: transitive
description:
name: url_launcher
- sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603"
+ sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8
url: "https://pub.dev"
source: hosted
- version: "6.3.1"
+ version: "6.3.2"
url_launcher_android:
dependency: transitive
description:
name: url_launcher_android
- sha256: "8582d7f6fe14d2652b4c45c9b6c14c0b678c2af2d083a11b604caeba51930d79"
+ sha256: "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656"
url: "https://pub.dev"
source: hosted
- version: "6.3.16"
+ version: "6.3.17"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
- sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb"
+ sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7
url: "https://pub.dev"
source: hosted
- version: "6.3.3"
+ version: "6.3.4"
url_launcher_linux:
dependency: transitive
description:
@@ -1249,10 +1417,10 @@ packages:
dependency: transitive
description:
name: url_launcher_macos
- sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2"
+ sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f
url: "https://pub.dev"
source: hosted
- version: "3.2.2"
+ version: "3.2.3"
url_launcher_platform_interface:
dependency: transitive
description:
@@ -1289,10 +1457,10 @@ packages:
dependency: transitive
description:
name: vector_graphics
- sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de"
+ sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6
url: "https://pub.dev"
source: hosted
- version: "1.1.18"
+ version: "1.1.19"
vector_graphics_codec:
dependency: transitive
description:
@@ -1305,10 +1473,10 @@ packages:
dependency: transitive
description:
name: vector_graphics_compiler
- sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad"
+ sha256: ca81fdfaf62a5ab45d7296614aea108d2c7d0efca8393e96174bf4d51e6725b0
url: "https://pub.dev"
source: hosted
- version: "1.1.16"
+ version: "1.1.18"
vector_math:
dependency: transitive
description:
@@ -1317,6 +1485,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
+ vibration:
+ dependency: "direct main"
+ description:
+ name: vibration
+ sha256: "3b08a0579c2f9c18d5d78cb5c74f1005f731e02eeca6d72561a2e8059bf98ec3"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.0"
+ vibration_platform_interface:
+ dependency: transitive
+ description:
+ name: vibration_platform_interface
+ sha256: "6ffeee63547562a6fef53c05a41d4fdcae2c0595b83ef59a4813b0612cd2bc36"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.0.3"
vm_service:
dependency: transitive
description:
@@ -1329,10 +1513,10 @@ packages:
dependency: transitive
description:
name: watcher
- sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104"
+ sha256: "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a"
url: "https://pub.dev"
source: hosted
- version: "1.1.1"
+ version: "1.1.2"
web:
dependency: transitive
description:
@@ -1345,10 +1529,10 @@ packages:
dependency: transitive
description:
name: web_socket
- sha256: bfe6f435f6ec49cb6c01da1e275ae4228719e59a6b067048c51e72d9d63bcc4b
+ sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c"
url: "https://pub.dev"
source: hosted
- version: "1.0.0"
+ version: "1.0.1"
web_socket_channel:
dependency: transitive
description:
@@ -1357,6 +1541,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.3"
+ win32:
+ dependency: transitive
+ description:
+ name: win32
+ sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba"
+ url: "https://pub.dev"
+ source: hosted
+ version: "5.13.0"
+ win32_registry:
+ dependency: transitive
+ description:
+ name: win32_registry
+ sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.0"
wkt_parser:
dependency: transitive
description:
diff --git a/pubspec.yaml b/pubspec.yaml
index d89b3c2..3264e71 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -54,6 +54,10 @@ dependencies:
flutter_sound: ^9.8.4
audioplayers: ^6.1.0
path_provider: ^2.1.4
+ vibration: ^2.0.0
+ firebase_auth: ^6.0.1
+ google_sign_in: ^6.1.6
+ firebase_core: ^4.0.0
# geocoding: ^3.0.0
dev_dependencies:
diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc
index 618d94b..2d0d54d 100644
--- a/windows/flutter/generated_plugin_registrant.cc
+++ b/windows/flutter/generated_plugin_registrant.cc
@@ -8,6 +8,8 @@
#include
#include
+#include
+#include
#include
#include
#include
@@ -18,6 +20,10 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("AudioplayersWindowsPlugin"));
FileSelectorWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FileSelectorWindows"));
+ FirebaseAuthPluginCApiRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi"));
+ FirebaseCorePluginCApiRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
GeolocatorWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("GeolocatorWindows"));
MapsLauncherPluginRegisterWithRegistrar(
diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake
index 5fd938b..ecc2cf2 100644
--- a/windows/flutter/generated_plugins.cmake
+++ b/windows/flutter/generated_plugins.cmake
@@ -5,6 +5,8 @@
list(APPEND FLUTTER_PLUGIN_LIST
audioplayers_windows
file_selector_windows
+ firebase_auth
+ firebase_core
geolocator_windows
maps_launcher
permission_handler_windows