This commit is contained in:
Horis
2025-04-10 11:59:05 +08:00
parent 9d4a641e3f
commit 0a2b61427d
2 changed files with 13 additions and 5 deletions
@@ -8,6 +8,7 @@ import android.view.ViewGroup
import androidx.core.view.setPadding
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope
import com.script.rhino.runScriptWithContext
import io.legado.app.R
import io.legado.app.base.BaseDialogFragment
import io.legado.app.constant.AppLog
@@ -25,13 +26,13 @@ import io.legado.app.utils.dpToPx
import io.legado.app.utils.isAbsUrl
import io.legado.app.utils.openUrl
import io.legado.app.utils.printOnDebug
import com.script.rhino.runScriptWithContext
import io.legado.app.utils.setLayout
import io.legado.app.utils.showDialogFragment
import io.legado.app.utils.toastOnUi
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Dispatchers.Main
import kotlinx.coroutines.ensureActive
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import splitties.views.onClick
@@ -133,6 +134,7 @@ class SourceLoginDialog : BaseDialogFragment(R.layout.dialog_login, true) {
}
}
}.onFailure { e ->
ensureActive()
AppLog.put("LoginUI Button ${rowUi.name} JavaScript error", e)
}
}
@@ -5,7 +5,9 @@ import android.os.Bundle
import android.view.View
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
@@ -27,6 +29,7 @@ import io.legado.app.utils.startActivity
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch
@@ -95,16 +98,19 @@ class RssArticlesFragment() : VMBaseFragment<RssArticlesViewModel>(R.layout.frag
}
}
})
refreshLayout.post {
refreshLayout.isRefreshing = true
loadArticles()
viewLifecycleOwner.lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.RESUMED) {
refreshLayout.isRefreshing = true
loadArticles()
this@launch.cancel()
}
}
}
private fun initData() {
val rssUrl = activityViewModel.url ?: return
articlesFlowJob?.cancel()
articlesFlowJob = lifecycleScope.launch {
articlesFlowJob = viewLifecycleOwner.lifecycleScope.launch {
appDb.rssArticleDao.flowByOriginSort(rssUrl, viewModel.sortName).catch {
AppLog.put("订阅文章界面获取数据失败\n${it.localizedMessage}", it)
}.flowOn(IO).collect {