remove all labels in room db before applying current labels to an item

This commit is contained in:
Satindar Dhillon
2023-03-03 11:35:44 -08:00
parent d95496040d
commit db1fc75de2
2 changed files with 11 additions and 0 deletions

View File

@ -68,6 +68,9 @@ data class SavedItemCardDataWithLabels(
interface SavedItemAndSavedItemLabelCrossRefDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertAll(items: List<SavedItemAndSavedItemLabelCrossRef>)
@Query("DELETE FROM savedItemAndSavedItemLabelCrossRef WHERE savedItemId = :savedItemId")
fun deleteRefsBySavedItemId(savedItemId: String)
}
// has many highlights

View File

@ -282,7 +282,15 @@ class LibraryViewModel @Inject constructor(
)
}
// Remove all labels first
dataService.db.savedItemAndSavedItemLabelCrossRefDao().deleteRefsBySavedItemId(savedItemID)
// Add back the current labels
dataService.db.savedItemAndSavedItemLabelCrossRefDao().insertAll(crossRefs)
CoroutineScope(Dispatchers.Main).launch {
handleFilterChanges()
}
}
}
}