removeModelFromLists static method

Future<void> removeModelFromLists(
  1. ModelSpec spec
)

Removes a specific model from the lists

Implementation

static Future<void> removeModelFromLists(ModelSpec spec) async {
  try {
    final prefs = await _prefs;

    for (final file in spec.files) {
      switch (file.prefsKey) {
        case 'installed_model_file_name':
          final models = prefs.getStringList('installed_models') ?? <String>[];
          models.remove(file.filename);
          await prefs.setStringList('installed_models', models);
          break;
        case 'installed_lora_file_name':
          final loras = prefs.getStringList('installed_loras') ?? <String>[];
          loras.remove(file.filename);
          await prefs.setStringList('installed_loras', loras);
          break;
        case 'embedding_model_file':
          final models = prefs.getStringList('installed_embedding_models') ?? <String>[];
          models.remove(file.filename);
          await prefs.setStringList('installed_embedding_models', models);
          break;
        case 'embedding_tokenizer_file':
          final tokenizers = prefs.getStringList('installed_tokenizers') ?? <String>[];
          tokenizers.remove(file.filename);
          await prefs.setStringList('installed_tokenizers', tokenizers);
          break;
      }
    }

    debugPrint('Removed model from lists: ${spec.name}');
  } catch (e) {
    debugPrint('Failed to remove model from lists: $e');
  }
}