Added data to details intent
This commit is contained in:
@@ -677,9 +677,11 @@ class AppRouter private constructor(
|
||||
|
||||
fun detailsIntent(context: Context, manga: Manga) = Intent(context, DetailsActivity::class.java)
|
||||
.putExtra(KEY_MANGA, ParcelableManga(manga))
|
||||
.setData(shortMangaUrl(manga.id))
|
||||
|
||||
fun detailsIntent(context: Context, mangaId: Long) = Intent(context, DetailsActivity::class.java)
|
||||
.putExtra(KEY_ID, mangaId)
|
||||
.setData(shortMangaUrl(mangaId))
|
||||
|
||||
fun listIntent(context: Context, source: MangaSource, filter: MangaListFilter?, sortOrder: SortOrder?): Intent =
|
||||
Intent(context, MangaListActivity::class.java)
|
||||
@@ -697,7 +699,7 @@ class AppRouter private constructor(
|
||||
fun cloudFlareResolveIntent(context: Context, exception: CloudFlareProtectedException): Intent =
|
||||
Intent(context, CloudFlareActivity::class.java).apply {
|
||||
data = exception.url.toUri()
|
||||
putExtra(KEY_SOURCE, exception.source?.name)
|
||||
putExtra(KEY_SOURCE, exception.source.name)
|
||||
exception.headers[CommonHeaders.USER_AGENT]?.let {
|
||||
putExtra(KEY_USER_AGENT, it)
|
||||
}
|
||||
@@ -772,6 +774,12 @@ class AppRouter private constructor(
|
||||
else -> true
|
||||
}
|
||||
|
||||
private fun shortMangaUrl(mangaId: Long) = Uri.Builder()
|
||||
.scheme("kotatsu")
|
||||
.path("manga")
|
||||
.appendQueryParameter("id", mangaId.toString())
|
||||
.build()
|
||||
|
||||
const val KEY_DATA = "data"
|
||||
const val KEY_ENTRIES = "entries"
|
||||
const val KEY_ERROR = "error"
|
||||
|
||||
@@ -35,6 +35,10 @@ class MangaLinkResolver @Inject constructor(
|
||||
|
||||
private suspend fun resolveAppLink(uri: Uri): Manga? {
|
||||
require(uri.pathSegments.singleOrNull() == "manga") { "Invalid url" }
|
||||
uri.getQueryParameter("id")?.let { mangaId ->
|
||||
// short url
|
||||
return dataRepository.findMangaById(mangaId.toLong(), withChapters = false)
|
||||
}
|
||||
val sourceName = requireNotNull(uri.getQueryParameter("source")) { "Source is not specified" }
|
||||
val source = MangaSource(sourceName)
|
||||
require(source != UnknownMangaSource) { "Manga source $sourceName is not supported" }
|
||||
|
||||
Reference in New Issue
Block a user