This commit is contained in:
kunfei
2023-07-29 10:32:58 +08:00
parent e176e37d39
commit 74ddc6475c
4 changed files with 41 additions and 23 deletions

View File

@@ -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
}

View File

@@ -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<ActivityRssReadBinding, ReadRssViewModel>
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<ActivityRssReadBinding, ReadRssViewModel>
}
@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))
}
}
}

View File

@@ -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))
}
}

View File

@@ -7,6 +7,9 @@ import java.net.URLDecoder
class JsURL(url: String, baseUrl: String? = null) {
val searchParams: Map<String, String>?
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<String, String>()