diff --git a/app/src/main/java/io/aatricks/novelscraper/data/local/LibraryDao.kt b/app/src/main/java/io/aatricks/novelscraper/data/local/LibraryDao.kt index 43c9921..21244c1 100644 --- a/app/src/main/java/io/aatricks/novelscraper/data/local/LibraryDao.kt +++ b/app/src/main/java/io/aatricks/novelscraper/data/local/LibraryDao.kt @@ -2,6 +2,7 @@ package io.aatricks.novelscraper.data.local import androidx.room.* import io.aatricks.novelscraper.data.model.LibraryItem +import io.aatricks.novelscraper.data.model.ReadingMode import kotlinx.coroutines.flow.Flow @Dao @@ -42,6 +43,9 @@ interface LibraryDao { @Query("UPDATE library_items SET hasUpdates = 0 WHERE id = :id") suspend fun clearUpdatesForId(id: String) + @Query("UPDATE library_items SET readingMode = :readingMode WHERE baseTitle = :baseTitle") + suspend fun updateReadingModeByBaseTitle(baseTitle: String, readingMode: ReadingMode) + @Transaction suspend fun setCurrentReading(id: String, timestamp: Long = System.currentTimeMillis()) { clearCurrentlyReading() diff --git a/app/src/main/java/io/aatricks/novelscraper/data/repository/LibraryRepository.kt b/app/src/main/java/io/aatricks/novelscraper/data/repository/LibraryRepository.kt index 9e207ce..1eebb93 100644 --- a/app/src/main/java/io/aatricks/novelscraper/data/repository/LibraryRepository.kt +++ b/app/src/main/java/io/aatricks/novelscraper/data/repository/LibraryRepository.kt @@ -123,11 +123,7 @@ class LibraryRepository @Inject constructor( suspend fun updateReadingMode(itemId: String, readingMode: ReadingMode): Boolean = runCatching("Failed to update reading mode", false) { libraryDao.getItemById(itemId)?.let { item -> - val allItems = libraryDao.getAllItems().firstOrNull() ?: emptyList() - val updatedItems = allItems - .filter { it.baseTitle == item.baseTitle } - .map { it.copy(readingMode = readingMode) } - libraryDao.insertItems(updatedItems) + libraryDao.updateReadingModeByBaseTitle(item.baseTitle, readingMode) true } ?: false } ?: false