From 8543f9255ea5b5a940c9c04f46ac3765f3010baa Mon Sep 17 00:00:00 2001 From: cogwheel0 <172976095+cogwheel0@users.noreply.github.com> Date: Tue, 30 Sep 2025 14:58:53 +0530 Subject: [PATCH] =?UTF-8?q?refactor:=20migrate=20voiceInputAvailableProvid?= =?UTF-8?q?er=20=E2=9C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 5.1 Complete (1/5) - voiceInputAvailableProvider → voiceInputAvailable - Simple FutureProvider migration - 2 usages updated automatically --- .../chat/services/voice_input_service.dart | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/features/chat/services/voice_input_service.dart b/lib/features/chat/services/voice_input_service.dart index d9c4565..caa9924 100644 --- a/lib/features/chat/services/voice_input_service.dart +++ b/lib/features/chat/services/voice_input_service.dart @@ -1,11 +1,15 @@ -import 'package:flutter_riverpod/flutter_riverpod.dart'; -import 'package:record/record.dart'; -import 'package:flutter/widgets.dart'; import 'dart:async'; import 'dart:io' show Platform; -// Removed path imports as server transcription fallback was removed + +import 'package:flutter/widgets.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:riverpod_annotation/riverpod_annotation.dart'; +import 'package:record/record.dart'; import 'package:stts/stts.dart'; +part 'voice_input_service.g.dart'; +// Removed path imports as server transcription fallback was removed + // Lightweight replacement for previous stt.LocaleName used across the UI class LocaleName { final String localeId; @@ -322,7 +326,8 @@ final voiceInputServiceProvider = Provider((ref) { return VoiceInputService(); }); -final voiceInputAvailableProvider = FutureProvider((ref) async { +@riverpod +Future voiceInputAvailable(Ref ref) async { final service = ref.watch(voiceInputServiceProvider); if (!service.isSupportedPlatform) return false; final initialized = await service.initialize(); @@ -332,7 +337,7 @@ final voiceInputAvailableProvider = FutureProvider((ref) async { final hasPermission = await service.checkPermissions(); if (!hasPermission) return false; return service.isAvailable; -}); +} final voiceInputStreamProvider = StreamProvider((ref) { final service = ref.watch(voiceInputServiceProvider);