mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 22:37:56 +01:00 
			
		
		
		
	| @@ -1,4 +1,4 @@ | ||||
| package eu.kanade.tachiyomi.ui.recent.history | ||||
| package eu.kanade.tachiyomi.ui.history | ||||
| 
 | ||||
| import androidx.compose.runtime.Composable | ||||
| import eu.kanade.presentation.history.HistoryScreen | ||||
| @@ -1,4 +1,4 @@ | ||||
| package eu.kanade.tachiyomi.ui.recent.history | ||||
| package eu.kanade.tachiyomi.ui.history | ||||
| 
 | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.runtime.Stable | ||||
| @@ -9,11 +9,9 @@ import androidx.compose.runtime.setValue | ||||
| import eu.kanade.core.util.insertSeparators | ||||
| import eu.kanade.domain.base.BasePreferences | ||||
| import eu.kanade.domain.chapter.model.Chapter | ||||
| import eu.kanade.domain.history.interactor.DeleteAllHistory | ||||
| import eu.kanade.domain.history.interactor.GetHistory | ||||
| import eu.kanade.domain.history.interactor.GetNextUnreadChapters | ||||
| import eu.kanade.domain.history.interactor.RemoveHistoryById | ||||
| import eu.kanade.domain.history.interactor.RemoveHistoryByMangaId | ||||
| import eu.kanade.domain.history.interactor.GetNextChapters | ||||
| import eu.kanade.domain.history.interactor.RemoveHistory | ||||
| import eu.kanade.domain.history.model.HistoryWithRelations | ||||
| import eu.kanade.presentation.history.HistoryUiModel | ||||
| import eu.kanade.tachiyomi.R | ||||
| @@ -37,10 +35,8 @@ import java.util.Date | ||||
| class HistoryPresenter( | ||||
|     private val state: HistoryStateImpl = HistoryState() as HistoryStateImpl, | ||||
|     private val getHistory: GetHistory = Injekt.get(), | ||||
|     private val getNextUnreadChapters: GetNextUnreadChapters = Injekt.get(), | ||||
|     private val deleteAllHistory: DeleteAllHistory = Injekt.get(), | ||||
|     private val removeHistoryById: RemoveHistoryById = Injekt.get(), | ||||
|     private val removeHistoryByMangaId: RemoveHistoryByMangaId = Injekt.get(), | ||||
|     private val getNextChapters: GetNextChapters = Injekt.get(), | ||||
|     private val removeHistory: RemoveHistory = Injekt.get(), | ||||
|     preferences: BasePreferences = Injekt.get(), | ||||
| ) : BasePresenter<HistoryController>(), HistoryState by state { | ||||
| 
 | ||||
| @@ -48,7 +44,6 @@ class HistoryPresenter( | ||||
|     val events: Flow<Event> = _events.receiveAsFlow() | ||||
| 
 | ||||
|     val isDownloadOnly: Boolean by preferences.downloadedOnly().asState() | ||||
| 
 | ||||
|     val isIncognitoMode: Boolean by preferences.incognitoMode().asState() | ||||
| 
 | ||||
|     @Composable | ||||
| @@ -80,39 +75,42 @@ class HistoryPresenter( | ||||
|             } | ||||
|     } | ||||
| 
 | ||||
|     fun removeFromHistory(history: HistoryWithRelations) { | ||||
|         presenterScope.launchIO { | ||||
|             removeHistoryById.await(history) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun removeAllFromHistory(mangaId: Long) { | ||||
|         presenterScope.launchIO { | ||||
|             removeHistoryByMangaId.await(mangaId) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun getNextChapterForManga(mangaId: Long, chapterId: Long) { | ||||
|         presenterScope.launchIO { | ||||
|             val chapter = getNextUnreadChapters.await(mangaId, chapterId).firstOrNull() | ||||
|             _events.send(if (chapter != null) Event.OpenChapter(chapter) else Event.NoNextChapterFound) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun deleteAllHistory() { | ||||
|         presenterScope.launchIO { | ||||
|             val result = deleteAllHistory.await() | ||||
|             if (!result) return@launchIO | ||||
|             withUIContext { | ||||
|                 view?.activity?.toast(R.string.clear_history_completed) | ||||
|             } | ||||
|             sendNextChapterEvent(getNextChapters.await(mangaId, chapterId, onlyUnread = false)) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun resumeLastChapterRead() { | ||||
|         presenterScope.launchIO { | ||||
|             val chapter = getNextUnreadChapters.await() | ||||
|             _events.send(if (chapter != null) Event.OpenChapter(chapter) else Event.NoNextChapterFound) | ||||
|             sendNextChapterEvent(getNextChapters.await(onlyUnread = false)) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private suspend fun sendNextChapterEvent(chapters: List<Chapter>) { | ||||
|         val chapter = chapters.firstOrNull() | ||||
|         _events.send(if (chapter != null) Event.OpenChapter(chapter) else Event.NoNextChapterFound) | ||||
|     } | ||||
| 
 | ||||
|     fun removeFromHistory(history: HistoryWithRelations) { | ||||
|         presenterScope.launchIO { | ||||
|             removeHistory.await(history) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun removeAllFromHistory(mangaId: Long) { | ||||
|         presenterScope.launchIO { | ||||
|             removeHistory.await(mangaId) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun removeAllHistory() { | ||||
|         presenterScope.launchIO { | ||||
|             val result = removeHistory.awaitAll() | ||||
|             if (!result) return@launchIO | ||||
|             withUIContext { | ||||
|                 view?.activity?.toast(R.string.clear_history_completed) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| @@ -19,7 +19,7 @@ import eu.kanade.domain.category.interactor.SetMangaCategories | ||||
| import eu.kanade.domain.category.model.Category | ||||
| import eu.kanade.domain.chapter.interactor.SetReadStatus | ||||
| import eu.kanade.domain.chapter.model.toDbChapter | ||||
| import eu.kanade.domain.history.interactor.GetNextUnreadChapters | ||||
| import eu.kanade.domain.history.interactor.GetNextChapters | ||||
| import eu.kanade.domain.library.model.LibraryManga | ||||
| import eu.kanade.domain.library.model.LibrarySort | ||||
| import eu.kanade.domain.library.model.sort | ||||
| @@ -78,7 +78,7 @@ class LibraryPresenter( | ||||
|     private val getLibraryManga: GetLibraryManga = Injekt.get(), | ||||
|     private val getTracksPerManga: GetTracksPerManga = Injekt.get(), | ||||
|     private val getCategories: GetCategories = Injekt.get(), | ||||
|     private val getNextUnreadChapters: GetNextUnreadChapters = Injekt.get(), | ||||
|     private val getNextChapters: GetNextChapters = Injekt.get(), | ||||
|     private val setReadStatus: SetReadStatus = Injekt.get(), | ||||
|     private val updateManga: UpdateManga = Injekt.get(), | ||||
|     private val setMangaCategories: SetMangaCategories = Injekt.get(), | ||||
| @@ -410,7 +410,7 @@ class LibraryPresenter( | ||||
|     fun downloadUnreadChapters(mangas: List<Manga>, amount: Int?) { | ||||
|         presenterScope.launchNonCancellable { | ||||
|             mangas.forEach { manga -> | ||||
|                 val chapters = getNextUnreadChapters.await(manga.id) | ||||
|                 val chapters = getNextChapters.await(manga.id) | ||||
|                     .filterNot { chapter -> | ||||
|                         downloadManager.queue.any { chapter.id == it.chapter.id } || | ||||
|                             downloadManager.isChapterDownloaded( | ||||
|   | ||||
| @@ -52,13 +52,13 @@ import eu.kanade.tachiyomi.ui.browse.BrowseController | ||||
| import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController | ||||
| import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchController | ||||
| import eu.kanade.tachiyomi.ui.download.DownloadController | ||||
| import eu.kanade.tachiyomi.ui.history.HistoryController | ||||
| import eu.kanade.tachiyomi.ui.library.LibraryController | ||||
| import eu.kanade.tachiyomi.ui.manga.MangaController | ||||
| import eu.kanade.tachiyomi.ui.more.MoreController | ||||
| import eu.kanade.tachiyomi.ui.more.NewUpdateDialogController | ||||
| import eu.kanade.tachiyomi.ui.recent.history.HistoryController | ||||
| import eu.kanade.tachiyomi.ui.recent.updates.UpdatesController | ||||
| import eu.kanade.tachiyomi.ui.setting.SettingsMainController | ||||
| import eu.kanade.tachiyomi.ui.updates.UpdatesController | ||||
| import eu.kanade.tachiyomi.util.lang.launchIO | ||||
| import eu.kanade.tachiyomi.util.lang.launchUI | ||||
| import eu.kanade.tachiyomi.util.preference.asHotFlow | ||||
|   | ||||
| @@ -40,6 +40,7 @@ import eu.kanade.tachiyomi.ui.browse.migration.search.SearchController | ||||
| import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController | ||||
| import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchController | ||||
| import eu.kanade.tachiyomi.ui.category.CategoryController | ||||
| import eu.kanade.tachiyomi.ui.history.HistoryController | ||||
| import eu.kanade.tachiyomi.ui.library.LibraryController | ||||
| import eu.kanade.tachiyomi.ui.main.MainActivity | ||||
| import eu.kanade.tachiyomi.ui.manga.MangaPresenter.Dialog | ||||
| @@ -49,8 +50,7 @@ import eu.kanade.tachiyomi.ui.manga.track.TrackItem | ||||
| import eu.kanade.tachiyomi.ui.manga.track.TrackSearchDialog | ||||
| import eu.kanade.tachiyomi.ui.manga.track.TrackSheet | ||||
| import eu.kanade.tachiyomi.ui.reader.ReaderActivity | ||||
| import eu.kanade.tachiyomi.ui.recent.history.HistoryController | ||||
| import eu.kanade.tachiyomi.ui.recent.updates.UpdatesController | ||||
| import eu.kanade.tachiyomi.ui.updates.UpdatesController | ||||
| import eu.kanade.tachiyomi.ui.webview.WebViewActivity | ||||
| import eu.kanade.tachiyomi.util.system.isTabletUi | ||||
| import eu.kanade.tachiyomi.util.system.logcat | ||||
|   | ||||
| @@ -11,7 +11,7 @@ import eu.kanade.domain.chapter.interactor.UpdateChapter | ||||
| import eu.kanade.domain.chapter.model.ChapterUpdate | ||||
| import eu.kanade.domain.chapter.model.toDbChapter | ||||
| import eu.kanade.domain.download.service.DownloadPreferences | ||||
| import eu.kanade.domain.history.interactor.GetNextUnreadChapters | ||||
| import eu.kanade.domain.history.interactor.GetNextChapters | ||||
| import eu.kanade.domain.history.interactor.UpsertHistory | ||||
| import eu.kanade.domain.history.model.HistoryUpdate | ||||
| import eu.kanade.domain.manga.interactor.GetManga | ||||
| @@ -88,7 +88,7 @@ class ReaderPresenter( | ||||
|     private val delayedTrackingStore: DelayedTrackingStore = Injekt.get(), | ||||
|     private val getManga: GetManga = Injekt.get(), | ||||
|     private val getChapterByMangaId: GetChapterByMangaId = Injekt.get(), | ||||
|     private val getNextUnreadChapters: GetNextUnreadChapters = Injekt.get(), | ||||
|     private val getNextChapters: GetNextChapters = Injekt.get(), | ||||
|     private val getTracks: GetTracks = Injekt.get(), | ||||
|     private val insertTrack: InsertTrack = Injekt.get(), | ||||
|     private val upsertHistory: UpsertHistory = Injekt.get(), | ||||
| @@ -475,7 +475,7 @@ class ReaderPresenter( | ||||
|             ) | ||||
|             if (!isNextChapterDownloaded) return@launchIO | ||||
|  | ||||
|             val chaptersToDownload = getNextUnreadChapters.await(manga.id!!, nextChapter.id!!) | ||||
|             val chaptersToDownload = getNextChapters.await(manga.id!!, nextChapter.id!!) | ||||
|                 .take(amount) | ||||
|             downloadManager.downloadChapters( | ||||
|                 manga.toDomainManga()!!, | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| package eu.kanade.tachiyomi.ui.recent.updates | ||||
| package eu.kanade.tachiyomi.ui.updates | ||||
| 
 | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.runtime.LaunchedEffect | ||||
| @@ -26,6 +26,7 @@ class UpdatesController : | ||||
|                 (activity as? MainActivity)?.moveToStartScreen() | ||||
|             }, | ||||
|         ) | ||||
| 
 | ||||
|         LaunchedEffect(presenter.selectionMode) { | ||||
|             (activity as? MainActivity)?.showBottomNav(presenter.selectionMode.not()) | ||||
|         } | ||||
| @@ -1,4 +1,4 @@ | ||||
| package eu.kanade.tachiyomi.ui.recent.updates | ||||
| package eu.kanade.tachiyomi.ui.updates | ||||
| 
 | ||||
| import android.os.Bundle | ||||
| import androidx.compose.runtime.Immutable | ||||
| @@ -47,13 +47,13 @@ import java.util.Date | ||||
| 
 | ||||
| class UpdatesPresenter( | ||||
|     private val state: UpdatesStateImpl = UpdatesState() as UpdatesStateImpl, | ||||
|     private val sourceManager: SourceManager = Injekt.get(), | ||||
|     private val downloadManager: DownloadManager = Injekt.get(), | ||||
|     private val downloadCache: DownloadCache = Injekt.get(), | ||||
|     private val updateChapter: UpdateChapter = Injekt.get(), | ||||
|     private val setReadStatus: SetReadStatus = Injekt.get(), | ||||
|     private val getUpdates: GetUpdates = Injekt.get(), | ||||
|     private val getManga: GetManga = Injekt.get(), | ||||
|     private val sourceManager: SourceManager = Injekt.get(), | ||||
|     private val downloadManager: DownloadManager = Injekt.get(), | ||||
|     private val downloadCache: DownloadCache = Injekt.get(), | ||||
|     private val getChapter: GetChapter = Injekt.get(), | ||||
|     basePreferences: BasePreferences = Injekt.get(), | ||||
|     uiPreferences: UiPreferences = Injekt.get(), | ||||
		Reference in New Issue
	
	Block a user