Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import io.github.landwarderer.futon.scrobbling.common.domain.Scrobbler
import io.github.landwarderer.futon.scrobbling.common.domain.model.ScrobblingStatus
import io.github.landwarderer.futon.tracker.data.TrackEntity
import javax.inject.Inject
import javax.inject.Provider

class MigrateUseCase
@Inject
Expand All @@ -24,8 +25,9 @@ constructor(
private val mangaDataRepository: MangaDataRepository,
private val database: MangaDatabase,
private val progressUpdateUseCase: ProgressUpdateUseCase,
private val scrobblers: Set<@JvmSuppressWildcards Scrobbler>,
private val scrobblersProvider: Provider<Set<@JvmSuppressWildcards Scrobbler>>,
) {
private val scrobblers: Set<@JvmSuppressWildcards Scrobbler> by lazy { scrobblersProvider.get() }
suspend operator fun invoke(
oldManga: Manga,
newManga: Manga,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import io.github.landwarderer.futon.scrobbling.common.domain.Scrobbler
import io.github.landwarderer.futon.scrobbling.common.domain.model.ScrobblingInfo
import io.github.landwarderer.futon.tracker.domain.TrackingRepository
import javax.inject.Inject
import javax.inject.Provider

/* TODO: remove */
class DetailsInteractor @Inject constructor(
Expand All @@ -30,8 +31,9 @@ class DetailsInteractor @Inject constructor(
private val localMangaRepository: LocalMangaRepository,
private val trackingRepository: TrackingRepository,
private val settings: AppSettings,
private val scrobblers: Set<@JvmSuppressWildcards Scrobbler>,
private val scrobblersProvider: Provider<Set<@JvmSuppressWildcards Scrobbler>>,
) {
private val scrobblers: Set<@JvmSuppressWildcards Scrobbler> by lazy { scrobblersProvider.get() }

fun observeFavourite(mangaId: Long): Flow<Set<FavouriteCategory>> {
return favouritesRepository.observeCategories(mangaId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,14 @@ import io.github.landwarderer.futon.scrobbling.common.domain.model.ScrobblingInf
import io.github.landwarderer.futon.scrobbling.common.domain.model.ScrobblingStatus
import io.github.landwarderer.futon.stats.data.StatsRepository
import javax.inject.Inject
import javax.inject.Provider

@HiltViewModel
class DetailsViewModel @Inject constructor(
private val historyRepository: HistoryRepository,
bookmarksRepository: BookmarksRepository,
settings: AppSettings,
private val scrobblers: Set<@JvmSuppressWildcards Scrobbler>,
private val scrobblersProvider: Provider<Set<@JvmSuppressWildcards Scrobbler>>,
@LocalStorageChanges localStorageChanges: SharedFlow<LocalManga?>,
downloadScheduler: DownloadWorker.Scheduler,
interactor: DetailsInteractor,
Expand All @@ -86,6 +87,7 @@ class DetailsViewModel @Inject constructor(
private val intent = MangaIntent(savedStateHandle)
private var loadingJob: Job
val mangaId = intent.mangaId
private val scrobblers: Set<@JvmSuppressWildcards Scrobbler> by lazy { scrobblersProvider.get() }

init {
mangaDetails.value = intent.manga?.let { MangaDetails(it) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,12 @@ import javax.inject.Provider
class HistoryRepository @Inject constructor(
private val db: MangaDatabase,
private val settings: AppSettings,
private val scrobblers: Set<@JvmSuppressWildcards Scrobbler>,
private val scrobblersProvider: Provider<Set<@JvmSuppressWildcards Scrobbler>>,
private val mangaRepository: MangaDataRepository,
private val localObserver: HistoryLocalObserver,
private val newChaptersUseCaseProvider: Provider<CheckNewChaptersUseCase>,
) {
private val scrobblers: Set<@JvmSuppressWildcards Scrobbler> by lazy { scrobblersProvider.get() }

suspend fun getList(offset: Int, limit: Int): List<Manga> {
val entities = db.getHistoryDao().findAll(offset, limit)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,16 @@ import io.github.landwarderer.futon.scrobbling.common.domain.model.ScrobblerUser
import io.github.landwarderer.futon.scrobbling.common.domain.model.ScrobblingInfo
import io.github.landwarderer.futon.scrobbling.common.domain.model.ScrobblingStatus
import javax.inject.Inject
import javax.inject.Provider

@HiltViewModel
class ScrobblerConfigViewModel @Inject constructor(
savedStateHandle: SavedStateHandle,
scrobblers: Set<@JvmSuppressWildcards Scrobbler>,
scrobblersProvider: Provider<Set<@JvmSuppressWildcards Scrobbler>>,
) : BaseViewModel() {

private val scrobblerService = getScrobblerService(savedStateHandle)
private val scrobbler = scrobblers.first { it.scrobblerService == scrobblerService }
private val scrobbler = scrobblersProvider.get().first { it.scrobblerService == scrobblerService }

val titleResId = scrobbler.scrobblerService.titleResId

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,18 @@ import io.github.landwarderer.futon.scrobbling.common.domain.model.ScrobblerMang
import io.github.landwarderer.futon.scrobbling.common.domain.model.ScrobblingStatus
import io.github.landwarderer.futon.scrobbling.common.ui.selector.model.ScrobblerHint
import javax.inject.Inject
import javax.inject.Provider

@HiltViewModel
class ScrobblingSelectorViewModel @Inject constructor(
savedStateHandle: SavedStateHandle,
scrobblers: Set<@JvmSuppressWildcards Scrobbler>,
scrobblersProvider: Provider<Set<@JvmSuppressWildcards Scrobbler>>,
private val historyRepository: HistoryRepository,
) : BaseViewModel() {

val manga = savedStateHandle.require<ParcelableManga>(AppRouter.KEY_MANGA).manga

private val scrobblers by lazy { scrobblersProvider.get() }
val availableScrobblers = scrobblers.filter { it.isEnabled }

val selectedScrobblerIndex = MutableStateFlow(0)
Expand Down