Files
umbrix/lib/features/profile/data/profile_data_providers.dart
Umbrix Developer 76a374950f feat: mobile-like window size and always-visible stats
- Changed window size to mobile phone format (400x800)
- Removed width condition for ActiveProxyFooter - now always visible
- Added run-umbrix.sh launch script with icon copying
- Stats cards now display on all screen sizes
2026-01-17 13:09:20 +03:00

37 lines
1.5 KiB
Dart

import 'package:umbrix/core/database/database_provider.dart';
import 'package:umbrix/core/directories/directories_provider.dart';
import 'package:umbrix/core/http_client/http_client_provider.dart';
import 'package:umbrix/features/config_option/data/config_option_data_providers.dart';
import 'package:umbrix/features/profile/data/profile_data_source.dart';
import 'package:umbrix/features/profile/data/profile_path_resolver.dart';
import 'package:umbrix/features/profile/data/profile_repository.dart';
import 'package:umbrix/singbox/service/singbox_service_provider.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),
singbox: ref.watch(singboxServiceProvider),
configOptionRepository: ref.watch(configOptionRepositoryProvider),
httpClient: ref.watch(httpClientProvider),
);
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(appDirectoriesProvider).requireValue.workingDir,
);
}