bugfix: use List instead of Collection for ModelDao's deletion

This commit is contained in:
Han Yin 2025-04-14 18:51:35 -07:00
parent 5de0b5d6d0
commit 290a6bfebe
4 changed files with 5 additions and 4 deletions

View File

@ -16,7 +16,7 @@ interface ModelDao {
suspend fun getModelById(id: String): ModelEntity?
@Query("SELECT * FROM models WHERE id IN (:ids)")
suspend fun getModelsByIds(ids: Collection<String>): List<ModelEntity>
suspend fun getModelsByIds(ids: List<String>): List<ModelEntity>
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertModel(model: ModelEntity)

View File

@ -44,7 +44,7 @@ interface ModelRepository {
suspend fun importModel(uri: Uri, progressTracker: ImportProgressTracker? = null): ModelInfo
suspend fun deleteModel(modelId: String)
suspend fun deleteModels(modelIds: Collection<String>)
suspend fun deleteModels(modelIds: List<String>)
fun interface ImportProgressTracker {
fun onProgress(progress: Float) // 0.0f to 1.0f
@ -229,7 +229,7 @@ class ModelRepositoryImpl @Inject constructor(
}
}
override suspend fun deleteModels(modelIds: Collection<String>) {
override suspend fun deleteModels(modelIds: List<String>) {
modelDao.getModelsByIds(modelIds).let { models ->
models.forEach { model ->
File(model.path).let {

View File

@ -137,6 +137,7 @@ fun ModelsManagementScreen(
onClick = {
// Delete selected
if (selectedModels.isNotEmpty()) {
// TODO-han.yin: pop up an AlertDialog asking user for confirmation
viewModel.deleteModels(selectedModels)
exitSelectionMode()
}

View File

@ -73,7 +73,7 @@ class ModelsManagementViewModel @Inject constructor(
fun deleteModels(models: Map<String, ModelInfo>) =
viewModelScope.launch {
modelRepository.deleteModels(models.keys)
modelRepository.deleteModels(models.keys.toList())
}
private val _importState = MutableStateFlow<ModelImportState>(ModelImportState.Idle)