diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceAdapter.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceAdapter.kt index ca7d14cad..b61b33da8 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceAdapter.kt @@ -13,6 +13,7 @@ import io.legado.app.base.adapter.DiffRecyclerAdapter import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.data.entities.SearchBook import io.legado.app.databinding.ItemChangeSourceBinding +import io.legado.app.help.config.AppConfig import io.legado.app.utils.getCompatColor import io.legado.app.utils.gone import io.legado.app.utils.invisible @@ -55,6 +56,8 @@ class ChangeChapterSourceAdapter( tvOrigin.text = item.originName tvAuthor.text = item.author tvLast.text = item.getDisplayLastChapterTitle() + tvCurrentChapterWordCount.text = item.chapterWordCountText + tvRespondTime.text = context.getString(R.string.respondTime, item.respondTime) if (callBack.oldBookUrl == item.bookUrl) { ivChecked.visible() } else { @@ -82,13 +85,37 @@ class ChangeChapterSourceAdapter( } else if (score < 0) { binding.ivGood.gone() binding.ivBad.visible() - DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_100)) - DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_A200)) + DrawableCompat.setTint( + binding.ivGood.drawable, + appCtx.getCompatColor(R.color.md_red_100) + ) + DrawableCompat.setTint( + binding.ivBad.drawable, + appCtx.getCompatColor(R.color.md_blue_A200) + ) } else { binding.ivGood.visible() binding.ivBad.visible() - DrawableCompat.setTint(binding.ivGood.drawable, appCtx.getCompatColor(R.color.md_red_100)) - DrawableCompat.setTint(binding.ivBad.drawable, appCtx.getCompatColor(R.color.md_blue_100)) + DrawableCompat.setTint( + binding.ivGood.drawable, + appCtx.getCompatColor(R.color.md_red_100) + ) + DrawableCompat.setTint( + binding.ivBad.drawable, + appCtx.getCompatColor(R.color.md_blue_100) + ) + } + + if (AppConfig.changeSourceLoadWordCount && !item.chapterWordCountText.isNullOrBlank()) { + tvCurrentChapterWordCount.visible() + } else { + tvCurrentChapterWordCount.gone() + } + + if (AppConfig.changeSourceLoadWordCount && item.respondTime >= 0) { + tvRespondTime.visible() + } else { + tvRespondTime.gone() } } } diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt index dc14e1dc0..3d464088c 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt @@ -2,16 +2,20 @@ package io.legado.app.ui.book.changesource import android.content.DialogInterface import android.os.Bundle -import android.view.* +import android.view.KeyEvent import android.view.KeyEvent.ACTION_UP +import android.view.Menu +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.Toolbar import androidx.core.os.bundleOf import androidx.core.view.isVisible import androidx.fragment.app.viewModels +import androidx.lifecycle.Lifecycle.State.STARTED import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle -import androidx.lifecycle.Lifecycle.State.STARTED import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import io.legado.app.R @@ -31,8 +35,17 @@ import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.book.source.edit.BookSourceEditActivity import io.legado.app.ui.book.source.manage.BookSourceActivity import io.legado.app.ui.widget.recycler.VerticalDivider -import io.legado.app.utils.* +import io.legado.app.utils.StartActivityContract +import io.legado.app.utils.applyTint +import io.legado.app.utils.cnCompare +import io.legado.app.utils.dpToPx +import io.legado.app.utils.gone +import io.legado.app.utils.observeEvent +import io.legado.app.utils.setLayout +import io.legado.app.utils.startActivity +import io.legado.app.utils.toastOnUi import io.legado.app.utils.viewbindingdelegate.viewBinding +import io.legado.app.utils.visible import kotlinx.coroutines.delay import kotlinx.coroutines.flow.conflate import kotlinx.coroutines.launch @@ -124,6 +137,8 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c ?.isChecked = AppConfig.changeSourceLoadInfo binding.toolBar.menu.findItem(R.id.menu_load_toc) ?.isChecked = AppConfig.changeSourceLoadToc + binding.toolBar.menu.findItem(R.id.menu_load_word_count) + ?.isChecked = AppConfig.changeSourceLoadWordCount } private fun initView() { @@ -239,6 +254,11 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c AppConfig.changeSourceLoadToc = !item.isChecked item.isChecked = !item.isChecked } + R.id.menu_load_word_count -> { + AppConfig.changeSourceLoadWordCount = !item.isChecked + item.isChecked = !item.isChecked + viewModel.onLoadWordCountChecked(item.isChecked) + } R.id.menu_start_stop -> viewModel.startOrStopSearch() R.id.menu_source_manage -> startActivity() else -> if (item?.groupId == R.id.source_group) {