Refactor profiles

This commit is contained in:
problematicconsumer
2023-11-26 21:20:58 +03:30
parent e2f5f51176
commit 829d58a1a2
49 changed files with 1206 additions and 1024 deletions

View File

@@ -0,0 +1,32 @@
import 'package:hiddify/data/data_providers.dart';
import 'package:hiddify/features/profile/data/profile_data_source.dart';
import 'package:hiddify/features/profile/data/profile_path_resolver.dart';
import 'package:hiddify/features/profile/data/profile_repository.dart';
import 'package:hiddify/services/service_providers.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'profile_data_providers.g.dart';
@Riverpod(keepAlive: true)
Future<ProfileRepository> profileRepository(ProfileRepositoryRef ref) async {
final repo = ProfileRepositoryImpl(
profileDataSource: ref.watch(profileDataSourceProvider),
profilePathResolver: ref.watch(profilePathResolverProvider),
configValidator: ref.watch(coreFacadeProvider).parseConfig,
dio: ref.watch(dioProvider),
);
await repo.init().getOrElse((l) => throw l).run();
return repo;
}
@Riverpod(keepAlive: true)
ProfileDataSource profileDataSource(ProfileDataSourceRef ref) {
return ProfileDao(ref.watch(appDatabaseProvider));
}
@Riverpod(keepAlive: true)
ProfilePathResolver profilePathResolver(ProfilePathResolverRef ref) {
return ProfilePathResolver(
ref.watch(filesEditorServiceProvider).dirs.workingDir,
);
}