Fix applying global color filter (close #1088)

master
Koitharu 2 years ago
parent b601b07586
commit f09e28e782
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -1,6 +1,8 @@
package org.koitharu.kotatsu.core.db.dao package org.koitharu.kotatsu.core.db.dao
import androidx.room.* import androidx.room.Dao
import androidx.room.Query
import androidx.room.Upsert
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import org.koitharu.kotatsu.core.db.entity.MangaPrefsEntity import org.koitharu.kotatsu.core.db.entity.MangaPrefsEntity
@ -13,6 +15,9 @@ abstract class PreferencesDao {
@Query("SELECT * FROM preferences WHERE manga_id = :mangaId") @Query("SELECT * FROM preferences WHERE manga_id = :mangaId")
abstract fun observe(mangaId: Long): Flow<MangaPrefsEntity?> abstract fun observe(mangaId: Long): Flow<MangaPrefsEntity?>
@Query("UPDATE preferences SET cf_brightness = 0, cf_contrast = 0, cf_invert = 0, cf_grayscale = 0")
abstract suspend fun resetColorFilters()
@Upsert @Upsert
abstract suspend fun upsert(pref: MangaPrefsEntity) abstract suspend fun upsert(pref: MangaPrefsEntity)
} }

@ -52,6 +52,10 @@ class MangaDataRepository @Inject constructor(
} }
} }
suspend fun resetColorFilters() {
db.getPreferencesDao().resetColorFilters()
}
suspend fun getReaderMode(mangaId: Long): ReaderMode? { suspend fun getReaderMode(mangaId: Long): ReaderMode? {
return db.getPreferencesDao().find(mangaId)?.let { ReaderMode.valueOf(it.mode) } return db.getPreferencesDao().find(mangaId)?.let { ReaderMode.valueOf(it.mode) }
} }

@ -73,9 +73,7 @@ class ColorFilterConfigViewModel @Inject constructor(
fun saveGlobally() { fun saveGlobally() {
launchLoadingJob(Dispatchers.Default) { launchLoadingJob(Dispatchers.Default) {
settings.readerColorFilter = colorFilter.value settings.readerColorFilter = colorFilter.value
if (mangaDataRepository.getColorFilter(manga.id) != null) { mangaDataRepository.resetColorFilters()
mangaDataRepository.saveColorFilter(manga, colorFilter.value)
}
onDismiss.call(Unit) onDismiss.call(Unit)
} }
} }

Loading…
Cancel
Save