Add methods to get manga and chapter url (#8114)

* Add methods to get manga and chapter url

Some fork supports directly opening chapters with webview hence `getChapterUrl`

* Review Changes

* Add since to javadoc

(cherry picked from commit de23226591376e998e4ff1ff7b2d4c2a0a805b09)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
This commit is contained in:
AntsyLich 2022-10-01 21:31:07 +06:00 committed by Jobobby04
parent 71076bd56a
commit 41542517f7
2 changed files with 25 additions and 4 deletions

View File

@ -19,7 +19,6 @@ import com.bluelinelabs.conductor.ControllerChangeType
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.data.chapter.NoChaptersException
import eu.kanade.domain.UnsortedPreferences
import eu.kanade.domain.manga.model.toDbManga
import eu.kanade.presentation.components.ChangeCategoryDialog
import eu.kanade.presentation.components.ChapterDownloadAction
import eu.kanade.presentation.components.DuplicateMangaDialog
@ -312,7 +311,7 @@ class MangaController : FullComposeController<MangaPresenter> {
source ?: return
manga ?: return
val url = try {
source.mangaDetailsRequest(manga.toDbManga()).url.toString()
source.getMangaUrl(manga.toSManga())
} catch (e: Exception) {
return
}
@ -322,12 +321,12 @@ class MangaController : FullComposeController<MangaPresenter> {
startActivity(intent)
}
fun shareManga() {
private fun shareManga() {
val context = view?.context ?: return
val manga = presenter.manga ?: return
val source = presenter.source as? HttpSource ?: return
try {
val url = source.mangaDetailsRequest(manga.toDbManga()).url.toString()
val url = source.getMangaUrl(manga.toSManga())
val intent = Intent(Intent.ACTION_SEND).apply {
type = "text/plain"
putExtra(Intent.EXTRA_TEXT, url)

View File

@ -390,6 +390,28 @@ abstract class HttpSource : CatalogueSource {
}
}
/**
* Returns the url of the provided manga
*
* @since extensions-lib 1.4
* @param manga the manga
* @return url of the manga
*/
open fun getMangaUrl(manga: SManga): String {
return mangaDetailsRequest(manga).url.toString()
}
/**
* Returns the url of the provided chapter
*
* @since extensions-lib 1.4
* @param chapter the chapter
* @return url of the chapter
*/
open fun getChapterUrl(chapter: SChapter): String {
return pageListRequest(chapter).url.toString()
}
/**
* Called before inserting a new chapter into database. Use it if you need to override chapter
* fields, like the title or the chapter number. Do not change anything to [manga].