This commit is contained in:
ytc1012
2025-11-26 16:32:47 +08:00
parent 96658339e1
commit 0195cdf54b
18 changed files with 1052 additions and 240 deletions

51
lib/services/di.dart Normal file
View 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();
}