mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
refactor(db): Migrate deleteTrack query to SQLDelight
This commit is contained in:
parent
333a7eea68
commit
83cb898068
7 changed files with 22 additions and 12 deletions
|
@ -1,11 +1,9 @@
|
|||
package eu.kanade.tachiyomi.data.database.queries
|
||||
|
||||
import com.pushtorefresh.storio.sqlite.queries.DeleteQuery
|
||||
import com.pushtorefresh.storio.sqlite.queries.Query
|
||||
import eu.kanade.tachiyomi.data.database.DbProvider
|
||||
import eu.kanade.tachiyomi.data.database.models.Track
|
||||
import eu.kanade.tachiyomi.data.database.tables.TrackTable
|
||||
import eu.kanade.tachiyomi.data.track.TrackService
|
||||
import eu.kanade.tachiyomi.domain.manga.models.Manga
|
||||
|
||||
interface TrackQueries : DbProvider {
|
||||
|
@ -26,13 +24,4 @@ interface TrackQueries : DbProvider {
|
|||
|
||||
fun insertTracks(tracks: List<Track>) = db.put().objects(tracks).prepare()
|
||||
|
||||
fun deleteTrackForManga(manga: Manga, sync: TrackService) = db.delete()
|
||||
.byQuery(
|
||||
DeleteQuery.builder()
|
||||
.table(TrackTable.TABLE)
|
||||
.where("${TrackTable.COL_MANGA_ID} = ? AND ${TrackTable.COL_SYNC_ID} = ?")
|
||||
.whereArgs(manga.id, sync.id)
|
||||
.build(),
|
||||
)
|
||||
.prepare()
|
||||
}
|
||||
|
|
|
@ -94,6 +94,7 @@ import yokai.domain.manga.interactor.UpdateManga
|
|||
import yokai.domain.manga.models.MangaUpdate
|
||||
import yokai.domain.manga.models.cover
|
||||
import yokai.domain.storage.StorageManager
|
||||
import yokai.domain.track.interactor.DeleteTrack
|
||||
import yokai.domain.track.interactor.GetTrack
|
||||
import yokai.i18n.MR
|
||||
import yokai.util.lang.getString
|
||||
|
@ -114,6 +115,7 @@ class MangaDetailsPresenter(
|
|||
private val getManga: GetManga by injectLazy()
|
||||
private val updateChapter: UpdateChapter by injectLazy()
|
||||
private val updateManga: UpdateManga by injectLazy()
|
||||
private val deleteTrack: DeleteTrack by injectLazy()
|
||||
private val getTrack: GetTrack by injectLazy()
|
||||
|
||||
private val networkPreferences: NetworkPreferences by injectLazy()
|
||||
|
@ -1070,7 +1072,7 @@ class MangaDetailsPresenter(
|
|||
fun removeTracker(trackItem: TrackItem, removeFromService: Boolean) {
|
||||
presenterScope.launch {
|
||||
withContext(Dispatchers.IO) {
|
||||
db.deleteTrackForManga(manga, trackItem.service).executeAsBlocking()
|
||||
deleteTrack.awaitForManga(manga.id!!, trackItem.service.id)
|
||||
if (removeFromService && trackItem.service.canRemoveFromService()) {
|
||||
trackItem.service.removeFromService(trackItem.track!!)
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ import yokai.domain.manga.interactor.InsertManga
|
|||
import yokai.domain.manga.interactor.UpdateManga
|
||||
import yokai.domain.recents.interactor.GetRecents
|
||||
import yokai.domain.track.TrackRepository
|
||||
import yokai.domain.track.interactor.DeleteTrack
|
||||
import yokai.domain.track.interactor.GetTrack
|
||||
|
||||
fun domainModule() = module {
|
||||
|
@ -87,5 +88,6 @@ fun domainModule() = module {
|
|||
factory { GetRecents(get(), get()) }
|
||||
|
||||
single<TrackRepository> { TrackRepositoryImpl(get()) }
|
||||
factory { DeleteTrack(get()) }
|
||||
factory { GetTrack(get()) }
|
||||
}
|
||||
|
|
|
@ -7,4 +7,7 @@ import yokai.domain.track.TrackRepository
|
|||
class TrackRepositoryImpl(private val handler: DatabaseHandler) : TrackRepository {
|
||||
override suspend fun getAllByMangaId(mangaId: Long): List<Track> =
|
||||
handler.awaitList { manga_syncQueries.getAllByMangaId(mangaId, Track::mapper) }
|
||||
|
||||
override suspend fun deleteForManga(mangaId: Long, syncId: Long) =
|
||||
handler.await { manga_syncQueries.deleteForManga(mangaId, syncId) }
|
||||
}
|
||||
|
|
|
@ -4,4 +4,5 @@ import eu.kanade.tachiyomi.data.database.models.Track
|
|||
|
||||
interface TrackRepository {
|
||||
suspend fun getAllByMangaId(mangaId: Long): List<Track>
|
||||
suspend fun deleteForManga(mangaId: Long, syncId: Long)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
package yokai.domain.track.interactor
|
||||
|
||||
import yokai.domain.track.TrackRepository
|
||||
|
||||
class DeleteTrack(
|
||||
private val trackRepository: TrackRepository,
|
||||
) {
|
||||
suspend fun awaitForManga(mangaId: Long, syncId: Long) = trackRepository.deleteForManga(mangaId, syncId)
|
||||
}
|
|
@ -23,3 +23,7 @@ getAllByMangaId:
|
|||
SELECT *
|
||||
FROM manga_sync
|
||||
WHERE manga_id = :mangaId;
|
||||
|
||||
deleteForManga:
|
||||
DELETE FROM manga_sync
|
||||
WHERE manga_id = :mangaId AND sync_id = :syncId;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue