| 1 | import 'dart:io'; |
| 2 | |
| 3 | import 'package:path_provider/path_provider.dart'; |
| 4 | |
| 5 | import '../../../core/models/enums.dart'; |
| 6 | |
| 7 | class ModelDownloader { |
| 8 | Future<Directory> getTtsDir() async { |
| 9 | final supportDir = await getApplicationSupportDirectory(); |
| 10 | final dir = Directory('${supportDir.path}/tts_models'); |
| 11 | if (!await dir.exists()) { |
| 12 | await dir.create(recursive: true); |
| 13 | } |
| 14 | return dir; |
| 15 | } |
| 16 | |
| 17 | Future<bool> isEngineDownloaded(EngineId engine) async { |
| 18 | final ttsDir = await getTtsDir(); |
| 19 | final engineDir = Directory('${ttsDir.path}/${engine.name}'); |
| 20 | if (!await engineDir.exists()) return false; |
| 21 | final entities = await engineDir.list().toList(); |
| 22 | return entities.isNotEmpty; |
| 23 | } |
| 24 | } |