bugfix: use List instead of Collection for ModelDao's deletion
This commit is contained in:
parent
5de0b5d6d0
commit
290a6bfebe
|
|
@ -16,7 +16,7 @@ interface ModelDao {
|
||||||
suspend fun getModelById(id: String): ModelEntity?
|
suspend fun getModelById(id: String): ModelEntity?
|
||||||
|
|
||||||
@Query("SELECT * FROM models WHERE id IN (:ids)")
|
@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)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
suspend fun insertModel(model: ModelEntity)
|
suspend fun insertModel(model: ModelEntity)
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ interface ModelRepository {
|
||||||
suspend fun importModel(uri: Uri, progressTracker: ImportProgressTracker? = null): ModelInfo
|
suspend fun importModel(uri: Uri, progressTracker: ImportProgressTracker? = null): ModelInfo
|
||||||
|
|
||||||
suspend fun deleteModel(modelId: String)
|
suspend fun deleteModel(modelId: String)
|
||||||
suspend fun deleteModels(modelIds: Collection<String>)
|
suspend fun deleteModels(modelIds: List<String>)
|
||||||
|
|
||||||
fun interface ImportProgressTracker {
|
fun interface ImportProgressTracker {
|
||||||
fun onProgress(progress: Float) // 0.0f to 1.0f
|
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 ->
|
modelDao.getModelsByIds(modelIds).let { models ->
|
||||||
models.forEach { model ->
|
models.forEach { model ->
|
||||||
File(model.path).let {
|
File(model.path).let {
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,7 @@ fun ModelsManagementScreen(
|
||||||
onClick = {
|
onClick = {
|
||||||
// Delete selected
|
// Delete selected
|
||||||
if (selectedModels.isNotEmpty()) {
|
if (selectedModels.isNotEmpty()) {
|
||||||
|
// TODO-han.yin: pop up an AlertDialog asking user for confirmation
|
||||||
viewModel.deleteModels(selectedModels)
|
viewModel.deleteModels(selectedModels)
|
||||||
exitSelectionMode()
|
exitSelectionMode()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ class ModelsManagementViewModel @Inject constructor(
|
||||||
|
|
||||||
fun deleteModels(models: Map<String, ModelInfo>) =
|
fun deleteModels(models: Map<String, ModelInfo>) =
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
modelRepository.deleteModels(models.keys)
|
modelRepository.deleteModels(models.keys.toList())
|
||||||
}
|
}
|
||||||
|
|
||||||
private val _importState = MutableStateFlow<ModelImportState>(ModelImportState.Idle)
|
private val _importState = MutableStateFlow<ModelImportState>(ModelImportState.Idle)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue