mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Minor cleanup
This commit is contained in:
		@@ -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<TabContent>,
 | 
			
		||||
    startIndex: Int? = null,
 | 
			
		||||
    tabs: List<BrowseTab>,
 | 
			
		||||
) {
 | 
			
		||||
    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<AppBar.Action> = emptyList(),
 | 
			
		||||
@@ -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(),
 | 
			
		||||
) {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,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
 | 
			
		||||
@@ -32,11 +31,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.
 | 
			
		||||
     */
 | 
			
		||||
@@ -45,12 +43,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.
 | 
			
		||||
@@ -112,7 +110,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 {
 | 
			
		||||
@@ -121,8 +119,6 @@ class DownloadManager(
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun isPaused() = downloader.isPaused()
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Reorders the download queue.
 | 
			
		||||
     *
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,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
 | 
			
		||||
@@ -59,13 +60,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.
 | 
			
		||||
     */
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -30,13 +31,14 @@ class BrowseController : FullComposeController<BrowsePresenter>, RootController
 | 
			
		||||
 | 
			
		||||
    @Composable
 | 
			
		||||
    override fun ComposeContent() {
 | 
			
		||||
        BrowseScreen(
 | 
			
		||||
            startIndex = 1.takeIf { toExtensions },
 | 
			
		||||
        TabbedScreen(
 | 
			
		||||
            titleRes = R.string.browse,
 | 
			
		||||
            tabs = listOf(
 | 
			
		||||
                sourcesTab(router, presenter.sourcesPresenter),
 | 
			
		||||
                extensionsTab(router, presenter.extensionsPresenter),
 | 
			
		||||
                migrateSourcesTab(router, presenter.migrationSourcesPresenter),
 | 
			
		||||
            ),
 | 
			
		||||
            startIndex = 1.takeIf { toExtensions },
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        LaunchedEffect(Unit) {
 | 
			
		||||
 
 | 
			
		||||
@@ -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()) },
 | 
			
		||||
        ),
 | 
			
		||||
    ),
 | 
			
		||||
 
 | 
			
		||||
@@ -6,9 +6,9 @@ import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.ui.platform.LocalUriHandler
 | 
			
		||||
import androidx.compose.ui.res.stringResource
 | 
			
		||||
import com.bluelinelabs.conductor.Router
 | 
			
		||||
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.ui.base.controller.pushController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrationMangaController
 | 
			
		||||
@@ -17,10 +17,10 @@ import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrationMangaController
 | 
			
		||||
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(
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -19,7 +19,7 @@ import eu.kanade.tachiyomi.ui.browse.source.latest.LatestUpdatesController
 | 
			
		||||
fun sourcesTab(
 | 
			
		||||
    router: Router?,
 | 
			
		||||
    presenter: SourcesPresenter,
 | 
			
		||||
) = BrowseTab(
 | 
			
		||||
) = TabContent(
 | 
			
		||||
    titleRes = R.string.label_sources,
 | 
			
		||||
    actions = listOf(
 | 
			
		||||
        AppBar.Action(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user