优化
This commit is contained in:
51
lib/services/di.dart
Normal file
51
lib/services/di.dart
Normal file
@@ -0,0 +1,51 @@
|
||||
import 'package:get_it/get_it.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
import 'storage_service.dart';
|
||||
import 'notification_service.dart';
|
||||
import 'encouragement_service.dart';
|
||||
|
||||
/// GetIt instance for dependency injection
|
||||
final getIt = GetIt.instance;
|
||||
|
||||
/// Initialize dependency injection
|
||||
Future<void> initializeDI() async {
|
||||
try {
|
||||
// Register services as singletons
|
||||
getIt.registerSingletonAsync<StorageService>(() async {
|
||||
final service = StorageService();
|
||||
await service.init();
|
||||
return service;
|
||||
});
|
||||
|
||||
getIt.registerSingletonAsync<NotificationService>(() async {
|
||||
final service = NotificationService();
|
||||
await service.initialize();
|
||||
await service.requestPermissions();
|
||||
return service;
|
||||
});
|
||||
|
||||
getIt.registerSingletonAsync<EncouragementService>(() async {
|
||||
final service = EncouragementService();
|
||||
await service.loadMessages();
|
||||
return service;
|
||||
});
|
||||
|
||||
// Wait for all services to be initialized
|
||||
await getIt.allReady();
|
||||
|
||||
if (kDebugMode) {
|
||||
print('Dependency injection initialized successfully');
|
||||
}
|
||||
} catch (e) {
|
||||
if (kDebugMode) {
|
||||
print('Failed to initialize dependency injection: $e');
|
||||
}
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
|
||||
/// Reset dependency injection (for testing)
|
||||
void resetDI() {
|
||||
getIt.reset();
|
||||
}
|
||||
Reference in New Issue
Block a user