Files
BudgetApp/lib/injection_container.dart
T
Sanders 829ca93d9b Adds SMS reading functionality
Implements SMS reading functionality to automatically track expenses.

- Adds necessary permissions for reading SMS messages in AndroidManifest.xml.
- Registers SmsService and SmsCubit in the dependency injection container.
- Adds a new SMS page to the bottom navigation bar.
- Introduces new localization strings for the SMS page title and permission denied message.
- Sets minSdk to 23.
2025-06-30 13:40:52 +03:00

60 lines
2.0 KiB
Dart

import 'package:get_it/get_it.dart';
import 'data/database/hive_service.dart';
import 'data/repositories/hive_category_repository.dart';
import 'data/repositories/hive_tag_repository.dart';
import 'data/repositories/hive_transaction_repository.dart';
import 'data/repositories/hive_user_repository.dart';
import 'data/repositories/interfaces/icategory_repository.dart';
import 'data/repositories/interfaces/itag_repository.dart';
import 'data/repositories/interfaces/itransaction_repository.dart';
import 'data/repositories/interfaces/iuser_repository.dart';
import 'logic/auth/auth_bloc.dart';
import 'logic/settings/settings_cubit.dart'; // Импортируем SettingsCubit
import 'logic/sms/sms_cubit.dart';
import 'logic/transaction/transaction_bloc.dart';
import 'services/sms_service.dart';
import 'services/user_service.dart';
final getIt = GetIt.instance;
Future<void> initDependencies() async {
// Инициализация Hive
await HiveService.init();
// Регистрация репозиториев
getIt.registerSingleton<ICategoryRepository>(
HiveCategoryRepository(HiveService.categories),
);
getIt.registerSingleton<ITagRepository>(HiveTagRepository(HiveService.tags));
getIt.registerSingleton<ITransactionRepository>(
HiveTransactionRepository(HiveService.transactions),
);
getIt.registerSingleton<IUserRepository>(
HiveUserRepository(HiveService.users),
);
// Services
getIt.registerSingleton<UserService>(
UserService(getIt(), getIt(), getIt(), getIt()),
);
getIt.registerSingleton<SmsService>(SmsService());
// Регистрация сервисов
getIt.registerSingleton<SettingsCubit>(
SettingsCubit(getIt()),
); // Регистрируем Cubit и передаем IUserRepository
// Blocs
getIt.registerFactory<AuthBloc>(() => AuthBloc(userService: getIt()));
getIt.registerFactory<TransactionBloc>(
() => TransactionBloc(transactionRepository: getIt()),
);
getIt.registerFactory<SmsCubit>(() => SmsCubit(getIt()));
}