diff --git a/app/src/main/java/eu/kanade/presentation/browse/BrowseTabWrapper.kt b/app/src/main/java/eu/kanade/presentation/browse/BrowseTabWrapper.kt index 06dcc7805..12c54cd79 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/BrowseTabWrapper.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/BrowseTabWrapper.kt @@ -9,9 +9,10 @@ import androidx.compose.ui.res.stringResource import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.AppBarActions import eu.kanade.presentation.components.Scaffold +import eu.kanade.presentation.components.TabContent @Composable -fun BrowseTabWrapper(tab: BrowseTab) { +fun BrowseTabWrapper(tab: TabContent) { Scaffold( modifier = Modifier.statusBarsPadding(), topBar = { diff --git a/app/src/main/java/eu/kanade/presentation/browse/BrowseScreen.kt b/app/src/main/java/eu/kanade/presentation/components/TabbedScreen.kt similarity index 84% rename from app/src/main/java/eu/kanade/presentation/browse/BrowseScreen.kt rename to app/src/main/java/eu/kanade/presentation/components/TabbedScreen.kt index 4860ac741..09997eef8 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/BrowseScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/components/TabbedScreen.kt @@ -1,4 +1,4 @@ -package eu.kanade.presentation.browse +package eu.kanade.presentation.components import androidx.annotation.StringRes import androidx.compose.foundation.layout.Column @@ -15,18 +15,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import com.google.accompanist.pager.HorizontalPager import com.google.accompanist.pager.rememberPagerState -import eu.kanade.presentation.components.AppBar -import eu.kanade.presentation.components.AppBarActions -import eu.kanade.presentation.components.Scaffold -import eu.kanade.presentation.components.TabIndicator -import eu.kanade.presentation.components.TabText -import eu.kanade.tachiyomi.R import kotlinx.coroutines.launch @Composable -fun BrowseScreen( +fun TabbedScreen( + @StringRes titleRes: Int, + tabs: List, startIndex: Int? = null, - tabs: List, ) { val scope = rememberCoroutineScope() val state = rememberPagerState() @@ -41,7 +36,7 @@ fun BrowseScreen( modifier = Modifier.statusBarsPadding(), topBar = { AppBar( - title = stringResource(R.string.browse), + title = stringResource(titleRes), actions = { AppBarActions(tabs[state.currentPage].actions) }, @@ -76,7 +71,7 @@ fun BrowseScreen( } } -data class BrowseTab( +data class TabContent( @StringRes val titleRes: Int, val badgeNumber: Int? = null, val actions: List = emptyList(), diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt index aae49d3fa..becdcd201 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt @@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit class DownloadCache( private val context: Context, private val provider: DownloadProvider, - private val sourceManager: SourceManager, + private val sourceManager: SourceManager = Injekt.get(), private val preferences: PreferencesHelper = Injekt.get(), ) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt index e23fee8a9..1f2f87f99 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt @@ -22,7 +22,6 @@ import logcat.LogPriority import rx.Observable import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -import uy.kohesive.injekt.injectLazy /** * This class is used to manage chapter downloads in the application. It must be instantiated once @@ -34,11 +33,10 @@ import uy.kohesive.injekt.injectLazy class DownloadManager( private val context: Context, private val getCategories: GetCategories = Injekt.get(), + private val sourceManager: SourceManager = Injekt.get(), + private val preferences: PreferencesHelper = Injekt.get(), ) { - private val sourceManager: SourceManager by injectLazy() - private val preferences: PreferencesHelper by injectLazy() - /** * Downloads provider, used to retrieve the folders where the chapters are or should be stored. */ @@ -47,12 +45,12 @@ class DownloadManager( /** * Cache of downloaded chapters. */ - private val cache = DownloadCache(context, provider, sourceManager) + private val cache = DownloadCache(context, provider) /** * Downloader whose only task is to download chapters. */ - private val downloader = Downloader(context, provider, cache, sourceManager) + private val downloader = Downloader(context, provider, cache) /** * Queue to delay the deletion of a list of chapters until triggered. @@ -114,7 +112,7 @@ class DownloadManager( download?.let { queue.remove(it) } queue.add(0, toAdd) reorderQueue(queue) - if (isPaused()) { + if (downloader.isPaused()) { if (DownloadService.isRunning(context)) { downloader.start() } else { @@ -123,8 +121,6 @@ class DownloadManager( } } - fun isPaused() = downloader.isPaused() - /** * Reorders the download queue. * diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt index f250ff6e3..f0325bf63 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -36,7 +36,8 @@ import rx.Observable import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers import rx.subscriptions.CompositeSubscription -import uy.kohesive.injekt.injectLazy +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get import java.io.BufferedOutputStream import java.io.File import java.util.zip.CRC32 @@ -61,13 +62,11 @@ class Downloader( private val context: Context, private val provider: DownloadProvider, private val cache: DownloadCache, - private val sourceManager: SourceManager, + private val sourceManager: SourceManager = Injekt.get(), + private val chapterCache: ChapterCache = Injekt.get(), + private val preferences: PreferencesHelper = Injekt.get(), ) { - private val chapterCache: ChapterCache by injectLazy() - - private val preferences: PreferencesHelper by injectLazy() - /** * Store for persisting downloads across restarts. */ diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseController.kt index e0c4b833f..19f058d25 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseController.kt @@ -6,7 +6,8 @@ import android.view.View import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.core.os.bundleOf -import eu.kanade.presentation.browse.BrowseScreen +import eu.kanade.presentation.components.TabbedScreen +import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.base.controller.FullComposeController import eu.kanade.tachiyomi.ui.base.controller.RootController import eu.kanade.tachiyomi.ui.base.controller.requestPermissionsSafe @@ -31,9 +32,9 @@ class BrowseController : FullComposeController, RootController @Composable override fun ComposeContent() { - BrowseScreen( + TabbedScreen( + titleRes = R.string.browse, // SY --> - startIndex = 2.takeIf { toExtensions }, tabs = ( if (presenter.feedTabInFront) listOf( feedTab(router, presenter.feedPresenter), @@ -46,6 +47,7 @@ class BrowseController : FullComposeController, RootController extensionsTab(router, presenter.extensionsPresenter), migrateSourcesTab(router, presenter.migrationSourcesPresenter), ), + startIndex = 2.takeIf { toExtensions }, // SY <-- ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsTab.kt index 081296460..64a15d5ba 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsTab.kt @@ -1,14 +1,14 @@ package eu.kanade.tachiyomi.ui.browse.extension import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.FilterList import androidx.compose.material.icons.outlined.Search +import androidx.compose.material.icons.outlined.Translate import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import com.bluelinelabs.conductor.Router -import eu.kanade.presentation.browse.BrowseTab import eu.kanade.presentation.browse.ExtensionScreen import eu.kanade.presentation.components.AppBar +import eu.kanade.presentation.components.TabContent import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.extension.model.Extension import eu.kanade.tachiyomi.ui.base.controller.pushController @@ -18,7 +18,7 @@ import eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsControlle fun extensionsTab( router: Router?, presenter: ExtensionsPresenter, -) = BrowseTab( +) = TabContent( titleRes = R.string.label_extensions, badgeNumber = presenter.updates.takeIf { it > 0 }, actions = listOf( @@ -33,7 +33,7 @@ fun extensionsTab( AppBar.Action( title = stringResource(R.string.action_filter), - icon = Icons.Outlined.FilterList, + icon = Icons.Outlined.Translate, onClick = { router?.pushController(ExtensionFilterController()) }, ), ), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt index d549dc8ba..6518ca4c7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedTab.kt @@ -5,9 +5,9 @@ import androidx.compose.material.icons.outlined.Add import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import com.bluelinelabs.conductor.Router -import eu.kanade.presentation.browse.BrowseTab import eu.kanade.presentation.browse.FeedScreen import eu.kanade.presentation.components.AppBar +import eu.kanade.presentation.components.TabContent import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.base.controller.pushController import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController @@ -18,7 +18,7 @@ import eu.kanade.tachiyomi.ui.manga.MangaController fun feedTab( router: Router?, presenter: FeedPresenter, -) = BrowseTab( +) = TabContent( titleRes = R.string.feed, actions = listOf( AppBar.Action( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourcesTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourcesTab.kt index 868ea6690..03f6d2517 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourcesTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourcesTab.kt @@ -7,9 +7,9 @@ import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource import com.bluelinelabs.conductor.Router import eu.kanade.domain.manga.interactor.GetFavorites -import eu.kanade.presentation.browse.BrowseTab import eu.kanade.presentation.browse.MigrateSourceScreen import eu.kanade.presentation.components.AppBar +import eu.kanade.presentation.components.TabContent import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.ui.base.controller.pushController @@ -24,10 +24,10 @@ import uy.kohesive.injekt.api.get fun migrateSourcesTab( router: Router?, presenter: MigrationSourcesPresenter, -): BrowseTab { +): TabContent { val uriHandler = LocalUriHandler.current - return BrowseTab( + return TabContent( titleRes = R.string.label_migration, actions = listOf( AppBar.Action( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt index 6b075b583..b0ae4101b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt @@ -6,9 +6,9 @@ import androidx.compose.material.icons.outlined.TravelExplore import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import com.bluelinelabs.conductor.Router -import eu.kanade.presentation.browse.BrowseTab import eu.kanade.presentation.browse.SourcesScreen import eu.kanade.presentation.components.AppBar +import eu.kanade.presentation.components.TabContent import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.base.controller.pushController import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController @@ -21,7 +21,7 @@ import exh.ui.smartsearch.SmartSearchController fun sourcesTab( router: Router?, presenter: SourcesPresenter, -) = BrowseTab( +) = TabContent( // SY --> titleRes = when (presenter.controllerMode) { SourcesController.Mode.CATALOGUE -> R.string.label_sources