Add DownloadDisabledSource interface
To disallow downloading on sources.
This commit is contained in:
parent
71fc5d6d35
commit
e37de9df32
app/src/main/java/eu/kanade/tachiyomi
@ -0,0 +1,6 @@
|
|||||||
|
package eu.kanade.tachiyomi.source
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Source for which downloading is disabled.
|
||||||
|
*/
|
||||||
|
interface DownloadDisabledSource
|
@ -40,7 +40,7 @@ import java.util.zip.ZipFile
|
|||||||
|
|
||||||
class LocalSource(
|
class LocalSource(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
) : CatalogueSource, UnmeteredSource {
|
) : CatalogueSource, UnmeteredSource, DownloadDisabledSource {
|
||||||
|
|
||||||
private val json: Json by injectLazy()
|
private val json: Json by injectLazy()
|
||||||
|
|
||||||
|
@ -122,4 +122,4 @@ fun Source.getNameForMangaInfo(): String {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Source.isLocalOrStub(): Boolean = id == LocalSource.ID || this is SourceManager.StubSource
|
fun Source.downloadingAllowed(): Boolean = this is DownloadDisabledSource
|
||||||
|
@ -107,7 +107,7 @@ class SourceManager(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("OverridingDeprecatedMember")
|
@Suppress("OverridingDeprecatedMember")
|
||||||
open inner class StubSource(val sourceData: SourceData) : Source {
|
open inner class StubSource(val sourceData: SourceData) : Source, DownloadDisabledSource {
|
||||||
|
|
||||||
override val id: Long = sourceData.id
|
override val id: Long = sourceData.id
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ import eu.kanade.tachiyomi.data.download.DownloadService
|
|||||||
import eu.kanade.tachiyomi.data.download.model.Download
|
import eu.kanade.tachiyomi.data.download.model.Download
|
||||||
import eu.kanade.tachiyomi.data.track.model.TrackSearch
|
import eu.kanade.tachiyomi.data.track.model.TrackSearch
|
||||||
import eu.kanade.tachiyomi.network.HttpException
|
import eu.kanade.tachiyomi.network.HttpException
|
||||||
import eu.kanade.tachiyomi.source.isLocalOrStub
|
import eu.kanade.tachiyomi.source.downloadingAllowed
|
||||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.FullComposeController
|
import eu.kanade.tachiyomi.ui.base.controller.FullComposeController
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.pushController
|
import eu.kanade.tachiyomi.ui.base.controller.pushController
|
||||||
@ -121,7 +121,7 @@ class MangaController :
|
|||||||
windowWidthSizeClass = calculateWindowWidthSizeClass(),
|
windowWidthSizeClass = calculateWindowWidthSizeClass(),
|
||||||
onBackClicked = router::popCurrentController,
|
onBackClicked = router::popCurrentController,
|
||||||
onChapterClicked = this::openChapter,
|
onChapterClicked = this::openChapter,
|
||||||
onDownloadChapter = this::onDownloadChapters.takeIf { !successState.source.isLocalOrStub() },
|
onDownloadChapter = this::onDownloadChapters.takeIf { successState.source.downloadingAllowed() },
|
||||||
onAddToLibraryClicked = this::onFavoriteClick,
|
onAddToLibraryClicked = this::onFavoriteClick,
|
||||||
onWebViewClicked = this::openMangaInWebView.takeIf { isHttpSource },
|
onWebViewClicked = this::openMangaInWebView.takeIf { isHttpSource },
|
||||||
onTrackingClicked = trackSheet::show.takeIf { successState.trackingAvailable },
|
onTrackingClicked = trackSheet::show.takeIf { successState.trackingAvailable },
|
||||||
@ -132,7 +132,7 @@ class MangaController :
|
|||||||
onSearch = this::performSearch,
|
onSearch = this::performSearch,
|
||||||
onCoverClicked = this::openCoverDialog,
|
onCoverClicked = this::openCoverDialog,
|
||||||
onShareClicked = this::shareManga.takeIf { isHttpSource },
|
onShareClicked = this::shareManga.takeIf { isHttpSource },
|
||||||
onDownloadActionClicked = this::runDownloadChapterAction.takeIf { !successState.source.isLocalOrStub() },
|
onDownloadActionClicked = this::runDownloadChapterAction.takeIf { successState.source.downloadingAllowed() },
|
||||||
onEditCategoryClicked = this::onCategoriesClick.takeIf { successState.manga.favorite },
|
onEditCategoryClicked = this::onCategoriesClick.takeIf { successState.manga.favorite },
|
||||||
onMigrateClicked = this::migrateManga.takeIf { successState.manga.favorite },
|
onMigrateClicked = this::migrateManga.takeIf { successState.manga.favorite },
|
||||||
onMultiBookmarkClicked = presenter::bookmarkChapters,
|
onMultiBookmarkClicked = presenter::bookmarkChapters,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user