Remove SavedFilterBackup class

devel
Koitharu 6 months ago
parent 6377de470d
commit beaf5cc0d5
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -26,7 +26,6 @@ import org.koitharu.kotatsu.backups.data.model.CategoryBackup
import org.koitharu.kotatsu.backups.data.model.FavouriteBackup
import org.koitharu.kotatsu.backups.data.model.HistoryBackup
import org.koitharu.kotatsu.backups.data.model.MangaBackup
import org.koitharu.kotatsu.backups.data.model.SavedFilterBackup
import org.koitharu.kotatsu.backups.data.model.ScrobblingBackup
import org.koitharu.kotatsu.backups.data.model.SourceBackup
import org.koitharu.kotatsu.backups.data.model.StatisticBackup
@ -36,6 +35,7 @@ import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.util.CompositeResult
import org.koitharu.kotatsu.core.util.progress.Progress
import org.koitharu.kotatsu.explore.data.MangaSourcesRepository
import org.koitharu.kotatsu.filter.data.PersistableFilter
import org.koitharu.kotatsu.filter.data.SavedFiltersRepository
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
import org.koitharu.kotatsu.reader.data.TapGridSettings
@ -136,7 +136,7 @@ class BackupRepository @Inject constructor(
}
output.writeJsonArray(
section = BackupSection.SAVED_FILTERS,
data = filters.asFlow().map { SavedFilterBackup(it) },
data = filters.asFlow(),
serializer = serializer(),
)
}
@ -159,7 +159,7 @@ class BackupRepository @Inject constructor(
while (entry != null) {
val section = BackupSection.of(entry)
if (section in sections) {
result = result + when (section) {
result += when (section) {
BackupSection.INDEX -> CompositeResult.EMPTY // useless in our case
BackupSection.HISTORY -> input.readJsonArray<HistoryBackup>(serializer()).restoreToDb {
upsertManga(it.manga)
@ -202,13 +202,9 @@ class BackupRepository @Inject constructor(
getStatsDao().upsert(it.toEntity())
}
BackupSection.SAVED_FILTERS -> input.readJsonArray<SavedFilterBackup>(serializer())
BackupSection.SAVED_FILTERS -> input.readJsonArray<PersistableFilter>(serializer())
.restoreWithoutTransaction {
savedFiltersRepository.save(
source = it.source,
name = it.name,
filter = it.filter,
)
savedFiltersRepository.save(it)
}
null -> CompositeResult.EMPTY // skip unknown entries

@ -1,34 +0,0 @@
package org.koitharu.kotatsu.backups.data.model
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import org.koitharu.kotatsu.core.model.MangaSourceSerializer
import org.koitharu.kotatsu.filter.data.MangaListFilterSerializer
import org.koitharu.kotatsu.filter.data.PersistableFilter
import org.koitharu.kotatsu.parsers.model.MangaListFilter
import org.koitharu.kotatsu.parsers.model.MangaSource
@Serializable
data class SavedFilterBackup(
@SerialName("name")
val name: String,
@Serializable(with = MangaSourceSerializer::class)
@SerialName("source")
val source: MangaSource,
@Serializable(with = MangaListFilterSerializer::class)
@SerialName("filter")
val filter: MangaListFilter,
) {
constructor(persistableFilter: PersistableFilter) : this(
name = persistableFilter.name,
source = persistableFilter.source,
filter = persistableFilter.filter,
)
fun toPersistableFilter() = PersistableFilter(
name = name,
source = source,
filter = filter,
)
}

@ -57,10 +57,16 @@ class SavedFiltersRepository @Inject constructor(
source = source,
filter = filter,
)
persist(source, persistableFilter)
persist(persistableFilter)
persistableFilter
}
suspend fun save(
filter: PersistableFilter,
) = withContext(Dispatchers.Default) {
persist(filter)
}
suspend fun rename(source: MangaSource, id: Int, newName: String) = withContext(Dispatchers.Default) {
val filter = load(source, id) ?: return@withContext
val newFilter = filter.copy(name = newName)
@ -79,8 +85,8 @@ class SavedFiltersRepository @Inject constructor(
}
}
private fun persist(source: MangaSource, persistableFilter: PersistableFilter) {
val prefs = getPrefs(source)
private fun persist(persistableFilter: PersistableFilter) {
val prefs = getPrefs(persistableFilter.source)
val json = Json.encodeToString(persistableFilter)
prefs.edit(commit = true) {
putString(key(persistableFilter.id), json)

Loading…
Cancel
Save