diff --git a/app/src/main/java/io/legado/app/help/JsExtensions.kt b/app/src/main/java/io/legado/app/help/JsExtensions.kt index 79a6ab5eb..6e8824f20 100644 --- a/app/src/main/java/io/legado/app/help/JsExtensions.kt +++ b/app/src/main/java/io/legado/app/help/JsExtensions.kt @@ -855,7 +855,7 @@ interface JsExtensions : JsEncodeUtils { getSource()?.let { Debug.log(it.getKey(), msg.toString()) } ?: Debug.log(msg.toString()) - AppLog.putDebug("书源调试输出:$msg") + AppLog.putDebug("源调试输出:$msg") return msg } diff --git a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt index 964780d57..c2fedbe22 100644 --- a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt @@ -16,18 +16,15 @@ import io.legado.app.base.VMBaseActivity import io.legado.app.constant.AppConst import io.legado.app.constant.AppConst.imagePathKey import io.legado.app.constant.AppLog -import io.legado.app.data.entities.BaseSource +import io.legado.app.data.entities.RssSource import io.legado.app.databinding.ActivityRssReadBinding -import io.legado.app.help.JsExtensions import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.SelectItem import io.legado.app.lib.dialogs.selector import io.legado.app.lib.theme.accentColor import io.legado.app.lib.theme.primaryTextColor import io.legado.app.model.Download -import io.legado.app.ui.association.AddToBookshelfDialog import io.legado.app.ui.association.OnLineImportActivity -import io.legado.app.ui.book.search.SearchActivity import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.login.SourceLoginActivity import io.legado.app.utils.* @@ -55,7 +52,11 @@ class ReadRssActivity : VMBaseActivity viewModel.saveImage(it.value, uri) } } - private val rssJsExtensions by lazy { RssJsExtensions() } + private val rssJsExtensions by lazy { RssJsExtensions(this) } + + fun getSource(): RssSource? { + return viewModel.rssSource + } override fun onActivityCreated(savedInstanceState: Bundle?) { viewModel.upStarMenuData.observe(this) { upStarMenu() } @@ -453,21 +454,4 @@ class ReadRssActivity : VMBaseActivity } - @Suppress("unused") - private inner class RssJsExtensions : JsExtensions { - - override fun getSource(): BaseSource? { - return viewModel.rssSource - } - - fun searchBook(key: String) { - SearchActivity.start(this@ReadRssActivity, key) - } - - fun addBook(bookUrl: String) { - showDialogFragment(AddToBookshelfDialog(bookUrl)) - } - - } - } diff --git a/app/src/main/java/io/legado/app/ui/rss/read/RssJsExtensions.kt b/app/src/main/java/io/legado/app/ui/rss/read/RssJsExtensions.kt new file mode 100644 index 000000000..5df98b9b7 --- /dev/null +++ b/app/src/main/java/io/legado/app/ui/rss/read/RssJsExtensions.kt @@ -0,0 +1,24 @@ +package io.legado.app.ui.rss.read + +import io.legado.app.data.entities.BaseSource +import io.legado.app.help.JsExtensions +import io.legado.app.ui.association.AddToBookshelfDialog +import io.legado.app.ui.book.search.SearchActivity +import io.legado.app.utils.showDialogFragment + +@Suppress("unused") +class RssJsExtensions(private val activity: ReadRssActivity) : JsExtensions { + + override fun getSource(): BaseSource? { + return activity.getSource() + } + + fun searchBook(key: String) { + SearchActivity.start(activity, key) + } + + fun addBook(bookUrl: String) { + activity.showDialogFragment(AddToBookshelfDialog(bookUrl)) + } + +} diff --git a/app/src/main/java/io/legado/app/utils/JsURL.kt b/app/src/main/java/io/legado/app/utils/JsURL.kt index 28c65b747..35f91fa46 100644 --- a/app/src/main/java/io/legado/app/utils/JsURL.kt +++ b/app/src/main/java/io/legado/app/utils/JsURL.kt @@ -7,6 +7,9 @@ import java.net.URLDecoder class JsURL(url: String, baseUrl: String? = null) { val searchParams: Map? + val host: String + val origin: String + val pathname: String init { val mUrl = if (!baseUrl.isNullOrEmpty()) { @@ -15,6 +18,13 @@ class JsURL(url: String, baseUrl: String? = null) { } else { URL(url) } + host = mUrl.host + origin = if (mUrl.port > 0) { + "${mUrl.protocol}://$host:${mUrl}:${mUrl.port}" + } else { + "${mUrl.protocol}://$host:${mUrl}" + } + pathname = mUrl.path val query = mUrl.query searchParams = query?.let { query -> val map = hashMapOf()