Minor cleanup

This commit is contained in:
arkon 2022-08-31 14:43:58 -04:00
parent d4b764fa31
commit c39a1b7867
8 changed files with 31 additions and 39 deletions

View File

@ -1,4 +1,4 @@
package eu.kanade.presentation.browse package eu.kanade.presentation.components
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
@ -15,18 +15,13 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import com.google.accompanist.pager.HorizontalPager import com.google.accompanist.pager.HorizontalPager
import com.google.accompanist.pager.rememberPagerState 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 import kotlinx.coroutines.launch
@Composable @Composable
fun BrowseScreen( fun TabbedScreen(
@StringRes titleRes: Int,
tabs: List<TabContent>,
startIndex: Int? = null, startIndex: Int? = null,
tabs: List<BrowseTab>,
) { ) {
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
val state = rememberPagerState() val state = rememberPagerState()
@ -41,7 +36,7 @@ fun BrowseScreen(
modifier = Modifier.statusBarsPadding(), modifier = Modifier.statusBarsPadding(),
topBar = { topBar = {
AppBar( AppBar(
title = stringResource(R.string.browse), title = stringResource(titleRes),
actions = { actions = {
AppBarActions(tabs[state.currentPage].actions) AppBarActions(tabs[state.currentPage].actions)
}, },
@ -76,7 +71,7 @@ fun BrowseScreen(
} }
} }
data class BrowseTab( data class TabContent(
@StringRes val titleRes: Int, @StringRes val titleRes: Int,
val badgeNumber: Int? = null, val badgeNumber: Int? = null,
val actions: List<AppBar.Action> = emptyList(), val actions: List<AppBar.Action> = emptyList(),

View File

@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit
class DownloadCache( class DownloadCache(
private val context: Context, private val context: Context,
private val provider: DownloadProvider, private val provider: DownloadProvider,
private val sourceManager: SourceManager, private val sourceManager: SourceManager = Injekt.get(),
private val preferences: PreferencesHelper = Injekt.get(), private val preferences: PreferencesHelper = Injekt.get(),
) { ) {

View File

@ -20,7 +20,6 @@ import logcat.LogPriority
import rx.Observable import rx.Observable
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get 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 * This class is used to manage chapter downloads in the application. It must be instantiated once
@ -32,11 +31,10 @@ import uy.kohesive.injekt.injectLazy
class DownloadManager( class DownloadManager(
private val context: Context, private val context: Context,
private val getCategories: GetCategories = Injekt.get(), 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. * Downloads provider, used to retrieve the folders where the chapters are or should be stored.
*/ */
@ -45,12 +43,12 @@ class DownloadManager(
/** /**
* Cache of downloaded chapters. * 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. * 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. * Queue to delay the deletion of a list of chapters until triggered.
@ -112,7 +110,7 @@ class DownloadManager(
download?.let { queue.remove(it) } download?.let { queue.remove(it) }
queue.add(0, toAdd) queue.add(0, toAdd)
reorderQueue(queue) reorderQueue(queue)
if (isPaused()) { if (downloader.isPaused()) {
if (DownloadService.isRunning(context)) { if (DownloadService.isRunning(context)) {
downloader.start() downloader.start()
} else { } else {
@ -121,8 +119,6 @@ class DownloadManager(
} }
} }
fun isPaused() = downloader.isPaused()
/** /**
* Reorders the download queue. * Reorders the download queue.
* *

View File

@ -34,7 +34,8 @@ import rx.Observable
import rx.android.schedulers.AndroidSchedulers import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers import rx.schedulers.Schedulers
import rx.subscriptions.CompositeSubscription 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.BufferedOutputStream
import java.io.File import java.io.File
import java.util.zip.CRC32 import java.util.zip.CRC32
@ -59,13 +60,11 @@ class Downloader(
private val context: Context, private val context: Context,
private val provider: DownloadProvider, private val provider: DownloadProvider,
private val cache: DownloadCache, 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. * Store for persisting downloads across restarts.
*/ */

View File

@ -6,7 +6,8 @@ import android.view.View
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.core.os.bundleOf 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.FullComposeController
import eu.kanade.tachiyomi.ui.base.controller.RootController import eu.kanade.tachiyomi.ui.base.controller.RootController
import eu.kanade.tachiyomi.ui.base.controller.requestPermissionsSafe import eu.kanade.tachiyomi.ui.base.controller.requestPermissionsSafe
@ -30,13 +31,14 @@ class BrowseController : FullComposeController<BrowsePresenter>, RootController
@Composable @Composable
override fun ComposeContent() { override fun ComposeContent() {
BrowseScreen( TabbedScreen(
startIndex = 1.takeIf { toExtensions }, titleRes = R.string.browse,
tabs = listOf( tabs = listOf(
sourcesTab(router, presenter.sourcesPresenter), sourcesTab(router, presenter.sourcesPresenter),
extensionsTab(router, presenter.extensionsPresenter), extensionsTab(router, presenter.extensionsPresenter),
migrateSourcesTab(router, presenter.migrationSourcesPresenter), migrateSourcesTab(router, presenter.migrationSourcesPresenter),
), ),
startIndex = 1.takeIf { toExtensions },
) )
LaunchedEffect(Unit) { LaunchedEffect(Unit) {

View File

@ -1,14 +1,14 @@
package eu.kanade.tachiyomi.ui.browse.extension package eu.kanade.tachiyomi.ui.browse.extension
import androidx.compose.material.icons.Icons 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.Search
import androidx.compose.material.icons.outlined.Translate
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import com.bluelinelabs.conductor.Router import com.bluelinelabs.conductor.Router
import eu.kanade.presentation.browse.BrowseTab
import eu.kanade.presentation.browse.ExtensionScreen import eu.kanade.presentation.browse.ExtensionScreen
import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.TabContent
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.extension.model.Extension import eu.kanade.tachiyomi.extension.model.Extension
import eu.kanade.tachiyomi.ui.base.controller.pushController import eu.kanade.tachiyomi.ui.base.controller.pushController
@ -18,7 +18,7 @@ import eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsControlle
fun extensionsTab( fun extensionsTab(
router: Router?, router: Router?,
presenter: ExtensionsPresenter, presenter: ExtensionsPresenter,
) = BrowseTab( ) = TabContent(
titleRes = R.string.label_extensions, titleRes = R.string.label_extensions,
badgeNumber = presenter.updates.takeIf { it > 0 }, badgeNumber = presenter.updates.takeIf { it > 0 },
actions = listOf( actions = listOf(
@ -33,7 +33,7 @@ fun extensionsTab(
AppBar.Action( AppBar.Action(
title = stringResource(R.string.action_filter), title = stringResource(R.string.action_filter),
icon = Icons.Outlined.FilterList, icon = Icons.Outlined.Translate,
onClick = { router?.pushController(ExtensionFilterController()) }, onClick = { router?.pushController(ExtensionFilterController()) },
), ),
), ),

View File

@ -6,9 +6,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import com.bluelinelabs.conductor.Router import com.bluelinelabs.conductor.Router
import eu.kanade.presentation.browse.BrowseTab
import eu.kanade.presentation.browse.MigrateSourceScreen import eu.kanade.presentation.browse.MigrateSourceScreen
import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.TabContent
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.base.controller.pushController import eu.kanade.tachiyomi.ui.base.controller.pushController
import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrationMangaController import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrationMangaController
@ -17,10 +17,10 @@ import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrationMangaController
fun migrateSourcesTab( fun migrateSourcesTab(
router: Router?, router: Router?,
presenter: MigrationSourcesPresenter, presenter: MigrationSourcesPresenter,
): BrowseTab { ): TabContent {
val uriHandler = LocalUriHandler.current val uriHandler = LocalUriHandler.current
return BrowseTab( return TabContent(
titleRes = R.string.label_migration, titleRes = R.string.label_migration,
actions = listOf( actions = listOf(
AppBar.Action( AppBar.Action(

View File

@ -6,9 +6,9 @@ import androidx.compose.material.icons.outlined.TravelExplore
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import com.bluelinelabs.conductor.Router import com.bluelinelabs.conductor.Router
import eu.kanade.presentation.browse.BrowseTab
import eu.kanade.presentation.browse.SourcesScreen import eu.kanade.presentation.browse.SourcesScreen
import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.TabContent
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.base.controller.pushController import eu.kanade.tachiyomi.ui.base.controller.pushController
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController
@ -19,7 +19,7 @@ import eu.kanade.tachiyomi.ui.browse.source.latest.LatestUpdatesController
fun sourcesTab( fun sourcesTab(
router: Router?, router: Router?,
presenter: SourcesPresenter, presenter: SourcesPresenter,
) = BrowseTab( ) = TabContent(
titleRes = R.string.label_sources, titleRes = R.string.label_sources,
actions = listOf( actions = listOf(
AppBar.Action( AppBar.Action(