settings_providers.dart 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import 'package:flutter_riverpod/flutter_riverpod.dart';
  2. import 'package:asr_client/services/session_service.dart';
  3. import 'package:asr_client/services/settings_service.dart';
  4. final settingsServiceProvider = Provider<SettingsService>(
  5. (_) => SharedPreferencesSettingsService(),
  6. );
  7. final sessionServiceProvider = Provider<SessionService>(
  8. (_) => SharedPreferencesSessionService(),
  9. );
  10. final serverHostProvider = FutureProvider<String>((ref) async {
  11. final service = ref.watch(settingsServiceProvider);
  12. return service.getHost();
  13. });
  14. final serverPortProvider = FutureProvider<int>((ref) async {
  15. final service = ref.watch(settingsServiceProvider);
  16. return service.getPort();
  17. });
  18. final serverUrlProvider = FutureProvider<String>((ref) async {
  19. final service = ref.watch(settingsServiceProvider);
  20. final host = await service.getHost();
  21. final port = await service.getPort();
  22. return service.getWebSocketUrl(host, port);
  23. });
  24. final liveKitUrlProvider = FutureProvider<String>((ref) async {
  25. final service = ref.watch(settingsServiceProvider);
  26. return service.getLiveKitUrl();
  27. });