Move isLocal extension functions to LocalSource

This commit is contained in:
arkon 2023-03-20 08:41:44 -04:00
parent 3cca460282
commit 7ec5a51eb8
6 changed files with 14 additions and 10 deletions

View file

@ -8,7 +8,7 @@ import tachiyomi.domain.source.model.Pin
import tachiyomi.domain.source.model.Pins import tachiyomi.domain.source.model.Pins
import tachiyomi.domain.source.model.Source import tachiyomi.domain.source.model.Source
import tachiyomi.domain.source.repository.SourceRepository import tachiyomi.domain.source.repository.SourceRepository
import tachiyomi.source.local.LocalSource import tachiyomi.source.local.isLocal
class GetEnabledSources( class GetEnabledSources(
private val repository: SourceRepository, private val repository: SourceRepository,
@ -24,7 +24,7 @@ class GetEnabledSources(
repository.getSources(), repository.getSources(),
) { pinnedSourceIds, enabledLanguages, disabledSources, lastUsedSource, sources -> ) { pinnedSourceIds, enabledLanguages, disabledSources, lastUsedSource, sources ->
sources sources
.filter { it.lang in enabledLanguages || it.id == LocalSource.ID } .filter { it.lang in enabledLanguages || it.isLocal() }
.filterNot { it.id.toString() in disabledSources } .filterNot { it.id.toString() in disabledSources }
.sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER) { it.name }) .sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER) { it.name })
.flatMap { .flatMap {

View file

@ -5,7 +5,7 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.combine
import tachiyomi.domain.source.model.Source import tachiyomi.domain.source.model.Source
import tachiyomi.domain.source.repository.SourceRepository import tachiyomi.domain.source.repository.SourceRepository
import tachiyomi.source.local.LocalSource import tachiyomi.source.local.isLocal
import java.text.Collator import java.text.Collator
import java.util.Collections import java.util.Collections
import java.util.Locale import java.util.Locale
@ -22,7 +22,7 @@ class GetSourcesWithFavoriteCount(
repository.getSourcesWithFavoriteCount(), repository.getSourcesWithFavoriteCount(),
) { direction, mode, list -> ) { direction, mode, list ->
list list
.filterNot { it.first.id == LocalSource.ID } .filterNot { it.first.isLocal() }
.sortedWith(sortFn(direction, mode)) .sortedWith(sortFn(direction, mode))
} }
} }

View file

@ -35,7 +35,7 @@ import tachiyomi.presentation.core.screens.EmptyScreen
import tachiyomi.presentation.core.screens.LoadingScreen import tachiyomi.presentation.core.screens.LoadingScreen
import tachiyomi.presentation.core.theme.header import tachiyomi.presentation.core.theme.header
import tachiyomi.presentation.core.util.plus import tachiyomi.presentation.core.util.plus
import tachiyomi.source.local.LocalSource import tachiyomi.source.local.isLocal
@Composable @Composable
fun SourcesScreen( fun SourcesScreen(
@ -175,7 +175,7 @@ fun SourceOptionsDialog(
.fillMaxWidth() .fillMaxWidth()
.padding(vertical = 16.dp), .padding(vertical = 16.dp),
) )
if (source.id != LocalSource.ID) { if (source.isLocal()) {
Text( Text(
text = stringResource(R.string.action_disable), text = stringResource(R.string.action_disable),
modifier = Modifier modifier = Modifier

View file

@ -33,7 +33,7 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.extension.model.Extension import eu.kanade.tachiyomi.extension.model.Extension
import tachiyomi.core.util.lang.withIOContext import tachiyomi.core.util.lang.withIOContext
import tachiyomi.domain.source.model.Source import tachiyomi.domain.source.model.Source
import tachiyomi.source.local.LocalSource import tachiyomi.source.local.isLocal
private val defaultModifier = Modifier private val defaultModifier = Modifier
.height(40.dp) .height(40.dp)
@ -62,7 +62,7 @@ fun SourceIcon(
modifier = modifier.then(defaultModifier), modifier = modifier.then(defaultModifier),
) )
} }
source.id == LocalSource.ID -> { source.isLocal() -> {
Image( Image(
painter = painterResource(R.mipmap.ic_local_source), painter = painterResource(R.mipmap.ic_local_source),
contentDescription = null, contentDescription = null,

View file

@ -28,6 +28,7 @@ class AndroidSourceManager(
private val extensionManager: ExtensionManager, private val extensionManager: ExtensionManager,
private val sourceRepository: SourceDataRepository, private val sourceRepository: SourceDataRepository,
) : SourceManager { ) : SourceManager {
private val downloadManager: DownloadManager by injectLazy() private val downloadManager: DownloadManager by injectLazy()
private val scope = CoroutineScope(Job() + Dispatchers.IO) private val scope = CoroutineScope(Job() + Dispatchers.IO)

View file

@ -38,9 +38,10 @@ import java.io.File
import java.io.FileInputStream import java.io.FileInputStream
import java.io.InputStream import java.io.InputStream
import java.nio.charset.StandardCharsets import java.nio.charset.StandardCharsets
import java.util.concurrent.TimeUnit
import java.util.zip.ZipFile import java.util.zip.ZipFile
import kotlin.time.Duration.Companion.days
import com.github.junrar.Archive as JunrarArchive import com.github.junrar.Archive as JunrarArchive
import tachiyomi.domain.source.model.Source as DomainSource
actual class LocalSource( actual class LocalSource(
private val context: Context, private val context: Context,
@ -348,10 +349,12 @@ actual class LocalSource(
const val ID = 0L const val ID = 0L
const val HELP_URL = "https://tachiyomi.org/help/guides/local-manga/" const val HELP_URL = "https://tachiyomi.org/help/guides/local-manga/"
private val LATEST_THRESHOLD = TimeUnit.MILLISECONDS.convert(7, TimeUnit.DAYS) private val LATEST_THRESHOLD = 7.days.inWholeMilliseconds
} }
} }
fun Manga.isLocal(): Boolean = source == LocalSource.ID fun Manga.isLocal(): Boolean = source == LocalSource.ID
fun Source.isLocal(): Boolean = id == LocalSource.ID fun Source.isLocal(): Boolean = id == LocalSource.ID
fun DomainSource.isLocal(): Boolean = id == LocalSource.ID